我创建了一个按预期工作的简单寄存器系统,尽管我想让用户在注册时从下拉菜单中选择一个值,例如:男女不限。然后,用户将在数据库中区分为男性或女性,以及他们的用户名和密码。我正在使用一个简单的php下拉菜单来选择来自的数据。
我想知道如何将其实现到我的注册系统中,以允许用户在注册时从下拉菜单中选择性别,并将其与用户名和密码一起插入数据库。感谢
HTML -
<form action="" method="POST">
<select name="formGender">
<option value="M">Male</option>
<option value="F">Female</option>
</select>
PHP -
if(isset($_POST["submit"])){
if(!empty($_POST['user']) && !empty($_POST['pass'])) {
$user=$_POST['user'];
$pass=$_POST['pass'];
$con=mysql_connect('localhost','root','') or die(mysql_error());
mysql_select_db('user_registration') or die("cannot select DB");
$query=mysql_query("SELECT * FROM login WHERE username='".$user."'");
$numrows=mysql_num_rows($query);
if($numrows==0)
答案 0 :(得分:1)
我将让您处理if ($_POST[...])
业务 - 这将更多地向您展示如何使用预准备语句。我已经从http://php.net/manual/en/mysqli.prepare.php复制了此内容,然后进行了更改。
<?php
$link = mysqli_connect("localhost", "my_user", "my_password", "world");
/* check connection */
if (mysqli_connect_errno()) {
printf("Connect failed: %s\n", mysqli_connect_error());
exit();
}
$gender = $_POST['formGender'];
$username = $_POST['username'];
$password = $_POST['password']; // obviously you'll encrypt or something
/* create a prepared statement */
if ($stmt = mysqli_prepare($link, "INSERT INTO table (username, password, gender) VALUES (?, ?, ?)")) {
/* bind parameters for markers */
mysqli_stmt_bind_param($stmt, "sss", $username, $password, $gender);
/* execute query */
mysqli_stmt_execute($stmt);
/* close statement */
mysqli_stmt_close($stmt);
}
/* close connection */
mysqli_close($link);
?>
答案 1 :(得分:0)
<form method="POST" action="typewhatyouwant.php">
//here can be other form fields.....
<select name="gender">
<option value="male">Male</option>
<option vaue="female">Female</option>
</select>
<input type="Submit" value="Register"/>
</form>
//Server Side "typewhatyouwant.php"
$gender = $_POST['gender'];
$con = mysqli_connect("host","username","pass","dbname");
$ins = mysqli_query($con, "INSERT INTO `dbname` VALUES ('$gender')");
这是保存表单数据的简单客户端 - 服务器模型。用户单击“提交”按钮后,将激活表单方法,并通过HTTP Post方法将数据发送到“typewhatyouwant.php”。在php中,所有帖子数据都保存在$ _POST超全局中,这是关联数组,这意味着您可以通过在$ _POST数组中正确键入name属性值作为键来获取每个表单字段的值。所以$ gender variable的值是select元素的值。 使用mysqli_connect函数连接到数据库,mysqli_query将$ gender变量的值插入表中。
答案 2 :(得分:0)
希望我能理解你的问题,但听起来我觉得你有一份注册表,而且你想让其中一个问题使用下拉菜单而不是文字选项。
如果您有一个静态列表,您希望他们可以选择,例如您在示例中提供的性别,则可以使用
<form action="register.php" method="post">
...
<select name="gender">
<option>Male</option>
<option>Female</option>
</select>
</form>
然后制作你的&#34; register.php&#34;或者你选择称呼的任何东西说:
//Create mysqli object
$link = new mysqli($db_host, $db_user, $db_pass, $db_name);
// Check connection
if($link === false){
die("ERROR: Could not connect. " . mysqli_connect_error());
}
//Set variables for insert
$gender= $_POST['gender'];
//Insert data (you'll use all your form fields)
$sql = "INSERT INTO yourtablename (name, email, gender, etc)
VALUES ('$name', '$email', '$gender','$etc')";
if(mysqli_query($link, $sql)){
header('Location: whereyouwantusertoendup.php');
} else{
echo "There was an error";
}
exit;