表格不';不要向php提交数据
我在mac上设置了一个本地服务器目录,如下所示: 我试着做一个简单的测试,如下所示: 而process.php不会显示姓名或年龄,它们只是空的:表格不';不要向php提交数据,php,html,forms,macos,Php,Html,Forms,Macos,我在mac上设置了一个本地服务器目录,如下所示: 我试着做一个简单的测试,如下所示: 而process.php不会显示姓名或年龄,它们只是空的: Your name is You are years old In 25 years you will be 25 years old 我的设置有什么问题 附言。 1.我的输出与http://localhost/process.php?Name=Bill&Age=35 2.下面是我为设置表单示例所做的操作: [14:46:00]~/Sites/Te
Your name is
You are years old
In 25 years you will be 25 years old
我的设置有什么问题
附言。
1.我的输出与http://localhost/process.php?Name=Bill&Age=35
2.下面是我为设置表单示例所做的操作:
[14:46:00]~/Sites/Tests$ cat > form2.html
<html>
<head>
<title>Test Page</title>
</head>
<body>
<h2>Data Collection</h2><p>
<form action="process.php" method="post">
<table>
<tr>
<td>Name:</td>
<td><input type="text" name="Name"/></td>
</tr>
<tr>
<td>Age:</td>
<td><input type="text" name="Age"/></td>
</tr>
<tr>
<td colspan="2" align="center">
<input type="submit"/>
</td>
</tr>
</table>
</form>
</body>
</html>[14:52:32]~/Sites/Tests$ cat > process.php
<?php
print "Your name is ". $Name;
print "<br />";
print "You are ". $Age . " years old";
print "<br />"; $old = 25 + $Age;
print "In 25 years you will be " . $old . " years old";
[14:46:00]~/Sites/Tests$cat>form2.html
测试页
数据收集
姓名:
年龄:
[14:52:32]~/Sites/Tests$cat>process.php
在process.php中,将$Name
替换为$\u请求['Name']
,$Age
替换为$\u请求['Age']
PHP脚本运行时未定义变量$Name和$Age。您需要初始化它们
传递给PHP脚本的参数可以通过超级全局数组访问。此数组包含使用参数名称作为键的每个参数的值。向脚本传递参数的常用方法是通过POST或GET。$\u REQUEST super-global对这两种方法都有效(不同于和,它们是类似的超全局数组,但它们只对其中一种有效)
如果您想保留原始代码,还可以使用以下方法初始化变量
$Name = $_REQUEST['Name'];
请确保在使用$Name之前放置此行。在process.php中,将$Name
替换为$\u请求['Name']
,将$Age
替换为$\u请求['Age']
PHP脚本运行时未定义变量$Name和$Age。您需要初始化它们
传递给PHP脚本的参数可以通过超级全局数组访问。此数组包含使用参数名称作为键的每个参数的值。向脚本传递参数的常用方法是通过POST或GET。$\u REQUEST super-global对这两种方法都有效(不同于和,它们是类似的超全局数组,但它们只对其中一种有效)
如果您想保留原始代码,还可以使用以下方法初始化变量
$Name = $_REQUEST['Name'];
请确保在使用$Name之前放置这一行。很久以前,这是大多数PHP用户认为PHP工作的常见方式
来自请求的参数被自动注册为同名变量
从文章中可以看出,这似乎是一个错误的决定,团队决定反对并最近删除此功能
因此,请求变量不会自动转换为同名变量。您应该指定输入的预期来源。例如,发布、获取或COOKIE
虽然@talkol可能是正确的,您可以在POST和GET中使用$\u REQUEST
,但很少有好的理由这样做
在大多数情况下,您需要期望它们来自您希望用户从中传递的请求方法。在您的情况下,在其指定的POST形式中,因此您只希望它们作为POST变量
为了访问它们,您需要使用$\u POST superglobal数组。例如,$\u POST['Name']
所有关于超全局的信息都可以在PHP官方文档中找到:很久以前,这是大多数PHP用户认为PHP工作的常见方式
来自请求的参数被自动注册为同名变量
从文章中可以看出,这似乎是一个错误的决定,团队决定反对并最近删除此功能
因此,请求变量不会自动转换为同名变量。您应该指定输入的预期来源。例如,发布、获取或COOKIE
虽然@talkol可能是正确的,您可以在POST和GET中使用$\u REQUEST
,但很少有好的理由这样做
在大多数情况下,您需要期望它们来自您希望用户从中传递的请求方法。在您的情况下,在其指定的POST形式中,因此您只希望它们作为POST变量
为了访问它们,您需要使用$\u POST superglobal数组。例如,$\u POST['Name']
您可以在PHP官方文档中找到有关superglobals的所有信息:您使用的是模板引擎吗?@RoyalBg,我刚刚做了这两篇文章中提到的事情。模板引擎没有任何内容。如何检查?在那篇文章中没有提到{$REQUEST\u URI}
和{$LOGIN\u USERNAME}
。你从哪里得到这些信息的?@klm123 super-globals不会神奇地转换为变量(除非register_-globals打开,但幸运的是它没有打开)。因此,您需要告诉脚本从哪个超全局数组获取值,即$\u GET['Age']
。检查php手册中的superglobals
,你是应该在这里获得投票权的人,你是花时间与OP一起解决这个问题的人,所以你应该是获得积分的人@RoyalBg我没有看到另一个人花时间,只是在旁观。所以放一个进去。你在使用模板引擎吗?@RoyalBg,我刚刚做了这两篇文章中提到的事情。模板引擎没有任何内容。如何检查?在那篇文章中没有提到{$REQUEST\u URI}
和{$LOGIN\u USERNAME}
。你从哪里得到这些信息的?@klm123 super-globals不会神奇地转换为变量(除非register_-globals打开,但幸运的是它没有打开)。因此,您需要告诉脚本从哪个超全局数组获取值,即$\u GET['Age']
。检查php手册中的superglobals
,您就是应该这样做的人