在PHP MySQL中将用户名传递到url
我正在用PHP开发一个网站,允许用户注册并输入一些信息,我想给每个用户一个唯一的URL。当用户登录到他的个人资料时,我只希望用户名被传递到URL(比如在PHP MySQL中将用户名传递到url,php,mysql,http,url,Php,Mysql,Http,Url,我正在用PHP开发一个网站,允许用户注册并输入一些信息,我想给每个用户一个唯一的URL。当用户登录到他的个人资料时,我只希望用户名被传递到URL(比如www.mysite.com/profile.php?user=username),以便以后重写它。但是,我使用的是$\u POST方法,我担心如果在登录时使用$\u GET,密码也会传递到URL。我该怎么办?在指向的链接或您可以添加的重定向上 <a href="profile.php?user=<?php echo $php_vari
www.mysite.com/profile.php?user=username
),以便以后重写它。但是,我使用的是$\u POST
方法,我担心如果在登录时使用$\u GET
,密码也会传递到URL。我该怎么办?在指向的链接或您可以添加的重定向上
<a href="profile.php?user=<?php echo $php_variable ?>">Link to the profile</a>
在您使用
$\u GET['user']
阅读它(在php文件中)之后,这样做应该不会有什么问题。您可以简单地使用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也不必硬编码-您可以在提交表单之前动态添加用户名。因为身份验证可能在单独的脚本中进行,例如,
login.php
,成功登录后重定向时,只需将用户名附加到配置文件URL即可
header('Location: profile.php?username='.$username);
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>
$(文档).ready(函数(){
$(“#theForm”).submit(函数(){
$(this.attr(“action”),$(this.attr(“action”)+$(“#usernameInput”).val());
返回true;
});
});
您的表单看起来像:
<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。您可以告诉您要将哪些参数传递到
$\u GET
和$\u POST
。。因此,不要将用户密码传递到$\u GET
全局变量中。