完整的电子邮件ID传递到网址

时间:2013-12-12 21:22:34

标签: php forms email

我是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>

这也没有给我所需的结果。我预先定义了电子邮件价值。

2 个答案:

答案 0 :(得分:2)

对网址进行编码,这就是@成为%40的原因,它来自于从表单发送数据的方式/如果您使用get method,这就是如何将其格式化为网址。 但不要担心,你在php中获得的是正确的并且已经解码。

答案 1 :(得分:1)

您只是看到某些字符编码为URL安全(如@)。

当您检查数据服务器端时,它将看起来像表单上的原始数据。您无需解码任何内容,PHP会自动为您完成。

来自the docs

  

superglobals $ _GET和$ _REQUEST已被解码。

尝试使用PHP中的echo $_GET['email'],然后再次看到xyz@abc.com