ホームページ >ウェブフロントエンド >htmlチュートリアル >PHP:登録情報保管・ログイン情報検証の基本原則_html/css_WEB-ITnose
Web サイト上のユーザーは、多くの場合、新しいアカウントを登録したり、すでに登録されているアカウントにログインしたりする必要があります。この記事ではphpを使って基本の機能を実装し、基本の原理を説明します。
まずはHTMLページの基本レイアウトを完成させます
<!doctype html><html lang="en"><head> <meta charset="UTF-8" /> <title>Register_Page</title></head><body> <form action="registerHandler.php" method="post"> Name:<input type="text" name="user" id="user" /> Code:<input type="text" name="pass" id="pass" /> <input type="submit" value="register"/> </form></body></html>
HTML ファイルで user と pass の 2 つの値を取得し、.php ファイルに渡します。 php ファイルは文字列連結機能を使用して、これら 2 つの値を 1 つの文字列に連結します。次に、この文字列を指定した txt ファイルに書き込みます。指定した txt ファイルが見つからない場合は、file 関数が txt ファイルを再作成することに注意してください。このようにして、情報は指定されたスペースに保存されます。
コードは次のとおりです:
<?php // 获取 post 请求中包含的注册数据 $user = $_POST["user"]; $pass = $_POST["pass"]; // 组成一个有规则的字符串,等待写入文件 $str = "user = {$user};pass = {$pass}\n"; $f = fopen("file/user.txt", "a"); // 把本次获得的字符串写入到文档中 fwrite($f, $str); // 关闭文件 fclose($f);?>
原則: 1. php ファイルを HTML ファイルに埋め込みます。 ^ 2.explode 関数を使用して、$str = "user = {$user};pass = {$pass}n"; を user = {$user} と pass = {$pass} に分割します。次に、それらを = で分割して、それぞれ $user と $pass を取得します。ループを通じてテーブル ラベルを取得および作成し、順番に書き込みをエコーして目標を達成します。
<!doctype html><html lang="en"> <head> <meta charset="UTF-8" /> <title> </title> </head> <body> <table border="1"> <tr><th>用户名</th><th>密码</th></tr> <?php // 1. 读取文件,获取信息数组 $arr = file("file/user.txt"); // print_r($arr); echo "<hr>"."下面是把 user.txt 的用户名和密码输出为表格"; foreach ($arr as $value) { $userinfo = explode(";", $value); ?> <tr> <td> <?php $username = explode("=", $userinfo[0])[1]; echo $username; ?> </td> <td> <?php $userpass = explode("=", $userinfo[1])[1]; echo $userpass; ?> <?php } ?> </td> </tr> </table> </body></html>
ユーザー名とパスワードを含むテーブルを生成
原則: 1. レイアウトは登録と似ていますが、アクションは作成された別の login.php ファイルを指します。 2.login.phpファイル内で、今回入力したユーザーとパスの値を取得し、登録時と同じ形式で文字列$strに連結します。 3. $f として定義された file_get_contents() 関数を使用して、user.txt ファイルを文字列全体としてエクスポートします。 4. 判定:$f に $str が含まれていれば、入力したユーザー名とパスワードがデータベース内に存在する、つまりログインが成功したことを意味します。 5. 判定方法:explode メソッド $str で $f を 2 つ以上の要素を含む配列に分割できれば、$f に $str が含まれていることを意味します(ここでの判定には strpos 関数も使用できます)。
コードは以下の通りです:
<?phpheader("Content-type:text/html;charset=utf-8");$user = $_POST["user"];$pass = $_POST["pass"];$str = "user = {$user};pass = {$pass}\n";$f = file_get_contents("file/user.txt");$tmpArr = explode($str, $f);if (count($tmpArr) > 1) echo "登陆成功!数据库有你的信息!";else echo "登录失败!数据库里找不到你!";?>
この時点でログイン判定は完了です もちろん方法は一意ではありません。
このコードに情報を登録するには、json_encode メソッドと json_decode メソッドを使用して情報を JSON 形式に変換し、ドキュメントに書き込みます。これにより、操作と今後の使用が容易になります。ログイン方法は上記と同様です。 JSON の操作モードは非 JSON の操作モードと似ており、本質的な違いはないため、これ以上の詳細は説明しません。
コードは次のとおりです:
1. HTML 部分 (json_register.html)<!doctype html><html><head> <meta charset="UTF-8" /> <title>Document</title></head><body> <form action="json_registerHandler.php" method="post"> 用户名:<input type="text" name="user"/><br> 密__码:<input type="text" name="pass"/><br> <input type="submit" value="注册"/> </form></body></html>2. PHP が登録情報部分を書き込みます
<?phpif (count($_POST) != 0) { $str = json_encode($_POST) . "\n"; $f = fopen("file/jason_user.txt", "a"); fwrite($f, $str); fclose($f);}?>3. テーブルが登録情報部分を出力します
<!doctype html><html> <head> <meta charset="UTF-8" /> <title>Document</title> </head> <body> <table border="1"> <tr><th>用户名</th><th>密码</th></tr> <?php $arr = file("file/jason_user.txt"); foreach ($arr as $value) { $userL = json_decode($value); ?> <tr> <td> <?php $userName = $userL -> user; echo $userName; ?> </td> <td> <?php $passName = $userL -> pass; echo $passName; ?> </td> </tr> <?php } ?> <!--把 json_user.txt 打一下看看样子而已--> <?php echo file_get_contents("file/jason_user.txt"); ?> </table> </body></html>