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 :

Redirection sans utiliser 'header' [PHP 5.2]


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 111
    Points : 58
    Points
    58
    Par défaut Redirection sans utiliser 'header'
    svp est que je peux trouver un autre moyen de faire des redictions sans le fonctions ' header ' un peu comme ici
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	header ('Location:administration.php'); // exit;
    je suis entrain de me prendre la tete a avec ça et toujrs ce msg
    Warning: Cannot modify header information - headers already sent by (output started at /home/solex/domains/solexmessagerieexpress.com/public_html/courier/mes_fonctions.php:2) in /home/solex/domains/solexmessagerieexpress.com/public_html/courier/ajouterescale.php on line 30
    , et tt mon code est à l'eau ,,, je vous enprie !!!!!

  2. #2
    Expert confirmé
    Avatar de N1bus
    Homme Profil pro
    Dev. Web & OpenERP
    Inscrit en
    Janvier 2003
    Messages
    2 827
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Dev. Web & OpenERP
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2003
    Messages : 2 827
    Points : 5 673
    Points
    5 673
    Par défaut
    Bonjour,

    En javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<script type='text/javascript'>document.location.replace('page.php');</script>";

  3. #3
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 111
    Points : 58
    Points
    58
    Par défaut
    merci, ça marche tres bien.

  4. #4
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Personnellement, je préfère la balise meta refresh qui n'est pas sensible à l'activation de javascript.

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    <meta http-equiv="refresh" content="1;url=http://www.dvp.com"/>

  5. #5
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 440
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 440
    Points : 15 814
    Points
    15 814
    Par défaut
    il vaut mieux utiliser un entête "Location" pour faire une redirection HTTP

    pour corriger l'erreur dont tu parles dans le 1er message, regarde là :
    http://php.developpez.com/faq/?page=...s_already_sent

  6. #6
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Citation Envoyé par mathieu Voir le message
    il vaut mieux utiliser un entête "Location" pour faire une redirection HTTP

    pour corriger l'erreur dont tu parles dans le 1er message, regarde là :
    http://php.developpez.com/faq/?page=...s_already_sent
    Sans oublier cette petite précision, au cas où... http://www.developpez.net/forums/d16...q/#post4187694

  7. #7
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 111
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par N1bus Voir le message
    Bonjour,

    En javascript :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    echo "<script type='text/javascript'>document.location.replace('page.php');</script>";
    merci encore pour ta fonction javascript qui marche tres bien. sauf j'ai encore des probleme avec mes entetes pour certaines parties de mon script ou j'ai utilisé la fonction
    session_start()
    ; je ne peux malheuresment pas les enlever sinon mon appli ne fonctionnera pas normalement car j'ai besoin de recuperer des variables sessions dans toutes les pages ( a moins qu'il existe autre chose pour remplacer les sessions en php...).
    j'ai par exple ce message qui apparait
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/solex/domains/solexmessagerieexpress.com/public_html/courier/index.php:1) in /home/solex/domains/solexmessagerieexpress.com/public_html/courier/index.php on line 2
    pourtant en testant le contenu de mes variables sessions je constate qu'elles s'enregistrent et fonctionnent normalement. je me demandais s'il n y avait pas en moyen d'empecher ce message de s'afficher simplement ?
    j'ai egalement ce message dont je ne comprends pas grand et ne voit pas l'incidence sur le fonctionnement de mon application

    Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
    merci.

  8. #8
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 111
    Points : 58
    Points
    58
    Par défaut
    voici le script de ma page ' index.php ' qui me genere le msg
    Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /home/solex/domains/solexmessagerieexpress.com/public_html/courier/index.php:1) in /home/solex/domains/solexmessagerieexpress.com/public_html/courier/index.php on line 1
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
     
      <?php
       session_start();
      require_once 'mes_fonctions.php';
       echo '<br>';
      echo '<strong><p align=center>GESTION DU COURRIER SOLEX</p></strong>';
      echo '<br><hr>';
     	@$pseudonyme=$_POST['pseudo'];
    	@$password=$_POST['passe'];
    	$errorMessage='';
    	$ber=0;
     
    	if ($_POST){
    	if (empty ($pseudonyme) && empty ($password)){
    	echo '<strong><p align=center style="color:#FF9900">';
    	echo "Veuillez vous identifier s'il vous plait!"; 
    	echo '</p></strong>';
    	}
      		if (isset($pseudonyme)&& isset($password)){
     
       	  connection_bd(); 
    	  $sql="SELECT * FROM users WHERE loggin_user='$pseudonyme' && passwd_user='$password'";
    	  $resultat=mysql_query($sql) or die (mysql_error());
    	  $lignes=mysql_fetch_array($resultat);
    	  $ber=mysql_num_rows($resultat);
    	  $niv=$lignes['niveau'];// recupere le niveau d'acces de l'utilisateur
     
    	if ($ber==1){  
    	 //on ouvre la session
    	$_SESSION['pseudo']=$pseudonyme;
    	$_SESSION['passe']=$password;
     
    	switch ($niv) { // fait le test le niveau d'acces
    	 case 1 :
    	//redirection vers la page du receptionniste
    	//header ('Location:receptionniste.php');// exit;
        echo "<script type='text/javascript'>document.location.replace('receptionniste.php');</script>";
    	break;
    	 case 2 :
    	//redirection vers la page du gestionnaire
    	//header ('Location:administration.php'); // exit;
        echo "<script type='text/javascript'>document.location.replace('administration.php');</script>";
    	break; 
    	 }// end case
    	}//end if
    	 else{
    	$errorMessage='Vérifier vos identifiants';
    	echo '<p style="color:#FF0000" align=center><strong>';
    	echo $errorMessage;
    	echo '</strong></p>';
    	}//else
    	}//end if
    	}
        ?>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
    <title>Ouvrir une session</title>
    <style type="text/css">
    <!--
    .Style1 {color: #FFFFFF}
    -->
    </style>
    <style type="text/css">
    <!--
    .input {  font-family:"Comic Sans MS"; font-size: 11pt; color: #FFFFFF; text-decoration: none; background-color:#333333; border: #000000; border-top-width: thin; border-right-width: thin; border-bottom-width: thin; border-left-width: thin}
    .Style3 {font-family: "Comic Sans MS"}
    -->
    </style>
    </head>
     
    <body>
    <label></label>
    <form id="form1" name="form1" method="post" action="">
      <div align="center">
        <p>&nbsp;</p>
        <table width="241" border="0">
          <tr>
            <td width="62" class="Style3">Login</td>
            <td width="157"><input name="pseudo" type="text" id="pseudo" /></td>
          </tr>
          <tr>
            <td><span class="Style3">password</span> </td>
            <td><input name="passe" type="password" id="passe" /></td>
          </tr>
          <tr>
            <td height="21" colspan="2"><div align="center"></div></td>
          </tr>
          <tr>
            <td height="33" colspan="2"><div align="center">
              <input name="Submit" type="submit" class="input" value="Ouvrir ma session" />
            </div></td>
          </tr>
        </table>
        <img src="user-48.png" width="48" height="48" />
        <p>&nbsp;</p>
      </div>
      <label></label>
      <label>
      <div align="center"><span class="Style1"></span></div>
      </label>
      <div align="center"></div>
    </form>
    </body>
    </html>
    cdlt

  9. #9
    Membre expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Points : 3 545
    Points
    3 545
    Par défaut
    Bonjour,

    N'y aurait-il pas un espace blanc avant la balise <?php ?

  10. #10
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 111
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par s.n.a.f.u Voir le message
    Bonjour,

    N'y aurait-il pas un espace blanc avant la balise <?php ?
    mince !!! c'est magic . y avait effectivement un espace blance avant le <?php je l'ai enlevé et le message est partit ...
    merci encore ,, je me prends la tete avec tout ça depuis...

  11. #11
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    111
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 111
    Points : 58
    Points
    58
    Par défaut
    Citation Envoyé par s.n.a.f.u Voir le message
    Bonjour,

    N'y aurait-il pas un espace blanc avant la balise <?php ?
    et que pensez de ce message egalement :
    Warning: Unknown(): Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
    , j'ai l'impression que c'est un probleme de version du serveur PHP de mon hebergeur

    voici le code de ma page qui provoque son apparition :
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
     
    <?php
    session_start();
    require_once 'mes_fonctions.php';
    ?>
    <script language="javascript">
     
     function controle3()
     {
       var a=document.livraison.bordero.value;
     
         if (a=="")
    	    {
              alert(" Entrez un numero de bordereau! "); 
    		  document.livraison.bordero.focus();		
    		} 
    	 else 
    	      document.livraison.submit();	
     }
     
    </script>
     
    <script type="text/JavaScript">
    <!--
    function MM_swapImgRestore() { //v3.0
      var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
    }
     
    function MM_preloadImages() { //v3.0
      var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
        var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
        if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
    }
     
    function MM_findObj(n, d) { //v4.01
      var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
        d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
      if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
      for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
      if(!x && d.getElementById) x=d.getElementById(n); return x;
    }
     
    function MM_swapImage() { //v3.0
      var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
       if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
    }
    //-->
    </script>
    <body onLoad="MM_preloadImages('images/escale.JPG','images/expedition.JPG')"><div align="center"> 
      <p><a href="escale.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('malivraison','','images/escale.JPG',1)"><img src="images/cup_coffee-48.png" name="malivraison" width="48" height="48" border="0" id="malivraison" /></a><a href="expedition.php" onMouseOut="MM_swapImgRestore()" onMouseOver="MM_swapImage('Image2','','images/expedition.JPG',1)"><img src="images/Cute_Vehicle.png" name="Image2" width="57" height="60" border="0" id="Image2" /></a></p>
      <p>LIVRAISON </p>
    </div>
     
    <form action="" method="post" id="formesc1" name="livraison">
     
    <fieldset>
     <legend> Recherche </legend>
    <div align="center"> 
     <table width="518" border="0" cellspacing="0" cellpadding="5">
      <tr>
        <td width="202"><label>Entrez un N° de Bordereau:</label></td>
        <td width="144"><input type="text" name="bordero" id="bordero" /></td>
        <td width="142"><input type="button" onClick="controle3()" name="bouton4" value="RECHERCHER"/></td>
      </tr>
    </table>
    </div>
    </fieldset>
    <?php
    if ($_POST){ 
    $_SESSION['bordero']=$bordero;
    connection_bd(); 
    @$bordero=securiseChaineTxt($_POST['bordero']);
     
     $query="SELECT * FROM bordereaux where bordereaux.num_be='$bordero'";
     $query2="SELECT * FROM produits where produits.num_be='$bordero'";
     
     $reponse=mysql_query($query2) or die (mysql_error());
     $resultat=mysql_query($query) or die (mysql_error());
     
     $affiche=mysql_fetch_array($resultat);
     
     
     $ligne=mysql_num_rows($reponse);
    ?>
     
    <br/>
    <table width="773" border="0" cellspacing="0" cellpadding="5">
      <tr>
        <td width="96" bgcolor="#999999">Exp&eacute;dition</td>
        <td colspan="7">&nbsp;</td>
      </tr>
      <tr bgcolor="#CCCCCC">
        <td><div align="center">N&deg; Bordereau </div></td>
        <td width="104"><div align="center">Provenance</div></td>
        <td width="101"><div align="center">Destination</div></td>
        <td width="76"><div align="center">Date d&eacute;part </div></td>
        <td width="91"><div align="center">Heure d&eacute;part </div></td>
        <td width="119"><div align="center">Exp&eacute;diteur</div></td>
        <td width="116"><div align="center">Destinataire</div></td>
        <td width="116">Mise à jour </td>
      </tr>
      <tr bgcolor="#FFCC66">
        <td bgcolor="#CCFFCC"><?php echo $affiche['num_be'];?></td>
        <td bgcolor="#CCFFCC"><?php echo $affiche['provenance'];?></td>
        <td bgcolor="#CCFFCC"><?php echo $affiche['destination'];?></td>
        <td bgcolor="#CCFFCC"><?php echo $affiche['date_depart'];?></td>
        <td bgcolor="#CCFFCC"><?php echo $affiche['heure_depart'];?></td>
        <td bgcolor="#CCFFCC"><?php echo $affiche['nom_exp'];?></td>
        <td bgcolor="#CCFFCC"><?php echo $affiche['nom_recep']; ?></td>
        <td bgcolor="#CCFFCC"><?php echo " <a href=\" update_livraison.php?var=1 \"> modifier </a> "; ?> </td>
      </tr>
    </table>
    <br/>
     
    <table width="592" border="0" cellspacing="0" cellpadding="5">
      <tr>
        <td width="169" bgcolor="#999999">D&eacute;tails de l'exp&eacute;dition</td>
        <td colspan="2">&nbsp;</td>
      </tr>
      <tr bgcolor="#CCCCCC">
        <td><div align="center">Quantit&eacute;</div></td>
        <td width="213"><div align="center">D&eacute;signation</div></td>
        <td width="180"><div align="center">Poids</div></td>
      </tr>
     
      <?php 
      while (@$display=mysql_fetch_array($reponse)){
       ?>
       <tr bgcolor="#FFCC66">
        <td height="28"><div align="center"><?php echo $display['qute'];?></div>      </td>
        <td><?php echo $display['designation']; ?></td>
        <td><div align="center"><?php echo $display['poids']; }?> </div>
          <div align="center"></div></td>
      </tr>
    </table>
     
     <?php 
     }
     ?>
     
    </form>

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 25/02/2010, 08h16
  2. Utiliser une DLL sans les headers
    Par Ange_blond dans le forum C++
    Réponses: 16
    Dernier message: 23/02/2009, 10h02
  3. [PHP-JS] Redirection sans passer par les headers
    Par ozzmax dans le forum Langage
    Réponses: 4
    Dernier message: 29/01/2007, 16h38
  4. [][Timer] Créer un Timer sans utiliser le composant
    Par HPJ dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 01/10/2003, 12h04
  5. Tore en OpenGL sans utiliser glut
    Par lefort dans le forum Algorithmes et structures de données
    Réponses: 6
    Dernier message: 20/11/2002, 17h32

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