【发布时间】:2021-07-09 03:41:48
【问题描述】:
我正在从事与防止重复输入用户注册数据相关的公司项目任务。我希望防止它们重复的数据是电子邮件(用户无法使用相同的电子邮件注册应用程序)。检查过程中涉及两个页面(signup.php 和 insert.php)。 Signup.php 是用户在所有 6 个页面上输入信息以注册为公司用户的地方。 Insert.php 是将数据插入 sql server 的地方,我已经实现了在将数据插入 sql server 之前进行检查的代码。
//email validation
$emailvalid="SELECT Email FROM EcomLogin WHERE Email = '$_POST[email]'";
$stmt3=sqlsrv_query($conn,$emailvalid);
if($stmt3){
header("location:signup.php?status=error&message=Error when register with email!");
exit();
die(print_r(sqlsrv_errors(), true));
}
同时在 signup.php(注册表单)中。在表格的顶部,我包含一个 php 代码,如果第一页信息与数据库记录重复,则阻止网站将用户引导到第二个注册页面,在这种情况下是电子邮件。
<?php
if(isset($_GET['status']) && $_GET['status'] == 'error'){
echo '<script>toastr.error("Email has already been registered!");history.replaceState(null, "", location.href.split("&")[0]);</script>';}
?>
在头部部分,我还包含下面的 toast 功能脚本
<script src="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.min.js" integrity="sha512-VEd+nq25CkR676O+pLBnDW09R7VQX9Mdiij052gVCp5yVH3jGtH70Ho/UUv4mJDsEdTvqRCFZg0NKGiojGnUCw==" crossorigin="anonymous"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/toastr.js/latest/toastr.css" integrity="sha512-3pIirOrwegjM6erE5gPSwkUzO+3cTjpnV9lexlNZqvupR64iZBnOOTiiLPb9M36zpMScbmUNIcHUqKD47M719g==" crossorigin="anonymous" />
<script src="https://cdn.jsdelivr.net/npm/underscore@1.13.1/underscore-umd-min.js"></script>
在我输入相同的电子邮件地址进行注册后,它会将我带到注册页面的第二页,这是不允许的。如果在第一页使用重复的电子邮件并将它们阻止到注册页面的第二页,它预计会在第一页显示一条 toastr 消息。
我的编码是否有任何部分是错误的,或者我缺少任何类型的编码来执行 php 文件中的阻塞功能?如果编码正确,我是否需要创建另一个功能以防止网站将用户直接访问第二页? signup.php 将查看另一个 js 文件,该文件首先验证输入字段,然后只执行 insert.php。
【问题讨论】:
标签: php sql-server sqlsrv toastr