2016-04-06 30 views
0

セッション変数を使用して、ユーザーがログインしているかどうかを確認していますが、初めてログインフォームを送信するとセッション変数が何らかの形で設定解除されますが、ONLYセッション変数が最初に設定されていません

ログインフォームを2回送信すると機能します。

または、ログインするためにフォームを2回送信したとします。ログアウトします。今、私は一度だけでログインするためのフォームを提出する必要が

ここではユーザーのログインに使用してコードイムです。

<?php 
 
session_start(); 
 
define('DB_NAME', 'madsanker_dk_db'); 
 
define('DB_USER', 'madsanker_dk'); 
 
define('DB_PASSWORD', ''); 
 
define('DB_HOST', 'mysql43.unoeuro.com'); 
 

 
$link = mysqli_connect(DB_HOST, DB_USER, DB_PASSWORD); 
 

 
if (!$link) { 
 
die('Could not connect: ' .mysqli_error()); 
 
} 
 

 
$db_selected = mysqli_select_db($link, DB_NAME); 
 

 
if (!$db_selected) { 
 
die('Could not connect: ' .mysqli_connect_error()); 
 
} 
 

 
$username = $_POST['username']; 
 
$password = $_POST['password']; 
 
$username = mysqli_real_escape_string($link,$username); 
 
$password = mysqli_real_escape_string($link,$password); 
 
$password = md5($password); 
 
$sql = "SELECT * FROM mainLogin WHERE username = '$username'"; 
 

 
$result = mysqli_query($link, $sql); 
 

 
$count=mysqli_num_rows($result); 
 
    if($count==1){ 
 
    $row = mysqli_fetch_assoc($result); 
 
    if ($password == $row['password']){ 
 
SETTING THE VARIABLE HERE --> $_SESSION['login'] = $username; 
 
     echo "<script> window.location.assign('http://www.madsanker.dk'); </script>"; 
 
     return true; 
 
    } 
 
    else { 
 
     echo "<script> window.location.assign('http://www.madsanker.dk/loginpage'); </script>"; 
 
     return false; 
 
    } 
 
}else{ 
 
    echo "<script> window.location.assign('http://www.madsanker.dk/loginpage'); </script>"; 
 
    return false; 
 
} 
 
mysqli_close($link); 
 
?>

私は変数がされていることを確信しています変数をエコーし​​て、それが正しく設定された直後にexit();を実行すると、最初に設定します。

私はこのようなルックスにリダイレクトしていますページ:私はそれがNULL最初言う文書の先頭にvar_dump($_SESSION['login']); exit();を入れた場合でも

<?php 
 
session_start(); 
 
$_SESSION['activePage'] = "home"; 
 
?> 
 
<!DOCTYPE html> 
 
<html> 
 
    <head> 
 
     <title>Madsanker</title> 
 
     <link rel="stylesheet" href="main.css" name="pageStyle" type="text/css"> 
 
     <?php include "nav-bar.php"; ?> 
 
    </head> 
 
    <body> 
 
     <h2>Welcome to Madsanker.dk</h2> 
 
     <?php include "chatIframe.php" ?> 
 
    </body> 
 
</html>

、それが表示する第2の時間ユーザー名を正しく入力してください。

これを約1時間修正しようとしていますが、これがなぜ機能していないのか本当にわかります。

+0

'md5'は、パスワードをハッシュする安全な方法ではありません。 [password_hash]に切り替えることを検討してください(http://stackoverflow.com/questions/14992367/using-php-5-5s-password-hash-and-verify-function-am-i-doing-it-right) – Machavity

+3

ユーザーがログインしているときにjs 'window.location.assign'の代わりにリダイレクトするPHPの' header'関数を使用してください。結果は –

答えて

0

wwwを使わずに初めてサイトにアクセスしているかどうかを確認してください。です.2度目はwww.madsanker.dkにリダイレクトされるため、2つの異なるドメインです。助け

希望:D

+0

です。ありがとうございました。それが私にできるだけ早く正しいとマークします。 –

関連する問題