【发布时间】:2014-07-29 20:46:06
【问题描述】:
我创建了一个邀请/推荐系统,允许用户通过输入电子邮件地址来邀请某人,电子邮件和随机邀请代码存储在“推荐”表中。然后会向该人发送一封电子邮件,其中包含他们的电子邮件和 URL 链接中唯一的 10 个字符的邀请码,例如www.website.com/register.php?email=(emailaddress)&invite_code=1234567890
- 我做了一些修改,下面的脚本现在应该被重定向到 register.php 如果没有然后回到主页。
我已经对此进行了测试,即使使用有效的 URL 链接,用户仍会被重定向到 index.php 页面。 (这也不会阻止用户手动访问 register.php)
表详细信息 = 带有 ID 的“推荐人”|网址 |点击 |电子邮件 |邀请码
我已经设法让页面重定向,但如果他们有一个实际的电子邮件邀请代码,这并不好。
这是我过去几天一直在修改以尝试开始工作的脚本:
<?php
include 'config.php';
if (isset($_GET['email'],$_GET['inviteCode'])) {
$mysqli = new Mysqli(/* your connection */);
$email = $mysqli->real_escape_string($_GET['email']);
$inviteCode = $mysqli->real_escape_string($_GET['inviteCode']);
$sql = "SELECT email,inviteCode FROM referrals WHERE email='$email' AND inviteCode='$inviteCode'";
$query = $mysqli->query($sql);
if ($query->num_rows) //check if values are correct and available in database
{
header('Location: register.php');
}
else
{
header('Location: index.php');
exit;
}
}
else
{
header('Location: index.php'); //Page not accessible if neither email nor referral entered
}
?>
这应该是直截了当的,检查“电子邮件”和“邀请代码”的 URL 与表格进行比较,如果他们已被邀请,则允许访问该页面,如果不重定向。
【问题讨论】:
-
这是
register.php上的代码吗?如果是这样,那么像register.php?email=(emailaddress)&invite_code=1234567890这样的链接如果好,将被重定向到register.php,并且由于email和invite_code不再在网址中,它们将被重定向到index.php。