根据MySQL输出分配div颜色
问题描述:
不知道如何将标题字对不起。基本上我有一个评论系统,它的工作原理非常简单,从一个数据库中选择帖子的uid,然后从另一个数据库输出与该UID绑定的评论。根据MySQL输出分配div颜色
评论系统的本质是每个海报都是匿名的,因此,很难追踪您是否与同一个人进行通信,因此,我想让div围绕评论是一种特定的颜色,并且该人在该帖子上的每条评论都是该颜色。将用户注释关联在一起的唯一因素是IP地址。
我的代码迄今:
$sql = "SELECT * FROM anonpost_com WHERE uid = '$uid' ORDER BY date DESC";
$result = mysql_query($sql) or print ("Can't select entry from table anonpost.<br />" . $sql . "<br />" . mysql_error());
while($row = mysql_fetch_array($result)) {
$date = date("l F d Y", strtotime($row['date']));
$comment = stripslashes($row['comment']);
$uid = ($row['uid']);
$cid = ($row['cid']);
$ip = ($row['ip']);
?>
<div id="comments" style="border:1px solid <?php echo $colour; ?>;">
<p><?php echo $comment; ?></p>
<h4>by <i>Anonymous</i> on <?php echo $date; ?></h4>
</div>
<?php
}
?>
$颜色来自: $颜色= dechex(兰特(0,10000000); 但我不能确定如何使$颜色为每个实例相同!在评论同一IP ...
任何帮助,将不胜感激
答
的我都同意,IP地址可能不是最好的解决办法,但要做到这一点:
$sql = "SELECT * FROM anonpost_com WHERE uid = '$uid' ORDER BY date DESC";
$colours = array();
$result = mysql_query($sql) or print ("Can't select entry from table anonpost.<br />" . $sql . "<br />" . mysql_error());
while($row = mysql_fetch_array($result)) {
$date = date("l F d Y", strtotime($row['date']));
$comment = stripslashes($row['comment']);
$uid = ($row['uid']);
$cid = ($row['cid']);
$ip = ($row['ip']);
if (!isset($colours[$ip])) {
$colours[$ip] = dechex(rand(0,10000000);
}
$colour = $colours[$ip];
?>
<div id="comments" style="border:1px solid <?php echo $colour; ?>;">
<p><?php echo $comment; ?></p>
<h4>by <i>Anonymous</i> on <?php echo $date; ?></h4>
</div>
<?php
}
?>
请注意,每次页面加载时颜色都会改变。
你知道ip!= person。一人多ips; 1个ip多人 – 2012-04-11 20:43:18
您可以在用户的浏览器上设置一个cookie,并使用它来代替IP地址来识别该人。这不是万无一失的(如果他们改变浏览器,清除cookie或从另一台机器访问),但可能比IP更好取决于你的情况。另外考虑用户数量不是很少的一些颜色会重叠,或者至少看起来像(#ff0000几乎与#fd0102相同) – Adam 2012-04-11 20:49:14
我知道IP不是最好的解决方案,这个是我们使用它的唯一地方,它不是非常重要,十六进制也会出现在“匿名”旁边(请参阅http://anonpost.me/permalink.php?uid=bgkYgWcnjSLrw2YH)这是最快的解决方案目前,这就是我需要的 – AviateX14 2012-04-11 21:11:21