1

我是 PHP 新手......只是在我的 about.php 文件中尝试这段简单的代码(通过超链接链接到 index.php 文件):

<form action ="about.php" method="POST">
<ul>
    <li>
        <label for="name"> Enter your name please:</label>
        <input type="text" name="name"/>

    </li>   
    <li>
        <label for="comments" rows="20"> Enter your comments :</label>
        <textarea id="comments" name="comments" rows="5" cols="38">
            <?php 

                $name = $_POST["name"];

                if (!empty($name)) {
                echo "Your name is ".$name."and you like ny site!";
                } else {
                echo "Please enter your name";
                }


                ?> 
        </textarea> 
    </li>   
    <li>
        <input type="submit" />
    </li>   
</ul>   

我收到以下错误:


注意:未定义索引:第71D:\xampp\htdocs\stathis1\about\about.php中 的名称 请输入您的姓名

4

4 回答 4

1

因为$_POST["name"]未设置,所以您会收到该通知。因此,您需要先测试它是否存在,然后将其分配给您的$name变量,如果未设置则为空字符串。

你可以改变

$name = $_POST["name"];

$name = isset($_POST["name"])?$_POST["name"]:'';

于 2013-03-12T22:20:20.037 回答
1

使用 isset() 而不是 empty() 因为 isset() 函数在未定义索引时不会触发通知。

于 2013-03-12T22:21:02.767 回答
1

这是因为$_POST['name']尚未提交/设置。您需要使用 if 语句或三元运算符:

if (isset($_POST['name'])) {
    $name = $_POST['name'];

    if (!empty($name)) {
        echo 'Your name is ' . $name . ' and you like ny site!';
    } else {
        echo 'Please enter your name';
    }
}

或者,更短的方法:

$name = isset($_POST['name']) ? $_POST['name'] : '';
于 2013-03-12T22:21:57.913 回答
0

在开始你的 php 部分之后,在代码周围添加这个 if 语句,所以它只在“名称”存在时执行。

if(isset($_POST["name"]))

像这样:

<?php 
    if(isset($_POST["name"])){
        $name = $_POST["name"];

        if (!empty($name)) {
            echo "Your name is ".$name."and you like ny site!";
        } else {
            echo "Please enter your name";
        }
    } else {
        echo "Please enter your name";
    }
?> 
于 2013-03-12T22:22:01.797 回答