我需要你的脚本帮助。我正在边栏中添加旧新闻文章的链接并使其可点击。它来自的页面(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/>";
?>
答案 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
}