【问题标题】:PHP isset not picking up url passed parameterPHP isset 没有获取 url 传递的参数
【发布时间】:2015-09-10 07:46:39
【问题描述】:

我在 main.php 文件中使用以下代码:

searchpage = "index.php?k=SEARCH";
include($searchpage);

调用索引内的代码:

if(isset($k)){
    $k = $_GET['k'];   
    if ($k =="SEARCH"){
      include("searchpage.php");
    }
  }

据我了解,这应该在我调用的地方插入文件 searchpage.php 的内容

include($searchpage);

但是它只是再次加载 main.php,这意味着 k 没有设置。就 isset() 而言,传递 ?k=var 是如何工作的,为什么当我在调用页面时将 k=SEARCH 放入 url 时,isset 会将 k 读取为 null?

如果您需要更多代码来说明问题的上下文或清晰度,请告诉我,谢谢。

【问题讨论】:

    标签: php include parameter-passing isset


    【解决方案1】:

    试试这个,我认为 $k 没有设置所以 PHP 不会进入“if 子句”:

      if(isset($_GET['k'])){
            $k = $_GET['k'];   
            if ($k == "SEARCH"){
              include("searchpage.php");
            }
        }
    

    【讨论】:

    • 哇,它修复了它,除了那是用于分配的骨架代码。另一端是否有任何地方可以解决这个问题,或者给定的代码(改变了什么)本质上是错误的?
    【解决方案2】:

    main.php

    $k="search";
    include "index.php";
    

    index.php

    if ($k=="search") {
        include "searchpage.php";
    }
    

    对不起,我可能错过了你的观点,但从你的代码逻辑来看,这更简单并且工作正常。

    【讨论】:

      【解决方案3】:

      你不能使用这个$searchpage = "index.php?k=SEARCH";

      如果你想传递参数,你必须从 url 传递它,即只能从地址栏传递。

      所以在地址栏中传递参数,然后像这样包含你的 index.php

      $searchpage = "index.php";
      

      那么你的代码就可以正常工作了

      希望这会对你有所帮助。

      【讨论】:

      • 行 " $homepage = "index.php?k= "; $searchpage = "index.php?k=SEARCH";"是我得到并且必须使用的骨架代码的一部分。如果我不能使用代码并且在这个网站上找不到任何地方如何使用地址传递参数,那我就迷路了。
      • 哪两行?我想说的是,如果您当前的页面 url 是 www.somedomain.com 将其更改为 www.somedomain.com?k=SEARCH 它肯定会正常工作如果您仍然有任何问题,请在这里评论
      • 抱歉,我刚刚发现我无法在评论中开始新的一行,为了更清晰,我编辑了我的评论。
      • 你必须做它只是从你重定向的地方找到它并给它参数或使用一些jquery来做。或者你可以做一件事而不是$searchpage = "index.php?k=SEARCH",只需使用$searchpage = "index.php" ,然后在下一行使用$k=SEARCH",然后在你的index.php中检查$k而不是$_GET。
      猜你喜欢
      • 2022-12-01
      • 2015-04-18
      • 1970-01-01
      • 1970-01-01
      • 2011-09-11
      • 1970-01-01
      • 1970-01-01
      • 2020-11-20
      • 2012-01-06
      相关资源
      最近更新 更多