我有一个网站,我希望它可以通过名为login.html的身份验证页面访问,其中是我的表单。 我的身份验证页面有效,但如果我在地址栏中写下我网站的直接网址,例如www.website.com/index.html,我可以访问我的网站而无需通过身份验证页面。 所以这是我的代码名为' 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');
?>
&#13;
然后我在网站代码的开头添加了这段代码:
<?
session_start();
if(!isset($_SESSION['login'])) {
header('Location: login.html');
}
?>
&#13;
答案 0 :(得分:0)
我不知道这是不是一个错字,但你的页面必须有&#34; .php&#34;扩展,而不是&#34; .html&#34;。