在URL中传输数据

时间:2009-08-08 14:55:33

标签: php url

如何在网址中传输ask_question之类的变量,以便根据给定的规则更改index.php的展望?

我的index.php

中有以下链接
 <a href="index.php?ask_question">Ask question</a>

然而这不起作用,因为我不知道如何引用URL中的ask_question -variable。如果我知道,我可以阅读它,然后根据URL中的名称自定义我的index.php。

我也可以创建以下链接,但这会导致我有很多重复数据,例如用于登录-form的PHP代码。

 <a href="ask_question.php">Ask question</a>

我的ask_question.php -form

 <form method="post" action="handlers/handler_question.php">
     <p>Title:
         <input name="title" type="text" cols="92" />
     </p>
     <p>Question:
         <div id="wmd-container" class="resizable-textarea">
                 <textarea id="input" class="textarea" tabindex="101" rows="15" cols="92" name="body" /></textarea>                                                                                       
         </div>
     </p>

     <p>Tags:
         <input name="tags" type="text" cols="92" />
     </p> 

     <input type="submit" value="OK" />
 </form>

6 个答案:

答案 0 :(得分:3)

if(isset($_GET['ask_question')) {
...do something...

}

更好的是,因为$ _GET超全局是一个数组:

if(array_key_exists('ask_question',$_GET)) {
    ...do something...
}

此外,手册说明了array_key_existsisset的使用:

  

对于数组,isset()不返回TRUE   对应于NULL值的键,   虽然rray_key_exists()可以。

但是,您无法传递空值,它只会在PHP中显示为空字符串,因此issetarray_key_exists在此上下文中完全相同。

读取预定义变量:

http://www.php.net/variables.predefined

查找函数issetarray_key_exists

答案 1 :(得分:1)

所有GET变量(URL中的变量)最终都在一个名为$ _GET的数组中。使用isset(),您可以检查是否在URL中传递了特定变量。

if (isset($_GET['ask_question'])) {
    // go...
}

答案 2 :(得分:1)

查询参数保存到$ _GET对象。您可以使用isset测试参数是否存在:

if(isset($_GET['ask_question'])){
}

如果您希望将变量传递为GET或POST,则可以使用$ _REQUEST超全局:

if(isset($_REQUEST['ask_question'])){
}

答案 3 :(得分:1)

您可以使用$ _GET超全局访问。

在这种情况下(因为你没有为ask_question定义一个值),你可以这样做:

if (array_key_exists('ask_question', $_GET) === true)
{
    // do stuff
}

答案 4 :(得分:1)

使用isset($_GET['NAME_IN_URL'])。这将返回truefalse,您可以使用简单的if else语句对其进行评估。

示例:

if (isset($_GET['ask_question']) {
    //Echo your form...
    }
else {
    //Echo the normal index.php
    }

另请注意,在链接到查询字符串时,您只需执行<a href="?ask_question">,这样,如果重命名该文件,它仍然有效。

答案 5 :(得分:1)

为什么不做类似

的事情
<a href="index.php?query= ask_question"/>
你的HTML代码中的

然后在index.php脚本中,您可以按照以下命令检查query是否为ask_question

if($_GET['query']=='ask_question')
   // change the layout as you wish
else
  // proceed with not changing the layout