begin process at 2012 05 30 20:58:12
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive PHP

 > 

Archives

 > 

AU SECOURS !!!

 > 

Fonction header redirection dans include


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Fonction header redirection dans include

samedi 1 avril 2006 à 14:25:40 | Fonction header redirection dans include

drebin78945

Bonjour,

Cette section correspond super bien à mon cas!!!!

J'ai une page d'index unique sur mon site avec des variables d'url (index.php?pid=21212 par exemple)

Sa structure est en gros la suivante dans l'ordre de haut dans en bas dans un tableau:

include $entete
include $login
include $corps

le probleme vient de login.php où j'ai un script php pour permettre aux utilisateur de se connecter, ou afficher le pseudo si l'utilisateur est connecté. jusque là tout va bien.

Le probleme est que cet include $login contient des header pour rediriger vers une page ou sont stockés les messages d'erreurs en cas d'echec d'authentification ou autre, lien du type index.php?pid=666&erreur=utilisateur_inconnu

si je tape ce lien directement dans mon navigateur localhost/index.php?pid=666&erreur=utilisateur_inconnu    ca marche très bien.

Par contre quand j'appelle cette page en faisant reellement une erreur d'authentification, ca m'affiche le message classique "Warning: Cannot modify header information - headers already sent by" bla bla bla

Pourtant j'ai bien nettoyé mon code, ya pas de ligne vide ou quoi...

je comprend pas pourquoi!!!

Merci pour votre aide!!!

ps: je sais pas si on peut poster le code, je tente, j'espere que je vais pas me faire engueuler!!

le code de l'include $login :

<?php
if (isset($_POST['login'])){
    $login = $_POST['login'];
    $pass = md5($_POST['pass']);
// requete sur la table administrateurs
mysql_select_db($database, $lien);
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'"); // requête sur la base administrateurs
$verif = mysql_query($verif_query, $lien) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
    if ($utilisateur) { // On test s'il y a un utilisateur correspondant
        session_register("authentification"); // enregistrement de la session
        $id_user = $row_verif['id_user'];
        //-------------enregistrement de la connexion dans la BD-----------------------
         $date = date("Y-m-d");   //la date de connextion
         $time = date("G:i:s");   //l'heure de connextion
         $ip = $_SERVER['REMOTE_ADDR'];    //l'adresse ip de connextion
        $requete = sprintf(" INSERT INTO connexion(ref_id_user, date_connex, time_connex, adresse_ip_connex)
             VALUES('$id_user', '$date', '$time', '$ip')");
        mysql_select_db($database, $lien);
        mysql_query($requete, $lien) or die('Erreur SQL !'.$requete.''.mysql_error());
        $id_connextion = mysql_insert_id();
        //-------------------------------------FIN ENREGISTREMENT DE LA CONNEXTION----------------------------------------------------
        if ($row_verif['statuts'] == 1){
              header("Location:index.php?pid=166&erreur=session_bloquer"); // redirection si utilisateur si session bloqués
        }
        elseif($row_verif['statuts'] == 3){
             header("Location:index.php?pid=166&erreur=session_non_valider"); // redirection si utilisateur session non valider
        }
        else{
        // déclaration des variables de session
        $_SESSION ['id_user'] = $id_user;
        $_SESSION['privilege'] = $row_verif['privilege']; // le privilège de l'utilisateur (permet de définir des niveaux d'utilisateur)
        $_SESSION['nom'] = $row_verif['nom']; // Son nom
        $_SESSION['prenom'] = $row_verif['prenom']; // Son Prénom
        $_SESSION['login'] = $row_verif['login']; // Son Login
        $_SESSION['pass'] = $row_verif['pass']; // Son mot de passe (à éviter)
        $_SESSION ['mail'] = $row_verif['mail']; // son mail
        $_SESSION ['tel'] = $row_verif['tel']; //son telephone fixe
        $_SESSION ['portable'] = $row_verif['portable']; //son telephone portable
        $_SESSION ['statuts'] = $row_verif['statuts'];
        $_SESSION ['id_connex'] = $id_connextion;  //enregistrement de l'id de conexion (compteur)
        $_SESSION ['variable_divers'] = null; //permet de stocker une variable!!
        //ouverture de la page d'accueil   avec pop up
        print " <script language='javascript'> location.replace ('index.php');</script>";
        header("Location:/index.php");
        /*print " <script>
              fs=window.open('','','resizable,scrollbars=auto');
              fs.blur();
              fs.resizeTo(screen.width,screen.height);
              fs.moveTo(0,0);
              fs.location= 'index.php';
              fs.focus();
              </script>";  */
        header("Location:index.php"); // redirection si OK   //sans pop up
        }
    }
        else {
        header("Location:index.php?pid=166&erreur=login"); // redirection si utilisateur non reconnu
    }
}
// GESTION DE LA Déconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ // Test sur les paramètres d'URL qui permettront d'identifier un "contexte" de déconnexion
$prenom = $_SESSION['prenom']; // On garde le prénom en variable pour dire au revoir (soyons polis :-)
session_unset("authentification");
header("Location:index.php?pid=166&erreur=delog");
}
?>
<html>
<body>
<form action="" method="post" name="connect" class="Style6">
  <table width="26%" border="0" cellpadding="0" cellspacing="0" >
      <tr>
        <td align="left" valign="middle"><table width="94%"  border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td height="19" colspan="2" align="left" valign="middle"><img src="../images/images_minilogin/mini_login_01.gif" width="90" height="19"></td>
            <td width="31%" align="left" valign="middle"><a href="index.php?pid=104"><u>S'inscrire</u></a></td>
            <td width="14%" align="left" valign="middle">&nbsp;</td>
            <td width="29%" align="left" valign="middle">&nbsp;</td>
          </tr>
          <tr>
            <td width="9%" height="22" align="left" valign="middle"><img src="../images/images_minilogin/mini_login_02.gif" width="32" height="19"></td>
            <td width="17%" align="left" valign="middle"><input name="login" type="text" class="box1" id="login" size="8" maxlength="15"></td>
            <td align="left" valign="middle"><img src="../images/images_minilogin/mini_login_03.gif" width="84" height="19"></td>
            <td align="left" valign="middle"><input name="pass" type="password" class="box1" id="pass" size="8" maxlength="15"></td>
            <td align="left" valign="middle"><div align="center">
              <input type="submit" name="Submit" value="Ok">
            </div></td>
          </tr>
         
        </table></td>
      </tr>
  </table>
    <a href="../includes.pages/inscription.php"><u><b></u></a>
</form>
</body>
</html>



samedi 1 avril 2006 à 14:37:47 | Re : Fonction header redirection dans include

yanne1985

vous avez la balie <script> avant  header("Location : xxxxxxxxxxxxxxxx")
toujour header et placer avant les echo et les balises HTML



samedi 1 avril 2006 à 15:32:18 | Re : Fonction header redirection dans include

drebin78945

Merci pour la reponse.
J'ai supprimé ce script et ca ne fonctionne toujours pas. Mon code m'a l'air pourtant propre maintenant:

<?php
if (isset($_POST['login'])){ // execution apres envoi du formulaire
    $login = $_POST['login']; // mise en variable du nom d'utilisateur
    $pass = md5($_POST['pass']); // mise en variable du mot de passe crypté
// requete sur la table administrateurs (on récupère les infos de la personne)
mysql_select_db($database, $lien);
$verif_query=sprintf("SELECT * FROM utilisateurs WHERE login='$login' AND pass='$pass'"); // requête sur la base administrateurs
$verif = mysql_query($verif_query, $lien) or die(mysql_error());
$row_verif = mysql_fetch_assoc($verif);
$utilisateur = mysql_num_rows($verif);
    if ($utilisateur) { // On test s'il y a un utilisateur correspondant
        session_register("authentification"); // enregistrement de la session
        $id_user = $row_verif['id_user'];
        //-------------enregistrement de la connexion dans la BD-----------------------
         $date = date("Y-m-d");   //la date de connextion
         $time = date("G:i:s");   //l'heure de connextion
         $ip = $_SERVER['REMOTE_ADDR'];    //l'adresse ip de connextion
        $requete = sprintf(" INSERT INTO connexion(ref_id_user, date_connex, time_connex, adresse_ip_connex)
             VALUES('$id_user', '$date', '$time', '$ip')");
        mysql_select_db($database, $lien);
        mysql_query($requete, $lien) or die('Erreur SQL !'.$requete.''.mysql_error());
        $id_connextion = mysql_insert_id();
        //-------------------------------------FIN ENREGISTREMENT DE LA CONNEXTION----------------------------------------------------
        if ($row_verif['statuts'] == 1){
              header("Location:index.php?pid=166&erreur=session_bloquer"); // redirection si utilisateur si session bloqués
        }
        elseif($row_verif['statuts'] == 3){
             header("Location:index.php?pid=166&erreur=session_non_valider"); // redirection si utilisateur session non validé
        }
        else{
        // déclaration des variables de session
        $_SESSION ['id_user'] = $id_user;
        $_SESSION['privilege'] = $row_verif['privilege']; // le privilège de l'utilisateur (permet de définir des niveaux d'utilisateur)
        $_SESSION['nom'] = $row_verif['nom']; // Son nom
        $_SESSION['prenom'] = $row_verif['prenom']; // Son Prénom
        $_SESSION['login'] = $row_verif['login']; // Son Login
        $_SESSION['pass'] = $row_verif['pass']; // Son mot de passe (à éviter)
        $_SESSION ['mail'] = $row_verif['mail']; // son mail
        $_SESSION ['tel'] = $row_verif['tel']; //son telephone fixe
        $_SESSION ['portable'] = $row_verif['portable']; //son telephone portable
        $_SESSION ['statuts'] = $row_verif['statuts'];
        $_SESSION ['id_connex'] = $id_connextion;  //enregistrement de l'id de conexion (compteur)
        $_SESSION ['variable_divers'] = null; //permet de stocker une variable!!
            header("Location:index.php"); // redirection si OK   //sans pop up
        }
    }
        else {
               header("Location:index.php?pid=166&erreur=login"); // redirection si utilisateur non reconnu
    }
}
// GESTION DE LA Déconnexion
if(isset($_GET['erreur']) && $_GET['erreur'] == 'logout'){ // Test sur les paramètres d'URL qui permettront d'identifier un "contexte" de déconnexion
$prenom = $_SESSION['prenom']; // On garde le prénom en variable pour dire au revoir (soyons polis :-)
session_unset("authentification");
header("Location:index.php?pid=166&erreur=delog");
}
?>
<html>
<body>
<form action="" method="post" name="connect" class="Style6">
  <table width="26%" border="0" cellpadding="0" cellspacing="0" >
      <tr>
        <td align="left" valign="middle"><table width="94%"  border="0" cellpadding="0" cellspacing="0">
          <tr>
            <td height="19" colspan="2" align="left" valign="middle"><img src="../images/images_minilogin/mini_login_01.gif" width="90" height="19"></td>
            <td width="31%" align="left" valign="middle"><a href="index.php?pid=104"><u>S'inscrire</u></a></td>
            <td width="14%" align="left" valign="middle">&nbsp;</td>
            <td width="29%" align="left" valign="middle">&nbsp;</td>
          </tr>
          <tr>
            <td width="9%" height="22" align="left" valign="middle"><img src="../images/images_minilogin/mini_login_02.gif" width="32" height="19"></td>
            <td width="17%" align="left" valign="middle"><input name="login" type="text" class="box1" id="login" size="8" maxlength="15"></td>
            <td align="left" valign="middle"><img src="../images/images_minilogin/mini_login_03.gif" width="84" height="19"></td>
            <td align="left" valign="middle"><input name="pass" type="password" class="box1" id="pass" size="8" maxlength="15"></td>
            <td align="left" valign="middle"><div align="center">
              <input type="submit" name="Submit" value="Ok">
            </div></td>
          </tr>
         
        </table></td>
      </tr>
  </table>
    <a href="../includes.pages/inscription.php"><u><b></u></a>
</form>
</body>
</html>
samedi 1 avril 2006 à 16:35:20 | Re : Fonction header redirection dans include

sidf

Réponse acceptée !
    $requete = sprintf(" INSERT INTO connexion(ref_id_user, date_connex, time_connex, adresse_ip_connex)
             VALUES('$id_user', '$date', '$time', '$ip')");

a mon avis ça vient de là pourquoi sprintf ??

    $requete = "INSERT INTO connexion(ref_id_user, date_connex, time_connex, adresse_ip_connex)
             VALUES('$id_user', '$date', '$time', '$ip')";


Cette discussion est classée dans : php, session, index, row, verif


Répondre à ce message

Sujets en rapport avec ce message

Faille de securité [ par drebin78945 ] bonjour,j'aurais besoin de votre avis eclairé...sur mon site, j'ai un index unique (pages de type index.php?pid=..=) associé à une fonction link.inc.p session en php [ par arnold002 ] Bonjour,J'ai mis en place un système de session et je voudrai savoir si c'est correct ou non.Le contenu du site n'est accessible qu'après saisi d'un l Session [ par stu76 ] Bonjour, Je travail sur un site dont une partieest avec acces protéger, pour le code de sécurité j' ai trouvé un source sur ce site que je tente d'ada Pourquoi mes sessions ne fonctionnent plus !! [ par arnold002 ] Bonjour à tous,J'ai créé un site d'anciens élèves uniquement consultable par des utilisateurs préalablement enregistrés dans ma BDD.Sur la page d'inde probleme de session ... [ par Teclis01 ] voici mon code d index.phpQuelques explications qd meme ...dans funtions.php j ai definit ttes les fonctions ici utilisées:-index est un formulaire de Use of undefined constant [ par matters ] Salut,Voila mon problème est très simple mais je ne trouve pas la réponse...Mon code index.php:define('IN_INDEX', 1, TRUE);session_start();$site_racin SESSION, mais après ???? [ par RV2931 ] bonjour,il y pas mal de sources et de tuto qui parlent de comment créer une session, mais je n'arrive à trouver quelque chose qui m'explique comment g Provlème uptade de changement dans la table [ par astuces_jeux ] Bonjour,J'ai eu un problème. Quand j'utilise l'update rien ne se change dans la base de donnée En fait je fais un shop dans mon jeu virtuel et j'ai mo Infos membre actualise prochaine conneixon [ par astuces_jeux ] Bonjour,Je suis en trein de créer un site d'élevage virtuel de dinosaureEn fait, le dinosaure doit augmenter sa force. Il a déjà un nombre de force da cryptographpie : problème :) [ par Kikuts ] Bonjour à tous !Un petit problème :Warning: Cannot modify header information - headers already sent by (o


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,390 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales