这个问题在这里已经有答案了:
如何显示mysqli查询的错误[重复](2个答案)
引用-这个错误在php中是什么意思(36个答案)
两年前关门了。
我试图让我的注册表工作到我的数据库,但由于某种原因,当我做了一个测试注册没有在我的数据库中创建任何人知道问题是什么?我想这和所有人都有关系
mysqli_stmt
我认为他们中没有人工作正常。
我有第二个文件,是连接到我的数据库,它似乎连接正确,所以不知道是什么问题。
我的php代码在这里
if (isset($_POST['signup-sub'])) {
//hämtar databash.php
require 'databash.php';
// variabler som tar värderna ifrån inputs på signup.php
$username = $_POST['nameid'];
$email = $_POST["mail"];
$password = $_POST['pwd'];
$passwordRepeat = $_POST['pwd-repeat'];
// ifstatement som kollar om någon rad inte är ifylld. om inte så skrivs det ut i länken att det finns tommatext rutor
if (empty($username) || empty($password) || empty($passwordRepeat)) {
header("Location: signup.php?error=tommatextrutor&nameid=".$username."&mail=".$email);
//stoppar skripten om någon skrit in felaktig inmatning
exit();
}
elseif (!filter_var($email, FILTER_VALIDATE_EMAIL) && !preg_match("/^[a-zA-Z0-9]*$/", $username)) {
header("Location: ../signup.php?error=invalidmailname");
//stoppar skripten om någon skrit in felaktig inmatning
exit();
}
// else if som kollar om emailaddresen som är inskriven är felaktig och i så fall lägger ut i länken att det är något fel med emailen.
elseif (!filter_var($email, FILTER_VALIDATE_EMAIL)) {
header("Location: ../signup.php?error=invalidmail&name=".$username);
//stoppar skripten om någon skrit in felaktig inmatning
exit();
}
elseif (!preg_match("/^[a-zA-Z0-9]*$/", $username)) {
header("Location: ../signup.php?error=invalidnameid&mail=".$email);
exit();
}
elseif ($password !== $passwordRepeat) {
header("location: ../signup.php?error=passwordwrong&nameid=".$username."&mail=".$email);
//stoppar skripten om någon skrit in felaktig inmatning
exit();
}
// kollar om det redan finns en användare med detta användarnamnet
else {
$sql = "SELECT uidUsers FROM USERS WHERE uidUsers=?";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../signup.php?error=sqlerror");
exit();
} else {
mysqli_stmt_bind_param($stmt, "s", $username);
mysqli_stmt_execute($stmt);
mysqli_stmt_store_result($stmt);
$resultCheck = mysqli_stmt_num_rows($stmt);
if ($resultCheck > 0) {
header("Location: ../signup.php?errornamntaget&mail=".$email);
exit();
} else {
$sql = "INSERT INTO USERS (uidUsers, emailUsers, pwdUsers) VALUES (?, ?, ?)";
$stmt = mysqli_stmt_init($conn);
if (!mysqli_stmt_prepare($stmt, $sql)) {
header("Location: ../signup.php?error=sqlerror");
exit();
} else {
$hashedPwd = password_hash($password, PASSWORD_DEFUALT);
mysqli_stmt_bind_param($stmt, "sss", $username, $email, $hashedPwd);
mysqli_stmt_execute($stmt);
header("Location: signup.php?registrering=klar");
exit();
}
}
}
}
mysqli_stmt_close($stmt);
mysqli_close($conn);
}
else {
header("Location: signup.php");
exit();
}
1条答案
按热度按时间iszxjhcz1#
这不是答案,而是帮助您测试代码的方法。把你的每一句话都说出来
header("location: ..")
并添加echo "error 1";
(和2、3等)在他们的位置。然后运行代码。当代码返回错误时,您将能够确定是哪个部分产生了问题。解决第一个错误,再次运行代码(测试),修复下一个错误。冲洗并重复。