为什么我收到此错误:未定义的变量恢复?

时间:2014-03-17 17:40:05

标签: php

我在做一个基本的恢复密码系统。然后我点击我的提交按钮“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
    }
    ?>

2 个答案:

答案 0 :(得分:2)

if(isset($_POST['sendRecover'])){}是您定义$recover的地方。如果条件为假,则该变量不存在 一种解决方案是检查是否设置了$ recover变量 试试这个 -

... value="<?php echo (isset($recover))?$recover:'';?>" />

答案 1 :(得分:2)

我们看到$ recover被分配的唯一时间是成功输入IF语句。

无论{}放置如何调用表单,如果$ recover从未被初始化并且你正在调用它 - 它会给你一个错误

表格建议:

代替if($recover)执行if(isset($recover))而不是