【问题标题】:creating a url with variables使用变量创建 url
【发布时间】:2013-02-04 14:01:15
【问题描述】:

我有一个登录页面,用户可以在其中输入他的电子邮件和密码。然后将其传递到另一个页面(成功),在那里它们将有不同的选项。

我需要做的是从之前的页面(登录)获取电子邮件地址,我可以这样做,但我想将其添加到如下所示的 url。

第一部分工作正常(membersgoods.php?email= 但我无法获得电子邮件地址,我只获得文本 $email。

$email = $_POST['email']
echo '<a href="membersgoods.php?email=$email">    Click here to see your purchased goods</a>';

谁能帮忙?

【问题讨论】:

  • 这可能是糟糕的架构。如果用户已登录,为什么 URL 中需要他们的电子邮件地址? URL 中的电子邮件是否足以访问用户的私人数据?那将是一个巨大的安全漏洞。
  • 谢谢 Pekka - 你说得对,我需要查看 Sessions id。

标签: php html url post get


【解决方案1】:

它只适用于双引号:

echo "<a href=\"membersgoods.php?email=$email\">Click here to see your purchased goods</a>";

说明

如果字符串用双引号 (") 括起来,PHP 将为特殊字符解释更多的转义序列:

\n  linefeed (LF or 0x0A (10) in ASCII)
\r  carriage return (CR or 0x0D (13) in ASCII)
\t  horizontal tab (HT or 0x09 (9) in ASCII)
\v  vertical tab (VT or 0x0B (11) in ASCII) (since PHP 5.2.5)
\e  escape (ESC or 0x1B (27) in ASCII) (since PHP 5.4.0)
\f  form feed (FF or 0x0C (12) in ASCII) (since PHP 5.2.5)
\\  backslash
\$  dollar sign
\"  double-quote
  • 双引号字符串最重要的特点是变量名会被扩展。
  • 当一个字符串用双引号或heredoc指定时,变量在其中被解析

【讨论】:

    【解决方案2】:

    你不能在'中使用变量,但你可以在"中使用它

    echo "<a href=\"membersgoods.php?email=$email\">    Click here to see your purchased goods</a>";
    

    echo '<a href="membersgoods.php?email='.$email.'">    Click here to see your purchased goods</a>';
    

    【讨论】:

    • 谢谢博扬,这对我很有用,但看看 Pekka 点,我想我需要在会议上做更多的事情。
    【解决方案3】:

    你把你的字符串放在单引号里..

    echo '<a href="membersgoods.php?email='.$email.'"> Click here to see your purchased goods</a>';

    【讨论】:

      【解决方案4】:

      试试这样的:

      <?php
         $query_string = 'mail=' . $_POST['email'];
         echo '<a href="mySite.php?' . htmlentities($query_string) . '">click</a>';
      ?>
      

      希望这会有所帮助。

      \似乎我迟到了 :)

      【讨论】:

        【解决方案5】:

        我认为您合并了表单的两种方法:get 和 post。

        如果您使用“获取”,所有属性都将写入 URL,您可以按 $_GET(或 $_REQUEST)访问。

        如果您不使用“post”,那么操作将写入 url,您可以通过 $_POST(或 $_REQUEST)访问属性。

        使用&lt;form action="index.php" method="post"&gt;...&lt;/form&gt; 可以正常工作。

        【讨论】:

          【解决方案6】:

          字符串周围有单引号,防止变量扩展。

          试试

          echo '<a href="membersgoods.php?email='. $email .'">    Click here to see your purchased goods</a>' ;
          

          延伸阅读:stackoverflow.com Question 14688343

          【讨论】:

            猜你喜欢
            • 2018-01-23
            • 2012-04-19
            • 1970-01-01
            • 2013-04-17
            • 1970-01-01
            • 2015-02-14
            • 1970-01-01
            • 2013-10-10
            • 1970-01-01
            相关资源
            最近更新 更多