问题描述
我在注册页面上需要一些帮助:当我尝试输入用户名和密码时,我不明白为什么它不起作用,而且我也不知道如何以任何方式显示错误。 ...可以完成所有工作,但无法将数据插入数据库中...并且我确定与数据库的连接正常!
我也尝试打印$query
,这是正确的...我认为错误在$inseriscidati
中,但我现在不是很可能是问题所在
以下代码:
<?php
$mex = "";
$database = "users";
$userArray = "SELECT 'username' FROM $database";
if(isset($_POST['submit'])){
$user = $_POST['user'];
$pass = $_POST['pass'];
$passconf = $_POST['passconf'];
$username = mysqli_real_escape_string($connessione,$user);
$password = mysqli_real_escape_string($connessione,$pass);
$passwordConf = mysqli_real_escape_string($connessione,$passconf);
if($username != "" && $password != "" && $passwordConf != ""){
if($password == $passwordConf){
if($user != $userArray){
$passwordCrypt = crypt($password,'$6$rounds=5000$usesomesillystringforsalt$');
$query = "INSERT INTO `users` (`username`,`passwor`) VALUES (`$username`,`$passwordCrypt`)";
$inseriscidati = mysqli_query($connessione,$query);
if(!$inseriscidati){
$mex = "<p style='color: red;'>A causa di un errore non è stato possibile caricare i dati. Riprova più tardi!</p>";
mysqli_error($connessione);
echo "\n Password criptata: ".$passwordCrypt;
echo "\n Query: ".$query;
header("Location: $currentpage?DatiNonInseriti");
}else{
header("Location : $currentpage?DatiInseritiCorrettamente");
$mex = "<p style='color: green;'>I dati inseriti sono stati caricati correttamente!</p>";
}
}else $mex = "<p style='color: red;'>Username non disponibile</p>";
}else $mex = "<p style='color: red;'>Le password non corrispondono</p>";
}else $mex = "<p style='color: red;'>Compilare tutti i campi</p>";
}
?>
<form action="" method="POST" enctype="multipart/form-data">
<?php if($mex != "") echo $mex; ?>
<input type="text" placeholder="Inserire Username" name="user" >
<input type="password" placeholder="Crea Password" name="pass" minlength="8" maxlength="20">
<input type="password" placeholder="Conferma Password" name="passconf"minlength="8" maxlength="20">
<input type="submit" name="submit">
</form>```
解决方法
INSERT TO users ('username','passwor')
需要
INSERT INTO users ('username','passwor')
还请确保密码的列名称为passwor
。看来这里有打字问题
使用单引号代替``
$query = "INSERT INTO users (username,passwor) VALUES ('$username','$passwordCrypt')";