PHP包括doc没有获取$ _GET变量

时间:2012-02-17 03:33:38

标签: php mysql include

我读到的所有内容都告诉我这应该有用

第1页是

<?php
$state = $_GET['state'];
$brand = $_GET['brand'];

include ("my_path/state_brand_page_01.php");

?>

第2页是

<?
//get all dealers for this brand and state
session_start();
include ('../../lib/db.php');

//=======================Start Local Insert

  //This stops SQL Injection in POST vars
  foreach ($_POST as $key => $value) {
    $_POST[$key] = mysql_real_escape_string($value);
  }

  //This stops SQL Injection in GET vars
  foreach ($_GET as $key => $value) {
    $_GET[$key] = mysql_real_escape_string($value);
  }

//get dealer

echo $state;
echo $_GET['state']; // NOTHING SHOWING

$dquery = mysql_query("SELECT * FROM dealer WHERE state='$_GET[state]' AND brand='$_GET[brand]' ORDER BY company DESC") or die(mysql_error());


?>

我在这里什么都没有,没有var的回声,没有从数据库返回。该页面本身可以正常工作,只是在包含时

由于

3 个答案:

答案 0 :(得分:2)

也许您的路径被解释为URL(例如www.foo.com/state_brand_page_01.php),因此include()使用HTTP方法获取它?这会导致$ _GET迷路。

请参阅http://de2.php.net/manual/en/function.include.php

以下示例#2。

答案 1 :(得分:2)

尝试将其纳入会话

$_SESSION['state'] = $_GET['state'];

$ _ SESSION ['brand'] = $ _GET ['brand'];

答案 2 :(得分:0)

如果查询字符串包含state = whatever,那么$ state和$ _GET ['state']都应该可用。

当我看到问题时,如果你用URL而不是文件路径包括:

include('http://www.test.com/file.php'); 

它不会知道您的值,因为它在包含之前已经过解析。 (出于安全原因,也被视为不良做法。)