IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

problème page de login


Sujet :

Langage PHP

  1. #1
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Février 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut problème page de login
    Bonjour,
    Voici mon probleme, je suis en train de faire la sécurisation d'un site pour le cadre de mon stage et je but sur un probleme:
    je vous explique le fonctionnement de mon site:
    on arrive sur la page accueil.php qui si on est pas authentifier (via le test du fichier session.php), propose le formulaire de connexion (html)
    ce formulaire html envoie en POST les 2 variables utilisateur et passwd.
    Si dans session.php il detecte que les variables utilisateur et passwd ont était envoyé par POST alors il tente la connexion a sql et vérifie la personne, si c'est bon alors il crée une variable de session (valid_user).
    cette variable de session determine si il y a besion d'afficher ou pas le fichier login.php (le formulaire login/pass).

    MON PROBLEME étant que je doit faire fonctionner se systeme sous wampserver et qu' auparavant je l'ai dévelloper sous uniformserver et que cela marche nickel.
    malheureusement je ne puis garder sous unifrmserver mais obliger sous wampserver qui avec, je n'arrive pas a faire fonctionner.
    wampserver 1.3.3
    uniformserver3_2a
    attention pour les fichiers: sous wampserver, le compte sql n'a pas de password et sous uniformserver c'est root / root

    pour être plus clair je vous met les sources php en lien.

    accueil.php fait appel a sessions.php pour vérifier l'authentification et faire l'authentification si besion ai.
    login.php pour afficher le formulaire de saisie de login/pass si pas authentifier.
    logout.php detruit la session en cours et reviens a accueil.php qui naturelement affiche login.php.
    sessions.php fichier de vérification si authentifier ou pas et consultation de la base sql avec valeurs recuperé en post de login.php.

    j'ajoute aussi ma base de donné en .sql, nom de la base: base1
    Fichiers attachés Fichiers attachés

  2. #2
    Membre averti Avatar de johweb
    Profil pro
    Inscrit en
    Décembre 2003
    Messages
    342
    Détails du profil
    Informations personnelles :
    Localisation : France, Sarthe (Pays de la Loire)

    Informations forums :
    Inscription : Décembre 2003
    Messages : 342
    Points : 367
    Points
    367
    Par défaut
    Déjà, remplace tous tes par car je sais que Wampserver est assez restrictif... ^^

  3. #3
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Février 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut
    probleme reglé,
    je donnerai dans la journée les .php correct qui pourra servir pour d'autres personnes.
    Vu que la limite des fichiers poster est de 5, je ferai surement un .zip sur ma page perso.
    ou le mettre aussi en message a la suite.

    Je rappel le but de mon systeme:

    identification d'une personne par login/password avec restriction d'acces a certaines pages selon son niveau (simple utilisateur , administrateur ...) via une variablede session en plus de celle du nom de l'utilisateur.
    De plus il se base aussi sur la date du debut et expiration du compte de l'utilisateur, donc possibilité de crée des comptes temporaires dans le temps.

    là je vé manger et ensuite je publirai.

    message pour johweb: merci pour ton info mais j'ai carrement refait les script de vérifs.

  4. #4
    En attente de confirmation mail
    Profil pro
    Inscrit en
    Février 2007
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 9
    Points : 7
    Points
    7
    Par défaut Voici les fichiers qui marche maintenant
    Désolé pour le retard et aussi désolé pour le code programmé un peu cochon.

    voici donc les fichiers


    Structure du site :
    Code X : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    www -accueil.php
    	-login.php
    	-logout.php
    	-session1.php
    	-session2.php
    	-session3.php
    	-sessionbis.php
    	-verif.php
    	- /errors/	-error3.php
    	- /errors/	-error3.html
    	- /images/	-authentification.png
    	- /images/	-singe.gif

    Page accueil avec appel de login.php :
    Code accueil.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    <?
    //gestion retour erreurs connexion
    if(isset($_GET['auth']) && $_GET['auth'] == "error3" ) { header("Location: ./errors/error3.php");break;}
    ?>
    <? require('sessionbis.php'); ?>
    <? if (session_is_registered("valid_user")){
    //SI LA PERSONNE EST AUTHENTIFIER ELLE PEUX VOIR LA SUITE
    //SINON RETOUR SUR ACCEUIL ET DEMANDE D4AUTHENTIFICATION
    ?>
    <?php
    require('sessionbis.php'); ?>
    <?php
    require('./connectbase.php');
    $login = $_SESSION['valid_user'];
    $niveau = $_SESSION['niveau'];
    ?>
     
    <HTML>
    <HEAD><TITLE></TITLE></HEAD>
    <BODY>
    <!-- $_SESSION['niveau']     OU    $niveau    revient au meme mais en pratique il est preferable d'utiliser $niveau en ayant créer la variable  ( methode :  $niveau = $_SESSION['niveau'];  )-->
    <?php if($_SESSION['niveau'] >= 1){ ?><H3><center><b>Bienvenue<?php echo " $login "; ?> sur le site de blablabla</b></center></H3><HR><?php } ?>
    <?php if($niveau == 1){ ?><H3><center><b>marche aussi, Vous avez un niveau d'autorisation 1</b></center></H3><HR><?php } ?>
    <?php if($_SESSION['niveau'] >= 2){ ?><H3><center><b>Vous avez un niveau d'autorisation 2 ou  3</b></center></H3><HR><?php } ?>
    <?php if($_SESSION['niveau'] >= 3){ ?><H3><center><b>Vous avez un niveau d'autorisation 3 ou plus</b></center></H3><HR><?php } ?>
    </body>
    </HTML>
    <?php } ?>

    Code login.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <HTML>
    <HEAD>
    <TITLE></TITLE>
    </HEAD>
    <BODY>
    <table>
    	<tr>
    		<td height="100" align="center" valign="center" >
    		<center><img src="./images/authentification.png"><!-- juste une image symbole d'une demande d'authentification NON OBLIGATOIRE--></center>
    		</td>
    	</tr>
        <tr>
    		<td height="50" align="center" valign="center"><b><H1><center>Identifiez vous !</center></H1></b></td>
    	</tr>
    </table>
    <form name="identification" action="verif.php"  method="post">  
    <table>
    	<tr>
    	<td height="100" align="center" valign="center">
    		<center>
    			<b>Login:</b> <input name="login" type=text size=8>
    			<b>Password:</b> <input name="pass" type=password size=8>
    			<input name="submit" type=submit value="Connexion" >
    		</center>
    	</td>
    </tr>
    </table>
    </form>
    </body>
    </html>

    Code logout.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?
    // Ferme la session de l'utilisateur et retour a l'accueil, et affichage de la demande login/pass car pas de session
    session_start();
    session_destroy();
    header("Location: ./accueil.php");
    ?>

    Code verif.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    <?php
    /*SCRIPT DE VERIFICATION QUE LA PERSONNE EXISTE BIEN DANS LA BASE*/
    $login = $_POST['login'];
    $pass = $_POST['pass'];
    session_start();
    	/* connexion à la base de donnée */ 
    	$dbhost = "localhost";
    	$user = "root";
    	$password = "";
    	$usebdd = "general"; //nom de la base de donnees a remplacer par la votre
    	$connexion = mysql_connect($dbhost,$user,$password) or die ("Impossible de se connecter");
    	$db = mysql_select_db($usebdd, $connexion) or die ("Impossible de sélectionner cette base de données");
    	$identification = "SELECT * FROM utilisateur where `login`='$login' and `pass`='$pass' "; //identification sur le couple login/pass
    	$result = mysql_query($identification) or die ("execution de la requete impossible");
    	// VARIANTE AVEC MOT DE PASSE CRYPTE
    	// ." and pass=password('$passwd')" ,$connexion); 
    		if($result && mysql_num_rows($result) >0 )
    		{
    		// SI OUI alors c'est que la personne a reussi a s'authentifier
    		$valid_user = $login;
    		session_register("valid_user");
    		//niveau d'autorisation de la personne
    		$niveau = mysql_result($result,0,"niveau");
    		session_register("niveau");
    		$code = mysql_result($result,0,"password");
    		session_register("password");
    		}
    		if($result && mysql_num_rows($result) ==0 ) {header("Location: accueil.php?auth=error3"); break;}
    	// Si authentifier alors retour sur accueil en fermant la connexion mysql
    	mysql_close($connexion);
    	header("Location: accueil.php");
    ?>

    Code sessionbis.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?php
    session_start();
    if(!session_is_registered("valid_user")){
    //si la personne arrive pour la 1ere fois sur le site:
    //détéction du 1er passage, marquage de la variable $auth
    if( !isset($_GET['auth']   ) ){ header("Location: accueil.php?auth=0"); }
    //si la personne a deja passer alors marquage de la variable auth=0 alors appel de login.php
    if($_GET['auth'] == 0 ) { require('./login.php'); }
    }
    ?>

    Code session1.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
    /* a integrer au tout debut de chaque page qui doit être sécurisé
    pour l'integrer c'est tres facile
    <?php require('session2.php'); ?> a vous de mettre le bon chemin
    */
    // autorise l'acces au reste de la page SI la personne a un niveau au moins de 1
    session_start();
    if (!session_is_registered("valid_user")  )
    { header("Location: ../accueil.php"); }
    if  ( $_SESSION['niveau'] == 1 || $_SESSION['niveau'] == 2 || $_SESSION['niveau'] == 3 ){}
    ?>

    Code session2.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?
    /* a integrer au tout debut de chaque page qui doit être sécurisé
    pour l'integrer c'est tres facile
    <?php require('session2.php'); ?> a vous de mettre le bon chemin
    */
    // autorise l'acces au reste de la page SI la personne a un niveau au moins de 2
    session_start();
    if (!session_is_registered("valid_user") || $_SESSION['niveau'] != 3 )
    { if ( $_SESSION['niveau'] != 2 ){
    header("Location: ../accueil.php"); } }
    ?>

    Code session3.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <?
    /* a integrer au tout debut de chaque page qui doit être sécurisé
    pour l'integrer c'est tres facile
    <?php require('session2.php'); ?> a vous de mettre le bon chemin
    */
    // autorise l'acces au reste de la page SI la personne a un niveau au moins de 3
    session_start();
    if (!session_is_registered("valid_user") || $_SESSION['niveau'] != 3)
    { header("Location: ../accueil.php"); }
    ?>

    Code error3.php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    /*ce referencer au tout début de la page accueil si retour de variable error*/
     
    <SCRIPT LANGUAGE="JavaScript">
    window.open ('error3.html', 'Avertissement!', config='height=145, width=200, toolbar=no, menubar=no, scrollbars=no, resizable=no, location=no, directories=no, status=no, top=250, left=380')
    </SCRIPT>
    <meta http-equiv="refresh" content="0; url= ../accueil.php" />

    Code error3.html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <html>
    <head><title></title></head><body BGCOLOR="#31659c"><center>
    <b>Erreur! Login ou Password !</b>
    <!-- image rigolote d'un singe qui hoche la tete pour dire NON! -->
    <br><center><img border="0" align=center src="../images/singe.gif"></center><br>
    <FORM>
    <INPUT TYPE="BUTTON" VALUE="Fermer la fenêtre" ONCLICK="window.close()">
    </FORM>
    </center>
    </body>
    </html>

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème page d'authentificaton login
    Par nabil123456 dans le forum NetBeans
    Réponses: 3
    Dernier message: 17/03/2015, 12h09
  2. Problème avec la page de login
    Par manni dans le forum Play!
    Réponses: 1
    Dernier message: 14/03/2013, 17h15
  3. Problème page login
    Par bouzoubad dans le forum Android
    Réponses: 9
    Dernier message: 31/01/2013, 21h19
  4. Problème page de login
    Par HakunA59 dans le forum Silverlight
    Réponses: 4
    Dernier message: 17/12/2010, 15h37
  5. [servlet][jsp] Creer une page de login
    Par Beuj dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 19/03/2004, 17h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo