1

この単純なフォームが機能しない理由を誰かが説明できますか?

問題はmysql_real_escape_string()、結果を使用しても何も起こらないということです。削除すると、完全に機能します。ここで何が問題になっているのかを確認できますか?

これは完全に単純なコードです。

<?php

// Loop the post fields
$postFields = array('username', 'password', 'checkSubmission');
$postArray = array();
foreach($postFields as $postVal){
    $postArray[$postVal] = mysql_real_escape_string($_POST[$postVal]);
}
print_r($postArray);
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Signin</title>
<head>
</head>
<body><? echo $error;?>
<form action="<?php echo $_SERVER['PHP_SELF']?>" method="post" id="signinForm">
    Username: <input type="text" name="username" value="" />
    Password: <input type="password" name="password" value="" />
    <input type="hidden" name="checkSubmission" value="1" />
    <input type="submit" name="Submit" value="Signin" />
</form>
</body>
</html>

編集:

使用print_r()すると空になりますmysql_real_escape_string()

Array ( [username] => [password] => [checkSubmission] => )

そしてこれはprint_r()なしですmysql_real_escape_string()

Array ( [username] => thre[password] => werr[checkSubmission] => 1)

助けてくれてありがとう

4

1 に答える 1

7

mysql_real_escape_string()アクティブなデータベース接続が必要です。

PHPマニュアルから:

mysql_real_escape_string()を使用する前にMySQL接続が必要です。そうでない場合、レベルE_WARNINGのエラーが生成され、FALSEが返されます。link_identifierが定義されていない場合は、最後のMySQL接続が使用されます。

http://php.net/manual/en/function.mysql-real-escape-string.php

于 2012-07-16T14:04:22.890 に答える