这能做到吗?
我创建了一个执行giveReaction功能的表单。有人能告诉我我做错了什么吗?
这是我迄今为止的代码:
function giveReaction (){
global $firstname;
if ( empty($firstname) ) {
$firstname = 'fill in your name, and get a response.';
echo "$firstname";
}
else {
$firstname = $_GET['firstname'];
echo "hello, $firstname";
}
}
echo "<form action='"index.php?func_name=giveReaction()'" method='"GET'">
<input type='"text'" name='"firstname'">
<input type='"submit'" value='"send'">
</form>";
giveReaction();
您的代码有两个直接的问题:
- 在检查
$firstname
为空之前,您永远不会定义它 - 表单中的操作没有任何作用,因为您从未处理过
func_name
——这不是该语言的内置功能
要开始修复代码,您需要在提交表单时正确处理firstname
输入,例如:
$firstname = isset($_GET['firstname']) ? $_GET['firstname'] : '';
这样可以确保$firstname
将是提交的值,如果还没有提供,则为空字符串。
因此,您可以定义您的函数如下:
function giveReaction (){
$firstname = isset($_GET['firstname']) ? $_GET['firstname'] : '';
if ( empty($firstname) ) {
echo 'fill in your name, and get a response.';
} else {
echo "hello, $firstname";
}
}
其次,调整表单以删除不必要的操作,因为默认情况下表单将提交到当前页面,并且不使用func_name
参数。
echo "<form method='"GET'">
<input type='"text'" name='"firstname'">
<input type='"submit'" value='"send'">
</form>";
然后,您可以通过调用函数来完成所需的操作。
giveReaction();
您的函数可以简单地为:
function giveReaction() {
$firstname = $_GET['firstname'];
echo $firstname ? "hello, $firstname" : 'fill in your name, and get a response.';
}
无需将其添加到表单中。