0

HTML 内のどこかで $query を呼び出したいのですが、これは undefined を返します。変数を 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 im の呼び出しです。

<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

編集: 問題が発生しました。「or die()」と言っているので、エラーが発生した場合はスクリプトが停止します。それが望ましくない場合は、ダイの代わりにエラーをエコーできます。die はすべてを停止するため、クエリは定義されません。具体的には、クエリが false を返す場合、何かがクエリに割り当てられる前に「or die」が発生します。

クエリは何を期待していますか?これは挿入クエリなので、true または false である必要があります。しかし、それはhtmlと同じファイルにある必要があり、あなたが投稿したものは明らかに完全なhtmlではありません.

最初に、クエリの 2 番目のパラメーターとして $con を追加してみてください (例: "insert ....",$con)。次に、else などを追加して、投稿で実際にその名前パラメーターを取得していることを確認します。

于 2013-10-22T15:42:22.383 に答える