Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#1 15-12-2007 16:14:30

jj0hns0n
Membre
Date d'inscription: 03-03-2007
Messages: 15

Header pour changer de page lors dun login

je suis debutant en programation php jaurais besoin daide pour pouvoir changer de page lors d'un login

merci de votre aide smile

Jonathan

je recoit ce message derreur

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\modeles\mysql_connect-1.php:20) in c:\program files\easyphp1-8\www\login-1.php on line 48

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\modeles\mysql_connect-1.php:20) in c:\program files\easyphp1-8\www\login-1.php on line 49

Warning: Cannot modify header information - headers already sent by (output started at c:\program files\easyphp1-8\www\modeles\mysql_connect-1.php:20) in c:\program files\easyphp1-8\www\login-1.php on line 50



Voici le code

Code:

<?php # Listing 6.7 - login-2.php

if (isset($_POST['submit'])) 
{ // Traiter le formulaire

  // connexion à la base de données
  require_once ('modeles/mysql_connect-1.php'); 

  // Créer une fonction pour échapper les données.
  function echappement ($data)
  { global $bd;                  // connexion nécessaire
    if (ini_get('magic_quotes_gpc')) 
    { $data = stripslashes($data);
    }
    return mysql_escape_string($data);
  } // fin de la fonction

  $message = NULL;                            // créer une variable vide

   // Vérifier la présence d'un nom d'utilisateur
  if (empty($_POST['nom_utilisateur']))
  { $u = FALSE;
    $message .= '<p>Vous avez oublié d\'indiquer votre nom $1$
d\'utilisateur</p>';
  }
  else
  { $u = echappement($_POST['nom_utilisateur']);
  }

  // Vérifier l'existence d'un mot de passe
  if (empty($_POST['mot_de_passe']))
  { $mp = FALSE;
    $message .= "<p>Vous avez oublié d'indiquer votre mot de passe</p>";
  }
  else
  { $mp = echappement($_POST['mot_de_passe']);
  }

-------------------------------------------------------------------------------------------------------------
  
  if ($u && $mp)
  { // Si tout est OK, récupérer les champs id_utilisateur et 
    // prenom de ce couple (nom_utilisateur/mot_de_passe)
    $rq = "SELECT id_utilisateur, prenom FROM utilisateurs" .
          " WHERE nom_utilisateur='$u' AND mot_de_passe=PASSWORD('$mp')";
    $result = @mysql_query ($rq);     // Exécuter la requête
    $ligne = mysql_fetch_array($result, MYSQL_NUM); // renvoie un enreg 
    if($ligne)
    { // On a trouvé un enregistrement
        session_name("Votre visite");
        init_set ('session_use_cookies', 0);
        session_start();
        $_SESSION['prenom'] = $ligne[1];
        $_SESSION['id_utilisateur'] = $ligne[0];
        header ("Location:  http://" . $_SERVER['HTTP_HOST'] .
              dirname($_SERVER['PHP_SELF']) . "/accueil2.php");
      exit();             // Quitter le script.
    }

-----------------------------------------------------------------------------------------------------------------------------

    else 
    { // Aucun enregistrement ne répond à la requête
      $message = "<p>Le nom d'utilisateur et le mot de passe indiqués ".
                 "ne correspondent à personne dans ce fichier</p>";
    }
    mysql_close(); // Refermer la connexion à la base de données
  }
  else 
  { $message .= '<p>Merci de recommencer à vous identifier</p>';
  }
} // Fin du premier bloc conditionnel

// Définir la page de titre et afficher l'en-tête.
$titre_page = 'Login-2';
include ('modeles/entete.inc');

// Afficher éventuellement un ou plusieurs messages d'erreur
if (isset($message))
{ echo "<font color='red'>$message</font>";
}
?>

<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
<fieldset>
<legend>Veuillez renseigner le formulaire ci-dessous :</legend>

<p><b>Nom d'utilisateur :</b>
<input type="text" name="nom_utilisateur" size="10" maxlength="20"
       value="<?php if (isset($_POST['nom_utilisateur'])) 
              echo $_POST['nom_utilisateur']; ?>"/>
</p>

<p><b>Mot de passe :</b>
<input type="password" name="mot_de_passe" size="20" maxlength="20" />
</p>

<div align="center"><input type="submit" name="submit" value="Login" /></div>

</form><!-- Fin du formulaire -->

<?php
// Fin de l'instruction conditionnelle principale
include ('modeles/pied_page.inc'); // Inclure le pied de page
?>

Hors ligne

 

#2 16-12-2007 14:16:57

vitesse
Membre
Date d'inscription: 03-11-2007
Messages: 24

Re: Header pour changer de page lors dun login

je te dirais que le message proviens de   session_start();  ou header   dans la section avant les pointillé, car tu dois envoyer de qujoi au browser a affiché avant de démarer la session ou d'envoyer l'header  ce qui est interdit. Je crois que ton script dois faire un erreur plus haut et comme il affiche l'erreur sur le site web il empeche session_start() ou header de fonctrionné, d'ou ton message d'erreur.  Je suis pas un grand expert, mais j'ai souvent fait face a ce genre de probleme

Hors ligne

 

#3 16-12-2007 14:32:03

jj0hns0n
Membre
Date d'inscription: 03-03-2007
Messages: 15

Re: Header pour changer de page lors dun login

Jai finalement trouvé le problème à mon script, l'erreur provenait de require_once mysql_connect-1.php.

Jai donc pris ce que contenant se script pour tout simplement l'ecrire dans le fichier de login et tout fonctionne maintenant. Merci

Hors ligne

 

#4 17-12-2007 03:42:23

lolo3129
Membre
Lieu: Paris
Date d'inscription: 10-05-2005
Messages: 482
Site web

Re: Header pour changer de page lors dun login

hello,

il y a probablement un espace ou un retour chariot dans le fichier mysql_connect-1.php en dehors des balises php, ce qui fait que tu ne peux plus envoyer de header ensuite. Si tu corriges ce petit problème, tu pourras à nouveau inclure le fichier (ce qui est quand même mieux du point de vue de la maintenabilité (un seul fichier pour se connecter à ta base de données)

++

Hors ligne

 

#5 17-12-2007 14:05:33

jj0hns0n
Membre
Date d'inscription: 03-03-2007
Messages: 15

Re: Header pour changer de page lors dun login

Merci lolo3129 je vais investiguer cette nouvelle réponse et je vous tiens au courrant smile

Hors ligne