php 8.3 通过服务端脚本生成 html 并配合 ajax 实现点赞功能:1. index.php 渲染初始 html 与点赞数;2. like.js 用 fetch 提交点赞请求;3. like.php 用 pdo 安全写入 mysql;4. 数据库建表防重复点赞。

PHP 8.3 本身不直接“调用 HTML”,而是通过服务端脚本生成或嵌入 HTML 内容;点赞功能需结合前端交互(如 AJAX)、后端逻辑(PHP 处理请求)和数据存储(如 MySQL)。下面以轻量、实用方式说明如何实现一个基础但可运行的点赞功能。
1. 基础结构:HTML 页面 + PHP 渲染
在 index.php 中混合输出 HTML,并用 PHP 显示当前点赞数(假设从数据库读取):
<?php // 模拟从数据库获取点赞数(实际应使用 PDO/MySQLi) $like_count = 42; // 可替换为 query 结果 ?><title>点赞示例</title><p>这篇文章已有 <span id="like-count">= $like_count ?></span> 人点赞</p> <button id="like-btn">? 点赞</button> <script src="like.js"></script>
2. 前端交互:用 JavaScript 发送点赞请求
新建 like.js,用 fetch 向 PHP 接口提交点赞动作:
document.getElementById('like-btn').addEventListener('click', async () => {
try {
const res = await fetch('like.php', { method: 'POST' });
const data = await res.json();
if (data.success) {
const countEl = document.getElementById('like-count');
countEl.textContent = parseInt(countEl.textContent) + 1;
alert('点赞成功!');
}
} catch (e) {
alert('网络错误,请重试');
}
});
3. 后端处理:PHP 8.3 接收并保存点赞
创建 like.php,使用 PDO 安全写入数据库(推荐):
<?php header('Content-Type: application/json; charset=utf-8');
// 数据库配置(请按实际修改)
$host = 'localhost';
$dbname = 'myapp';
$user = 'root';
$pass = '';
try {
$pdo = new PDO("mysql:host=$host;dbname=$dbname;charset=utf8mb4", $user, $pass, [
PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
]);
// 简单防重复(示例:用 session 或 IP+文章ID 判断,生产环境需更严谨)
session_start();
$article_id = 1; // 实际中应从 URL 或 POST 传入
$ip = $_SERVER['REMOTE_ADDR'];
// 检查是否已点过(假设表名为 likes,含 article_id 和 ip 字段)
$stmt = $pdo->prepare("SELECT 1 FROM likes WHERE article_id = ? AND ip = ?");
$stmt->execute([$article_id, $ip]);
if ($stmt->fetch()) {
echo json_encode(['success' => false, 'message' => '您已点过赞']);
exit;
}
// 插入新点赞记录
$stmt = $pdo->prepare("INSERT INTO likes (article_id, ip, created_at) VALUES (?, ?, NOW())");
$stmt->execute([$article_id, $ip]);
echo json_encode(['success' => true]);
} catch (PDOException $e) {
http_response_code(500);
echo json_encode(['success' => false, 'error' => '数据库错误']);
}
4. 数据库准备(MySQL 示例)
执行以下 SQL 创建点赞记录表:
CREATE TABLE likes ( id INT PRIMARY KEY AUTO_INCREMENT, article_id INT NOT NULL, ip VARCHAR(45) NOT NULL, created_at DATETIME DEFAULT CURRENT_TIMESTAMP, UNIQUE KEY unique_like (article_id, ip) );
注意:生产环境务必校验用户身份(如登录态)、限制请求频率、使用 CSRF Token,并避免仅靠 IP 防重(NAT 下不准)。
php免费学习视频:立即使用
踏上前端学习之旅,开启通往精通之路!从前端基础到项目实战,循序渐进,一步一个脚印,迈向巅峰!











