我完全傻眼了,我似乎无法找到解决方案。您是否应该做一些额外的事情来创建一个简单的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>
正手谢谢!祝你们过得愉快。
答案 0 :(得分:1)
首先,空间根本不重要。
“未定义索引”表示您最有可能将输入字段留空。在这种情况下,它不会被浏览器发送,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用于表单数据。这实际上就是它的意思。
答案 1 :(得分:0)
我会发帖而不是Get。 (我不会在生产中使用get,因为表单的所有信息都在URL中)
但是,因为看起来你正在做测试,我会想到以下几点。 1)在你同时拥有表单和get.php
的根文件夹中我会通过打开一个网址来测试获取PHP脚本:
实施例。 http://localhost/get.php?name=TESTNAME&age=xx
在php中我会有以下代码<?php
$name = $_GET['name'];
$age = $_GET ['age'];
echo "Hello $name. Congratulations on being $age years old!";
?>
这应该输出一些东西。让我知道它是否有效
答案 2 :(得分:-1)
仅测试所有1个文件,如下所示: 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
}
?>
像这样,您可以将此代码粘贴到您喜欢的任何地方,并且无需修改即可使用...
答案 3 :(得分:-2)
这是get.php
的正确形式:
<?php
$name = $_GET['name'];
$age = $_GET ['age'];
echo "Hello ".$name." Congratulations on being ".$age." years old!";
?>