0

我想在 html 中的某处调用 $query,这将返回未定义。即使在将变量声明为 GLOBAL 之后,我仍然会收到该错误。

<?php
if($query){
echo "Nice";
}
else {
echo "Bad";
}
?>

完整的 PHP

<?php
if(isset($_POST["Name"])) {
$con = mysql_connect("localhost","root","pwd", "DB");
if (!$con){
die(mysql_error());
}
$db_selected = mysql_select_db("DB", $con) or die (mysql_error());
$Name = preg_replace ('#[^a-z, 1-9 ]#i', '', $_POST['Name']);
$Slog = preg_replace ('#[^a-z ]#i', '', $_POST['Slog']);
$GLOBAL['query'] = mysql_query("INSERT INTO profiles (Name, Slog)
VALUES('$Name', '$Slog')") or die (mysql_error());      
mysql_close($con);
}       
?>

这是带有 php 的 html 和 $query 即时调用。

<form style="width:100px" action="insert.php" method="post">
<input type="text" name="Name">
<input type="text" name="Slog">
<input type="submit">
</form>
<p>
<?php
if($query){
echo "Nice";
}
else {
echo "Bad";
}
?>
</p>
4

2 回答 2

0

您的 php 标签和 html 文件是否位于同一个文档中?如果不。那么你需要将你的 php 文件包含在你的 html 代码中。在 .php 文件类型中。

于 2013-10-22T15:39:01.133 回答
0

编辑: 我看到一个问题。你说的是“or die()”,所以如果有错误,它将停止脚本。如果你不想要那个,那么你可以回显错误而不是死掉。die 将停止一切,因此不会定义查询。具体来说,如果查询返回 false,则“或死亡”会在任何内容被分配给查询之前发生。

你期望查询是什么?这是一个插入查询,所以它应该是真或假。但它必须与 html 在同一个文件中,并且您发布的内容显然不是完整的 html。

首先,尝试添加 $con,作为查询的第二个参数,例如 "insert ....",$con) 然后,通过添加 else 或其他内容,确保您实际上在帖子中获取了该名称参数。

于 2013-10-22T15:42:22.383 回答