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 :

[Cookies] Problèmes de redirection


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Points : 22
    Points
    22
    Par défaut [Cookies] Problèmes de redirection
    Bonjour tout le monde,
    Je viens vers vous suite à un petit problème de connexion et de redirection ensuite.
    Je m'explique, j'ai récupérer un script que j'ai adapté, le principe est classique, login, mot de passe et vérification dans la base de données mysql, si ok on continue sinon on est redirigé vers la page de login.
    Bref, lorsque je test, j'obtien un jolie message de mon navigateur :

    Warning: Cannot modify header information - headers already sent by (output started at D:\SauvDocs\Mes sites web\RCM95\www\admin\templates\auth.php:38 ) in D:\SauvDocs\Mes sites web\RCM95\www\admin\templates\auth.php on line 55
    Si j'ai bien compris, l'entête de la page a déjà reçu les infos et ne peut en recevoir d'autres.

    je vous mets le script qui gére le contrôle et la redirection...
    Si l'un d'entre vous y voit une erreur ou à une idée, je suis preneur.
    Plizzz Help ^^

    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
     
    <?php
    include "constant.php";
    ?>
    <?php 
    function MySQLDB(){
          /* Connection à la base */
          mysql_connect(DB_SERVER, DB_USER, DB_PASS) or die(mysql_error());
          mysql_select_db(DB_NAME) or die(mysql_error());}
    ?>
    <?php
    function CheckUser(){
    MySQLDB();
    $name_query="select admin_login from admin where admin_login='".$login."' and admin_id='".$md5."'";
    		$name_result=mysql_query($name_query) or die ('Explication :'.mysql_error());
    		mysql_close();
    		while($admin = mysql_fetch_array($name_result))
    		{
    $_SESSION['temp']=$admin['admin_login'];
    }//fin while
    if(isset($_SESSION['temp']))
    {
    return true;
    }else{
    return false;
    }
    }//fin function
    ?>
     
    <?php
    if(!isset($_POST['md5']))
    {
      header("Location: ../login.php");
      die();
    }
    $md5=$_POST['md5'];
     
    if(!isset($_POST['login']))
    {
      header("Location: ../login.php");
      die();
    }
    $login=$_POST['login'];
     
    if(!CheckUser($login,$md5))
    {
      header("Location: ../login.php");
      die();
    }
     
    session_start();
     
    $_SESSION['last_access']=time();
    $_SESSION['ipaddr']=$_SERVER['REMOTE_ADDR'];
    $_SESSION['user']=$login;
     
    header("Location: ../page.php");
    ?>
    Merci beaucoup à ceux qui pourraient m'aider.

  2. #2
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    N'y a-t-il pas une ligne vide au début du script ? C'est suffisant :/

    [Edit] Si tu sors de PHP avec ?> et que tu y retournes ensuite avec <?php, alors cela te fait une sortie dans le navigateur également.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Salut

    Tout d'abord, merci pour cette piste, je supprime la ligne vide de suite (y'en avait une) et si j'ai compris, il faut que je laisse seulement une balise ouvrante et une fermante. je teste et reviens pour donner des news ^^

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 28
    Points : 22
    Points
    22
    Par défaut
    Alors là bravo !
    je viens d'apprendre quelque chose d'important, je n'ai plus de messages d'erreur
    par contre ma redirecion se fait par défaut sur le login.php, je dois avoir un problème dans ma tranmission des post, je vais chercher !
    Merci encore !

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Oh, tu peux faire ce que tu veux après l'appel à header(), il faut seulement ne rien envoyer au navigateur avant cet appel.
    Sinon, d'une manière générale, il est préférable de ne pas entrer et sortir de PHP de cette manière car, le moment de se relire une fois venu (il vient toujours), on se demande à quoi ça sert...


    Bonne suite

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juillet 2005
    Messages
    1 221
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2005
    Messages : 1 221
    Points : 472
    Points
    472
    Par défaut
    Et bien justement, en parlant de header, j'avais demandé il y a quelque jours pourquoi une condition if était possible avant d'initialiser un cookie avec setcookie, alors que comme pour les sessions, les cookies doivent être initialisés tout en haut d'une page.

    ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    if(isset($_POST['previsualiser']))
    {
    setcookie('pseudo', $_POST['pseudo'], time()+(3000000)) ;
    ;}

  7. #7
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    ?

    Ce doit être l'effet weekend : je n'ai pas bien saisi le rapport entre ton exemple et la fonction header().

    Du moment que tu n'affiches rien au navigateur, tu peux mettre un appel à header() dans un if aussi.

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

Discussions similaires

  1. [Cookies] problème avec site multilingue
    Par lacfab dans le forum Langage
    Réponses: 13
    Dernier message: 30/12/2005, 23h10
  2. [Cookies] problème de switch
    Par artotal dans le forum Langage
    Réponses: 1
    Dernier message: 28/12/2005, 02h35
  3. [Cookies] Problème dans IE mais pas dans FF
    Par Manio 54 dans le forum Langage
    Réponses: 19
    Dernier message: 15/12/2005, 18h30
  4. Problème de redirection d'index
    Par Bluelane dans le forum Apache
    Réponses: 8
    Dernier message: 16/09/2005, 17h50
  5. Problème de redirection avec window.location
    Par Kosti dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 30/11/2004, 18h31

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