每次我离开任何第一次未填充的文本框时,它将被注册到数据库,就像我将所有文本框留空一样,但是当您第二次(两者中的任何一个)执行时,那将是弹出警告框的时间......我不知道该怎么做。 请帮助我。 这里是我的代码:注册验证
<?php
ini_set('display_errors', 0);
$email= $_POST['email'];
$user= $_POST['user'];
$password= $_POST['password'];
$image =($_FILES['image']['name']);
$submit= $_POST['submit'];
if (empty($email) || empty($password) || empty($user))
{
echo "<script type='text/javascript'>
alert('You did not complete all of the required fields');
window.location='blah2.php';
</script>";
}
if(isset($submit))
{
$con = mysqli_connect("localhost", "root", "", "top")
or die('error in connection'.mysqli_connect_error());
$q = "SELECT username , email FROM registries WHERE username = ? OR email = ?";
$stmt = mysqli_prepare ($con, $q);
mysqli_stmt_bind_param($stmt, 'ss', $user, $email);
mysqli_stmt_execute($stmt);
mysqli_stmt_bind_result($stmt, $user , $email);
mysqli_stmt_store_result($stmt);
$result = mysqli_stmt_num_rows($stmt);
if($result > 0)
{
echo "<script type='text/javascript'>
alert('Email address or Username is already taken. Please pick another one.');
window.location='blah2.php';
</script>";
}
else
{
$q="INSERT INTO registries VALUES (?,?,?,?)";
$stmt = mysqli_prepare($con, $q);
move_uploaded_file($_FILES["image"]["tmp_name"],"uploads/" . $_FILES["image"]["name"]);
mysqli_stmt_bind_param($stmt, 'ssss', $email, $user, $password, $image);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
mysqli_stmt_close($stmt);
header('Location: blah.php');
}
}
这个问题有点不清楚,你可以举一个更好的例子(关于现在发生了什么,以及预期的功能应该是什么)? – Tyler
@TylerAndFriends如果我尝试按下“完成”按钮而不填满文本框或第一次尝试的所有文本框,它将注册到数据库而不是弹出警告框并告诉用户他们将文本框留空。但是当我再次重复它的时候,那是代码正常工作的时间。我想知道如何使这个代码正常工作。 – user2863596