有另一個「看着這麼長的時刻」。
此代碼在運行時返回成功消息,但沒有任何數據輸入到數據庫表中,沒有錯誤被拋出,我知道從_post接收到所有正確的值,但我看不到有什麼問題,我有一個幾乎相同的查詢在另一個頁面上,它工作正常。
任何人都可以看到代碼的問題?
if (isset($_POST['username']) && $_POST['username'] !== '')
{
$salted = md5($_POST['pass1'] . 'salt');
try
{
$sql = 'INSERT INTO users SET
username = :username,
firstname = :firstname,
lastname = :lastname,
email = :email,
password = $salted,
joined = CURDATE()';
$s = $PDO->prepare($sql);
$s -> bindValue(':username', $_POST['username']);
$s -> bindValue(':firstname', $_POST['firstname']);
$s -> bindValue(':lastname', $_POST['lastname']);
$s -> bindValue(':email', $_POST['email']);
$s -> execute();
}
catch (PDOException $e)
{
$error = 'Error adding submitted user.';
echo $error;
exit();
}
?> <div class="alert alert-success">User added to the database.</div> <?php
}
你的價值'$ salted'必須是單引號作爲一個字符串''$ salted''。雖然MD5哈希本質上是注入安全的,但您也可以像其他所有參數一樣將其綁定爲參數。 –
@CORRUPT INSERT INTO ... SET在MySQL中有效,雖然不常用。這是您鏈接的文檔中的第二個語法示例。 –
請知道MD5被認爲是一個非常弱的散列,不適合現代Web應用程序。 –