【发布时间】:2016-01-20 21:18:25
【问题描述】:
我在两件事上寻求帮助。所以基本上我为我和我的朋友制作了一个消息传递网站,但我遇到了两件事:
我的消息传递网站会告诉您消息发送的时间,但每次您点击刷新时,时间都会更改为当前时间
在您必须刷新才能查看新消息的那一刻,我想知道如何使其自动化,我听说过 Ajax,但我不明白它是如何工作的,所以您需要解释一下给我
代码如下:
<?php
$username = "";
$password = "";
$server = "";
$database = "";
mysql_connect($server, $username, $password);
@mysql_select_db($database) or die("Unable to select database");
?>
<!DOCTYPE HTML>
<html lang="en">
<head>
<meta charset="UTF-8"/>
<title>b!ip</title>
</head>
<body bgcolor="#0000FF">
<?php
date_default_timezone_set('Europe/London');
$searchQuery = "SELECT * FROM messages";
$searchResults = mysql_query($searchQuery);
$firstnameData = mysql_result($searchResults, 0, 'forename');
$lastnameData = mysql_result($searchResults, 0, 'surname');
$messageData = mysql_result($searchResults, 0, 'message');
$datetimeData = mysql_result($searchResults, 0, 'datetime');
if(isset($_POST["submit"]))
{
$firstname = $_POST["forename"];
$surname = $_POST["surname"];
$message = $_POST["message"];
$datetime = date('Y-m-d H:i:s');
mysql_query("UPDATE messages SET `forename` = '$firstname' WHERE `id` = '1'");
mysql_query("UPDATE messages SET `surname` = '$surname' WHERE `id` = '1'");
mysql_query("UPDATE messages SET `message` = '$message' WHERE `id` = '1'");
mysql_query("UPDATE messages SET `datetime` = '$datetime' WHERE `id` = '1'");
}
// date_default_timezone_set('Europe/London');
// echo date('Y-m-d H:i:s');
?>
<center>
<table cellpadding="0" cellspacing="0" width="100%" height="50">
<!-- MSCellFormattingTableID="12" -->
<tr>
<td height="50" width="100%">
<!-- MSCellFormattingType="content" -->
<p align="center"><font face="Comic Sans MS" color="#FFFFFF">
<span style="font-size: 60pt">b!ip</span></font></td>
</tr>
</table>
</center>
<table cellpadding="50" cellspacing="0" width="100%" height="50%">
<tr>
<td height="50" width="100%">
<form action="#" method="POST">
<center><p><font color="#FFFFFF">First name: <input type="text" name="forename"/>
Last name: <input type="text" name="surname"/>
Message: <input type="text" name="message"/>
<input type="submit" value="Send" name="submit"/></font></p></center>
</form>
</td>
</td>
</table>
<table cellpadding="50" cellspacing="0" width="100%" height="50%">
<tr>
<td height="50" width="100%">
<center><h1><font color="#FFFFFF" face="Comic Sans MS"><?php echo "$messageData <strong>by $firstnameData $lastnameData at $datetimeData</strong>"; ?></font></h1></center>
</td>
</td>
</table>
</body>
</html>
【问题讨论】:
-
1 - 您正在使用
$datetime = date('Y-m-d H:i:s');,这将始终返回当前时间。你什么时候保存它所以它不会改变?您可能正在存储message,为什么不存储date/time?。您也应该将其插入数据库。 2 - 我认为教程不适合这里。 -
您可以一次更新多个列。你对 SQL 注入持开放态度。
-
我是这种事情的初学者,而且我 14 岁,所以你能解释一下吗,谢谢
-
你可以做
UPDATE messages SET `forename` = '$firstname', `surname` = '$surname' WHERE `id` = '1'等,用逗号分隔列和它的新值。用户输入应该分开或至少转义php.net/manual/en/function.mysql-real-escape-string.php。首选且更安全的方法是使用带有mysqli或pdo驱动程序的准备好的语句。mysql_函数不支持准备好的语句并且已经过时。 dev.mysql.com/doc/refman/5.0/en/update.htmlstackoverflow.com/questions/60174/… -
如何解决日期/时间问题