这是代码:
<html>
<body>
<?php
$valid = true;
//Check for first name value
if (empty($_POST['texts'])) {
echo 'You forgot to type something in<br />';
$valid = false;
}
if ($valid == true) {
$conn1 = mysqli_connect('xxx') or die('Error connecting to MySQL server.');
$name= $_POST['name'];
$title= sha1($_POST['title']);
$texts= $_POST['texts'];
$forum_id = $_POST['forum_id'];
$name = str_replace("'","''",$name);
$title = str_replace("'","''",$title);
$title = str_replace("b074acd521","STREAMER",$title);
$texts = str_replace("'","''",$texts);
$title = substr($title,0,8);
$sql = "INSERT INTO post (name,title, texts, forum_id) VALUES ('$name', '$title', '$texts', '$forum_id')";
mysqli_query($conn1, $sql) or die('Error inserting to database.');
mysqli_close($conn1);
header('Location: requests.php');
}
else {
echo 'Click <a href="javascript:history.go(-1)">HERE</a> to go back and adjust your entry.';
}
?>
</body>
</html>
当我在网站上发帖并将 id 字段留空时,它仍然会生成一个 ID,我该如何解决这个问题?另外,如果名称字段为空,如何使其默认为某物?
大多数(如果不是全部)哈希算法都会哈希一个空字符串。 如果他们不这样做,他们就不会真正成为"诚实"的哈希值。这个想法是,你不应该能够破译原始输入的哈希。例如,如果满足以下条件:
All good boys deserve fudge!
和
All good boys deserve fudge!
使用哈希算法将空白空间视为不可哈希,然后他们将获得相同的哈希,这将使它更容易破解。
如果不希望对空字符串进行哈希处理,则需要在对其进行哈希处理之前检查字符串。像这样:
if(!empty($_POST['user_input']) {
$user_hash = sha1($_POST['user_input']);
} else {
echo "No input given, wiseguy!";
}