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 :

Texte qui s'affiche dans une autre page.


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut Texte qui s'affiche dans une autre page.
    Bonjour,

    Je suis entrain de finaliser mon script d'authentification et j'ai une petite question.

    Sur le page index.php

    Si l'utilisateur se trompe dans le formulaire de connexion, je souhaiterais que le script le reconduise sur la page erreur_auth.php C'est chose faite avec header('Location: erreur_auth.php');

    Cependant j'aimerais qu'une fois la redirection faite, que le script affiche le message d'erreur qui correspond à la faute du formulaire. Et ça, je ne sais pas du tout comment m'y prendre. :s

    Exemple :

    Un utilisateur oublie de renseigner le mot de passe dans le formulaire. Il va être redirigé vers erreur_auth.php et il verra sur cette page le message d'erreur : Le mot de passe n'a pas été remplis.

    Merci.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 77
    Par défaut
    Dans le header("Location:...") tu met dans l'url en get un parametre correspondant a un numero d'erreur. Et ensuite dans ton fichier erreur_auth.php avec un switch sur ce parametre tu affiche le bon message

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Merci de m'avoir répondu si rapidement.

    Alors voilà ce que j'ai fais :

    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
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    <?php 
    session_start();
    function search_result($pseudo){
    	$mdp_querry = mysql_query('SELECT mdp FROM membre WHERE pseudo="'.$pseudo.'"');
    	if($echo_mdp = mysql_num_rows($mdp_querry)){
    		return $echo_mdp;	
    	}
    	return $echo_mdp;	
    }
     
    function verification($pseudo, $motdepasse, $echo_mdp){
    	if(empty($pseudo) || empty($motdepasse)){
    		$erreur = 'Un ou plusieurs champs du formulaire sont vides';
    		return 1;
    	}
    	$mdp_querry = mysql_query('SELECT mdp FROM membre WHERE pseudo="'.$pseudo.'"');
    	$data = mysql_fetch_assoc($mdp_querry);
    	if($data['mdp'] != $motdepasse){
    		$erreur = 'Mauvais mot de passe';
    		return 2;
    	}
    	elseif($echo_mdp == 0){
    		$erreur = 'Mauvais pseudo';
    		return 3;
    	}
    	else{
    		$erreur = null;
    		return $erreur;
    	}
    }
     
    if(isset($_POST['auth_pseudo']) && isset($_POST['auth_mdp'])){
     
    	$host = "localhost"; 
    	$login = "Jean"; 
    	$mdp = ""; 
    	$bdd = "projet"; 
     
    	$co_serv = mysql_connect($host,$login,$mdp);
    	$co_bdd  = mysql_select_db($bdd);
     
    	if(!$co_serv || !$co_bdd){
    		$erreur = 'Connexion au serveur distant impossible'; 
    		return 4;
    	}
     
    	$pseudo = mysql_real_escape_string($_POST['auth_pseudo']);
    	$motdepasse = sha1($_POST['auth_mdp']);
     
    	$echo_mdp = search_result($pseudo);	
     
    	$erreur = verification($pseudo, $motdepasse, $echo_mdp);
    	if(empty($erreur)){
    		$_SESSION['pseudo'] = $pseudo;
    		header('Location: index.php');
    	}
    	else{
    		header('Location: erreur_auth.php?erreur="'.$erreur.'"');
    		if(isset($_GET[$erreur])){
    			switch($erreur){
    			case 1:
    				$erreur = 'Un ou plusieurs champs du formulaire sont vides';
    			case 2:
    				$erreur = 'Mauvais mot de passe';
    			case 3:
    				$erreur = 'Mauvais pseudo';
    			case 4:
    				$erreur = 'Connexion au serveur distant impossible';
    			}
    		}
    	}
    }
    ?>
    Voici l'adresse URL => http://127.0.0.1/projet/erreur_auth.php?erreur="1"

    Cependant, les erreurs ne s'affichent toujours pas. :s
    Cela doit venir de mon script, mais je ne sais pas où.

    Merci.

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 77
    Par défaut
    Il faut que tu enleve les " de ton url qui devient Car en fait ta variable erreur ce sera pas 1 mais "1"

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    134
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2009
    Messages : 134
    Par défaut
    Ok, donc dans l'URL, je vois bien désormais le 1 sans "" autours.

    Cependant, les messages d'erreurs ne s'affichent toujours pas.

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 77
    Par défaut
    Une petite erreur c'est glissée dans ton code au niveau de isset et switch

    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
    if(isset($_GET["erreur"])){
    			switch($_GET["erreur"]){
    			case 1:
    				$erreur = 'Un ou plusieurs champs du formulaire sont vides';
    break
    			case 2:
    				$erreur = 'Mauvais mot de passe';
    break;
    			case 3:
    				$erreur = 'Mauvais pseudo';
    break;
    			case 4:
    				$erreur = 'Connexion au serveur distant impossible';
    break;
    			}
    		}
    n'oublie pas les break; pour chaque case.

Discussions similaires

  1. [XL-2010] référence correspondante qui s'affiche dans une autre fenêtre
    Par lionhigh dans le forum Excel
    Réponses: 0
    Dernier message: 27/03/2014, 11h54
  2. Réponses: 3
    Dernier message: 30/05/2012, 09h01
  3. [TinyMCE] Afficher le texte dans une autre page
    Par Général03 dans le forum Bibliothèques & Frameworks
    Réponses: 2
    Dernier message: 16/02/2010, 09h26
  4. Réponses: 2
    Dernier message: 31/05/2007, 11h01
  5. (html)afficher une page dans une autre page
    Par shirya dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 14/09/2005, 14h59

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