PHP と CGI を使用して Web サイトのコメントやいいねシステムを実装する方法

WBOY
リリース: 2023-07-22 16:54:01
オリジナル
848 人が閲覧しました

PHP と CGI を使用して Web サイトのコメントおよび「いいね!」システムを実装する方法

ソーシャルメディアの急速な発展に伴い、Web サイト上のコメントおよび「いいね!」システムは不可欠な機能になりました。この記事では、PHP と CGI (Common Gateway Interface) を使用して Web サイトのコメントやいいね! のシステムを実装する方法を紹介し、関連するコード例を添付します。

  1. データベース設計

まず、コメントや「いいね!」に関連するデータを保存するデータベースを設計する必要があります。 「コメント」と「いいね!」の 2 つのテーブルを作成できます。 comments テーブルには、id (コメント ID、自動インクリメントされる主キー)、name (コメント投稿者の名前)、email (コメント投稿者の電子メール アドレス)、content (コメントの内容)、created_at (コメントの作成時間) のフィールドが含まれ、likes テーブルには次のフィールドが含まれます。 id (ポイントのような ID、自動インクリメントされる主キー)、comment_id (コメント ID、外部キー、コメント テーブルに関連付けられた ID フィールド)、ip_address (ユーザーの IP アドレス)、および created_at (作成時間など)。

次の SQL ステートメントを使用して、これら 2 つのテーブルを作成します。

CREATE TABLE comments (
  id INT AUTO_INCREMENT PRIMARY KEY,
  name VARCHAR(255) NOT NULL,
  email VARCHAR(255) NOT NULL,
  content TEXT NOT NULL,
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE likes (
  id INT AUTO_INCREMENT PRIMARY KEY,
  comment_id INT NOT NULL,
  ip_address VARCHAR(255) NOT NULL,
  created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
  FOREIGN KEY (comment_id) REFERENCES comments(id)
);
ログイン後にコピー
  1. コメントといいねを表示

Web サイトのページ関数にコメントといいねを表示します。 PHP を使用してデータベースにクエリを実行し、結果からコメントやいいねの数を取得できます。

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");

// 查询评论数据
$query = "SELECT * FROM comments";
$result = mysqli_query($conn, $query);
$comments = mysqli_fetch_all($result, MYSQLI_ASSOC);

// 查询点赞数量
$query = "SELECT comment_id, COUNT(*) as likes_count FROM likes GROUP BY comment_id";
$result = mysqli_query($conn, $query);
$likes = mysqli_fetch_all($result, MYSQLI_ASSOC);

// 输出评论和点赞信息
foreach ($comments as $comment) {
  echo "评论者:" . $comment['name'] . "<br>";
  echo "评论时间:" . $comment['created_at'] . "<br>";
  echo "评论内容:" . $comment['content'] . "<br>";

  // 查找对应评论的点赞数量
  $likes_count = 0;
  foreach ($likes as $like) {
    if ($like['comment_id'] == $comment['id']) {
      $likes_count = $like['likes_count'];
      break;
    }
  }

  echo "点赞数量:" . $likes_count . "<br><br>";
}

// 关闭数据库连接
mysqli_close($conn);
?>
ログイン後にコピー
  1. コメントといいねの追加

コメントといいねの機能を実装するには、HTML フォームと PHP スクリプトを使用して、ユーザーのコメントといいねのリクエストを受け取り、データベースにデータを挿入します。以下は HTML フォームの例です:

<form method="POST" action="submit.php">
  <input type="text" name="name" placeholder="姓名">
  <input type="email" name="email" placeholder="邮箱">
  <textarea name="content" placeholder="评论内容"></textarea>
  <input type="submit" value="提交评论">
</form>
ログイン後にコピー

次に、「submit.php」という名前の PHP スクリプトを作成して、コメントの送信リクエストを処理します:

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");

// 接收表单数据
$name = $_POST['name'];
$email = $_POST['email'];
$content = $_POST['content'];

// 插入评论数据
$query = "INSERT INTO comments (name, email, content) VALUES ('$name', '$email', '$content')";
mysqli_query($conn, $query);

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

// 重定向到原页面
header("Location: index.php");
exit();
?>
ログイン後にコピー
  1. 処理ポイントLike Request

like リクエストを処理するには、「like.php」という PHP スクリプトを作成し、対応する like ボタンにリンクします。

<?php
// 连接数据库
$conn = mysqli_connect("localhost", "username", "password", "database");

// 获取用户IP地址
$ip_address = $_SERVER['REMOTE_ADDR'];

// 获取评论ID
$comment_id = $_GET['comment_id'];

// 插入点赞数据
$query = "INSERT INTO likes (comment_id, ip_address) VALUES ($comment_id, '$ip_address')";
mysqli_query($conn, $query);

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

// 重定向到原页面
header("Location: index.php");
exit();
?>
ログイン後にコピー

コメントといいねボタンの HTML コードで、like.php にリンクし、対応するコメント ID を渡します:

<a href="like.php?comment_id=<?php echo $comment['id']; ?>">点赞</a>
ログイン後にコピー

上記の 4 つの手順で、PHP と CGI を使用できるようになります。ウェブサイトのコメントおよびいいねシステムを実装します。ユーザーはフォームを通じてコメントを送信したり、コメントに「いいね!」をしたりできます。コメントや「いいね!」のデータはデータベースに保存され、Webサイトのページに表示できます。上記のサンプル コードを使用して、ニーズに応じて変更および拡張できます。

以上がPHP と CGI を使用して Web サイトのコメントやいいねシステムを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート