Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP/HTML语法错误_Php_Html - Fatal编程技术网

PHP/HTML语法错误

PHP/HTML语法错误,php,html,Php,Html,可能重复: 第一次在这里提问。我正在尝试创建一个小型、原始的论坛。我的基础是:在需要时对其进行更改 到目前为止,我已经设置了数据库和所有这些。现在我试图修复view_topic.php,它在第30行返回了“注意:未定义的索引:id”。 这是第30行:$id=$\u GET['id'] 在访问它之前,您应该确保id是一个有效的索引 $id = isset($_GET['id']) ? $_GET['id'] : null; 注意:未定义索引: 这意味着一段代码试图访问不存在的数组元素 例如:

可能重复:

第一次在这里提问。我正在尝试创建一个小型、原始的论坛。我的基础是:在需要时对其进行更改

到目前为止,我已经设置了数据库和所有这些。现在我试图修复view_topic.php,它在第30行返回了
“注意:未定义的索引:id”。

这是第30行:
$id=$\u GET['id']

在访问它之前,您应该确保
id
是一个有效的索引

$id = isset($_GET['id']) ? $_GET['id'] : null;
注意:未定义索引:

这意味着一段代码试图访问不存在的数组元素

例如:

$myArray = Array();  // an empty array
echo $myArray['id']; // print 'id' element

// ^^ Oops! No such element yet!
$\u GET
数组包含来自querystring的参数,querystring是请求URL的
?id=1
部分

当URL中提供了
id
时,您需要找出为什么它不包含键为
'id'
的元素,然后使用
isset
array\u key\u exists
等函数和
if
语句让代码决定在缺少此值的情况下该怎么办


如果没有有效的
id
值,代码无法继续,则很可能会显示更有用的错误消息并终止脚本。

您确定URL中存在
id=
?尝试在代码顶部附近添加以下内容

var_dump($_GET);

将有关变量的信息转储到屏幕上。在这种情况下,它将显示从表单发送的所有
GET
数据。这是一种调试技术,因此您可以查看代码是否收到了预期的结果。如果表单使用
method=“post”
并且
id
是表单中的一个字段,则需要使用
$\u post['id']
$\u REQUEST['id']
访问它。

您的第一次提问尚未到来。
我可能需要更多的帮助,所以我会偶尔通知任何刷新的人。
我想您是想去聊天室。对话式调试协助不适合编程问答。我想我有点不具体,我想知道是什么原因造成的,希望能找到解决办法。我是PHP新手。@AndyLester否,
$\u GET
是正确的。@user1868565:您是否搜索了通知文本的内容,并找到了它的含义?我正要键入相同的答案+1不,您所做的只是将问题转移到其他地方,因为我们尚未得到确认,即缺少此值是可接受的情况。由于在OP的示例中,
id
是一个查询字符串参数,因此我建议它不是。它停止了错误消息,但由于@LightnessRacesinOrbit说它不返回任何内容,我放弃了将代码添加到stackoverflow,这里是pastebin:@user1868565:我已经指示您不要发布“全部代码”,但是你的完整的,最小的例子。@LightnessRacesinOrbit我理解,但是我想整个代码在这里可能有用?“$id”被多次使用,连接部分正常。学究提示:
isset
是一种语言结构,而不是函数;但是,它是作为一个函数记录的,因为它非常接近。如果表单使用
method=“GET”
@toxalot:这是因为带有
method=“GET”
的表单会导致一个URL,其中表单数据位于查询字符串中。我理解,但是一个新的程序员可能不会。它会导致一个带有查询字符串的URL,但这并不意味着该表单是使用该查询字符串访问的。我认为新程序员会感到困惑。仅供参考,我同意(并投了赞成票)你的回答和评论。我只是想澄清一下,“用这个查询字符串访问”是什么意思?对于新程序员来说,使用合适的术语是很重要的,这样他们所学到的东西才是准确的,我认为你的评论是朝着这个目标倒退了一步。