【问题标题】:Allow Line Breaks in a php chat - MySQL PHP在 php 聊天中允许换行 - MySQL PHP
【发布时间】:2011-12-28 07:20:19
【问题描述】:

我构建了一个非常简单的聊天系统...它工作得很好,当用户输入一条消息时它会正确显示,唯一的问题是换行符不显示...在发送信息到数据库并检索它我失去了换行符......

我想我需要在途中将\n 转换为<br>,但我对这种类型的编码真的不太了解...我主要做游戏和东西...没有网站或数据库编码直到今天(我的第一天)

这是我在 chat.php 上找到的代码

<html><head></head><body>
<form action="chat.php" method="post">
Message: <br><textarea type="text" name="message" style="width:80%; height:300px;"></textarea><br>
<input type="submit" />
</form>
<div style="width:100%;">

<?php

$host="***";
$user="***";
$password="***";

$cxn = mysql_pconnect ($host, $user, $password);

mysql_select_db("defaultdb", $cxn);

if (getenv(HTTP_X_FORWARDED_FOR)) {
    $ipaddress = getenv(HTTP_X_FORWARDED_FOR);
} else {
    $ipaddress = getenv(REMOTE_ADDR);
}

$message = strip_tags($_POST["message"]);

mysql_query("INSERT INTO ChatTest (ID, TimeStamp, Message) VALUES ('$ipaddress', NOW(), '$message')");

$data = mysql_query("SELECT * FROM ChatTest ORDER BY TimeStamp DESC") or die(mysql_error()); 
 Print "<table border cellpadding=3 width='100%' style='table-layout:fixed'>
        "; 
 Print "<tr>"; 
 Print "<th style='width:10%;'>ID:</th><th style='width:10%;'>TimeStamp:</th><th style='width:70%;'>Message:</th>";
 while($info = mysql_fetch_array( $data )) { 
 Print "
        <tr>"; 
    Print " <td>".$info['ID'] . "</td> "; 
    Print " <td>".$info['TimeStamp'] . " </td>";
    Print " <td style='white-space:pre-wrap;white-space:-moz-pre-wrap;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word'>".$info['Message'] . "</td></tr>
            "; 
 } 
 Print "</table>"; 

mysql_close($cxn);


?>

</div></body></html>

【问题讨论】:

  • 您确实需要启用error_reporting(E_ALL); - 您的代码中有很多问题,例如不带引号的字符串。
  • 您的 getenv 调用是错误的。他们正在查找未定义的常量,在好日子,PHP 可能会礼貌地为您翻译成字符串。他们应该是getenv('REMOTE_ADDR') 是正确的。
  • 实际上它们根本不应该是getenv 调用,而是一个简单的$_SERVER['REMOTE_ADDR']HTTP_X_FORWARDED_FOR 不可信 - 当不在代理后面时,用户可以将其设置为anything

标签: php mysql regex chat line-breaks


【解决方案1】:

使用nl2br() 将普通换行符转换为html 换行符。

【讨论】:

    猜你喜欢
    • 2010-11-08
    • 2011-07-12
    • 2017-09-10
    • 2012-07-30
    • 2011-05-30
    • 1970-01-01
    • 2012-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多