【问题标题】:chatroom message diffrent background color between sender and reciever doesnt work发送者和接收者之间的聊天室消息不同的背景颜色不起作用
【发布时间】:2016-05-19 22:13:21
【问题描述】:

我想要做的是让消息在发件人和收件人之间具有不同的背景颜色

这是我的代码

<?php 

  include '../config.php';
  include'login.php';

  $username = $_SESSION['username'];

  $msg = $_REQUEST['msg'];

  $sql = mysqli_query($connection,"INSERT INTO logs(`username`, `msg`)VALUES('$username', '$msg')");
  $sql1= "SELECT * FROM logs ORDER by id ASC ";

  $result1 = mysqli_query($connection,$sql1);

  if ($_SESSION['username'] == $username)
    $color = 'red';
  else
    $color = 'purple';

  while($extract = mysqli_fetch_array($result1)){

  echo "
  <div class='left-wrap-message' style='background-color:$color;'>
    <span class = 'username'>". $extract['username']. 
    "</span><span class='msg'> : "  . $extract['msg']. "</span></div><br>";
    }

?>

这里是加载消息的日志文件

<?php 
  include '../config.php';
  include'login.php';

  $username = $_SESSION['username'];

  $sql1= "SELECT * FROM logs ORDER by id ASC";

  $result1 = mysqli_query($connection,$sql1);


 if ($_SESSION['username'] == $username)
    $color = 'red';
 else
    $color = 'purple';


 while($extract = mysqli_fetch_array($result1)){

 echo "<div class='left-wrap-message' style='background-color:$color;'>
 <span  class = 'username'>". $extract['username']. "</span>
 <span  class='msg'> : " . $extract['msg']. "</span></div><br>";
 }

?>

我搞砸了什么?我知道为什么它不起作用

【问题讨论】:

  • 错误检查到底说了什么?
  • 没有错误~~所有的背景颜色都是红色的,它无法检查哪些是发送者和接收者
  • 您需要检查用户名inside消息循环,而不是它之外。

标签: php


【解决方案1】:

您需要在循环中将 $username 与提取的用户名进行比较,这应该可以:

PHP

  <?php 

  include '../config.php';
  include'login.php';

  $username = $_SESSION['username'];
  $msg = $_REQUEST['msg'];

  $sql = mysqli_query($connection,"INSERT INTO logs(`username`, `msg`)VALUES('$username', '$msg')");
  $sql1= "SELECT * FROM logs ORDER by id ASC ";

  $result1 = mysqli_query($connection,$sql1);

  while($extract = mysqli_fetch_array($result1)){
  $color = ($extract['username'] == $username) ? 'red' : 'purple';
  $position = ($extract['username'] == $username) ? 'left' : 'right';
  echo "
  <div class='" . $position . "-wrap-message' style='background-color:$color;'>
    <span class = 'username'>". $extract['username']. 
    "</span><span class='msg'> : "  . $extract['msg']. "</span></div><br>";
    }

?>

【讨论】:

  • 哇,感谢它的工作!但是如果我想要左右我怎么办?
【解决方案2】:

好吧,您正在设置 $username = $_SESSION['username'];,所以当它到达您的 if/else 语句时,它总是会解析为 true。

您需要将 if/else 放在 while 中,并将行用户名与 $username 进行比较。

【讨论】:

    猜你喜欢
    • 2019-10-01
    • 2014-01-12
    • 2014-10-31
    • 2013-01-19
    • 2021-03-01
    • 2013-08-13
    • 1970-01-01
    • 1970-01-01
    • 2019-07-11
    相关资源
    最近更新 更多