我在做一个基本的恢复密码系统。然后我点击我的提交按钮“sendRecover”,我将向用户发送一封电子邮件。但我有一个表单,我想在输入名称=“电子邮件”中显示用户的电子邮件,所以我有`“/>但我不明白为什么我收到此错误: 未定义变量:恢复
<?php
if(isset($_POST['sendRecover']))
{
$recover = mysql_real_escape_string($_POST['email']);
if(valMail($recover))
{
$readRec = read('admins',"WHERE email = '$recover'");
if(!$readRec)
{
echo '<span class="ms no">Erro: Wrong Email!</span>';
}
else
{
foreach($readRec as $rec);
$msg = 'test';
sendMail('Recover data!',$msg,MAILUSER,SITENAME,$rec['email']);
echo 'Sucess, your information was sent to:
<strong>'.$rec['email'].'</strong>';
}
}
else
{
echo 'Email wrong!';
}
}
?>
<form name="recover" action="" method="post">
<label>
<span>Email:</span>
**<!-- ERROR: Undefined variable: recover -->**
<input type="text" class="radius" name="email" value="<?php if($recover) echo $recover;?>" />
</label>
<input type="submit" value="Recover" name="sendRecover" class="btn" />
<a href="index.php" class="link" title="Back">Back</a>
</form>
<?php
}
?>
答案 0 :(得分:2)
if(isset($_POST['sendRecover'])){}
是您定义$recover
的地方。如果条件为假,则该变量不存在
一种解决方案是检查是否设置了$ recover变量
试试这个 -
... value="<?php echo (isset($recover))?$recover:'';?>" />
答案 1 :(得分:2)
我们看到$ recover被分配的唯一时间是成功输入IF语句。
无论{}放置如何调用表单,如果$ recover从未被初始化并且你正在调用它 - 它会给你一个错误
表格建议:
代替if($recover)
执行if(isset($recover))
而不是