PHP注册表格
我是PHP新手,所以我很难制作简单的注册表单。我的问题是,当我想注册时,除了密码,所有数据都会发送到我的数据库。错误在哪里 我的数据库是mySQL。请尝试几次用户\u pwd在my db中没有输出 php singup表单:PHP注册表格,php,mysql,Php,Mysql,我是PHP新手,所以我很难制作简单的注册表单。我的问题是,当我想注册时,除了密码,所有数据都会发送到我的数据库。错误在哪里 我的数据库是mySQL。请尝试几次用户\u pwd在my db中没有输出 php singup表单: <form class="signup-form" action="includes/signup.inc.php" method="POST"> <input type="text" name="first" placeholde
<form class="signup-form" action="includes/signup.inc.php" method="POST">
<input type="text" name="first" placeholder="Name">
<input type="text" name="last" placeholder="Surname">
<input type="text" name="email" placeholder="E-mail">
<input type="text" name="uid" placeholder="ID">
<input type="password" name="pwd" placeholder="Password">
<button type="submit" name="submit">Sing up</button>
</form>
高唱
php-singup.inc.php:
<?php
if(isset($_POST['submit'])){
include_once 'db.php';
$first = mysqli_real_escape_string($conn,$_POST['first']);
$last = mysqli_real_escape_string($conn,$_POST['last']);
$email = mysqli_real_escape_string($conn,$_POST['email']);
$uid = mysqli_real_escape_string($conn,$_POST['uid']);
$pwd = mysqli_real_escape_string($conn,$_POST['pwd']);
// error handlers
// all fields not empty
if(empty($first) || empty($last) || empty($email) || empty($uid) || empty($pwd) ){
header("Location: ../signup.php?signup=empty");
exit();
}
else{
// check spelling
if(!preg_match("/^[a-zA-z]*$/", $first) || !preg_match("/^[a-zA-z]*$/", $last)){
header("Location: ../signup.php?signup=invalid");
exit();
}
else{
if(!filter_var($email, FILTER_VALIDATE_EMAIL)){
header("Location: ../signup.php?signup=email");
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.php?signup=usertaken");
exit();
}else{
$hashedPwd = password_hash($pwd, PASSWORD_DEFALUT);
$sql = "INSERT INTO users (user_first, user_last, user_email, user_uid, user_pwd) VALUES ('$first', '$last', '$email', '$uid', '$hashedPwd');";
mysqli_query($conn, $sql);
header("Location: ../signup.php?signup=success");
exit();
}
}
}
}
}
else{
header("Location: ../signup.php");
exit();
}
请删除$hashedPwd,以便它不会被包括在内
您的db.php可能是罪魁祸首
将PASSWORD\u DEFALUT替换为PASSWORD\u DEFAULT,因为正在执行PASSWORD\u hash命令。进程无法继续,但将给出null返回值
//$hashedPwd = password_hash($pwd, PASSWORD_DEFALUT);
$sql = "INSERT INTO users (user_first, user_last, user_email, user_uid,user_pwd) VALUES ('$first', '$last', '$email', '$uid', '$hashedPwd');";
mysqli_query($conn, $sql);
header("Location: ../signup.php?signup=success");
exit();
摘自:
返回值»
返回哈希密码,失败时返回FALSE
你有
$hashedPwd = password_hash($pwd, PASSWORD_DEFALUT);
它很可能返回“false”,因为它不支持哈希模式“PASSWORD\u DEFALUT”
尝试将其编辑为正确的格式
$hashedPwd = password_hash($pwd, PASSWORD_DEFAULT);
我希望这能为您解决问题。在输入数据库之前回显$sql字符串。将值('piotr','miroddc','pssld@wp.pl","洛莱克","罗莱克",;最后一个输出为空。.如果(!mysqli_query($conn,$sql)){echo(“错误描述:“.mysqli_Error($conn));}我尝试echo pwd和hashedpwd,那么pwd有一个未进行哈希处理的输出。如果对ini_集('display_errors','on')进行错误检查;错误报告(E_全部)代码>您会注意到错误和警告。我需要使用它进行保护。我知道它只适用于pwd。我检查ealier$hashedPwd=password\u hash($pwd,password\u DEFALUT);$hashedPwd=password\u hash($pwd,password\u DEFAULT);他们是一样的。。。那么我应该编辑什么呢?DEFA->LUIt值得指出有时不太明显的打字错误,但如果这是一个简单的打字错误,这个问题应该这样结束。是的:D谢谢:D明白了:D我的pw现在看起来是这样的:$2y$10$Bumo0vebSvuq77Adizytveky95nn6Jok0VCY8kbRk/xop0QG.shc6你能选择我的问题吗?!然后我会给你的answear投票,因为我需要15分:D