0

我在第 52、53、54、55 行不断收到未定义的变量,但不知道如何修复它。任何帮助将不胜感激。

<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'];
4

5 回答 5

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

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

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

于 2013-02-08T06:05:49.977 回答
1

遵循这个简单的步骤:
从此更改:
<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>

在所有剩余的步骤中重复这样的操作,您就可以开始了。

于 2016-05-12T08:42:48.903 回答
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>
于 2013-02-08T06:07:49.873 回答
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"]在表单中检查 a,如果它与您在 HTML 代码中使用的提交相同,即使将其更改为我的代码,您也会收到错误消息。

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

于 2013-02-08T06:08:28.873 回答
0

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

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

        $errorCount = 0;
        $fName      = $_POST['firstName'];
        $lName      = $_POST['lastName'];
        $email      = $_POST['email'];
        $message    = $_POST['message'];
于 2013-02-08T06:10:26.063 回答