Maison > Questions et réponses > le corps du texte
P粉2001385102023-08-17 10:39:22
Au lieu d'utiliser while
循环,只需一次捕获fetch_object()
,并使用if
pour tester si vous obtenez un vrai résultat.
Vous devez également utiliser des instructions préparées, je montre comment procéder ci-dessous.
Vous ne devez pas stocker de mots de passe en texte clair, vous devez utiliser password_hash()
和password_verify()
. Je ne montre pas ce code ci-dessous (cela nécessitera des modifications correspondantes dans votre script d'inscription).
$username = $_POST["username"]; if ($username != "") { $password = $_POST["password"]; $accountLevel = $_POST["accountLevel"]; $content = $_POST["content"]; $sql = "SELECT password, accountLevel FROM `accounts1` WHERE username=?"; $stmt = $conn->prepare($sql); $stmt->bind_param("s", $username); $stmt->execute(); $result = $stmt->get_result(); $post = $result->fetch_object(); if ($post) { if ($post->password != $password) { echo "Usuario o Contraseña incorrecta"; }else if ($post->accountLevel != $accountLevel) { echo "Error: No se pudo Publicar. Error de nivel de cuenta."; }else{ $sql = "INSERT INTO `blogposts`(`title`, `contentHTML`, `publishDate`, `commentSection`, `likes`, `dislikes`, `publisher`, `selector`) VALUES ('',?,?,'',0,0,?,'')"; $stmt = $conn->prepare($sql); $stmt->bind_param("sss", $content, $_POST['publishDate'], $username); $stmt->execute(); echo "Enviado"; } } else { echo "Usuario o Contraseña incorrecta"; } }else{ echo "Usuario no indicado"; }