我是php的新手。我正在尝试使用html和php开发应用程序。 我将变量从表单传递给url.all代码,如下所示
<FORM METHOD="get" ACTION="action1.php">
Type your first name: <INPUT TYPE="text" NAME="FirstName"> <br/>
Type your last name: <INPUT TYPE="text" NAME="LastName"> <br/>
Type your email:<INPUT TYPE="email" NAME="email">
<INPUT TYPE="submit" VALUE="Click and See">
</FORM>
输出网址为http://example.com/action1.php?FirstName=jon&LastName=Kuri&email=xyz%40abc.com
但我希望它是http://example.com/action1.php?FirstName=jon&LastName=Kuri&email=xyz@abc.com
怎么做。
提前感谢任何建议。
更新:
<?php
$email="xyz@gmail.com";
$decode=urldecode($email);
?>
<FORM METHOD="get" ACTION="action1.php">
Type your first name: <INPUT TYPE="text" NAME="FirstName"> <br/>
Type your last name: <INPUT TYPE="text" NAME="LastName"> <br/>
Type your email:<INPUT type="hidden" NAME="email" value="<?php $decode; ?>">
<INPUT TYPE="submit" VALUE="Click and See">
</FORM>
这也没有给我所需的结果。我预先定义了电子邮件价值。
答案 0 :(得分:2)
对网址进行编码,这就是@
成为%40
的原因,它来自于从表单发送数据的方式/如果您使用get method
,这就是如何将其格式化为网址。
但不要担心,你在php中获得的是正确的并且已经解码。
答案 1 :(得分:1)
您只是看到某些字符编码为URL安全(如@
)。
当您检查数据服务器端时,它将看起来像表单上的原始数据。您无需解码任何内容,PHP会自动为您完成。
来自the docs:
superglobals $ _GET和$ _REQUEST已被解码。
尝试使用PHP中的echo $_GET['email']
,然后再次看到xyz@abc.com
。