首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >最新消息优先(PHP)

最新消息优先(PHP)
EN

Stack Overflow用户
提问于 2015-10-18 15:01:21
回答 3查看 52关注 0票数 1

我按照本教程创建了一个评论系统:https://www.youtube.com/watch?v=3bgdhcqlMXg。但是,我希望最新的消息出现在第一位,而不是最旧的。

所以我把"a“换成了"w+”(我也试过"c“和"r+",但也遇到了同样的问题)。

代码语言:javascript
复制
<?php 
if($_POST) {
$message = $_POST['message'];
$handle = fopen("includes/messages.php", "w+");
file_put_contents($message, $handle);
fwrite($handle,"<h2>Name</h2><p>'.$message.'</p>");
fclose($handle);
}
?>

而且,代码只替换了前一条消息,而不是为一条消息发布不同的“框”。例如:

用户在文本区中写下"Awesome“,它将发布"Awesome”。但是如果第二个用户写下“我爱编码”,"Awesome“就会变成”我爱编码“。(而不是两个不同的评论)。

谢谢。

EN

回答 3

Stack Overflow用户

发布于 2015-10-18 15:14:16

代码语言:javascript
复制
// if POST request not empty
if (!empty($_POST)) {

    // Set filename
    $filename = 'includes/messages.php';

    $input_msg = $_POST['message'];

    // Get all messages
    $old_msg = file_get_contents($filename);

    // Add new message to the beginning
    $new_msg = "<h2>Name</h2><p>'.$message.'</p>".$old_msg;

    // Save it
    file_put_contents($filename, $new_msg, FILE_APPEND | LOCK_EX);
}
票数 2
EN

Stack Overflow用户

发布于 2015-10-18 15:17:24

你应该使用

代码语言:javascript
复制
file_put_contents($file, $message, FILE_APPEND | LOCK_EX);

请注意,你应该使用lock_ex信标,因为如果在同一时间文件中运行的两个进程将是错误的,并锁定帮助你在同一时间之一的写入器可以写入。

票数 0
EN

Stack Overflow用户

发布于 2015-10-18 15:17:34

首先,请缩进你的代码!关于好的编程技术我再怎么强调也不为过。

第二,不要检查$_POST,而要检查$_POST['message']。这是为了确保实际的消息是通过而不是任何$_POST值发送的。

最后,它不工作的原因是因为您存储它的方式。我不会将消息存储在文件中。将其存储在数据库中。我不确定你是在尝试include() messages.php文件,还是在i中直接存储信息。对于这样的应用程序,不要在这样的文件中存储信息。使用像MySQL这样的数据库。在MySQL中,你可以像这样调用。

代码语言:javascript
复制
<?php
    $conn = mysqli_connect('localhost', 'root', '', 'messages');

    $sql = "SELECT * FROM `messages` WHERE /* Whatever you want to specify here */

    $query = mysqli_query($conn, $sql);
    while ($row = mysqli_fetch_array($query)) {

        echo $row['message'];            

    }
?>

这里假设您有一个名为messages的数据库和一个名为message的列。

查看this playlist over PHP。它真的很棒。有点过时,但很好的复习。

希望这能帮上忙。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33195229

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档