我已經開始在php中建立一些非常基本的shoutbox \ Chat。它只使用一個基本的mysql表(int)id作爲唯一索引和(文本)消息列。 它可以工作,但它只存儲數據庫中的數字。 我到處搜索了一個解決方案,但找不到一個。我懷疑這個問題存在於mysql數據庫或查詢中,但也許代碼有問題。我只能在數據庫中存儲數字,在php中有一個簡單的留言箱
下面是代碼:
<?php
// ****************
// Database Settings
// ****************
$sql_hst = "localhost";
$sql_db = "chatbox";
$sql_usr = "chatbox";
$sql_pwd = "chatbox";
// ****************
// Core Functions
// ****************
function connectdb()
{
//conection:
global $sql_srv,$sql_usr,$sql_pwd,$sql_db;
$link = mysqli_connect($sql_srv,$sql_usr,$sql_pwd,$sql_db) or die("Error " . mysqli_error($link));
return $link;
}
function getMessages()
{
$result = mysqli_query(connectdb(),"SELECT message FROM messages");
while($row = mysqli_fetch_array($result))
{
echo $row['message'];
echo "<br>";
}
}
function postMessage()
{
if (isset($_POST['message']))
{
mysqli_query(connectdb(), "INSERT INTO messages (message) VALUES (".$_POST['message'].")");
//echo $_POST['message']; //test post data
}
}
connectdb();
postMessage();
//END OF MAIN PHP
?>
<!DOCTYPE html>
<html>
<head><title>Chatbox</title>
<style>
body { background-color: gray; }
input{width:375px;display:block;border: 1px solid #999;height: 25px;--moz-box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);box-shadow: 0px 0px 8px rgba(0, 0, 0, 0.3);}
.message_box{ background-color: white; height: 500px; width: 100%;}
.message_form{width: 100%;}
.message_input{width: 100%;}
.message_submit{}
</style>
</head>
<body>
<div class="message_box"><?php getMessages(); ?></div>
<form class="message_form" action="chatbox.php" method="post">
<input class="message_input" type="text" name="message">
<!-- <input type="submit"> -->
</form>
</body>
</html>
你能'DESCRIBE messages'?你也應該準備這個。 –
你很容易受到[SQL注入攻擊](http://bobby-tables.com)的影響。請勿使用此代碼。話雖如此,這段代碼「很好」(很容易受到攻擊,但......'很好')。數據庫中'message'字段的類型是什麼?炭? VARCHAR?詮釋? –
在你做任何其他事情之前,你必須閱讀[正確的SQL轉義](http://bobby-tables.com/php)以避免嚴重的[SQL注入漏洞](http:// bobby- tables.com/)出現在這裏。當使用'mysqli'時,你應該使用['bind_param'](http://php.net/manual/en/mysqli-stmt.bind-param.php)爲你的查詢添加值。不要使用字符串連接來爲查詢字符串添加'$ _POST'值。 – tadman