-2

我似乎无法理解为什么会收到此错误。这似乎适用于$pid变量,但不适用于$type.

更新:我已经修复了错误,但现在连接变量 ' 。$类型。''; 在下面的链接中根本没有显示在页面上。

第 5 行是:

$page=$_GET["type"];

代码:

 if (!$_GET["type"]){
 $page="";
 }else{
$page=$_GET["type"];
}

  $sqlCommand="SELECT id,Type FROM cart WHERE Type='$page'";
$query = mysql_query($sqlCommand) or die (mysql_error());
 $menu ="";
while($row=mysql_fetch_array($query)){
$pid=$row["id"];
  $type=$row["Type"];

  $menu= '<a STYLE="text-decoration:none; color:white" href="pt.php?pid=1&type=' .       $type .    '">' . $type . '</a>';
 $menu2= '<a STYLE="text-decoration:none; color:white" href="pt.php?pid=7&type=' .     $type . '">' . $type . '/a>';
4

5 回答 5

1

如果在 $_GET 全局变量中找不到 'type' 键,它会给你 PHP Notice Undefined index。如果你不想要这个通知 - 尝试做

if (! isset($_GET["type"]))
{
...
}
于 2013-02-28T19:00:21.807 回答
0

你的问题似乎与

$sqlCommand="SELECT id,Type FROM cart WHERE Type='$page'";

有时,

你传递 NO $page 变量

,所以你得到这个错误

您应该为 $page .. 设置一些默认值,例如

if(!isset($_GET["type"])){
 $page="default";
 }else{
$page=$_GET["type"];
}

default将保留default您页面的内容

于 2013-02-28T18:59:46.317 回答
0

$_GET['type']进行设置,URL 必须如下所示:http://domain.tld/someplace.php?type=stuff

此外,对其进行适当的测试是这样的:

if(isset($_GET['type'])
    $page=$_GET['type'];
else
    $page = "";
于 2013-02-28T19:19:43.300 回答
0

如果您要这样做var_dump($_GET),您可能会发现“类型”没有条目。该错误告诉您该$_GET数组没有此条目。

于 2013-02-28T18:57:10.073 回答
0

@马克-埃文斯;V_K 的回复被标记为答案。我更喜欢使用三元运算符:

$page = isset($_GET['type']) ? $_GET['type'] : '';

如果设置了 $_GET['type'],则将其分配给 $page。我更喜欢这样的循环

if(!isset($_GET['type'])) {...} else {...}

PS:不要忘记在查询中使用 mysql_real_escape_string() 你的 $page var!或者更好的是,使用 mysqi 和准备好的语句。ext/mysql 函数已弃用,将在 PHP 的未来版本中删除。这将防止 SQL 注入和跨站点脚本攻击(有点)。

于 2013-02-28T19:53:43.493 回答