2011-01-13 29 views
0

だから私はフォームを作った。私がmysql_real_escape_stringを私の変数$usrname(綴りの正しい)に入れた場合、それは私の他の変数$verifyfalseとして返します。見てみましょう:mysql_real_escape_stringが問題を引き起こしますか?

<html> 
<body> 
<?php 

session_start(); 

include("mainmenu.php"); 

$usrname = $_POST['usrname']; 
$password = sha1($_POST['password']); 

$con = mysql_connect("localhost", "root", "[email protected][email protected]_THE_TRUTH!"); 
if(!$con){ 
    die("Unable to establish connection with host. We apologize for any inconvienience."); 
} 

mysql_select_db("users", $con) or die("Can't connect to database."); 

$select = "SELECT * FROM `data` WHERE usrname = '$usrname' and 
password = '$password'"; 
$query = mysql_query($select); 
$verify = mysql_num_rows($query); 

if($verify==1){ 
    $_SESSION["valid_user"] = $usrname; 
    header("location:index.php"); 
} 
else{ 
    echo "Wrong username or password. Please check that CAPS LOCK is off."; 
    echo "<br/>"; 
    echo "<a href=\"index.php\">Back to login</a>"; 
} 

mysql_close($con); 

?> 
</body> 

私は私の登録フォームやログインフォームのいずれかでmysql_real_escape_stringを入れた場合、それはfalseとして$verifyを返します。どうしましたか?

+2

あなたは何か問題があったためです。残念ながら、あなたは実際に実行したコードを表示するのに適していないので、それが何であるかを言うことは不可能です。 –

+5

私はあなたのクルーコントロールが冷たくなっているのを見ました。 – ceejayoz

+1

はusernameの代わりにデータベースの列名usrnameですか? –

答えて

2

PHP設定で「Magic Quotes」がオフになっていることを確認してください。それを無効にする方法はhereと説明されています。

+0

ホストがすぐに無効にすることを許可していない場合は、スクリプトの最初のものとしてマジッククォートを削除します。 –

+0

これらは無効になっています...まだ何もありません –

+0

ホストですぐに無効にすることができない場合は、リンク先ページの指示に従ってください:)例2では、​​実行時に無効にする方法について説明します。 – orlp

関連する問題