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 :

Erreur entête dans page de connexion


Sujet :

Langage PHP

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut Erreur entête dans page de connexion
    J'ai 2 fichiers php : Connexion.php et verif2.php(il va intéroger la base pour verifier si le login et le mdp existe.)

    Connexion.php :
    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
    <?
    /*===================================================*/
    //		Connexion.php
    /*===================================================*/
    	include_once("lib/frame.class.php");
    	//include_once("db_stage.class.php");
     
     
    	FRAME::en_tete();
    	FRAME::menu();
    	FRAME::corps_begin("Login");
    	login();
    	FRAME::corps_end();
    	FRAME::pied();
    ?>
     
    <?
    	function login(){           // Cas 0
     
     
    	echo "</form>";
     
    	echo "<body><center>\n";
    	echo "<form action=\"verif2.php\" method=\"POST\">\n";
    		echo "Nom: <input type=\"text\" name=\"nom\" value=\"\"><br>\n";
    		echo "pass: <input type=\"password\" name=\"pass\" value=\"\"><br>\n";
    	echo "<input type=\"submit\" name=\"ok\" value=\"ok\"><br>\n";
     
    	//on récupère le message d'erreur
    	$mesg = $_GET["message"];
     
    	echo "<br><b><font color = \"red\">$mesg </font></b> ";
     
    	echo "</center></body>\n";
     
     
     
     
     
    }
    verif2.php :

    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
    <?
    //session_start();
    	if( isset( $_POST['nom']) && isset($_POST['pass'])){
    		$nom = $_POST['nom'];
    		$pass = $_POST['pass'];
    		include_once("lib/db_stage.class.php");
     
    	if (verification($nom,$pass)==true){
     
    		session_regenerate_id(); 
    		session_start();
    		$_SESSION['nom']=$nom;
     
    		header("Location: stageOK.php");
    		}
    	if (verification($nom,$pass)==false){
    	header("Location: stage.php");}
     
    	}
    	else{
     
    		header("Location: stage.php");
    	}
    	?>
    	<?
    	function verification($nom,$pass){
    	include_once("lib/db_stage.class.php");
    		$req = "select count(*) as n  from pac_utilisateur where nom='$nom' ";
    		//echo $req."<br>";
    		$t = DB_STAGE::select2($req);
    		$n = $t[0]->n;
    		if($n == 0) {return false;}// inexistant
     
    		$req = "select pass from pac_utilisateur where nom='$nom' ";
    		//echo $req."<br>";
    		$t = DB_STAGE::select2($req);
    		$pass_ = $t[0]->pass;
     
    		if($pass==$pass_){
    			return true;	// pass bon
    		} else {
    			return false;	// pass errone
    		}
    	}
     
    	?>
    Et il me met l'erreur :
    Warning: session_regenerate_id() [function.session-regenerate-id]: Cannot regenerate session id - headers already sent in /var/www/romain/projet/public_html/TPSynthese/verif2.php on line 10

    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /var/www/romain/projet/public_html/TPSynthese/lib/db_stage.class.php:141) in /var/www/romain/projet/public_html/TPSynthese/verif2.php on line 11

    Warning: Cannot modify header information - headers already sent by (output started at /var/www/romain/projet/public_html/TPSynthese/lib/db_stage.class.php:141) in /var/www/romain/projet/public_html/TPSynthese/verif2.php on line 14

    Merci d'avance pour les réponses
    Romain

  2. #2
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Bonjour,

    En premier lieu, je te conseillerai de vérifier l'intégrité de ton code... Même HTML.

    Un code bien indenté permet d'éviter des erreurs de débutants. De même, il est gage d'une lisibilité accrue et d'une maintenance plus aisée.

    Voici ton code, quelques erreurs HTML corrigées... D'autres non... J'espère que tu vas les trouver ^^

    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
     
    <?php	// Et oui... Les short tag, c'est le mal.
    	/*===================================================*/
    	//		Connexion.php
    	/*===================================================*/
    	include_once("lib/frame.class.php");
    	//include_once("db_stage.class.php");
     
     
    	FRAME::en_tete();
    	FRAME::menu();
    	FRAME::corps_begin("Login");
    	login();
    	FRAME::corps_end();
    	FRAME::pied();
     
    	function login()           // Cas 0
    	{
    ?> 
     
    	</form>
    	<body>
    		<center>
    			<br />
    			<form action="verif2.php" method="POST">
    				<br />
    				Nom: 
    				<input type="text" name="nom" value="" />
    				<br />
    				<br />
    				Pass: 
    				<input type="password" name="pass" value="" />
    				<br />
    				<input type="submit" name="ok" value="ok" />
    				<br />
    				<br />
     
    				<?php
    					//on récupère le message d'erreur
    					$mesg = $_GET["message"];
    				?>
    				<br />
    				<b>
    					<font color = "red">
    						<?php $mesg ?>
    					</font>
    				</b>
    		</center>
    	</body>
    <?php
    	}
    ?>
    Si tu veux utiliser un Header, il ne faut en aucun cas que tu ais eu quelque chose d'affiché dans le navigateur, ne serait-ce qu'un espace.

    Autre chose, ton second morceau de code est assez peu judicieux.

    Tu utilises deux requêtes, l'une pour trouver si le nom existe, l'autre voir si le code est bon.
    Tu renvoies false pour les deux échecs.
    Pourquoi ne pas faire un message personnaliser? Ou renvoyer un entier spécifique que tu traiterais ensuite?

    Si tu n'en vois pas l'utilité, ne fais donc qu'une seule requête.
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  3. #3
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    Je ne comprend pas car je n'ai pas d'espace avant les headers mais j'ai toujours des erreur avec le header ...

  4. #4
    Inactif   Avatar de Deallyra
    Profil pro
    Étudiant
    Inscrit en
    Février 2007
    Messages
    1 997
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2007
    Messages : 1 997
    Par défaut
    Quel est le contenu de include_once("lib/db_stage.class.php");
    *Si la réponse vous convient, n'oubliez pas le tag
    *Exprimez vous dans un français correct; on prend le temps de vous lire, prenez le temps de bien écrire.
    *Et comment on interprète votre code? N'oubliez pas la balise!

    *Pour une mise en page simple avec des divs.
    *Pour faire des formulaires xHTML CSS.

  5. #5
    Membre habitué
    Inscrit en
    Décembre 2008
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Décembre 2008
    Messages : 11
    Par défaut
    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
    <?
    class DB_STAGE{
    	/************************************************************************/
    	//	Connexion à la base
    	/************************************************************************/
            function connect(){
    		$connexion=pg_connect("user=romain password=sql host=localhost dbname=romain") or die ("erreur de la requete");
    		return $connexion;
     
            }
    	/***************************************************************/
            // SELECT generique sur une table quelconque
            /***************************************************************/
        function select2($req){
    		$tab=array();
                    $connexion=DB_STAGE::connect();
                    $row = 0;
                    $reponse = pg_query($connexion, $req) or die("requete impossible !\n");
    		while ($tuple = pg_fetch_object($reponse)){
    		      $tab[$row]=$tuple;
    		      $row++;
                    }       
                    return $tab;
    		 DB_STAGE::close($connexion);
            }
    	/***************************************************************/
            // MAJ generique sur une table quelconque
            /***************************************************************/
            function maj($req){
                    $connexion=DB_STAGE::connect();
                    pg_query($connexion, $req) or die("requete impossible !\n");
                    DB_STAGE::close($connexion); 
            }
    	/***************************************************************/
            // Fermeture de la connexion
            /***************************************************************/
            function close($connexion){
    		pg_close($connexion);
            }
     
     
     
     
    	function select($requete){
    	$connexion = DB_STAGE::connect();
    		$reponse = pg_query($connexion, $requete) or die("requete impossible !");
    		return $reponse;
     
    		DB_STAGE::close($connexion);
    	}
     
     
    }
    ?>

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/06/2007, 17h34
  2. [Tableaux] erreur inconnue dans mes pages
    Par ANISSS dans le forum Langage
    Réponses: 6
    Dernier message: 22/02/2007, 12h12
  3. Erreur ODBC dans une page ASP
    Par cherniismail2210 dans le forum ASP
    Réponses: 1
    Dernier message: 24/07/2006, 09h30
  4. erreur bizarre dans une page asp
    Par leclone dans le forum ASP
    Réponses: 1
    Dernier message: 19/05/2006, 01h28
  5. [erreur] Probleme Applet dans page HTML
    Par John Blobsmith dans le forum Eclipse Java
    Réponses: 4
    Dernier message: 10/07/2005, 14h49

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