php SESSIONアプリケーション例(ショッピングカート)
SESSION申請例
ログイン例: (履歴書方式ではなく、自分で再度入力する必要があることに注意してください)
まず、結果グラフを見て、学生の書き込み意欲を刺激します。ログインページは次のとおりです:
説明、どのような問題がありますか。次に、自分で実装します。
最初のデータベース情報:
login という名前の新しいデータベースを作成し、テーブルの構造は次のとおりです:
login.php
<?php session_start(); if ( ( $_POST['username'] != null ) && ( $_POST['password'] != null ) ) { $userName = $_POST['username']; $password = $_POST['password']; //从db获取用户信息 数据库信息改成自己的 $conn = mysqli_connect('host','username','password','login'); $res = mysqli_query($conn,"select * from user where `username` = '$username' "); $row = mysqli_fetch_assoc($res); if ($row['password'] == $password) { //密码验证通过,设置session,把用户名和密码保存在服务端 $_SESSION['username'] = $username; $_SESSION['password'] = $password; //最后跳转到登录后的欢迎页面 //注意:这里我们没有像cookie一样带参数过去 header('Location: welcome.php'); } } ?> <html> <head> <!-- 这里指明页面编码 --> <meta charset="utf-8"> </head> <body> <form action="" method="POST"> <div> 用户名:<input type="text" name="username" /> 密 码:<input type="text" name="password" /> <input type="submit" value="登录"> </div> </form> </body> </html>
welcome.php ここでは、セッション、クッキーのようにURLにパラメータを持ち込むようなものではありません
<?php session_start(); $username = $_SESSION['username']; ?> <html> <head> </head> <body> welcome,<?php echo $username;?> </body> </html>
ショッピングカートの例: (CVメソッドはなく、自分で入力する必要があることに注意してください)
データベース情報: testという名前のデータベースを作成します。ライブラリ内のテーブルの構造は次のとおりです。
コーディングを開始してください。
goodsList.php これは商品表示ページです。レンダリングは次のとおりです。
初めて商品を購入する場合は、商品情報をショッピングカートに追加し、クリックすると合計金額を計算することを説明します。再度購入する場合は、商品数量に 1 を加えて、合計金額を再計算してください。ショッピング カート ページへのリンクが表示されます。
<?php $goods = array(); //从数据库获取商品信息存入$goods二维数组 $i = 0; //这里请换上自己的数据库相关信息 $conn = mysqli_connect('host','username','password','test'); $res = mysqli_query($conn,'select * from shop'); //这里把商品信息放到$goods二维数组,每一维存的是单个 //商品的信息,比如商品名、价格。 while ($row = mysqli_fetch_assoc($res)) { $goods[$i]['id'] = $row['id']; $goods[$i]['name'] = $row['name']; $goods[$i]['price'] = $row['price']; $i++ ; } ?> <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> </head> <body> <?php //取出商品信息显示在页面上,并添加购买功能 foreach ($goods as $value) { echo ' 商品名 ' . $value['name'] . ' 价格 ' . $value['price']; echo "<a href=buy.php?name=" . $value['name'] . '&price=' . $value['price'] .">购买</a>"; echo '<br />'; } ?> <a href="shoppingCart.php">查看购物车</a> </body> </html>
buy.php このページで購入機能が完了し、再び商品リストにジャンプします。主な目的は、セッションで商品の購入を処理することです。
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> </head> <body> <?php //开启session session_start(); //获取传过来的商品名和价格 $name = $_GET['name']; $price = $_GET['price']; //把session中的商品信息和传过来的(刚买的)商品信息对比 $goods = $_SESSION['goods']; if ($name == $goods[$name]['name']) { //买过的话,则总价格增加,相应商品数量增加 $_SESSION['totalPrice'] += $price; $goods[$name]['number'] += 1; } else { //第一次买的话,将相应的商品信息添加到session中 $goods[$name]['name'] = $name; $goods[$name]['price'] = $price; $goods[$name]['number'] += 1; $_SESSION['totalPrice'] += $price; } $_SESSION['goods'] = $goods; //购买处理完毕后跳转到商品列表 header('location: goodsList.php'); ?> </body> </html>
shoppingCart.php このページには、ショッピングカート内の商品、価格、合計金額などが表示されます。
レンダリングは次のとおりです:
<html> <head> <meta http-equiv="Content-Type" content="text/html;charset=utf-8"> </head> <body> <?php session_start(); //将session中的商品信息(即购物车中的商品)和总价显示到页面 $goods = $_SESSION['goods']; echo '您买了:<br />'; foreach ($goods as $value) { echo $value['name'] . ' 价格 ' . $value['price'] . ' 数量 ' . $value['number'] . '<br />'; } echo '总价:' . $_SESSION['totalPrice'] . '<br />'; ?> <a href="goodsList.php">返回商品列表</a> </body> </html>
ショッピングカートのサンプルが完成したとき、自分で完成させたときの達成感を感じませんか? !あなたは上手い! !