Home >Backend Development >PHP Tutorial >How to implement anonymous comments in php (with code)

How to implement anonymous comments in php (with code)

PHPz
PHPzOriginal
2023-04-04 13:58:571468browse

With the development of social networks, people increasingly prefer to participate in discussions and comments anonymously, which is one of the important reasons why many websites provide anonymous comment functions. In this article, we will introduce how to use PHP to implement anonymous comment functionality to make your website more user-friendly.

Before we begin, we need to understand an important concept - Session. Session is a technology that saves user information on the server side. When a user visits a website for the first time, the server will create a unique Session ID for him or her to identify the user. The Session ID is stored in the user's browser in the form of a cookie. The next time you visit, the browser will automatically send this ID to the server. The server will find the corresponding Session based on the ID and read or write relevant information.

Okay, now let’s start implementing the anonymous comment function!

The first step is to create a comment form

First, we need to add a comment form on the front-end page for users to enter comment content. In this form, we only need to provide the comment content, because we require users to leave comments anonymously, so users are not required to fill in other personal information.

<form method="post" action="comment.php">
  <label for="content">发表评论:</label><br>
  <textarea id="content" name="content" rows="5" cols="50"></textarea><br>
  <input type="submit" value="提交">
</form>

Here, we save the comment content into a POST variable named "content" and then submit the form to the comment.php page.

The second step is to process the comment data

When the user submits a comment, we need to process the comment content on the server side. In the comment.php page, we can first check whether the user is logged in. If so, use the logged in user's username to post the comment. Otherwise, create a random anonymous username for the comment.

session_start();
if(isset($_SESSION['username'])) {
  $username = $_SESSION['username'];
} else {
  $username = '匿名用户' . rand(1000,9999);
}

$content = $_POST['content'];
// 此处可以将评论内容保存到数据库中,并加上用户名和时间戳等信息

In this code, we use the session_start() function to open the Session, and then determine whether the user has logged in. If username information exists in the Session (that is, the user has logged in), use that username; otherwise, create a random username for the user. Here we use PHP's rand() function to generate a random number as part of the anonymous username. Finally, we use $_POST['content'] to get the comment content in the form and save it in the $content variable.

Here, we can choose to save the comment content to the database, or output it directly to the page. Here we use the "save to database" method to achieve it.

// 连接到数据库
$conn = mysqli_connect($db_host, $db_username, $db_password, $db_name);

// 插入评论数据
$sql = "INSERT INTO comments (username, content, timestamp) VALUES ('$username', '$content', NOW())";
$result = mysqli_query($conn, $sql);

// 关闭数据库连接
mysqli_close($conn);

Here, we use PHP's built-in mysqli library to connect to the database and execute SQL statements to insert comment data into the data table named "comments". Among them, the username and content columns store the user name and comment content respectively, and the timestamp column stores the current timestamp. After completing the data insertion operation, use the mysqli_close() function to close the database connection.

The third step, display the comment list

The last step, we need to display the comment list on the page so that users can see the comments of other users. In this example, we use a simple way to output the list of comments, but you can adjust it according to your needs.

// 连接到数据库
$conn = mysqli_connect($db_host, $db_username, $db_password, $db_name);

// 查询评论数据
$sql = "SELECT * FROM comments ORDER BY timestamp DESC";
$result = mysqli_query($conn, $sql);

// 遍历每个评论并输出
while ($row = mysqli_fetch_assoc($result)) {
  $username = $row['username'];
  $content = $row['content'];
  $timestamp = $row['timestamp'];
  echo "<div><span>$username</span><span>$timestamp</span><br><p>$content</p></div>";
}

// 关闭数据库连接
mysqli_close($conn);

Here, we use the SELECT statement to query all comment data from the comments table and sort it in descending order by timestamp. Then, use the mysqli_fetch_assoc() function to convert each row of data into an associative array, and iterate over and output the username, timestamp, and comment content of each comment. Finally, use the mysqli_close() function to close the database connection.

Summary

In this article, we introduced how to use PHP to implement the anonymous comment function, including creating a comment form, processing comment data, and displaying the comment list. Through this example, you can learn about the basic concepts of Session, PHP's built-in mysqli library and some basic database operations. Of course, this is just a simple implementation, and you can adjust and optimize it accordingly according to your needs.

The above is the detailed content of How to implement anonymous comments in php (with code). For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn