PHP はユーザーを登録する手順を通じてデータベースを操作します。
最も簡(jiǎn)単な登録ページを作成します。登録ページには 3 つのパラメータがあります:
1. ユーザー名
2. パスワード
3. パスワードを繰り返します
ユーザーが 3 つのパラメータを書き込んだ後、送信をクリックすると、POST レコードが connect.php に渡されます。ページ。
POST レコードを処理して MySQL データベースに書き込むと、ユーザー登録が完了します。
コードは次のとおりです:
<form action="connect.php" method="post"> 用戶名:<input type="text" name="username"><br /> 密碼:<input type="password" name="password"><br /> 重復(fù)密碼:<input type="password" name="repassword"><br /> <input type="submit" value="提交"> </form>
より高速なパフォーマンスを?qū)g現(xiàn)するために、コードのインターフェイスは美化されていません。早急にユーザー登録をご案內(nèi)させていただきます。
1. 繰り返されるパスワードを決定する
パスワードが繰り返されるため、ユーザーが 2 回入力したパスワードが矛盾している場(chǎng)合は、次のステップに進(jìn)む意味がありません。
ウェブページの多くの場(chǎng)所で、パスワードの繰り返しが今でも使用されています。ユーザーが間違いを犯すのではないかという懸念があるからです。パスワードが間違って入力されました。
ユーザーはパスワードを入力するときに、左右にさらに 2 つのスペースを入力できます。したがって、トリムを使用して、パスワードと繰り返されるパスワードの両側(cè)からスペースを削除します。
if(trim($_POST['password']) != trim($_POST['repassword'])){ exit('兩次密碼不一致,請(qǐng)返回上一頁'); }
2. 書き込むデータを準(zhǔn)備します
ユーザーの入力データと非表示データの両方をデータベースに書き込む必要があります。
表示されるデータは次の通りです:
パスワード不必要な情報(bào)の入力を避けるために、ユーザー名の両側(cè)のスペースを削除する必要があります。 | mysql の章で、ユーザーのパスワードは社內(nèi)関係者を含む誰にも公開されるべきではないと述べました。パスワードが元に戻せないことを確認(rèn)してください。初期段階では、MD5 を?qū)W習(xí)するだけです。將來的には他の暗號(hào)化方法も教えていきます。 |
---|---|
変數(shù) | |
2. REMOTE_ADDR は IP アドレスを返します。ip2long を使用してそれを整數(shù)ストレージに変換できます。 $username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $time = time(); $ip = ip2long($_SERVER['REMOTE_ADDR']); 3. データベースへの接続、判定エラー、ライブラリと文字セットの選択 1. mysqli_connect を使用してデータベースサーバーに接続します。 2. エラーがある場(chǎng)合は、mysqli_errno を使用してエラー番號(hào)を取得します 3. エラーがある場(chǎng)合、mysqli_error はすべてのエラーを出力し、プログラムの実行を終了します 4. データベースを選択し、文字セットを設(shè)定します。 utf8. //連接數(shù)據(jù)庫 $conn = mysqli_connect('localhost','root','liwenkaihaha'); //如果有錯(cuò)誤,存在錯(cuò)誤號(hào) if(mysqli_errno($conn)){ echo mysqli_error($conn); exit; } mysqli_select_db($conn,'user'); mysqli_set_charset($conn,'utf8'); 4. SQL ステートメントを結(jié)合します ユーザー名、パスワード、作成時(shí)刻、IP を取得しました。 対応する変數(shù)を SQL ステートメントに挿入します。結(jié)合された SQL ステートメントは次のとおりです: $sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')"; そして、テーブルを作成するステートメントは次のとおりです: CREATE TABLE IF NOT EXISTS user ( id int(11) NOT NULL, username varchar(30) NOT NULL, password char(32) NOT NULL, createtime int(11) NOT NULL, createip int(11) DEFAULT NULL ) ENGINE=InnoDB DEFAULT CHARSET=utf8; テーブルの形式 (フィールドに対応する説明):
5. ステートメントを送信しステータスを決定する my sqli_query 上で述べたように、2 つのパラメータが必要です。渡されるもの: 接続されたリソース、ここでの対応する変數(shù)は $conn です。 送信された SQL ステートメント。 $sql は上ですでに準(zhǔn)備されています。 SQL ステートメントは、mysqli_query を通じて MySQL サーバーに送信できます。正常に送信された場(chǎng)合、$result は true になります。それ以外の場(chǎng)合は false。 成功した場(chǎng)合は、登録が成功したことをユーザーに通知できます。 場(chǎng)合によっては、mysqli_insert_id() の使用も必要になる場(chǎng)合があります。自動(dòng)インクリメントされた主キー ID をここに出力します。 皆さん、今後必要になったときに忘れないよう、この知識(shí)ポイントを覚えておいてください。 mysqli_insert_id アプリケーション シナリオ: 新しく追加されたデータ行。この ID 値を別のテーブルに挿入するときに、自動(dòng)的に増加する ID 値を取得する必要があります。この機(jī)能を使用する必要があります。 $result = mysqli_query($conn,$sql); if($result){ echo '注冊(cè)成功'; }else{ echo '注冊(cè)失敗'; } echo '當(dāng)前用戶插入的ID為'.mysqli_insert_id($conn); 5. データベース接続を閉じます リソース変數(shù)を mysqli_close 関數(shù)に渡します。 mysqli_close($conn); ユーザー登録の基本的な実裝コードが書かれました。上で説明したのはコード スニペットです。 実裝した connect.php コードは次のとおりです: <?php if (trim($_POST['password']) != trim($_POST['repassword'])) { exit('兩次密碼不一致,請(qǐng)返回上一頁'); } $username = trim($_POST['username']); $password = md5(trim($_POST['password'])); $time = time(); $ip = $_SERVER['REMOTE_ADDR']; $conn = mysqli_connect('localhost', 'root', 'liwenkaihaha'); //如果有錯(cuò)誤,存在錯(cuò)誤號(hào) if (mysqli_errno($conn)) { echo mysqli_error($conn); exit; } mysqli_select_db($conn, 'book'); mysqli_set_charset($conn, 'utf8'); $sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')"; $result = mysqli_query($conn, $sql); if ($result) { echo '成功'; } else { echo '失敗'; } echo '當(dāng)前用戶插入的ID為' . mysqli_insert_id($conn); mysqli_close($conn); ?> ||
<?php
if (trim($_POST['password']) != trim($_POST['repassword'])) {
exit('兩次密碼不一致,請(qǐng)返回上一頁');
}
$username = trim($_POST['username']);
$password = md5(trim($_POST['password']));
$time = time();
$ip = $_SERVER['REMOTE_ADDR'];
$conn = mysqli_connect('localhost', 'root', 'liwenkaihaha');
//如果有錯(cuò)誤,存在錯(cuò)誤號(hào)
if (mysqli_errno($conn)) {
echo mysqli_error($conn);
exit;
}
mysqli_select_db($conn, 'book');
mysqli_set_charset($conn, 'utf8');
$sql = "insert into user(username,password,createtime,createip) values('" . $username . "','" . $password . "','" . $time . "','" . $ip . "')";
$result = mysqli_query($conn, $sql);
if ($result) {
echo '成功';
} else {
echo '失敗';
}
echo '當(dāng)前用戶插入的ID為' . mysqli_insert_id($conn);
mysqli_close($conn);
?>
現(xiàn)時(shí)點(diǎn)ではコースウェアはダウンロードできません?,F(xiàn)在スタッフが整理中です。今後もこのコースにもっと注目してください?
このコースを視聴した生徒はこちらも學(xué)んでいます
|
---|