【问题标题】:PHP get method strangely working I don't know how solvesPHP get方法奇怪地工作我不知道如何解决
【发布时间】:2023-04-08 13:37:01
【问题描述】:

我需要 get 方法但不工作

我的代码:

<?php
    $page = $_GET['page'] ? intval($_GET['page']) : 1;
    echo "current page : ".$page."<br/>";
?>

$page's 的结果是 1。但我试试 www.example.com/test.php?page=3

$page's的结果还是输出1。

为什么会这样?

【问题讨论】:

  • 我用设置 ?page=3 尝试了这段代码,它输出 3。怎么了?

标签: php get request


【解决方案1】:

首先你应该检查是否设置了page,然后你可以访问page

试试这个:

if(isset($_GET['page'])){
    $page = $_GET['page'] ? intval($_GET['page']) : 1;
    echo "current page : ".$page."<br/>";
}

这是我得到的结果:

【讨论】:

    【解决方案2】:

    你可以只修改语句,

    $page = $_GET['page'] ? intval($_GET['page']) : 1;
    

    $page = !empty($_GET['page']) ? intval($_GET['page']) : 1;
    

    希望这会有所帮助。

    【讨论】:

      【解决方案3】:
      $page = $_GET['page'] ? intval($_GET['page']) : 1;
      

      是的缩写形式

      if($_GET['page'] !== null){ $page = intval($_GET['page']); }else{ $page = 1; }
      

      所以至少有两个错误来源。 "$_GET['page']" 可能未设置,结果为 1。如果是这种情况,也会有未知变量的错误原因。

      它可能是一个被强制转换为 1 的字符串 - 在这种情况下不会引发错误。

      根据您的需要,检查现有变量(如建议的mrustamzade)会更有意义。

      我也会检查这样的数字

      if(isset($_GET['page']) && is_numeric($_GET['page'])){
          $page = intval($_GET['page']);
      }else{ $page = 1; }
      echo "current page : ".$page."<br/>";
      

      【讨论】:

        猜你喜欢
        • 2020-10-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-14
        • 2016-04-29
        • 2012-10-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多