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 :

[PHP-JS] Pb d'affichage de message d'erreur


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut [PHP-JS] Pb d'affichage de message d'erreur
    Bonjour à tous,
    Voilà j'ai un petit problème, je suis en train de créer un site et j'ai une page intitulée cnx.php pour que les utilisateurs puissent se connecter.
    Mais quand il y a une erreur lors de la saisie du login ou de mot de passe, le message d'erreur ne s'affiche.
    Je pense que c'est à cause du header qui est trop rapide et ne peut donc pas afficher le message d'erreur.

    Voici donc le code :

    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
    <html>
    <head></head>
    <body>
    
    <?php
    
    // Récupération des données du formulaire
    $login=$_POST['GINLOGIN'];
    $mdp=$_POST['GINPASS'];
    echo $login, $mdp;
    //Appel de la classe Oracle et du fichier de connexion
    require_once("../PAGES/include/oracle.class.php");
    require_once("../PAGES/include/connect.php");
    //Connexion à la BDD Oracle
    $bdd = new oracle (NOMUBD,PASSEUBD,SERVEURBD);
    $bdd->connecteBDD();
    
    
    $req="Select * from grcintervenant where GINLOGIN='".$login."'";
    $bdd->requeteLMD($req);
    $nblignes=$bdd->retourneNombreLigne();
    $resultat= $bdd->resultat;
    echo $nblignes;
    for ($x=0;$x < $nblignes; $x++) {
    	$nomint=$resultat[$x]["GINNON"];
    	$pass=$resultat[$x]["GINPASS"];
    	$nomLogin=$resultat[$x]["GINLOGIN"];
    	}
    	
    		
    // Vérification des données dans la base
    if (isset($login)) {
    	if (isset($pass)) {
    		if ($mdp==$pass) {
    			$chemin="../PAGES/index.php";
    			header("Location:".$chemin);
    			exit();
    		}
    	}
    }
    	echo 'alert("Erreur! Login ou mot de passe incorrect!")';
    	header("location:cnx.php");
    	exit();
    
    ?>
    
    </body>
    </html>

  2. #2
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Je ne suis pas sur mais je pense que le problème vient de la manière dont tu gère l'affichage du message d'erreur. alert() est une fonction javascript qui va t'afficher un boite de message dans le navigateur (et non pas un texte dans la page html).

    Peut etre si tu ajoutes ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <script language="JavaScript" type="text/javascript">alert("Erreur! Login ou mot de passe incorrect!");</script>

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut


    J'aurais suggéré la même chose que koopajah, en n'oubliant pas les echos autour

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    echo '<script language="JavaScript" type="text/javascript">alert("Erreur! Login ou mot de passe incorrect!");</script>';

  4. #4
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut
    Désolé mais c'est pareil, y a rien qui s'affiche!!
    Donc si vous avez une autre solution, je suis preneur.
    Merci!!

  5. #5
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Salut,
    Ca corrigera pas ton problème, mais tu as une autre erreur importante !

    Il ne faut aucun code html (ni même aucun echo) avant header(). Cela génère une erreur et tu ne bougeras pas de la page où tu as lancé le script...

    Finalement, je crois que les 2 exit() ne sont pas utiles puisque tu changes de page et que tu arrives à la fin de ton script.

  6. #6
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut
    Exact, je l'ai tout de suite enlevé!!

  7. #7
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    Tu as mis echo "alert..." mais tu n'as pas mis les balises <script> avant et apres comme on te l'a indiqué.

    Par ailleurs tu n'as pas modifié le probleme pour les headers, tu as tjs des balises html au tout début de ton fichier donc ca ne fonctionnera pas

  8. #8
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Et maintenant, ça fonctionne ?

  9. #9
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut
    Non ça ne fonctionne toujours pas .

    voici le code après modification :

    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
    <?php
     
    // Récupération des données du formulaire
    $login=$_POST['GINLOGIN'];
    $mdp=$_POST['GINPASS'];
    echo $login, $mdp;
    //Appel de la classe Oracle et du fichier de connexion
    require_once("../PAGES/include/oracle.class.php");
    require_once("../PAGES/include/connect.php");
    //Connexion à la BDD Oracle
    $bdd = new oracle (NOMUBD,PASSEUBD,SERVEURBD);
    $bdd->connecteBDD();
     
     
    $req="Select * from grcintervenant where GINLOGIN='".$login."'";
    $bdd->requeteLMD($req);
    $nblignes=$bdd->retourneNombreLigne();
    $resultat= $bdd->resultat;
    echo $nblignes;
    for ($x=0;$x < $nblignes; $x++) {
    	$nomint=$resultat[$x]["GINNON"];
    	$pass=$resultat[$x]["GINPASS"];
    	$nomLogin=$resultat[$x]["GINLOGIN"];
    	}
     
     
    // Vérification des données dans la base																					
    if (isset($login)) {
    	if (isset($pass)) {
    		if ($mdp==$pass) {
    			$chemin="../PAGES/index.php";
    			header("Location:".$chemin);
    		}
    	}
    }
    	header("location:cnx.php");
    	echo '<script language="JavaScript" type="text/javascript">alert("Erreur! Login ou mot de passe incorrect!")</script>';
     
     
    ?>

  10. #10
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut
    Comme vous le voyez, j'ai enlevé les balises html .
    Mais ce que je ne comprend pas c'est que les header marchent.
    Dès que je met un login ou mdp faux il me rafraichi la page cnx.php
    et si le login est juste ça me renvoie à l'index.
    Mais le message d'erreur ne s'affiche pas.

  11. #11
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    C'est normal qu'il ne s'affiche pas, rien de ce qui est après un header n'est "exécuté", un header doit être vu comme un die() (hormis que tu lances un autre script a la place).
    Tu peux faire qqch comme ca par contre:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("location:cnx.php?valid=0");
    et dans ta page cnx.php, au début, tu fais ca:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    if(isset($_GET['valid']) && $_GET['valid'] == 0)
    {
    echo '<script language="JavaScript" type="text/javascript">alert("Erreur! Login ou mot de passe incorrect!")</script>';
    }

  12. #12
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut
    J'ai essayé mais ça ne donne rien, merci tout de même.
    Sinon je vous donne également le code de la page cnx.php.
    voici le code :

    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
    <html>
    <head></head>
    <body>
    		<?php
     
    		//Appel de la classe Oracle et du fichier de connexion
    					require_once("../pages/include/oracle.class.php");
    		require_once("../pages/include/connect.php");								
     
    		//Connexion à la BDD Oracle
    		$bdd = new oracle (NOMUBD,PASSEUBD,SERVEURBD);
    		$bdd->connecteBDD();
    		?>	
     
    	        <center><b><font size="6" color="blue">Suivi de maintenance</font></center></b>
     
    		<?
    		if(isset($_GET['valid']) && $_GET['valid'] == 0)
    		{
    		echo '<script language="JavaScript"    type="text/javascript">alert("Erreur! Login ou mot de passe  
                    incorrect!")</script>'; 
     
    		}
     
     
    		// on affiche les 2 champs nécessaires pour se connecter
    		$connex='<tr><td>Login : </td><td><Input type="text" size=10 name="GINLOGIN"></td></tr>
                   <tr><td>Pass : </td><td><Input type="password" size=10 name="GINPASS"></td></tr>';
     
    	       echo '<form name="connex" method="POST" action="verif.php"><center><table>';
    					print("<center><b>$connex</center></b></br>");
    		echo '<tr><td></td><td><Input type="submit" name="valider" value="Connexion"></td></tr></table></center></form>'; //on affiche le bouton Connexion
     
    				?>
     
     
    </body>
    </html>

  13. #13
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut
    Ah! Je crois que je me suis trompé, le premier code que j'ai mis est celle de la page verif.php et non cnx.php.
    Désolé pour cette erreur.

  14. #14
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Change ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // Vérification des données dans la base																					
    if (isset($login)) {
    	if (isset($pass)) {
    		if ($mdp==$pass) {
    			$chemin="../PAGES/index.php";
    			header("Location:".$chemin);
    		}
    	}
    }
    	header("location:cnx.php");
    	echo '<script language="JavaScript" type="text/javascript">alert("Erreur! Login ou mot de passe incorrect!")</script>';
    ?>
    en ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // Vérification des données dans la base																					
    if (isset($login)) {
    	if (isset($pass)) {
    		if ($mdp==$pass) {
    			$chemin="../PAGES/index.php";
    			header("Location:".$chemin);
    		}
    	}
    }
    	echo '<script language="JavaScript" type="text/javascript">alert("Erreur! Login ou mot de passe incorrect!")</script>';
    header("location:cnx.php");
    ?>
    Ca devrait quand même fonctionner un peu mieux...

  15. #15
    Membre expert
    Inscrit en
    Janvier 2005
    Messages
    2 291
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 291
    Points : 3 212
    Points
    3 212
    Par défaut
    je sais pas si c'est lié, mais tu ne peux pas aller a la ligne dans une instruction javascript il me semble, laisse le alert('....'); sur la meme ligne si possible.

  16. #16
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut
    Désolé mais je suis obligé de mettre l'exit().
    Sinon il ne se connecte pas.
    Et avec l'exit, il se connecte mais il n'y a toujours pas de message d'erreur quand le login et mdp est faux!!

    Code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    // Vérification des données dans la base																					
    if (isset($login)) {
    	if (isset($pass)) {
    		if ($mdp==$pass) {
    			$chemin="../PAGES/index.php";
    			header("Location:".$chemin);
    			exit();
    		}
    	}
    }
    	echo '<script language="JavaScript" type="text/javascript">alert("Erreur! Login ou mot de passe incorrect!")</script>';
    header("location:cnx.php");

  17. #17
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Bon pour la forme, voilà ton code corrigé:
    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
    <?php
    //Appel de la classe Oracle et du fichier de connexion
    	require_once("../pages/include/oracle.class.php");
    	require_once("../pages/include/connect.php");								
     
    //Connexion à la BDD Oracle
    	$bdd = new oracle (NOMUBD,PASSEUBD,SERVEURBD);
    	$bdd->connecteBDD();
    ?>	
     
    <center>
    	<h2 style="color:blue; font-weight:bold;">Suivi de maintenance</h2>
    </center>
     
    <?php
    if(isset($_GET['valid']) && $_GET['valid'] == 0){
      echo '<script language="JavaScript" type="text/javascript">alert("Erreur! Login ou mot de passe incorrect!");</script>'; 
    }
    ?>
    <form name="connex" method="post" action="verif.php">
      <label for="login">Login : </label>
      <input type="text" size="10" name="GINLOGIN" id="login" />
      <label for="pass">Pass : </label>
      <input type="password" size="10" name="GINPASS" id="pass" />
      <input type="submit" name="valider" value="Connexion" />
    </form>
    Ensuite, tu fais appel à des constantes dans ta classe de connexion, mais où sont-elles définies (NOMUBD,PASSEUBD,SERVEURBD)?

  18. #18
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut
    les constantes sont définies dans une page à part appelé connect.php .
    Et comment on fait appel à des constantes dans la classe de connexion?

    Voici le code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <?php
    /****************************************************************
    
    Page de connexion à la BDD
    
    *****************************************************************/
     
    	define ('NOMUBD',"ATALGRC");
    	define ('PASSEUBD',"ATALGRC");
    	define ('SERVEURBD', "servweb");
    ?>

  19. #19
    Membre confirmé Avatar de mathieugamin
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    572
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 572
    Points : 627
    Points
    627
    Par défaut
    Est-ce que tu peux mettre un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <?php error_reporting(2047); ?>
    au début de ton script de vérification ?

    S'il y a une erreur, on la verra à coup sûr...

  20. #20
    Membre du Club
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 65
    Points : 59
    Points
    59
    Par défaut
    En fait c'est bon!!
    Maintenant ça marche parfaitement grâce au code de mathieugamin.
    et j'ai rajouté le code qu'avait proposé koopajah à propos du header :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    header("location:cnx.php?valid=0");
    Merci à tous !!

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

Discussions similaires

  1. [MySQL] [PHP] Gestion de l'affichage des messages privés entre membre
    Par B.michael dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 26/11/2010, 10h05
  2. [PostGreSQL] Empêcher l'affichage de message d'erreur
    Par FapInfo dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/04/2007, 11h27
  3. [PostgreSQL] eviter l'affichage des messages d'erreur
    Par Gandalf dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 30/03/2007, 10h15
  4. affichage de message d erreur
    Par *alexandre* dans le forum JSF
    Réponses: 2
    Dernier message: 18/09/2006, 11h02
  5. [PHP-JS] Affichage de message d'erreur
    Par lodan dans le forum Langage
    Réponses: 7
    Dernier message: 20/07/2006, 18h50

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