我编写了一些警报系统。
但是我们不要看系统本身,让我们看看系统如何知道系统确实向浏览用户发送了警报/错误。
我做了一些事情,所以当你随机转到 ?alert=name 时,没有任何错误,它会说“没有错误”。但是如果系统让你去?alert=name,它会回显错误。
我如何处理帖子
function postComment() {
if (!empty($_POST['name']) || !empty($_POST['comment'])) {
$comment = mysql_real_escape_string(htmlentities($_POST['comment']));
$guest = mysql_real_escape_string(htmlentities($_POST['name']));
}
$guestId = 1;
if (empty($guest)) {
$alert = 1;
return header('location: index.php?alert=name');
}
if (empty($comment)) {
$alert = 2;
return header('location: index.php?alert=comment');
}
if (!isset($_COOKIE['alreadyPosted'])) {
mysql_query("INSERT INTO `comments` (`comment_guest`, `guest_id`, `comment`, `comment_date`, `comment_time`) VALUES ('$guest', '$guestId', '$comment', CURDATE(), CURTIME())") or die(mysql_error());
header('Location: index.php?action=sucess');
setcookie(alreadyPosted, $cookieId+1, time() + 60);
} else {
$alert = 3;
header('location: index.php?alert=delay');
}
}
如您所见,为了检查用户是否真的收到该错误,我将 $alert 设置为任何错误号。
为了检查他是否收到错误,我将使用这个:
if (isset($_GET['alert']) == 'name') {
if ($alert == 1) {
echo 'hai';
} else {
echo 'No errors';
}
}
您可能想知道我为什么要这样做..,因为我使用 1 个函数进行发布,而我的发布函数位于表单下方,我希望警报显示在表单中。
问题:
该变量要么没有设置为运行函数时应该设置的数字,要么..有什么东西阻止了它..我不知道..
我的猜测:因为在变量设置之前检查错误是由 postComment 函数决定的?
<?php
if (isset($_GET['alert']) == 'name') {
if ($alert == 1) {
echo 'hai';
} else {
echo 'No errors';
}
}
?>
<form action="index.php" method="POST">
<input type="text" name="name" placeholder="Your name here" class="field">
<textarea class="textarea" name="comment" placeholder="Your comment here..."></textarea>
<input type="submit" name="send" class="blue_button" value="Post Comment">
</form><a href="#"><input type="submit" name="" id="margin" class="blue_button" value="See all messages"></a>
<br />
<?php
//Show the comments
showComments();
if (isset($_POST['send'])) {
postComment();
}
if (isset($_GET['delete']) == "comment"){
deleteComment();
}
echo '<br />';
?>
如果是,解决方案是什么?谢谢!
请不要从关于 mysql_ 函数的故事开始,我理解并且我将使用 PDO 代替,但我目前使用 mysql_ 用于测试目的