Vérifier authentification, interdire acces page si pas logué

Signaler
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011
-
erdoganak
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011
-
Bonjour,

Comme dit dans le titre je souhaiterai savoir comment je peux vérifier que la personne voulant utiliser une page se soit connecter d'abord.

je dispose d'une page connexion login/mdp, si les id de l'utilisateur exsiste sur l'AD alors affichage de la pageaccueil.html, jusqu'a la ça fonctionne .

Ceci dit quand je tape l'adresse localhost/www/pageaccueil.html cette dernière s'affiche

En gros ma pageconnexion.php sert a moitité pour l'instant.

Comment je peux faire?

8 réponses

Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011

Voici le code que j'utilise

******pageconnexion.php ******

<?php
session_start();

if (isset($_POST['login']) || isset($_POST['pass'])){
$_SESSION['login'] = $_POST['login'];
$_SESSION['pass'] = $_POST['pass'];
}

.......
?>


****** pageaccueil.html******

<?php

session_start();
session_register($_POST['login']);
if(!isset($_SESSION['login'])){

header("location:pageconnexion.php");
}
else
{
header("location:pageaccueil.html");
}

.....

?>
Messages postés
1393
Date d'inscription
dimanche 28 novembre 2004
Statut
Membre
Dernière intervention
2 août 2011

Tu dois créer un fichier verif_session.php que tu integre tout en haut de chaque page qui est protégée :

Exemple page protégé :

<?php
require "auth_session.php";
?>


Exemple verif_session.php :

<?php

session_start();
if(!isset($_SESSION['login'])) {
  header("Location: index.php");
  exit();
}

?>


-- Orange73 --

"L'homme n'est pas fait pour travailler, la preuve c'est que cela le fatigue" (Voltaire)
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011

Merci pour tes lignes de code ceci dit ça n'a pas fonctionné

Voici ce que j'ai sur ma pageconnexion.php

<?php
session_start();

if (isset($_POST['login']) || isset($_POST['pass'])){
$_SESSION['login'] = $_POST['login'];
$_SESSION['pass'] = $_POST['pass'];
}

//Connection parameters
$host = "192.168.1.3";
$user = $_POST['login']."@test.local";
$pass = $_POST['pass'];
$dn = "OU=UTILISATEURS CTS,OU=ville,DC=test,DC=local";

//Connection AD
if (!empty($_POST['login']) AND !empty($_POST['pass'])) {
$adConn = ldap_connect($host, 389) or die("La connection a échouée!");
//protocole version et bind
ldap_set_option($adConn, LDAP_OPT_PROTOCOL_VERSION, 3) or die ("Protocole Ldap V1 inapplicable");
ldap_set_option($adConn, LDAP_OPT_REFERRALS, 0) or die ("Protocole Ldap V2 inapplicable");
$bd = @ldap_bind($adConn, $user, $pass);
// Identification
if ($bd) {
header("location:pageaccueil.html"); //présiser la page de redirection
}

else {
echo "authentification incorrecte! (vos identifiants sont incorrectes veuillez les vérifier.)";
}
}
?>

********
ma pageaccueil.html que je dois recevoir après connexion seulement,

<?php
require "auth_session.php";

session_start();

/*
session_id($_POST['login']);
if(!isset($_SESSION['login'])){

header("location:pageconnexion.php");
}
else
{
header("location:pageaccueil.html");
}*/

if(!empty(session('login')) && $_get(do)==header("location:pageaccueil.html");)

else{

header("location:pageconnexion.php");
}
>
*********
et ma page auth_session.php

<?php

session_start();

if(!isset($_SESSION['login'])) {

header("Location: pageconnexion.php");

exit();


}

?>

Désolé si je fais des erreurs de débutant.
                        
                
Messages postés
3708
Date d'inscription
lundi 5 juillet 2004
Statut
Membre
Dernière intervention
27 avril 2012
23
Salut,

Il y a effectivement pas mal d'erreurs dans ton code.
L'affichage de celles ci est il activé ? J'en doute (ou alors il faut les préciser )

Entres autres :
$_get(do)
pageaccueil.html avec du code php ??? => une page html ne peut pas contenir de code php, sauf à avoir bidouiller inutilement la config (j'imagine que c'est le cas)
le session_start de pageaccueil est de trop (puisqu'il existe déjà dans auth_session.php)
il manque des exit après les headers
session('login') => $_SESSION['login']
header("location:pageaccueil.html");
... etc ... etc

Ajoute donc ça en haut de chacune de tes pages :
ini_set('display_errors', true);
error_reporting(E_ALL);


Je te conseille également de lire la doc sur les sessions, les données externes ($_GET, $_POST), header, et de revoir les bases de PHP.
Pense également à utiliser un éditeur de texte avec coloration syntaxique, ça te permettra de voir de suite certaines erreurs.
Non pas que je ne veuille pas t'aider, mais il y a bien trop d'erreurs et cela reviendrait à faire ton code, ce qui ne te serait pas bénéfique.

N'hésite pas à reposer tes questions,

Bonne soirée,


Kohntark -
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011

Merci pour ta réponse, je l'avais dit c'est du travail de débutant, pour répondre a ta question ça fonctionne, sauf pour les sessions, et je n'ai rien bidouiller .
merci encore
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011

Désolé pour le double posting, kohntark j'ai insérer la ligne de code que tu m'as donné j'obtiens cette erreur :

Fatal error: Can't use function return value in write context in C:\wamp\www\debut\pageaccueil.php on line 21


la ligne en question :

if(!empty(session('login')) && get(do)==header("location:pageaccueil.html");)

j'ai modifier pageaccueil.html en pageaccueil.php ...
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011

[^^huh]
Messages postés
44
Date d'inscription
mercredi 9 septembre 2009
Statut
Membre
Dernière intervention
11 avril 2011

<?php

session_start();

if($_GET['do']=="deconexion" && !empty($_SESSION['login']))
{
  unset($_SESSION['login']); 
  session_destroy();
}
elseif(isset($_POST['login']) || isset($_POST['password'])){

//Connection parameters
$host = "192.168.1.3";
$user = $_POST['login']."@test.local";
$pass = $_POST['pass'];
$dn = "OU=UTILISATEURS CTS,OU=VILLE,DC=test,DC=local";

//Connection AD
if (!empty($_POST['login']) AND !empty($_POST['pass'])) 
{
$adConn = ldap_connect($host, 389) or die("La connection a échouée!");
//protocole version et bind
ldap_set_option($adConn, LDAP_OPT_PROTOCOL_VERSION, 3) or die ("Protocole Ldap V1 inapplicable");
ldap_set_option($adConn, LDAP_OPT_REFERRALS, 0) or die ("Protocole Ldap V2 inapplicable");
$bd = @ldap_bind($adConn, $user, $pass);
// Identification
    if ($bd) 
    {
    	$_SESSION['login'] = $_POST['login'];
exit();	      	 
} 
else 
{
        echo "authentification incorrecte! (vos identifiants sont incorrectes veuillez les vérifier.)";
    }
}
}

?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Page principale</title>
</head >



<?php
if(empty($_SESSION['login']))
{
echo '[index.php?do=login identification]
';
}

if($_GET['do'] == 'creer' && !empty($_SESSION['login']))
{
include("btton.html");	
}
elseif($_GET['do'] == 'ajouter' && !empty($_SESSION['login']))
{
include("upload.php");	
}
elseif($_GET['do'] == 'recherche' && !empty($_SESSION['login']))
{
include("search.html");
}
elseif($_GET['do'] == 'config' && !empty($_SESSION['login']))
{
include("FichierPhpPourCreer.php");	
}
elseif($_GET['do'] == 'login' && empty($_SESSION['login']))
{
include('pageconnexion.php');	
}
elseif(!empty($_SESSION['login']))
{


echo 'Que voulez-vous faire ? :


     
 

 				[index.php?do=creer Créer]


   				[index.php?do=ajouter Integrer]


  				[index.php?do=recherche Rechercher]


   				[index.php?do=config Configuration Administrateur]


   
';


}

?>

   




</html>


Voila j'ai arrangé la chose, ceci dit maintenant, je ne reçois pas directement ma page ou je peux effectuer les choix.

Je suis obligé de cliquer sur le bouton précédent pour l'obtenir.