【发布时间】:2014-08-08 15:00:12
【问题描述】:
我正在做一个时事通讯系统,用户在我的输入文本中输入他的邮件,然后单击提交以订阅时事通讯。
点击提交后,他会收到一封电子邮件,说要确认他的订阅,他需要点击我在这封电子邮件中提供的链接。
这是链接:
<p>To confirm your subscription click on link below:</p>
<a href="http://localhost/website/newsletter/confirm?email='.$email.'&code='.$code.'">Confirm Subscription</a>
此链接将重定向到我的时事通讯确认页面,我将在其中收到电子邮件和代码,然后我将在我的订阅者表上进行更新。
$email = $_GET['email'];
$code= $_GET['code'];
$pdo = start();
$updSub = $pdo->prepare("UPDATE subscribers set status= ? WHERE code = ?");
$updSub->bindParam(2,$code);
$updSub->execute();
但我有这两个通知:
注意:未定义索引:F:\Xampp\htdocs\website\newsletter\confirm.php 中的电子邮件
注意:未定义索引:F:\Xampp\htdocs\website\newsletter\confirm.php 中的代码
您知道为什么会发生这种情况吗?我使用的是 .htaccess 文件,不知道是不是因为这个,在 url 中传递变量代码和电子邮件时出现了一些问题。
这是我的 htaccess 文件:
RewriteEngine On
RewriteCond %{SCRIPT_FILENAME} !-f
RewriteCond %{SCRIPT_FILENAME} !-d
RewriteRule ^(.*)$ index.php?url=$1
我的查询字符串:
@$url = $_GET['url'];
$url = explode('/', $url);
$url[0] = ($url[0] == NULL ? 'index' : $url[0]);
if(file_exists('template/'.$url[0].'.php')){
require_once('template/'.$url[0].'.php');
}elseif(@file_exists('template/'.$url[0].'/'.$url[1].'.php')){
require_once('template/'.$url[0].'/'.$url[1].'.php');
}
else{
require_once('template/404.php');
}
【问题讨论】:
-
请在您的 htaccess 中显示规则(mod-rewrite)
-
我用我的 htaccess 文件更新了我的问题!
-
您可以像这样修复未定义的索引:
$email = isset($_GET['email']) ? $_GET['email'] : '';和$code= isset($_GET['code']) ? $_GET['code'] : ''; -
谢谢。我知道。但是我在一段代码中有这两个未定义的索引,它们应该已经存在。
-
这个问题被错误地标记为重复。这与经典的未定义索引无关