我的本地主机或我的代码没有插入数据库
My localhost or my code doesnt insert into database
我正在使用 html 和 php 创建注册表单,当我点击 sing up 时出现错误:
http://localhost/quiz/SinginUp/singup.html?first=Calin&last=Onaca&email=onaca.calin%40gmail.com&age=20&uid=calinonaca1&pwd=qwerty1234&cpwd=qwerty1234&submit=
...&submit=
之后没有任何内容
我检查了我的代码,我无法意识到我做错了什么。
<form action="includes/signup.php" method="POST">
这是我的行动号召
这是我的 signup.php
<?php
if(isset($_POST['submit']))
{
mysqli_connect('127.0.0.1', 'admin', 'admin', 'quiz');
$conn=mysqli_connect('127.0.0.1', 'admin', 'admin', 'quiz');
$first = mysqli_real_escape_string( $conn,$_POST['first']);
$last = mysqli_real_escape_string( $conn ,$_POST['last']);
$email = mysqli_real_escape_string( $conn,$_POST['email']);
$age = mysqli_real_escape_string( $conn,$_POST['age']);
$uid = mysqli_real_escape_string( $conn,$_POST['uid']);
$pwd = mysqli_real_escape_string( $conn,$_POST['pwd']);
if(empty($first)||empty($last)|| empty($email) ||empty($age)||empty($uid)||empty($pwd)||empty($cpwd))
{
header("Location: ../signup.html?signup=empty");
exit();
}
else {
if(!preg_match("/^[a-ZA-Z]*$/", $first) || !preg_match("/^[a-ZA-Z]*$/", $last) ){
header("Location: ../signup.html?singup=invalid");
exit();
}else
{
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
header("Location: ../signup.html?singup=email");
exit();
}
else
{
if(!preg_match("/^[0-9]*$/", $age)){
header("Location: ../signup.html?singup=invalid");
exit();
}else{
$sql = "SELECT * FROM users WHERE user_uid='$uid'";
$result= mysqli_query($conn, $sql);
$resultCheck= mysqli_num_rows($result);
if($resultCheck > 0)
{
header("Location: ../signup.html?singup=userTaken");
exit();
}
else
{
$hashedPwd = password_hash($pwd, PASSWORD_DEFAULT);
$sql="INSERT INTO users (user_first, user_last, user_email, user_age, user_uid, user_pwd) VALUES ('$first', '$last','$email','$age','$uid','$hashedPwd');";
mysqli_query($conn,$sql);
header("Location: ../index.html?singup=succes");
exit();
}
}
}
}
}
}
} else
{
header("Location: ../signup.html?signup=failed");
exit();
}
?>
如果出现问题,我没有收到失败消息,浏览器编译器说一切正常..
看起来你的脚本只是在寻找 $_POST 数据,所以如果你尝试 link 到带有 URL 中的变量的页面(就像你的例子) , 那么脚本将找不到数据。
相反,脚本需要查看 $_GET(仅 URL 变量)或可以使用 $_REQUEST(包括 GET、POST 和 COOKIE 变量。
还会将一些调试代码添加到 else 语句中,如果请求中没有数据,该语句就会输出,这样您就可以验证它是否像您期望的那样解析信息。希望对您有所帮助。
我正在使用 html 和 php 创建注册表单,当我点击 sing up 时出现错误:
http://localhost/quiz/SinginUp/singup.html?first=Calin&last=Onaca&email=onaca.calin%40gmail.com&age=20&uid=calinonaca1&pwd=qwerty1234&cpwd=qwerty1234&submit=
...&submit=
我检查了我的代码,我无法意识到我做错了什么。
<form action="includes/signup.php" method="POST">
这是我的行动号召
这是我的 signup.php
<?php
if(isset($_POST['submit']))
{
mysqli_connect('127.0.0.1', 'admin', 'admin', 'quiz');
$conn=mysqli_connect('127.0.0.1', 'admin', 'admin', 'quiz');
$first = mysqli_real_escape_string( $conn,$_POST['first']);
$last = mysqli_real_escape_string( $conn ,$_POST['last']);
$email = mysqli_real_escape_string( $conn,$_POST['email']);
$age = mysqli_real_escape_string( $conn,$_POST['age']);
$uid = mysqli_real_escape_string( $conn,$_POST['uid']);
$pwd = mysqli_real_escape_string( $conn,$_POST['pwd']);
if(empty($first)||empty($last)|| empty($email) ||empty($age)||empty($uid)||empty($pwd)||empty($cpwd))
{
header("Location: ../signup.html?signup=empty");
exit();
}
else {
if(!preg_match("/^[a-ZA-Z]*$/", $first) || !preg_match("/^[a-ZA-Z]*$/", $last) ){
header("Location: ../signup.html?singup=invalid");
exit();
}else
{
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
header("Location: ../signup.html?singup=email");
exit();
}
else
{
if(!preg_match("/^[0-9]*$/", $age)){
header("Location: ../signup.html?singup=invalid");
exit();
}else{
$sql = "SELECT * FROM users WHERE user_uid='$uid'";
$result= mysqli_query($conn, $sql);
$resultCheck= mysqli_num_rows($result);
if($resultCheck > 0)
{
header("Location: ../signup.html?singup=userTaken");
exit();
}
else
{
$hashedPwd = password_hash($pwd, PASSWORD_DEFAULT);
$sql="INSERT INTO users (user_first, user_last, user_email, user_age, user_uid, user_pwd) VALUES ('$first', '$last','$email','$age','$uid','$hashedPwd');";
mysqli_query($conn,$sql);
header("Location: ../index.html?singup=succes");
exit();
}
}
}
}
}
}
} else
{
header("Location: ../signup.html?signup=failed");
exit();
}
?>
如果出现问题,我没有收到失败消息,浏览器编译器说一切正常..
看起来你的脚本只是在寻找 $_POST 数据,所以如果你尝试 link 到带有 URL 中的变量的页面(就像你的例子) , 那么脚本将找不到数据。
相反,脚本需要查看 $_GET(仅 URL 变量)或可以使用 $_REQUEST(包括 GET、POST 和 COOKIE 变量。
还会将一些调试代码添加到 else 语句中,如果请求中没有数据,该语句就会输出,这样您就可以验证它是否像您期望的那样解析信息。希望对您有所帮助。