2011-01-09 7 views
1

さて、簡単なログインページを作りたいと思います。私は正常に登録ページを作成しましたが、私はログインの事を得ることができません。ログインページの作成に問題がありますか?

login.php:

<?php 

session_start(); 

include("mainmenu.php"); 

$usrname = mysql_real_escape_string($_POST['usrname']); 
$password = md5($_POST['password']); 

$con = mysql_connect("localhost", "root", "[email protected]"); 
if(!$con){ 
    die(mysql_error()); 
} 

mysql_select_db("users", $con) or die(mysql_error()); 

$login = "SELECT * FROM `users` WHERE (usrname = '$usrname' AND password = '$password')"; 
$result = mysql_query($login); 

if(mysql_num_rows($result) == 1 { 

    $_SESSION = true; 
    header('Location: indexlogin.php'); 
} 

    else { 
echo = "Wrong username or password." ; 
} 


?> 

indexlogin.phpはただ "成功したログインしてください。" エコー私は間違って何をしていますか? ああ、今年のデータベースは「ユーザー」で、私のテーブルは「データ」です。

+3

「indexlogin.php」の内容はわからないので、本当にお手伝いできません。 –

+0

期待どおりの結果を投稿することはできますか? –

+0

私が言ったように - indexlogin.phpは: – Ken

答えて

3
<?php 

session_start(); 

include("mainmenu.php"); 

$usrname = mysql_real_escape_string($_POST['usrname']); 
$password = md5($_POST['password']); 

$con = mysql_connect("localhost", "root", "[email protected]"); 
if (!$con) { 
    die(mysql_error()); 
} 

mysql_select_db("users", $con) or die(mysql_error()); 

$login = "SELECT * FROM `users` WHERE (usrname = '$usrname' AND password = '$password')"; 
$result = mysql_query($login); 

if (mysql_num_rows($result) == 1) { 
    $_SESSION['logged_in'] = true; 
    header('Location: indexlogin.php'); 
    exit; 
} else { 
    echo "Wrong username or password."; 
} 

?> 
  • 私は SQL injectionを防ぐために mysql_real_escape_string()を追加しました。
    いいえ、私はあなたがすでにそれを持っていたので、私はしませんでした。
  • コードの書式を少し整理しました。
  • $_SESSION = true;(意味がない)が$_SESSION['logged_in'] = true;に変更されました。その後、indexlogin.phpにあなたがif ($_SESSION['logged_in']) { echo $secret; }
  • ような何かを行うことができます私はmysql_num_rows($result) == 1の近くに閉じ括弧を追加echo "Wrong username or password.";
  • echo = "Wrong username or password.";を修正しました。

あなたが言った:

私のデータベースは、 "ユーザー" であると私のテーブルは "データ" です。

これが正しい場合は、SELECT * FROM usersSELECT * FROM dataに変更する必要があります。

+0

神...私は乱雑なコードライターです:P – Ken

2

$ _SESSIONは配列なので、$ _SESSION = trueを設定することはできません。 $ _SESSION ['logged_in'] = trueを試してください。

関連する問題