国产av日韩一区二区三区精品,成人性爱视频在线观看,国产,欧美,日韩,一区,www.成色av久久成人,2222eeee成人天堂

PHPセッション制御PHPのCookie

このセクションでは、ユーザーが初めて Web サイトにアクセスするときにユーザー名とパスワードを再入力する必要がない例を通して Cookie について學(xué)びます。

まずはphpでCookieを設(shè)定する方法を紹介します。
php は Cookie を設(shè)定できる関數(shù)を提供します。この関數(shù)は次のとおりです:

bool setcookie  (
        string $名字
        [, string $值]
        [, int $過期時間  = 0]
        [, string $路徑]
        [, string $域名]
        [, bool $安全  = false]
        [, bool $http只讀  = false]
    );

パラメータの説明
$Name 必須。クッキーの名前を指定します。
$value オプション。 Cookieの値を指定します。
$有効期間はオプションです。 Cookieの有効期間を指定します。
$Path オプション。 Cookie のサーバー パスを指定します。
$ドメイン名はオプションです。 Cookie のドメイン名を指定します。
$セキュリティ オプション。 Cookie が安全な HTTPS 接続を介して送信されるかどうかを指定します。
$httpAndu オプション。 true の場合、js は Cookie を読み取ったり変更したりすることができないため、セキュリティが向上します。

一般的に、この関數(shù)では実際には上記ほど多くのパラメーターは使用しません: setcookie(cookie name, cookie value, cookie validity period);

そうです、たった 3 つです。このようにして、サーバー側(cè)で $_COOKIE['name'] を通じて Cookie を読み取ることができます。

ここに例を示します:
ファイルに cookie.php という名前を付けます。

インターネットで見られる最も一般的な例、つまりユーザー名とパスワードを入力して正常にログインする例をシミュレートしてみましょう。

テーブル user と 2 つのフィールド (ユーザー名とパスワード) を持つデータベース ログインを構(gòu)築しましょう。

<?php
//第一次登陸的時候,通過用戶輸入的信息來確認(rèn)用戶
if ( ( $_POST['username'] != null ) && ( $_POST['password'] != null ) ) {
    $userName = $_POST['username'];
    $password = $_POST['password'];
    //從db獲取用戶信息
    //PS:數(shù)據(jù)庫連接信息改成自己的 分別為主機(jī) 數(shù)據(jù)庫用戶名 密碼
    $conn = mysqli_connect('localhost','root','root');

    mysqli_select_db($conn,'test');

    $sql = "select * from user where `username` = '$userName' ";
    $res = mysqli_query($conn,$sql);
    $row = mysqli_fetch_assoc($res);
    if ($row['password'] == $password) {
        //密碼驗證通過,設(shè)置cookies,把用戶名和密碼保存在客戶端
        setcookie('username',$userName,time()+60*60*24*30);//設(shè)置時效一個月,一個月后這個cookie失效
        setcookie('password',$password,time()+60*60*24*30);
        //最后跳轉(zhuǎn)到登錄后的歡迎頁面
        header('Location: welcome.php' . "?username=$userName");
    }
}

//再次訪問的時候通過cookie來識別用戶
if ( ($_COOKIE['username'] != null)  && ($_COOKIE['password'] != null) ) {
    $userName = $_COOKIE['username'];
    $password = $_COOKIE['password'];

    //從db獲取用戶信息
    //PS:數(shù)據(jù)庫連接信息改成自己的 分別為主機(jī) 數(shù)據(jù)庫用戶名 密碼
    $conn = mysqli_connect('localhost','root','root','test');
    $res = mysqli_query($conn,"select * from user where `username` =  '$userName' ");
    $row = mysqli_fetch_assoc($res);
    if ($row['password'] == $password) {
        //驗證通過后跳轉(zhuǎn)到登錄后的歡迎頁面
        header('Location: welcome.php' . "?username=$userName");
    }
}

?>
<html>
<head>

</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>

<?php
$user = $_GET['username'];
?>
<html>
<head>

</head>
<body>
   welcome,<?php echo $user;?>
</body>
</html>

にジャンプするwelcome.phpのコード このように、初めてcookie.phpにアクセスした際にユーザー名とパスワードを入力する必要があり、入力後welcome.phpにジャンプします。次に、ブラウザを閉じて cookie.php を再度開きました。今回はユーザー情報の入力は求められませんでしたが、以前に保存した Cookie 情報がブラウザによって自動的にサーバーに送信されたため、直接 welcome.php にジャンプしました。サーバーは処理後、welcome.php に直接ジャンプします。サーバーは私たちを認(rèn)識しています。私が以前にログインしたユーザーであることを認(rèn)識しているため、Cookie テクノロジーを使用してステートレス HTTP プロトコルの狀態(tài)を維持します。
これに従っていけばCookieが使えるようになると思います。

それ以外は何もありません! ! !のみ! ! !のみ! ! !重要なことを 3 回言います。安全ではないため、Cookie にはユーザー名とパスワードを含めません。重要な情報は Cookie に含めないでください。私たちの例は、Cookie を?qū)W習(xí)する一例にすぎません。

學(xué)び続ける
||
<?php //第一次登陸的時候,通過用戶輸入的信息來確認(rèn)用戶 if ( ( $_POST['username'] != null ) && ( $_POST['password'] != null ) ) { $userName = $_POST['username']; $password = $_POST['password']; //從db獲取用戶信息 //PS:數(shù)據(jù)庫連接信息改成自己的 分別為主機(jī) 數(shù)據(jù)庫用戶名 密碼 $conn = mysqli_connect('localhost','root','root'); mysqli_select_db($conn,'test'); $sql = "select * from user where `username` = '$userName' "; $res = mysqli_query($conn,$sql); $row = mysqli_fetch_assoc($res); if ($row['password'] == $password) { //密碼驗證通過,設(shè)置cookies,把用戶名和密碼保存在客戶端 setcookie('username',$userName,time()+60*60*24*30);//設(shè)置時效一個月,一個月后這個cookie失效 setcookie('password',$password,time()+60*60*24*30); //最后跳轉(zhuǎn)到登錄后的歡迎頁面 header('Location: welcome.php' . "?username=$userName"); } } //再次訪問的時候通過cookie來識別用戶 if ( ($_COOKIE['username'] != null) && ($_COOKIE['password'] != null) ) { $userName = $_COOKIE['username']; $password = $_COOKIE['password']; //從db獲取用戶信息 //PS:數(shù)據(jù)庫連接信息改成自己的 分別為主機(jī) 數(shù)據(jù)庫用戶名 密碼 $conn = mysqli_connect('localhost','root','root','test'); $res = mysqli_query($conn,"select * from user where `username` = '$userName' "); $row = mysqli_fetch_assoc($res); if ($row['password'] == $password) { //驗證通過后跳轉(zhuǎn)到登錄后的歡迎頁面 header('Location: welcome.php' . "?username=$userName"); } } ?> <html> <head> </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>