PHP留言板的实现思路

本文实例为大家分享了php留言板的实现思路,供大家参考,具体内容如下:
1.创建一个存放留言信息的文件名
2.获取表单中的数据给一个变量
3.判断文件的时候存在
4.对文件执行写的操作,在这之前,注意打开文件的时候,选择对文件的访问方式,最后记得关闭文件
5.对文件执行读的操作,同样最后要记得关闭文件

 1     <?php
 2      
 3     //留言板的思路:1.先创建一个文件名,方便于存放写入的内容
 4     // 2.将表单中的内容赋值给一个变量
 5     //3.判断文件是否存在,将用户输入的值写进变量,打开文件的是时候注意选择对文件访问的操作
 6     //4.读取文件的内容,关闭文件
 7      
 8      
 9     header("Content-Type:text/html;charset=utf8");
10     $filename = "message.txt";//创建一个文件的名字
11      
12     //如果用户提交了, 就写入文件, 按一定格式写入
13     if(isset($_POST['dosubmit'])) {
14     //字段的分隔使用||, 行的分隔使用[n]
15     $mess = "{$_POST['username']}||".time()."||{$_POST['title']}||{$_POST['content']}[n]";
16      
17      
18     writemessage($filename, $mess);//向文件写进内容
19      
20     }
21      
22     if(file_exists($filename)) {//判断文件 是否存在
23     readmessage($filename);//读取文件的函数
24     }
25      
26      
27     function writemessage($filename, $mess) {
28     $fp = fopen($filename, "a");//在尾部执行写的操作,且不删除原来的文件内容
29     fwrite($fp, $mess);//写入文件
30      
31     fclose($fp);//关闭文件
32     }
33      
34     function readmessage($filename) {
35     $mess = file_get_contents($filename);
36     $mess = rtrim($mess, "[n]");
37      
38     $arrmess = explode("[n]", $mess);
39      
40     foreach($arrmess as $m) {
41     list($username, $dt ,$title, $content) = explode("||", $m);
42      
43     echo "{$username}, ".date("Y-m-d H:i").": <i>{$title}</i>, <u>{$content}</u><br><hr><br>";
44     }
45      
46     }
47      
48     ?>
49      
50     <form action="message.php" method="post">
51     用户: <input type="text" name="username" value="" /><br>
52     标题:<input type="text" name="title" value="" /><br>
53     内容:<textarea name="content" cols="40" rows="4"></textarea><br>
54     <input type="submit" name="dosubmit" value="留言" /><br>
55     </form>

以上就是本文的全部内容,希望对大家的学习有所帮助
这里还有更多留言评论实例https://www.sucaihuo.com/php/221-0-0-0
有兴趣的朋友可以看看

posted on 2019-01-24 18:27 llzoyf 阅读( ...) 评论( ...) 编辑 收藏

转载于:https://www.cnblogs.com/llzoyf/p/10316164.html

实现留言板功能需要以下步骤: 1. 创建数据库和数据表 首先需要在 MySQL 中创建一个数据库,然后在该数据库中创建一个名为 messages 的数据表,该数据表包含以下字段:id (主键,自增), name, email, message, datetime, 和 image。 2. 创建留言板页面 创建一个留言板页面,该页面包含一个表单,让用户输入姓名、电子邮件地址、留言内容和上传图片。 3. 处理表单提交 当用户提交表单时,需要获取表单中的数据,并将其插入到 messages 数据表中。同时,还需要将上传的图片保存到服务器上,并将图片的文件名保存到数据库中。 4. 显示留言列表 从 messages 数据表中获取所有留言,并在页面上按照时间顺序进行显示。同时,还需要将与每条留言相关联的图片文件名从数据库中获取,并在页面上显示相应的图片。 下面是一个简单的示例代码,实现留言板的基本功能: ```php <?php // 连接 MySQL 数据库 $conn = mysqli_connect("localhost", "username", "password", "database"); // 处理表单提交 if ($_SERVER["REQUEST_METHOD"] == "POST") { // 获取表单数据 $name = $_POST["name"]; $email = $_POST["email"]; $message = $_POST["message"]; $datetime = date("Y-m-d H:i:s"); // 处理上传的图片 $image = ""; if (isset($_FILES["image"]) && $_FILES["image"]["error"] == 0) { // 将图片保存到服务器上 $target_dir = "uploads/"; $target_file = $target_dir . basename($_FILES["image"]["name"]); move_uploaded_file($_FILES["image"]["tmp_name"], $target_file); // 将图片文件名保存到数据库中 $image = basename($_FILES["image"]["name"]); } // 插入数据到数据库中 $sql = "INSERT INTO messages (name, email, message, datetime, image) VALUES ('$name', '$email', '$message', '$datetime', '$image')"; mysqli_query($conn, $sql); } // 获取所有留言 $sql = "SELECT * FROM messages ORDER BY datetime DESC"; $result = mysqli_query($conn, $sql); // 显示留言列表 while ($row = mysqli_fetch_assoc($result)) { echo "<div>"; echo "<h3>" . $row["name"] . "</h3>"; echo "<p>" . $row["message"] . "</p>"; if ($row["image"] != "") { echo "<img src='uploads/" . $row["image"] . "' />"; } echo "<p>" . $row["datetime"] . "</p>"; echo "</div>"; } ?> <!-- 显示留言板表单 --> <form method="post" enctype="multipart/form-data"> <label>Name:</label> <input type="text" name="name" required /><br /> <label>Email:</label> <input type="email" name="email" required /><br /> <label>Message:</label> <textarea name="message" required></textarea><br /> <label>Image:</label> <input type="file" name="image" /><br /> <button type="submit">Submit</button> </form> ``` 需要注意的是,上述代码中的数据库连接信息和文件上传目录需要根据实际情况进行修改。此外,在处理表单数据时需要进行安全过滤,以防止 SQL 注入和文件上传漏洞。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值