我有一个网站:http://aasiskos.webpages.auth.gr/1905_YPA/Rating.php。我登录( user = mpa@mpa.com,pass = 123a ),然后我可以通过推送绿色图像来添加评论。我正在尝试对“发表评论”的事情进行限制。我想避免发表评论时使用空格(没有文字)。但它不起作用。不是空格的帖子也不会显示。这个问题出现在下面代码中最后一个"else“的地方。我如何才能改变这一点?
$link=mysql_connect('localhost', 'student1905','123456');
mysql_select_db('student1905');
$title= $_POST["title"];
$text= $_POST["text"];
if (!$link) {
die('Could not connect: ' . mysql_error());
}
else {
header("Location:Rating.php");
}
if ( ($_POST[title]=" ") || ($_POST[text]=" ") ) {
header("Location:Rating.php");
}
else
{
$sql = "INSERT INTO kritikes (Auxon, Date, Title, Text) VALUE ('',CURDATE(),'$_POST[title]', '$_POST[text]')";
mysql_query($sql);
}
?>发布于 2013-03-29 21:42:00
您可以使用trim()去掉任何前导和尾随空格。示例:
trim(' h i '); //is equal to "h i"
trim('hello world'); //is equal to "hello world"它不会删除中间的空格。
您可以使用empty检查字符串是否为空,而不管它包含多少空格。示例:
empty(""); //returns true
empty(" "); //returns true
empty(" a"); //returns false发布于 2013-03-29 21:41:28
您可以使用PHP的trim()函数来删除字符串开头和结尾的空格。这很容易让你对内容进行评估。
但是,您的代码还存在其他几个问题。首先,如果您的数据库连接存在,您将重定向到Rating.php。这将阻止PHP中的任何未来代码运行。
您还使用了一个不推荐使用的函数族。mysql_*给桌面带来了严重的安全隐患。你真的应该考虑使用MySQLi或PDO。除此之外,您的代码对SQL injections是开放的,因此您当然应该确保清理您的输入。
话虽如此,以下代码应该可以为您工作,但您需要根据我上面关于mysql_*和SQL注入的建议进行更改:
$link = mysql_connect('localhost', 'student1905','123456');
mysql_select_db('student1905');
$title= trim($_POST["title"]);
$text = trim($_POST["text"]);
if(!$link)
{
die('Could not connect: ' . mysql_error());
}
else {
if(strlen($title) == 0 || strlen($text) == 0)
{
header("Location:Rating.php");
}
else
{
$sql = "INSERT INTO kritikes (Auxon, Date, Title, Text) VALUE ('',CURDATE(),'$title', '$text')";
mysql_query($sql);
}
}发布于 2013-03-29 21:37:37
使用trim删除任何前导或尾随空格。然后检查消息是否为空(即,strlen($message) === 0)。
https://stackoverflow.com/questions/15704376
复制相似问题