ホームページ  >  記事  >  バックエンド開発  >  PHP Cookie 会話制御

PHP Cookie 会話制御

WBOY
WBOYオリジナル
2016-06-13 12:16:19843ブラウズ

PHP での Cookie セッション制御

Cookie を使用して、サーバーから毎回呼び出すことなくクライアントにユーザー情報を記録します。これにより、Web ページの効率が向上し、サーバーへの負荷が軽減されます。

以下の例は、Cookie 呼び出しを使用したログイン インターフェイス操作をシミュレートしています。

インターフェイス表示 (美化されていません)



必要なファイル


index.php をルート ディレクトリに作成し、最初にテーブルを書き込みます図のようにフォーム出力

<html>	<head>		<title>用户登录</title>	</head>	<body>		<form action="login.php" method="post">		<table align="center" border="1" width="300">			<caption><h1>用户登录</h1></caption>				<tr>					<th>用户名</th>					<td><input type="text" name="name"></td>				</tr>				<tr>					<th>密码</th>					<td><input type="password" name="password"></td>				</tr>				<tr>										<td colspan="2" align="center">						<input type="submit" name="sub" value="登录">					</td>				</tr>		</table>	</body></html>

データベースに接続してデータベースのデータを呼び出したいので、データベースを作成し、データベースから呼び出されるファイルを作成します

users テーブルを作成し、データを挿入します。ここでのデータ挿入情報には、ユーザー名、パスワード、権限が含まれます


。ルート ディレクトリに conn.inc を作成します。php はデータベース接続を保存するために使用されます


conn.inc.php

<?php    $mysqli=new mysqli("localhost","root","XXXXX","sqldb");

login.php には、mysqli メソッドを使用した接続データベース が含まれており、パスワードは md5() メソッドを使用して暗号化されています

<?php    if(isset($_POST["sub"])){    	include "conn.inc.php";    	$sql="select id from users where name=&#39;{$_POST["name"]}&#39; and password=&#39;".md5($_POST["password"])."&#39;";    	$result=$mysqli->query($sql);    	//保存数据    	if($result->num_rows > 0){    		$row=$result->fetch_assoc();    		$time=time()*1800;    		setCookie("username", $_POST["name"],$time);    		setCookie("uid", $row["id"],$time);    		setCookie("isLogin",1);    		header("Location:index.php");  //跳转界面    	}    	echo "用户名密码有误";    }?>

Cookie がデータを保存するときは、保存されたデータから期間、「ユーザー名」、「uid」、「isLogin」が返される必要があることに注意してください。 🎜>index.php にはページジャンプが含まれており、パブリックジャンプページクラスを作成します comm.php

comm.php:

"isLogin" が返された場合は、

ログイン成功後、index.php ページにジャンプします ログイン失敗した場合は、再度ログインに戻ります

<?php    //判断:如果没登录自动跳转到登录页面    if(!$_COOKIE["isLogin"]){        header("Location:login.php");    }

index.php には conn.inc.php が含まれていますそして comm.php

最後に 2ページ目と3ページ目はindex.php

Logout
<?php    include "comm.php";  //判断是否登录成功    include "conn.inc.php";    echo "用户<b>".$_COOKIE["username"]."</b>你好!这是网站首页";    echo "你的权限如下:<br>";    $sql="select allow_1,allow_2,allow_3,allow_4 from users where id='{$_COOKIE["uid"]}'";    $result=$mysqli->query($sql);    $user=$result->fetch_assoc();    if($user["allow_1"]){        echo "111111111111<br>";    }    if($user["allow_2"]){        echo "222222222222<br>";    }    if($user["allow_3"]){        echo "333333333333<br>";    }    if($user["allow_4"]){        echo "444444444444<br>";    }    ?>    <a href="test.php">第二页</a><br>    <a href="test2.php">第三页</a><br>    <a href="logout.php">退出</a><br>
logoutと同じように記述します。 php

ユーザー情報をログアウトする必要があります

<?php    include "comm.php";  //判断是否登录成功        $username=$_COOKIE["username"];  //取出用户名    //注销    setCookie("username");    setCookie("uid");    setCookie("islogin");    echo $username."再见";?><br><a href="login.php">重新登录</a>



完全なコード:


login.php:

<?php    if(isset($_POST["sub"])){    	include "conn.inc.php";    	$sql="select id from users where name=&#39;{$_POST["name"]}&#39; and password=&#39;".md5($_POST["password"])."&#39;";    	$result=$mysqli->query($sql);    	//保存数据    	if($result->num_rows > 0){    		$row=$result->fetch_assoc();    		$time=time()*1800;    		setCookie("username", $_POST["name"],$time);    		setCookie("uid", $row["id"],$time);    		setCookie("isLogin",1);    		header("Location:index.php");  //跳转界面    	}    	echo "用户名密码有误";    }?><html>	<head>		<title>用户登录</title>	</head>	<body>		<form action="login.php" method="post">		<table align="center" border="1" width="300">			<caption><h1>用户登录</h1></caption>				<tr>					<th>用户名</th>					<td><input type="text" name="name"></td>				</tr>				<tr>					<th>密码</th>					<td><input type="password" name="password"></td>				</tr>				<tr>										<td colspan="2" align="center">						<input type="submit" name="sub" value="登录">					</td>				</tr>		</table>	</body></html>

















声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。