动态生成的网页的问题

时间:2012-05-01 20:58:09

标签: php mysql get

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

我遇到的问题是,每当我想查看About.php页面上的当前文章时,我都会得到未定义的索引ID

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

由于

about.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/>";

?>

2 个答案:

答案 0 :(得分: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”,因此您可以保证它不是字符串(可能包含恶意数据)。

答案 1 :(得分: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
}