php - 每次我在提交表单后刷新页面时,用户都会注册
问题描述
我正在使用 PHP 进行注册过程。我设法获取提交的表单数据并将其保存到 mysql 表中,但问题是,如果我刷新页面,用户会再次注册。这是我的 PHP 代码,我已将其包含在 div 标记中以及其他内容:
<?php
if(isset($_POST["registration"])){
$con = mysqli_connect("localhost", "user", "pass", "name") or die("connection error");
if (mysqli_connect_errno()){
echo "Failed to connect to MySQL: " . mysqli_connect_error();
}
$name = $_POST["name"];
$lname = $_POST["lname"];
$email = $_POST["email"];
$pass = $_POST["pass"];
$company = $_POST["company"];
$webpage = $_POST["webpage"];
$phone = $_POST["phone"];
$country = $_POST["country"];
$city = $_POST["city"];
date_default_timezone_set('Asia/Tbilisi');
$info = getdate();
$date = $info['mday'];
$month = $info['mon'];
$year = $info['year'];
$hour = $info['hours'];
$min = $info['minutes'];
$sec = $info['seconds'];
$reg_date = $year . "-" . $month . "-" . $date . " " . $hour . ":" . $min . ":" . $sec;
$confirmed = "0";
$success = mysqli_query($con, "INSERT INTO users(firstname, lastname, email, pass, company, webpage, country, city, phone, reg_date, confirmed) VALUES('$name','$lname','$email', '$pass', '$company', '$webpage', '$country', '$city', '$phone', '$reg_date', '$confirmed')");
if($success){
echo "You have been successfully registered. Use the form above to log in.";
}
else{
echo "registration error";
}
//unset($_POST["registration"]);
}
?>
如您所见,我也尝试取消设置$_POST["registration"]
,但没有帮助。我应该怎么做才能使此代码仅在单击“注册”按钮时才起作用?
PS 我在页面开头开始会话,但没有为其分配任何数据。
解决方案
成功后将用户重定向到另一个 url
header('Location: '. $url);
die();
推荐阅读
- wolfram-mathematica - Mathematica 中的流线型
- c - 将变量的地址分配给 const 数组时,初始化元素不是 C 中的常量错误
- r - R闪亮的输入小部件
- cmake - CMAKE_C_CPPCHECK 如何忽略特殊文件或文件夹
- excel - 连接失败后的条件格式
- go - 当结构发生变化时,如何结合序列化来保持哈希计算的一致性?
- node.js - NodeJS 用一天中的不同时间和时区测试日期时间
- c - 将未更改的计算移出循环是否会提高程序的性能?
- reactjs - React JS变量和文本字段未更新
- flutter - 我可以在 Flutter 中使用自定义环境变量吗?