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 :

accés à une page [PHP 4]


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 015
    Points : 182
    Points
    182
    Par défaut accés à une page
    Bonsoir,

    J'ai fais un formulaire où je demande les identifiants d'une personne.

    Code : 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
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Page protégée par mot de passe</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	</head>
    	<body>
    		<p>Veuillez entrer le mot de passe  :</p>
    		<form action="secret.php" method="post">
    			<p>
     
    		    Pseudo: <input type="text" name="login" /> <br>
    			MDP:	<input type="password" name="pass" />
    			<input type="submit" value="Valider" />
     
    			</p>
    		</form>
     
    	</body>
    </html>
    J'aimerais crée un accés securisé, si là personne àun code elle peut accéder à la page sinon il y a un message qui indique mauvais code

    j'ai fais ça mais ça marche pas
    Code : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Codes d'accès au serveur central de la NASA</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	</head>
    	<body>
     
        <?php
     
    include("_connect.php");
     
    if($_POST['login']=="" || $_POST['pass']=="") // Si le formulaire a &eacute;t&eacute; envoy&eacute;
    {
    	$login = addslashes(htmlentities ($_POST['login']));
        $password = htmlentities ($_POST['pass']);
     
     
    	if($password==$val["pass"])
    	{
     
    		echo "le code est bon";
     
    	}
     
    	else
    	{
    		echo "le code n'est pas bon";
     
    	}
     
     
    } mysql_close();
    ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    	<head>
    		<title>Centre de l'Aude - Espace prive</title>
    	<body>
     
    	    <?php
    	            echo "voici l'espace privé";
    	    ?>
     
       </body>
    </html>
    Merci pour votre aide, bonne nuit

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonsoir,
    il manque la partie où on compare les login et pwd entrés à ceux dans la BdD.
    ps : penser à protéger la requête contre les injections sql.

  3. #3
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2008
    Messages : 106
    Points : 152
    Points
    152
    Par défaut
    Citation Envoyé par peter11 Voir le message

    Reprenons ton code point par point.
    Code : 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
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
                    <!-- ah quand même. J'espère que les serveurs de la nasa sont mieux protégés que ça. -->
    		<title>Codes d'accès au serveur central de la NASA</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	</head>
    	<body>
    
        <?php
    // passons sur le fait que l'appel à la base de données se fasse au milieu de la page, ce n'est rien à côté du reste...
    include("_connect.php");
    
    // Donc là tu testes si au moins un champs c'est vide et si c'est le cas tu considères que le formulaire est correctement rempli ??!!
    if($_POST['login']=="" || $_POST['pass']=="") // Si le formulaire a &eacute;t&eacute; envoy&eacute;
    {
    // pourquoi htmlentities ? SQL ne comprends pas le html de toute façon...
    	$login = addslashes(htmlentities ($_POST['login']));
    // pas de addslashes pour $password ? au passage il veut mieux utiliser de vraies fonctions pour échapper les données avant de les passer au serveur sql, genre mysql_real_escape_string. Mais t'en aurais pas besoin si ton mdp était hashé, comme dans tout système d'authentification par mot de passe correct...
        $password = htmlentities ($_POST['pass']);
    
    // $val["pass"] ? d'ou il vient celui là ?
    	if($password==$val["pass"])
    	{
    
    		echo "le code est bon";
    
    	}
    
    	else
    	{
    		echo "le code n'est pas bon";
    
    	}
    
    
    } mysql_close();
    ?>
    
    <!-- tiens j'ai l'impression qu'on se répète un peu... y'avait pas déjà une entête plus haut ? -->
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" >
    	<head>
    [...] etc.
    Je veux pas être méchant mais manifestement tu ne comprends pas ce que tu fais. Lis une tuto PHP à tête reposée, c'est un langage facile, à condition de comprendre les bases du langage et du protocole HTTP tu pourras faire des petits scripts comme tu veux rapidement.

  4. #4
    Membre habitué
    Homme Profil pro
    Inscrit en
    Août 2010
    Messages
    1 015
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2010
    Messages : 1 015
    Points : 182
    Points
    182
    Par défaut PHP
    oui j'avoue que je ne comprends pas tout et moi non plus je veux pas être méchant mais ton intervention ne me sert pas tropà grnad chose!

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    18
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 18
    Points : 21
    Points
    21
    Par défaut
    J'espère que ceci pourra t'aider

    Code : 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
    <?php
    include("_connect.php");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
    	<head>
    		<title>Page protégée par mot de passe</title>
    		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    	</head>
    	<body>
    <?php
    	if(isset($_POST['login'] and isset($_POST['pass']))
    	{
    		$verif=new _connect();
    		$id=_connect->selectIdCompte($_POST['login'],$_POST['pass']);
    		if($id<>""){
    			$_SESSION['id']=$id;
    		}
    	}		
    	if(isset($_SESSION['id']){
    	include('/controleur/espace_privé.html');
    	}else{
    	include('/view/formulaire_identification.html');
    	}
    ?>
     </body>
    </html>

  6. #6
    Invité
    Invité(e)
    Par défaut
    Principe :
    Si le formulaire a été transmis :
    1/ on récupère les valeurs : $_POST -> $login_recu et $passe_recu
    2/ on fait une requete dans la bdd pour savoir s'il existe un enregistrement avec ce login
    CONSEIL : le mieux est d'enregistrer les mot de passe hashés (md5 ou sha, ...)
    3/ si un login existe dans la bd :
    $passe_recu_hash = fonction_de_hashage($passe_recu)
    on compare $passe_recu_hash avec le $passe_hash_de_la_bd_pour_ce_login
    4/ si le passe est bon -> OK : on enregistre une variable de session : $_SESSION['user_ok'] = true; (par exemple)
    5/ SINON : erreur ! on ne passe pas !

    Tu as un code "tout-fait" (-> recherche gogole : "espace membre php")

    Tu peux aussi jeter un oeil ici :
    - Authentification d'un espace membre avec PHP
    Dernière modification par Domi2 ; 19/08/2011 à 09h11.

  7. #7
    Membre habitué
    Homme Profil pro
    Lycéen
    Inscrit en
    Décembre 2008
    Messages
    106
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Décembre 2008
    Messages : 106
    Points : 152
    Points
    152
    Par défaut
    Citation Envoyé par peter11 Voir le message
    oui j'avoue que je ne comprends pas tout et moi non plus je veux pas être méchant mais ton intervention ne me sert pas tropà grnad chose!
    évidemment si tu le prends comme ça mon intervention ne sert pas à grand-chose. Maintenant si tu écoutes mon conseil (à savoir apprendre avant de se lancer et essayer de comprendre ce que tu fais) tu verras ce sera beaucoup plus simple.

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

Discussions similaires

  1. [Cookies] Pas plus d'un accès à une page?
    Par Davidabroad dans le forum Langage
    Réponses: 5
    Dernier message: 04/10/2006, 22h46
  2. Réponses: 4
    Dernier message: 28/09/2006, 13h37
  3. [MySQL] PB pour l'acces à une page
    Par lolodelp dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 04/07/2006, 11h27
  4. [Reseau] Accés à une page interne
    Par vincedjs dans le forum Apache
    Réponses: 4
    Dernier message: 02/02/2006, 10h20
  5. Bloquer l'accès à une page en fonction du navigateur
    Par 10-nice dans le forum Balisage (X)HTML et validation W3C
    Réponses: 2
    Dernier message: 30/08/2005, 15h29

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