如何使用JavaScript从URL获取参数

问题描述 投票:0回答:2

我使用javascript通过URL传递了参数。这是代码:

<script> 
window.onload = function() {
// Creating a cookie after the document is ready 
    var cookies = document.cookie.split(";")
    var cookiePair = cookies[0].split("=");
    var cookie_user=cookiePair[1]; // remove ending parenthesis here 

	window.location.replace("http://192.168.206.1/foodblog/?page=http://192.168.206.1/test/ChangeInfo.php&username="+cookie_user);
};
</script> 

接收该参数的页面称为ChangeInfo这是我进入ChangeInfo页面时在URL中看到的内容:http://192.168.206.1/foodblog/?page=http://192.168.206.1/test/ChangeInfo.php&username=nitzan

[当我尝试从URL获取参数用户名时,出现此错误:注意:未定义的索引:第5行的C:\ xampp \ htdocs \ test \ ChangeInfo.php中的用户名

我试图获取此参数的方法是像这样使用$ _GET:$ username = $ _GET ['username'];

有人知道为什么这会给我带来麻烦吗?在此先感谢

javascript php url
2个回答
0
投票

忽略javascript部分,需要专注于PHP。

您在此页面上:http://192.168.206.1/foodblog/?page=http://192.168.206.1/test/ChangeInfo.php&username=nitzan

并且当您使用$ _GET ['username']时,您得到错误,它没有被分配。您的$ _GET似乎根本无法工作,可能是Apache设置。

而且,首先通过isset获取GET参数更安全。

if(isset($_GET['username']) && $_GET['username']] {
  $username = $_GET['username'];
}
else {
  $username = '';
}

然后您可以进行比较,如果您的PHP代码中是否设置了用户名:

if($username) {
  //Do something
}

最终思想。您的第一个参数页面= http://192.168.206.1/test/ChangeInfo.php是否正常工作?您可以通过$ _GET获取它吗?

问题似乎只是您通过$ _GET设置并获取url参数的方式。如果使用某些框架,则可能无法直接使用$ _GET,例如在Symfony中,您需要使用:

$request->get('username');

0
投票

我只是解决问题

我从我在JavaScript部分中创建的URL中删除了Page参数。这是更新的Javascript部分:

<script> 
window.onload = function() {
// Creating a cookie after the document is ready 
    var cookies = document.cookie.split(";")
    var cookiePair = cookies[0].split("=");
    var cookie_user=cookiePair[1]; // remove ending parenthesis here 

	window.location.replace("http://192.168.206.1/test/ChangeInfo.php?username="+cookie_user);
};
</script> 

谢谢:)

© www.soinside.com 2019 - 2024. All rights reserved.