1

我的脚本需要你的帮助。我将旧新闻文章的链接放在侧边栏中并使其可点击。它来自的页面 (header.php) 在 URL 中有 GET id,因此接收它的页面也会检查 GET 的值。当我单击侧边栏中的旧新闻文章时,它显示良好。

我遇到的问题是,每当我想在 About.php 页面上查看当前文章时,我都会得到Undefined Index id

请问我该如何解决这个问题,以便我的脚本可以很好地显示旧文章以及当前的新闻文章。

谢谢

关于.php

<?php

$id = $_GET['id'];
$past = mysql_query( "SELECT * FROM about WHERE about_id = '".$id."'") or die(mysql_error()); 
$row = mysql_fetch_array($past);

echo "<h2>";
echo $row1['about_head'];
echo "</h2>";
echo "<p>";
echo $row1['about_content'];
echo "</p>";

?>

标题

<?php

$past = mysql_query("SELECT * FROM about") or die(mysql_error());                    
while($row = mysql_fetch_array($past))
    echo "<a href=\"http://127.0.0.1/church/About.php?id=$row[about_id]\"> $row[about_head].</a><br/>";

?>
4

2 回答 2

2

当您拥有此代码时:

      $id = $_GET['id'];

您正在从名为 $_GET 的数组(包含所有 GET 参数)中检索一个名为“id”的项目。但是,当此参数“id”不存在时,PHP 会发出警告。要摆脱它,请将行替换为:

$id = "";
if (isset($_GET["id"])) $id = $_GET["id"];

或很快:

$id = isset($_GET["id"]) ? $_GET["id"] : "";

它首先询问参数是否存在,如果不存在,则给出一个空字符串。如果您希望$id变量是整数,您可能希望使用零而不是空字符串:

$id = isset($_GET["id"]) ? (int)$_GET["id"] : 0;

这也将传递的参数转换为“int”,因此您可以保证它不是字符串(可能包含恶意数据)。

于 2012-05-01T21:03:45.297 回答
0

像这样的东西应该工作:

if( array_key_exists( 'id', $_GET ) )
{
  //do your code in here
}
else
{
  //fallback to scenario in which $_GET['id'] isn't set in the url
}
于 2012-05-01T21:01:53.897 回答