php - 提交意见或建议或反馈

标签 php mysql

您好,我想安装一个评论系统,但问题是,如果用户刷新页面,它会再次保存到数据库中。我在我的其他网站上做了同样的事情,但它是针对单页的,所以我在那里使用了 header(location: index.php),所以刷新不起作用,但在这里我使用的是正在使用的 template.php 文件在 200 页中,所以我将评论表单放在 template.php 中(包含在所有页面中)。请帮我解决这个问题。我只想在用户刷新页面时不要再次保存评论。 谢谢。

经过大量阅读后,这是我使用表单 action="addcomment.php"的代码 和 addcomment.php 有以下代码

<?php
require_once("appvars.php");
require_once("connectvars.php");
$dbc = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD, DB_NAME);
if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc() === 1){
  $_POST = array_map( 'stripslashes', $_POST );
  $_GET = array_map( 'stripslashes', $_GET );
  $_COOKIE = array_map( 'stripslashes', $_COOKIE );
}
if (isset($_POST['commentsubmit']))
{
$type=mysqli_real_escape_string($dbc,trim($_POST['type']));
$name=mysqli_real_escape_string($dbc,trim($_POST['username']));
$email=mysqli_real_escape_string($dbc,trim($_POST['useremail'];))
$subject=mysqli_real_escape_string($dbc,trim($_POST['subject']));
$comment=mysqli_real_escape_string($dbc,trim($_POST['usercomment']));
$link=mysqli_real_escape_string($dbc,trim($_POST['link']));
$query = "INSERT INTO comments (`type`,`name`,`email`,`subject`,`comment`,`date`,`link`) VALUES         ('$type','$name','$email','$subject','$comment',NOW(),'$link')";
$result=mysqli_query($dbc, $query) or die('error query'); 
?>

请告诉我如何重定向到存储在变量 $link 中的链接,如果查询成功执行则发送感谢

最佳答案

通常的做法是将表单发布到 ie。 submit.php,它将保存评论并将用户返回(重定向)到放置评论的页面。刷新只会刷新页面而不是重新加载。其他解决方案使用 ajax 表单或通过表单传递唯一标识符,因此无法发布两次。

关于php - 提交意见或建议或反馈,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768024/

相关文章:

CakePHP 2.0 : Database connection "Mysql" is missing, 或无法创建

javascript - 根据两个选择选项显示 mysql 的结果数

php - 将 Unix 时间戳转换为时区?

PHP UTF-8 问题 - 如果我在 PHP 中创建一个字符串...它是 UTF-8 格式的吗?

php - 如何根据当前 url 自动生成一个随机唯一永久安全 ID,将其自动存储在数据库中并显示在 php 页面中?

mysql - 无法在 MySQL 的 INSERT 查询中使用当前迭代器值

php - MySQL 三表连接——用户和好友图片

mysql - 为什么当我 `INSERT INTO table () SELECT NULL FROM table` 时 mysql auto_increment 会跳过 ids ?

python - 迁移不会创建新表

sql - 从单列 MySQL 中的所有行中剥离 0