【问题标题】:How to properly extract get variables如何正确提取获取变量
【发布时间】:2011-02-03 22:59:41
【问题描述】:

我对 php 还有些陌生,想知道从 url 中提取 $_GET 变量的最佳方法。

例如,我将如何从以下内容中捕获它:

http://www.blahblahblah.com/reset_password.php?token=3072420e7e32cbcf304da791537d757342cf5957

只想从“token=etc...”获取所有内容

提前致谢

【问题讨论】:

    标签: php html url variables get


    【解决方案1】:

    一个简单的方法:

    $token = isset($_GET['token']) ? $_GET['token'] : null;
    

    如果设置了token,则将其分配给$token,否则$token 为空。

    【讨论】:

      【解决方案2】:

      $_GET 是一个数组:

      $token = $_GET['token'];
      

      所以如果你打印出来,你应该会看到查询字符串的标记部分:

      echo "'Token: $token'"; // should display 'Token: 3072420e7e32cbcf304da791537d757342cf5957';
      

      注意

      如果您尝试使用 $token 搜索 mysql 数据库,您需要先转义斜杠,以防止安全问题:

      $token = mysql_real_escape_string($_GET['token']);
      

      另外,在调用mysql_real_escape_string()之前,你首先需要有一个mysql连接。

      注意 V.2

      在您的查询字符串中,您的令牌将是从 ?token= 到 PHP 遇到查询键/对分隔符(通常是 &;)的所有内容。也就是说:

      http://www.blahblahblah.com/reset_password.php?token=3072420e7e32cbcf304da791537d757342cf5957&token2=otherstuff
      

      &token2=otherstuff 将是 $_GET['token2'] 可访问的另一个密钥,因此 $_GET['token'] 不会有问题。

      【讨论】:

      • 这就是我一直在尝试的,但它没有产生任何结果
      • 您需要发布您正在使用的代码。这就是 $_GET 数组的工作原理。
      【解决方案3】:

      所以你确实有一个 URL string,并且想要从中提取值:

      $url = "http://www.example.com/reset_pw.php?token=3072420e7e32cbc...";
      
      $p = parse_url($url);          // splits up the url parts
      parse_str($p["query"], $get);  // breaks up individual ?var= &vars=
      
      print $get["token"];
      

      【讨论】:

        【解决方案4】:

        解决方案 1:

        $token = isset($_GET['token']) ? $_GET['token'] : null;
        

        这里如果没有设置变量,返回null

        解决方案 2:

        $token = $_GET['token'];
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2019-07-23
          • 1970-01-01
          • 1970-01-01
          • 2018-12-25
          • 1970-01-01
          • 1970-01-01
          • 2021-10-12
          • 2014-09-26
          相关资源
          最近更新 更多