未定义的变量

时间:2013-02-08 06:00:12

标签: php

我一直在第52,53,54,55行获取Undefined变量,并且不知道如何修复它。任何帮助将不胜感激。

<table>
            <form name="emailMe" id="emailMe" action="contactMe.php" method="post">

                <tr><th><p>First Name </p></th> <td><p><input type="text" name="firstName" maxlength="10"value="<?php print($fName); ?>" /></p></td></tr>
                <tr><th><p>Last Name </p></th> <td><p><input type="text" name="lastName" maxlength="25"value="<?php print($lName); ?>" /></p></td></tr>
                <tr><th><p>Email </p></th> <td><p><input type="text" name="email" maxlength="50"value="<?php print($email); ?>" /></p></td></tr>
                <tr><th><p>Message </p></th> <td><p><input type="text" name="message" maxlength="250"value="<?php print($message); ?>" /></p></td></tr>
        </table>

                <p><input type="submit" name="submit" value="Submit" />
                <input type="reset" value="Clear Form" /></p>
            </form>

        <?php 

            if(isset($_POST["submit"])){

            $errorCount = 0;
            $fName      = $_POST['firstName'];
            $lName      = $_POST['lastName'];
            $email      = $_POST['email'];
            $message    = $_POST['message'];

5 个答案:

答案 0 :(得分:3)

<?php print($fName); ?>
<?php print($lName); ?> 
<?php print($email); ?> 
<?php print($message);?>

HTML代码中的所有此类变量在使用之前尚未声明。这导致了错误。在打印之前,这些变量都没有被初始化。您可以在HTML之前放置PHP代码来初始化它们。像这个例子

if(isset($_POST["submit"]))
{
 $fName = $_POST['firstName'];
}
else
{
 $fName = "";
}

修改

喜欢这个

<?php 

        if(isset($_POST["submit"])){
        $errorCount = 0;
        $fName      = $_POST['firstName'];
        $lName      = $_POST['lastName'];
        $email      = $_POST['email'];
        $message    = $_POST['message'];
        }
        else
        {
        $fName      = "";
        $lName      = "";
        $email      = "";
        $message    = "";
        }
?>

这需要超越你的HTML

答案 1 :(得分:0)

嘿声明<table>内的<form>标记 像这样:

 <form name="emailMe" id="emailMe" action="contactMe.php" method="post">
<table>
                <tr><th><p>First Name </p></th> <td><p><input type="text" name="firstName" maxlength="10"value="<?php print($fName); ?>" /></p></td></tr>
                <tr><th><p>Last Name </p></th> <td><p><input type="text" name="lastName" maxlength="25"value="<?php print($lName); ?>" /></p></td></tr>
                <tr><th><p>Email </p></th> <td><p><input type="text" name="email" maxlength="50"value="<?php print($email); ?>" /></p></td></tr>
                <tr><th><p>Message </p></th> <td><p><input type="text" name="message" maxlength="250"value="<?php print($message); ?>" /></p></td></tr>
        </table>

                <p><input type="submit" name="submit" value="Submit" />
                <input type="reset" value="Clear Form" /></p>
            </form>

答案 2 :(得分:0)

在声明变量之前使用变量。改变如下。

    <?php 

                if(isset($_POST["submit"])){

                $errorCount = 0;
                $fName      = $_POST['firstName'];
                $lName      = $_POST['lastName'];
                $email      = $_POST['email'];
                $message    = $_POST['message'];

    ?>
<form name="emailMe" id="emailMe" action="contactMe.php" method="post">
    <table>
            <tr><th><p>First Name </p></th> <td><p><input type="text" name="firstName" maxlength="10"value="<?php print($fName); ?>" /></p></td></tr>
                    <tr><th><p>Last Name </p></th> <td><p><input type="text" name="lastName" maxlength="25"value="<?php print($lName); ?>" /></p></td></tr>
                    <tr><th><p>Email </p></th> <td><p><input type="text" name="email" maxlength="50"value="<?php print($email); ?>" /></p></td></tr>
                    <tr><th><p>Message </p></th> <td><p><input type="text" name="message" maxlength="250"value="<?php print($message); ?>" /></p></td></tr>
            </table>
            <p><input type="submit" name="submit" value="Submit" />
            <input type="reset" value="Clear Form" /></p>
</form>

注意:我可以看到您在表单中查看$_POST["submit"],如果它与您在HTML代码中使用的提交相同,即使将其更改为我的代码,您也会收到错误消息。

因为在这种情况下,您使用的是未定义的变量,因为最初未提交表单。

答案 3 :(得分:0)

请从当前位置删除以下行,并将这些行放在表格标记之前。

        if(isset($_POST["submit"])){

        $errorCount = 0;
        $fName      = $_POST['firstName'];
        $lName      = $_POST['lastName'];
        $email      = $_POST['email'];
        $message    = $_POST['message'];

答案 4 :(得分:0)

按照以下简单步骤:
从此更改:
<tr><th><p>First Name </p></th> <td><p><input type="text" name="firstName" maxlength="10" value="<?php print($fName); ?>" /></p></td></tr>

对此:
<tr><th><p>First Name </p></th> <td><p><input type="text" name="firstName" maxlength="10" value="<?php if(isset($fname)) print($fName); ?>" /></p></td></tr>

在所有剩余步骤中重复这样的步骤&amp;你很高兴。