2016-11-25 16 views
-1

私は2つの.phpファイルを持っています。すべてのhtmlとphp、SQLは必要なく/使用しません。 1つはログインページ、もう1つは宛先です。私が設定した詳細をログに記録すると、私は目的地に到着することができません。ご覧のとおり、session_start();ははっきりと一番上にあります。私はオープニングphpタグと同じ行に置いても違いはありません。ここでは、両方のページのためのコードがあります:PHPログイン認証が機能しません

ログイン:

<?php 
session_start(); 

$username="testu"; 
$password="testp"; 
$_SESSION['logged_in']=false; 

if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == true) { 
    header("Location: dest.php"); 
    exit; 
} 

if (isset($_POST['user']) && isset($_POST['pass'])) { 
    if ($_POST['user'] == $username && $_POST['pass'] == $password) { 
     $_SESSION['logged_in'] = true; 
     header("Location: dest.php"); 
     exit; 
    } 
} 
?> 

<!DOCTYPE html> 

<html lang="en"> 

<head> 
    <title>A title</title> 
</head> 

<body> 
    <form action="dest.php" method="post" style="font- family:calibri;position:absolute;top:40%;left:35%;"> 
     Username: <input type="text" name="user"/><br><br> 
     Password: <input type="password" name="pass"  style="position:relative;left:5px;"/><br><br><br> 
    <input type="submit" value="Submit" style="position:relative;left:115px;"/> 
    </form> 

</body> 

</html> 

先:

(php tag here) 
session_start(); 

if (!isset($_SESSION['logged_in']) || $_SESSION['logged_in'] == false) { 
    header("Location: login.php"); 
    exit; 
} 
?> 

<!DOCTYPE html> 

<html lang="en"> 

<head> 
    <title>A title</title> 
</head> 

<body> 
    <a href="login.php">Log out</a> 
</body> 

</html> 

私は先のファイルにPHPコードをコメントアウトするとき、私はDESTにアクセスできることに気づきました。 php。問題は、私はアクセスすることができますログインの詳細、またはまったくなしです。それは何も動作しない、または何かが動作します。私が働くように設定した詳細をどのように入手できますか?問題はログインページのスクリプトにあると思う。私はこれを解決するのを助けることができる誰にも多くの事前に感謝します。

注:私は私の最後の質問は、あなたに感謝し、私の問題とは全く関係のない何かの重複としてマークされていたので、これを再投稿しました。あなたはそれが動作するはずaction="dest.php"を削除した場合

+0

'

Sean

+0

@Seanありがとう、誰かが実際に自分のコードに注意を払って、この権利を得ました。完璧な意味合いも持っています。私はより正当な信用を与えることができるように答えとして投稿してください。 – H3ll0

答えて

1

:-)、それに素敵な仕事をし、私を打つ@Sean。今は、ユーザー名とパスワードの値をチェックしないページにフォームを送信しているため、セッション変数が設定されていません。

<form method="post"> 
Username: <input type="text" name="user"/> 
.... 
</form> 
1
action="dest.php" 

あなたは以下のコードは、ファイルdest.phpであることを確認し、そしてlogin.phpからそれを削除する必要があります。

<?php 
session_start(); 
$username="testu"; 
$password="testp"; 
$_SESSION['logged_in']=false; 

if (isset($_SESSION['logged_in']) && $_SESSION['logged_in'] == true) { 
    header("Location: dest.php"); 
    exit; 
} 

if (isset($_POST['user']) && isset($_POST['pass'])) { 
    if ($_POST['user'] == $username && $_POST['pass'] == $password) { 
     $_SESSION['logged_in'] = true; 
     header("Location: dest.php"); 
     exit; 
    } 
} 
?> 
関連する問題