无法使我的php表单工作


Cant get my php form to work

我完全惊呆了,似乎找不到解决方案。您是否应该做一些额外的事情来创建一个简单的php表单?

php代码:

<?php
$name = $_GET['name'];
$age = $_GET['age'];
echo "Hello $name. Congratulations on being $age years old!";
?>

表单html:

    <form action="get.php" method="get">
        <p>What's your name?</br><input type="text" name="name"></p>
        <p>How old are you?</br><input type="text" name="age"></p>
        <p><input type="submit" value="Skicka"></p>
    </form>

正手谢谢!祝你们今天愉快。

首先,空间根本不重要。

"未定义索引"意味着您很可能将输入字段留空。在这种情况下,浏览器不会发送它,PHP会发出通知,说您正在访问一个未初始化的变量

如果两个代码段都在同一页上,那么"未定义索引"将始终在第一页加载时抛出,因为没有提交的数据,也没有填充的$_GET数组。

正确的方法是检查是否有提交的数据,例如:

<?php
if (isset($_GET['name']) || isset($_GET['age'])) {
    // ...
}
?>

此外,在尝试获取每个索引的值之前,最好先检查其是否存在,例如:

<?php
// check variables with isset() before accessing them
$name = isset($_GET['name']) ? $_GET['name'] : '';
$age  = isset($_GET['age'])  ? $_GET['age']  : '';
?>

如果你不熟悉什么?:(或者如果没有设置变量,则希望有一个特殊的处理),上面的代码与此相同:

<?php
// check variables with isset() before accessing them
if (isset($_GET['name'])) {
    $name = $_GET['name'];
} else {
    $name = '';
}
if (isset($_GET['age'])) {
    $age = $_GET['age'];
} else {
    $age = '';
}
?>

最后,正如Daniel Ferrans建议的那样,我总是对表单数据使用$_POST。这就是它的真正意义。

我会使用post而不是Get。(我不会在生产中使用get,因为表单的所有信息都在URL中)

不过,因为看起来你是在做测试,所以我要对以下内容进行说明。1) 在根文件夹中,您有表单和get.php

我会通过打开一个url来测试getphp脚本:

Ex。http://localhost/get.php?name=TESTNAME&年龄=xx

在php中,我会有以下代码

<?php
$name = $_GET['name'];
$age = $_GET ['age'];
echo "Hello $name. Congratulations on being $age years old!";
?>

这应该会输出一些东西。让我知道它是否工作

只测试一个文件中的所有内容,如下所示:test.php

<?php
$name = $_GET['name'];
$age = $_GET ['age'];
echo "Hello $name. Congratulations on being $age years old!";
?>
    <form action="test.php" method="get">
        <p>What's your name?</br><input type="text" name="name"></p>
        <p>How old are you?</br><input type="text" name="age"></p>
        <p><input type="submit" value="Skicka"></p>
    </form>

它对我有用。

或者像这样更好:

<?php
if (isset($_GET['name']) && isset($_GET['age'])){
$name = $_GET['name'];
$age = $_GET ['age'];
echo "Hello $name. Congratulations on being $age years old!";
}else{
?>
    <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="get">
        <p>What's your name?</br><input type="text" name="name"></p>
        <p>How old are you?</br><input type="text" name="age"></p>
        <p><input type="submit" value="Skicka"></p>
    </form>
<?php
}
?>

像这样,你可以把这个代码粘贴到任何你喜欢的地方,它将在不修改的情况下工作。。。

这是get.php:的正确形式

<?php
$name = $_GET['name'];
$age = $_GET ['age'];
echo "Hello ".$name." Congratulations on being ".$age." years old!";
?>