0

申し訳ありませんが、タイトルの言い方がわかりませんでした。基本的に私はコメントシステムを持っています。それは本当に簡単に機能し、DBから投稿のUIDを選択し、そのUIDに関連付けられたコメントを別のDBから出力するだけです。

コメントシステムの性質上、すべての投稿者は匿名であるため、同じ人物とコミュニケーションを取っているかどうかを追跡するのは困難です。そのため、コメントにラップされた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
}
?>

$ colourの由来:$ colour = dechex(rand(0,10000000);しかし、コメントの同じIPのすべてのインスタンスで$colourを同じにする方法がわかりません...

どんな助けでもいただければ幸いです!

4

1 に答える 1

1

私は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
}
?>

ページが読み込まれるたびに色が変わることに注意してください。

于 2012-04-11T20:54:06.723 に答える