<?php
$mysqli = mysqli_connect('localhost', 'test', 'test123', 'test');
if ($mysqli->connect_errno) {
echo "<p>MySQL error no {$mysqli->connect_errno} : {$mysqli->connect_error}</p>";
exit();
}
global $mysqli;
$username = $_POST['username'];
$password = $_POST['password'];
$firstname = $_POST['firstname'];
$lastname = $_POST['lastname'];
$email = $_POST['email'];
$exists = 0;
$result = $mysqli->query("SELECT username from users WHERE username = '{$username}' LIMIT 1");
if ($result->num_rows == 1) {
$exists = 1;
$result = $mysqli->query("SELECT password from users WHERE password = '{$password}' LIMIT 1");
if ($result->num_rows == 1) $exists = 2;
} else {
$result = $mysqli->query("SELECT email from users WHERE email = '{$email}' LIMIT 1");
if ($result->num_rows == 1) $exists = 3;
}
if ($exists == 1) echo "<p>Username already exists!</p>";
else if ($exists == 2) echo "<p>Username and Email already exists!</p>";
else if ($exists == 3) echo "<p>Email already exists!</p>";
else {
# insert data into mysql database
$sql = "INSERT INTO `users` (`id`, `username`, `password`, `firstname`, `lastname`, `email`)
VALUES (NULL, '{$username}', '{$password}', '{$firstname}', '{$lastname}', '{$email}')";
if ($mysqli->query($sql)) {
//echo "New Record has id ".$mysqli->insert_id;
echo '<meta http-equiv="refresh" content="0; url=test.html">';
} else {
echo "<p>MySQL error no {$mysqli->errno} : {$mysqli->error}</p>";
exit();
}
}
?>
我正在尝试创建一个注册页面,因此当用户填写相关详细信息时,它会将它们注册到MYSQL中的数据库并存储详细信息。
然后他们可以继续登录,我遇到的错误是&#39;未定义索引&#39;显示所有变量 - 用户名,密码,名字,姓氏和电子邮件。
我已将所有这些变量添加到我的后端数据库但仍然没有...
HTML code:
<body>
<div class="container">
<h1 class="text-center">Booking</h1>
<form class="form-signin" method="POST" action="register.php">
<h2 class="form-signin-heading">Register</h2>
<div id="all-form">
<h3>User Details</h3>
<input required type="text" class="form-control" placeholder="Name">
<input required type="text" class="form-control" placeholder="Email Address">
<h4>Login Details</h4>
<input required type="text" class="form-control" placeholder="Username">
<input required type="password" class="form-control" placeholder="Password">
<input required type="password" class="form-control" placeholder="Confirm Password">
<button class="btn btn-primary btn-sm" type="register">Register</button>
<p><a href="signup2.html">Already registered? Sign in here </a></p>
</form>
</div>
</div>
<!-- /container -->
</body>
答案 0 :(得分:0)
试试这个,添加
error_log(print_r($_POST,true));
在你的PHP代码的顶部。检查你的控制台日志,看看有什么进展。当我这样做时,我在帖子数据中发现了一些非常奇怪的行为。
答案 1 :(得分:0)
您必须在输入标记中添加name属性,然后才能使用$_POST[]
数组访问它们。您没有在输入标记中添加任何名称属性。见代码:
<body>
<div class="container">
<h1 class="text-center">Booking</h1>
<form class="form-signin" method="POST" action="register.php">
<h2 class="form-signin-heading">Register</h2>
<div id="all-form">
<h3>User Details</h3>
<input required type="text" class="form-control" placeholder="Name" name="name">
<input required type="text" class="form-control" placeholder="Email Address" name="email">
<h4>Login Details</h4>
<input required type="text" class="form-control" placeholder="Username" name="username">
<input required type="password" class="form-control" placeholder="Password" name="password">
<input required type="password" class="form-control" placeholder="Confirm Password" name="confirm_password">
<button class="btn btn-primary btn-sm" type="submit">Register</button>
<p><a href="signup2.html">Already registered? Sign in here </a></p>
</form>
</div>
</div>
<!-- /container -->
请注意,我在这里添加了所有输入标签的name属性。现在,无论何时使用$_POST[]
数组访问此名称,都不会出现任何“未定义的索引”错误。