2016-10-28 7 views
0

私はウェブサイトを持っており、私のフォームはlogin.htmlという認証ページからアクセスできます。 私の認証ページは機能しますが、www.website.com/index.htmlのようなアドレスバーに自分のウェブサイトの直接URLを書き込むと、認証ページを経由せずに自分のウェブサイトにアクセスできます。 ここで私のコードは 'login.php'と呼ばれ、私のログインとパスワードがある私のpostgresqlデータベースにアクセスします。認証ページを経由せずに私のウェブサイトにアクセスすることができます

<?php 
 
    
 
// Parametre de connection 
 
$host = 'localhost'; 
 
$database = 'base'; 
 
$user = 'postgres'; 
 
$pass = 'postgres'; 
 
$port = '5432'; 
 
    
 
$dns = 'pgsql:host='.$host .';port='.$port .';dbname='.$database; 
 
    
 
try 
 
{ 
 
    
 
    if(isset($_POST) && !empty($_POST['login']) && !empty($_POST['mdp'])) { 
 
    extract($_POST); 
 
    
 
    $bdd = new PDO("pgsql:host=$host;dbname=$database",$user,$pass); 
 
    $bdd->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
 
    
 
    $sql = $bdd->query("SELECT pwd FROM nom_table WHERE login = '".$login."'"); 
 
    
 
    $result = $sql->fetch(PDO::FETCH_ASSOC); 
 
    
 
    if ($result['pwd'] != $mdp) { 
 
    echo '<body onLoad="alert(\'Mauvais mot de passe\')">'; 
 
    header ('location:login.html'); 
 
    } 
 
    else { 
 
    session_start(); 
 
    $_SESSION['login'] = $login; 
 
    echo 'Vous êtes connecté'; 
 
    header ('location:index.html'); 
 
    } 
 
} 
 
else { 
 
    echo '<body onLoad="alert(\'Les variables du formulaire ne sont pas déclarées\')">'; 
 
    header ('location:login.html'); 
 
} 
 
    
 
    
 
    } 
 
catch(Exception $e) 
 
{ 
 
     echo "Connection a la BDD impossible : ", $e->getMessage(); 
 
    die(); 
 
} 
 
    
 
//header('Location:index.html'); 
 
?>

は、その後、私は私のウェブサイトのコードのbegginingでこのコードを追加しました:

<? 
 
session_start(); 
 
    
 
if(!isset($_SESSION['login'])) { 
 
    header('Location: login.html'); 
 
} 
 
?>

+0

index.htmlでセッションチェックを実行していますか。もしそうなら、それをPHPページに追加してそれをインクルードするか、index.html - > index.phpを作る必要があります。あなたのログインページでも変数$ loginを設定することはありません。 –

+0

@SteampunkForge、ok、index.htmlをindex.phpに変更しましたが、何も変更しませんでした。ここで私のpostgresテーブルから変数ログインを宣言する方法はありますか?私はそれが私のSQLでそれを照会するだけで動作すると思っていた – Hippipers

+0

私はエコー$ログインを試みたと私のログイン井戸を返します – Hippipers

答えて

0

は、私にはわからないそのタイプミスの場合あなたのページには拡張子 ".php"があり、 ".html"ではありません。

+0

ありがとう、私はそれを変更しましたが、まだ動作しません – Hippipers

関連する問題