如何在PHP中的私人消息系统?

时间:2015-01-28 19:49:21

标签: php message

我正在为我正在开展的项目提供一些帮助。我正在尝试建立一个“简单”的消息系统。

最有可能是一个愚蠢的小蠢虫,但我提前感谢它找不到它,这是我的代码:

<?

session_start();
require_once('connect.php');

$name = $_SESSION['name'];

$q = "SELECT * FROM pm WHERE to = '$name'";

$r = mysqli_query($link,$q);

if(mysqli_num_rows($r)>0) {

while($row = mysqli_fetch_array($r,MYSQLI_ASSOC)){
echo $row['to'];
echo $row['from'];
echo $row['message'];

}
}

?>

1 个答案:

答案 0 :(得分:3)

你有一个sql注入:看到这个问题:How can I prevent SQL injection in PHP?

另外,SELECT语句中的引号是错误的

"SELECT * FROM pm WHERE to = '$name"';

应该是,并使用列名称周围的刻度:

"SELECT * FROM pm WHERE `to` = '$name'";

因为您使用的MySQL保留字是“to”。更多关于以下内容。

你应该得到一个更好的编辑器/ IDE,它支持语法高亮 - 就像你的问题一样,突出显示都搞砸了:What is the best IDE for PHP?

此外,您可能不应该使用“to”这个词作为列名:它是一个保留字:http://dev.mysql.com/doc/refman/5.5/en/reserved-words.html(谢谢:)

我们最终以

结束
"SELECT * FROM pm WHERE recipient = '$name'";