2016-03-25 10 views
-1

私はlogin.php用のこのコードを持っており、データベースに接続しています。コード自体は機能しますが、ユーザーがログインしているかどうかを確認しても機能していません。 (私はログインフォームを作っておきたいと思うのですが、domain.com/welcome.phpと入力するだけです)とにかく、login.phpコードがあります。間違ったユーザー名やパスワードを入力すると、エラーが表示されますが、正しいものを入力すると、ログインフォームのindex.phpに戻ってきます。PHPセッションのMySQLチェック

<?php 

// Get values from form 
$username = $_POST ['username']; 
$password = $_POST ['password']; 

// Prevent MySQL injection 
$username = stripcslashes($username); 
$password = stripcslashes($password); 

// Connect to database 
mysql_connect("domain.com", "sqlusername", "sqlpassword"); 
mysql_select_db("database"); 

// Query the database for user 
if (($username != null || $username != "") && ($password != null || $password != "")) { 
    $result = mysql_query("SELECT * FROM members WHERE username = '$username' AND password = '$password'") 
     or die("Failed to query members " .mysql_error()); 

    if (mysql_num_rows($result) == 1) { 
      $_SESSION['user'] = $username; 
      header("location:/welcome.php"); 
    } else { 
     header("location:/?error=true&msg=2"); 
    } 
} else { 
    // Handle empty entries 
    header("location:/?error=true&msg=1"); 
} 

?> 

そして、ここに私のページには、ユーザー名とパスワードを持つユーザーがログインすることです。

<?php 
session_start(); 
var_dump($_SESSION); 

if (isset ($_SESSION['user'])){ 
    $username = $_SESSION['user']; 

} else { 
    header("Location: index.php"); 
    die(); 

} 


?> 

<!DOCTYPE html> 
<html> 
    <head> 
     <meta charset="UTF-8"> 
     <title>Loged in</title> 
     <link rel="stylesheet" type="text/css" href="css/style.css"> 
    </head> 

    <body> 
    <div> 
     WELCOME <?php $username /?> 
    </div> 
    </body> 
</html> 

ありがとうございます。

+0

のようなものである必要がありますか? –

+1

2016年に来て、mysqlを使用しないでください。ところで、あなたはあなたのログイン時にセッションを開始しないようです。 – Mattia

+0

そのvar_dumpは私に入れてくれと言われた人です。それはうまくいくはずです。彼が言ったのは... Matti - MySQLiを使いますか? If文中の – Tommy

答えて

2

あなたがセッション値を設定している間にsession_start();を見逃していた場合は、login fileを意味します。

それはあなたが `それをvar_dump`とき、あなたのセッションの配列を持っている何をすべきか、この

<?php 
session_start(); //session starts here 
// Get values from form 
$username = $_POST ['username']; 
$password = $_POST ['password']; 
//the other stuff what you wanna do with your username and password 
// without starting out session, you cannot set any session values. 
?> 
+0

ありがとう、これは正しいです..それは今働いています! :)また、ようこそ(ユーザー)は、正しい方向に私を指すことができる場合いくつかのエラーがあります..再度ありがとう。 – Tommy

+0

'WELCOME <?php $ username /?>'この行をチェックし、 'WELCOME <?php echo $ username;に変更してください。 ?> ' – ameenulla0007

+0

とあなたはいつも歓迎です、@ Tommy – ameenulla0007

関連する問題