【问题标题】:How to get parameter from URL using javascript如何使用javascript从URL获取参数
【发布时间】:2020-10-07 03:34:24
【问题描述】:

我使用 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'];

有谁知道为什么这会给我带来麻烦? 提前致谢

【问题讨论】:

  • 你应该放 PHP 代码来解决你的问题,而不是 javascript 的。错误是数组用户名中没有索引5。
  • 我在 ChangeInfo 页面中的 php 代码是:$username = $_GET['username'];我想从我在 javascript 部分创建的 URL 中获取用户名参数的值
  • 这能回答你的问题吗? How to get the value from the GET parameters?

标签: javascript php url


【解决方案1】:

我只是解决问题

我从我在 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> 

谢谢你:)

【讨论】:

    【解决方案2】:

    忽略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
    }
    

    最后的想法。你的第一个参数 page=http://192.168.206.1/test/ChangeInfo.php 工作吗?你能通过 $_GET 得到它吗?

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

    $request->get('username');
    

    【讨论】:

    • 我认为你还没有完全理解 OPs 的问题。他们的问题是他们没有收到$_GET['username']的值
    • no 页面参数的 $_GET 也不起作用。也许问题是我在 javascript 部分中创建 URL 的方式?
    猜你喜欢
    • 1970-01-01
    • 2012-01-17
    • 2011-05-26
    • 2018-09-02
    • 1970-01-01
    • 2012-07-19
    • 1970-01-01
    • 2021-09-03
    • 2014-07-16
    相关资源
    最近更新 更多