1

我正在尝试获取文本框的内容,如果它是某个文本,我希望它显示一条消息。我不断收到错误。

    <html>
        <head>
            <title>Name Tester</title>
        </head>
        <body>
            <h1>Name Tester!</h1><br>
            <p>Type your first and last name in the name box and see results!</p>
            <p>EX: Name: John Smith</p>
            <FORM NAME ="form1" METHOD ="post">
                Name: <input type="text" name="firstlastname" value="firstlastname"></input>
                <input type="submit" name="submit" value="Submit"></input>
            </form>
            <?PHP
            $firstlastname = $_POST['firstlastname'];
            if($firstlastname == "John Smith"){
                echo "John Smith is the most used name ever. Just letting you know.";
            }
            elseif($firstlastname == "First Last"){
                echo "That isnt much of a name, whats your REAL name?";
            }
            ?>
        </body>
    </html> 

我得到的错误localhost/index.php是:

Notice: Undefined index: firstlastname in C:\xampp\htdocs\index.php on line 15

HTML 仍然显示并且 php 仍然有效,但是我收到了这个相当烦人的错误。我想从我的网站上删除。

4

2 回答 2

0

您应该使用 if 语句将代码包装在 PHP 块中,以检查按钮是否已被按下。在您将某些内容发布到那里(通过提交表单)之前,您的帖子数组中不会有任何内容。

于 2013-10-10T22:43:40.170 回答
0

如果您尝试访问尚未设置的变量,则会收到此错误。在这种情况下,您的 $_POST 中的“firstlastname”未设置或未定义(因为在您提交表单时可能为空)。

您可以关闭 PHP 通知 (error_reporting(E_ERROR | E_WARNING | E_PARSE );) -- http://php.net/manual/en/function.error-reporting.php

或者,您还可以在尝试在 index.php 文件的第 15 行访问它之前检查是否已使用 isset($_POST['firstlastname']) 设置了“firstlastname”。

于 2013-10-10T22:33:15.017 回答