【问题标题】:Passing username to url in PHP MySQL [closed]在 PHP MySQL 中将用户名传递给 url [关闭]
【发布时间】:2013-04-25 22:30:36
【问题描述】:

我正在用 PHP 开发一个网站,允许用户注册并输入一些信息,我想给每个用户一个唯一的 URL。当用户登录到他的个人资料时,我只想将用户名传递给 URL(如www.mysite.com/profile.php?user=username)以便稍后重写。但是,我使用的是$_POST 方法,我担心我在登录时是否使用$_GET,密码也会传递到URL。我该怎么办?

【问题讨论】:

  • 您告诉$_GET$_POST 传递哪些参数。所以不要将用户密码传递给$_GET 全局变量。

标签: php mysql http url


【解决方案1】:

这样做应该没有问题。您可以简单地使用 POST 方法,该方法指向带有 GET 参数的 URL。

所以你发出POST 请求:

www.mysite.com/profile.php?user={$username}

这样就不需要在认证中使用 URL 中的用户变量了。
考虑一个简单的例子:

<form method="post" action="/profile.php?username=hasan">
  <input type="text" name="username" value="hasan" />
  <input type="text" name="password" value="********" />
</form>

您发布到的 URL 也不必进行硬编码 - 您始终可以在提交表单之前动态添加用户名。

【讨论】:

    【解决方案2】:

    在链接或重定向上你可以添加

    <a href="profile.php?user=<?php echo $php_variable ?>">Link to the profile</a>
    

    在你阅读后(在 php 文件中)$_GET['user']

    【讨论】:

      【解决方案3】:

      由于身份验证可能发生在单独的脚本中,例如login.php,只需在成功登录后重定向时将用户名附加到配置文件 URL 即可。

      header('Location: profile.php?username='.$username);
      

      【讨论】:

        【解决方案4】:

        Lix 的答案是最好的,并且是您应该做的,但假设您没有 login.php 并且出于某种奇怪的原因想要直接进入 profile.php?user 登录,你可以使用这个javascript:

        <script type="text/javascript">
            $(document).ready(function() {
                $("#theForm").submit(function() {
                    $(this).attr("action", $(this).attr("action") + $("#usernameInput").val());
                    return true;
                });
            });
        </script>
        

        你的表单看起来像这样:

        <form action="http://www.mysite.com/profile.php?user=" method="post" id="theForm">
            <input type="text" name="usernameInput" id="usernameInput">
            <input type="password" name="passwordInput" id="passwordInput">
            <input type="submit" name="submit" value="Login">
        </form>
        

        然后您的操作将在提交时更改为输入的用户名。但是,您仍然应该有一个重定向到 profile.php?user 的中介 login.php。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-05-16
          • 2013-02-26
          • 1970-01-01
          • 1970-01-01
          • 2013-03-20
          • 2015-11-11
          • 1970-01-01
          • 2016-08-25
          相关资源
          最近更新 更多