ホームページ >バックエンド開発 >PHPチュートリアル >PHPフォームをデータベースに送信するにはどうすればよいですか? (詳しい説明)
サーバー側のデータベースにデータを送信するには、フォーム フォームを使用します。これは、フォームに入力した後、バックグラウンドの .php ファイルに送信され、返されます。最後に、ページが再度更新されて、期待されるページが表示されます。 次の記事では、例を使用して PHP フォームをデータベースに送信する方法について詳しく説明します。
通常、友人がいくつかのウェブサイトを訪問し、そのウェブサイトを使用したい、またはウェブサイト上のコンテンツをもっと見たい場合、ウェブサイトはユーザーに新しいユーザーとして登録するように求め、ウェブサイトは新しいユーザーの登録情報を必要に応じてデータベースを抽出します。
このように、Web サイトはまず独自のデータベースと対応するテーブルを作成します。ここでは、php を使用して簡単なデータベースとテーブルを作成し、phpMyAdmin を使用して MySql データベース を作成します。たとえば、テスト データベースを作成します。サンプル コードは次のとおりです。
<?php // 创建连接 $conn = new mysqli("localhost", "uesename", "password"); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error);} // 创建数据库 $sql = "CREATE DATABASE test"; if ($conn->query($sql) === TRUE) { echo "数据库创建成功"; } else { echo "Error creating database: " . $conn->error; } $conn->close(); ?>
次に、CREATE TABLE ステートメントを使用して MySQL テーブルを作成し、次のフィールドを設定します。
id : これは、 int 型の一意であり、主キーを選択します。
uesrname: ユーザー名、タイプは varchar、長さは 30 です。
パスワード: パスワード、タイプはvarchar、長さは30です。
confirm: パスワードを確認します。タイプは varchar、長さは 30 です。
email: 電子メール、タイプは varchar、長さは 30 です。
次に、SQL ステートメントを使用してデータベース テーブルを作成します。コードは次のとおりです。
<?php // 创建连接 $conn = new mysqli("localhost", "uesename", "password","test"); // 检测连接 if ($conn->connect_error) { die("连接失败: " . $conn->connect_error); } // 使用 sql 创建数据表 $sql = "CREATE TABLE login ( id INT(10) UNSIGNED AUTO_INCREMENT PRIMARY KEY, username VARCHAR(30) NOT NULL, password VARCHAR(30) NOT NULL, confirm VARCHAR(30) NOT NULL, email VARCHAR(30) NOT NULL, )ENGINE=InnoDB DEFAULT CHARSET=utf8 "; if ($conn->query($sql) === TRUE) { echo "Table MyGuests created successfully"; } else { echo "创建数据表错误: " . $conn->error; } $conn->close(); ?>
次に、フォーム登録用の単純なフロントエンド ページを作成します。非常にシンプルで、ユーザー名、パスワード、パスワードの確認、登録メールアドレスなどの単純なテキストボックスがいくつかあります。コードは次のとおりです:
<!DOCTYPE html> <html> <head> <title>用户注册页面</title> <meta charset="UTF-8"/> <style type="text/css"> *{margin:0px;padding:0px;} ul{ width:400px; list-style:none; margin:50px auto; } li{ padding:12px; position:relative; } label{ width:80px; display:inline-block; float:left; line-height:30px; } input[type='text'],input[type='password']{ height:30px; } img{ margin-left:10px; } input[type="submit"]{ margin-left:80px; padding:5px 10px; } </style> </head> <body> <form action="zhuce.php" method="post"> <ul> <li> <label>用户名:</label> <input type="text" name="username" placeholder="请输入注册账号"/> </li> <li> <label>密 码:</label> <input type="password" name="password" placeholder="请输入密码" /> </li> <li> <label>确认密码:</label> <input type="password" name="confirm" placeholder="请再次输入密码" /> </li> <li> <label>邮 箱:</label> <input type="text" name="email" placeholder="请输入邮箱"/> </li> <li> <input type="submit" value="注册" /> </li> </ul> </form> </body> </html>
次に、php コードを使用して、新しいユーザーが送信した情報をデータベースに送信し、POST メソッドを使用して値を転送して取得する必要があります。
まず、以前に作成したデータベースとテーブルに接続する必要があります。これは、新しいユーザーが登録したユーザー名、パスワード、その他の情報をテーブルの対応するフィールドに保存する必要があるためです。データをデータベーステーブルに保存する前に、要件を満たしていないユーザー名やメールアドレスをフィルタリングしたり、ユーザー名が登録されている場合にエラープロンプトを表示したりする必要があります。このユーザー名を再度使用するには、データベースに既に存在するユーザー名を読み取ってから判断する必要があります。
簡単に言うと、フォームから送信されたデータは変数に保存され、パスワードと認証コードが正しいかどうかが判断され、ユーザー情報がデータベースに保存され、データベースにすべて保存されます。ユーザー情報テーブルのデータを抽出して印刷します。
端的に言うと、文の後半はデータの保存と抽出についてです。具体的なコードは次のとおりです。
<?php session_start(); header("Content-type:text/html;charset=utf-8"); $link = mysqli_connect('localhost','root','root','test'); if (!$link) { die("连接失败:".mysqli_connect_error()); } $username = $_POST['username']; $password = $_POST['password']; $confirm = $_POST['confirm']; $email = $_POST['email']; if($username == "" || $password == "" || $confirm == "" || $email == "") { echo "<script>alert('信息不能为空!重新填写');window.location.href='zhuce.html'</script>"; } elseif ((strlen($username) < 3)||(!preg_match('/^\w+$/i', $username))) { echo "<script>alert('用户名至少3位且不含非法字符!重新填写');window.location.href='zhuce'</script>"; //判断用户名长度 }elseif(strlen($password) < 5){ echo "<script>alert('密码至少5位!重新填写');window.location.href='zhuce.html'</script>"; //判断密码长度 }elseif($password != $confirm) { echo "<script>alert('两次密码不相同!重新填写');window.location.href='zhuce.html'</script>"; //检测两次输入密码是否相同 } elseif (!preg_match('/^[\w\.]+@\w+\.\w+$/i', $email)) { echo "<script>alert('邮箱不合法!重新填写');window.location.href='zhuce.html'</script>"; //判断邮箱格式是否合法 } elseif(mysqli_fetch_array(mysqli_query($link,"select * from login where username = '$username'"))){ echo "<script>alert('用户名已存在');window.location.href='zhuce.html'</script>"; } else{ $sql= "insert into login(username, password, confirm, email)values('$username','$password','$confirm','$email')"; //插入数据库 if(!(mysqli_query($link,$sql))){ echo "<script>alert('数据插入失败');window.location.href='zhuce.html'</script>"; }else{ echo "<script>alert('注册成功!)</script>"; } } ?>
友達は、自分でさまざまな操作や試行を行うことができ、慣れてくると、フォーム操作とデータベース操作をある程度深く理解し、将来の開発のための良い基盤を築くことができます。
以上がPHPフォームをデータベースに送信するにはどうすればよいですか? (詳しい説明)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。