【发布时间】:2017-11-10 16:09:47
【问题描述】:
我正在获取两个用户之间的聊天消息,并希望以两种不同的颜色显示消息。
<?php
session_start();
?>
<html>
<head></head>
<body>
<?php
require("config.php");
$id = $_POST['id'];
$sql = "select * from users where id='$id'";
$res = mysqli_query($con, $sql);
$row = mysqli_fetch_array($res);
$user_to = $row['name'];
$sql1 = "select * from chats where user_from='$_SESSION[name]' AND user_to='$user_to' OR user_to='$_SESSION[name]' AND user_from='$user_to' order by id";
$res1 = mysqli_query($con, $sql1);
if(mysqli_num_rows($res1) > 0) {
while($row = mysqli_fetch_array($res1)) {
if($row['user_from'] == $_SESSION['name'])
$color = 'red';
else
$color = 'purple';
echo '<i><p style="font-family:arial;color:' . $color . ';font-size:15px;">' . $row['msg'] . '</p>';
}
} else
echo "No msgs <br />";
?>
</body>
</html>
例如登录的用户,他的消息应该是红色的,他正在检查的消息应该是紫色的。问题是所有获取的消息都变红了。
【问题讨论】:
-
Little Bobby 说 you may be at risk for SQL Injection Attacks。通过parameterized queries 了解Prepared Statements。我推荐
PDO,我推荐wrote a class for,使其比使用非参数化查询更容易、更干净、更安全。此外,This article 可以帮助您在MySQLi和PDO之间进行选择 -
$row['user_from']的内容是什么样的?我假设它是一个用户标识,而不是一个名称。如果没有,应该是。 -
我知道这只是帮助我。
-
@grumpy user_from是当前登录的用户名
-
我正在帮助你。安全性应该始终是您编写的任何代码的主要关注点。就目前而言,您有一个巨大的注入漏洞,任何攻击者都会发现并滥用。
标签: php css mysql stylesheet