Forum |  HardWare.fr | News | Articles | PC | Prix | S'identifier | S'inscrire | Shop Recherche
2802 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu][PHP] Problème avec header()

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][PHP] Problème avec header()

n°1400002
traskarin
Posté le 04-07-2006 à 10:35:56  profilanswer
 

Bonjour à tous !
 
Je sais que ce sujet a déjà été vu et revu mais je n'ai pas trouver de réponse à mon prblème !  :pt1cable:  
 
J'ai créer un site en pseudo-frame (je sais, je sais, c'est pas bien mais je ne sais comment faire autrement [:alisson] ). J'ai créer la page d'accueil de cette façon :
 

Code :
  1. <?php
  2. include('link.php');
  3. ?>
  4. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
  5. <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">
  6. <head>
  7.  <title>RéférenceS MUSIQUE</title>
  8.  <link rel="stylesheet" media="screen" type="text/css" title="Design" href="./style.css" />
  9.  <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
  10.  <meta name="Author" content="MARCHAL Simon" />
  11.  <meta name="Description" content = "Le site de références. Toutes les styles musicaux réunis en un seul et unique endroit. La plus grande base de donnée sur la musique." />
  12.  <meta name="keywords" content="références, référence, musique, musiques, critique, critiques, reportage, reportages, avis" />
  13. </head>
  14. <body>
  15.  ...
  16. </body>
  17. </html>


 
Dans le fichier link.php j'ai ceci :
 

Code :
  1. <?php
  2. if (empty($rubrique)) {
  3.  header("Location: home.php" );
  4. } else {
  5.  $rubrique_num = '?rubrique='.$_POST;
  6.  switch($_POST['rubrique']) {
  7.   case'1':
  8.    header("Location: home.php$rubrique_num" );
  9.    $compteur_news++;
  10.   break;
  11.   case'2':
  12.    header("Location: home.php$rubrique_num" );
  13.    $compteur_references++;
  14.   break;
  15.   case'3':
  16.    header("Location: home.php$rubrique_num" );
  17.    $compteur_votre_avis++;
  18.   break;
  19.   case'4':
  20.    header("Location: home.php$rubrique_num" );
  21.    $compteur_radio++;
  22.   break;
  23.   case'5':
  24.    header("Location: http://forum.adressedemonsite.com/index.php" );
  25.    $compteur_forum++;
  26.   break;
  27.   case'6':
  28.    header("Location: home.php$rubrique_num" );
  29.    $compteur_livre_dor++;
  30.   break;
  31.   case'7':
  32.    header("Location: home.php$rubrique_num" );
  33.    $compteur_faqs++;
  34.   break;
  35.   case'8':
  36.    header("Location: home.php$rubrique_num" );
  37.    $compteur_liens++;
  38.   break;
  39.   case'9':
  40.    header("Location: home.php$rubrique_num" );
  41.    $compteur_contact++;
  42.   break;
  43.   default:
  44.  }
  45. }
  46. ?>


 
le menu est comme ceci :
 

Code :
  1. <p class="menu"><a href="home.php?rubrique=1" class="menu">NEWS</a></p>
  2. <p class="menu"><a href="home.php?rubrique=2" class="menu">Références</a></p>
  3. <p class="menu"><a href="home.php?rubrique=3" class="menu">Votre avis</a></p>
  4. <p class="menu"><a href="home.php?rubrique=4" class="menu">Radio</a></p>
  5. <p class="menu"><a href="home.php?rubrique=5" target="_blank" class="menu">Forum</a></p>
  6. <p class="menu"><a href="home.php?rubrique=6" class="menu">Livre d'or</a></p>
  7. <p class="menu"><a href="home.php?rubrique=7" class="menu">FAQs</a></p>
  8. <p class="menu"><a href="home.php?rubrique=8" class="menu">Liens</a></p>
  9. <p class="menu"><a href="home.php?rubrique=9" class="menu">Contact</a></p>


 
Mon problème, c'est que lorsque je clique sur forum, j'ai bien une nouvelle page mais je suis toujours sur la page home.php ! Je ne comprend pas pourquoi !
 
Est-ce que ma condition est bonne ? (je débute en php)
Est-ce que j'ai un envoie de donnée html avant le header() ? (ce qui annulerai cette fonction, mais m'afficherai une erreur [qui ne s'affiche pas])
 
De plus, je voudrais ne pas utiliser de javascript dans mon code !
 
Voilà ! Si vous pouvez m'aider, ça ne serai pas de refu, là je bloque !  :heink:


Message édité par traskarin le 04-07-2006 à 11:33:54
mood
Publicité
Posté le 04-07-2006 à 10:35:56  profilanswer
 

n°1400009
zapan666
Tout est relatif
Posté le 04-07-2006 à 10:50:19  profilanswer
 

essaye avec un exit apres le header

Code :
  1. header();
  2. exit;


---------------
my flick r - Just Tab it !
n°1400016
traskarin
Posté le 04-07-2006 à 10:59:43  profilanswer
 

je viens de rajouter exit; après tous les header() mais maintenant, j'ai un autre problème : lorsque la variable est vide elle redirige vers home.php qui inclu link.php qui redirige vers home.php etc... à l'infini !
 
Il faudrait que mon switch soit dans la condition if et pas dans else. Mais je sais pas comment faire !
 
Il faudrait que ma condition soit l'inverse de :
 

Code :
  1. if (empty($variable)) {
  2. ...
  3. }

n°1400026
zapan666
Tout est relatif
Posté le 04-07-2006 à 11:08:38  profilanswer
 

Code :
  1. if (!empty($variable)) {


---------------
my flick r - Just Tab it !
n°1400036
Hermes le ​Messager
Breton Quiétiste
Posté le 04-07-2006 à 11:14:47  profilanswer
 

traskarin a écrit :

je viens de rajouter exit; après tous les header() mais maintenant, j'ai un autre problème : lorsque la variable est vide elle redirige vers home.php qui inclu link.php qui redirige vers home.php etc... à l'infini !
 
Il faudrait que mon switch soit dans la condition if et pas dans else. Mais je sais pas comment faire !
 
Il faudrait que ma condition soit l'inverse de :
 

Code :
  1. if (empty($variable)) {
  2. ...
  3. }



 

Code :
  1. if (!empty($variable)) {
  2. ...
  3. }


 

n°1400046
traskarin
Posté le 04-07-2006 à 11:22:29  profilanswer
 

Ok, je crois que la condition marche ! Merci.
 
Mais j'ai encore un problème !  :fou:  
 
Lorsque je clique sur "Forum", je suis toujours sur la page home.php mais pas sur l'adresse du forum ! J'ai aucune erreur concernant le header() donc cela viendrait peut-être du code (une erreur de frappe, mauvais codage ?)

n°1400047
anapajari
s/travail/glanding on hfr/gs;
Posté le 04-07-2006 à 11:23:35  profilanswer
 

autre question, le code suivant:

Code :
  1. $rubrique_num = '?rubrique='.$_POST;
  2. switch($_POST['rubrique']) {
  3.             case'1':
  4.                 header("Location: home.php$rubrique_num" );


T'es bien d'accord qu'il redirige sur home.php?rubrique=  ???
Vu que tu passes "rubrique" en GET dans tes liens et que tu le récupères en POST?

Message cité 1 fois
Message édité par anapajari le 04-07-2006 à 11:24:09
n°1400050
Ricco
Retour au pays
Posté le 04-07-2006 à 11:25:08  profilanswer
 

... Dans le script du début C pas plutôt ça que tu veux ?
 
 

Code :
  1. if (empty($_POST['rubrique'])) {
  2.         header("Location: home.php" );
  3.     }


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°1400057
traskarin
Posté le 04-07-2006 à 11:31:28  profilanswer
 

anapajari a écrit :

autre question, le code suivant:

Code :
  1. $rubrique_num = '?rubrique='.$_POST;
  2. switch($_POST['rubrique']) {
  3.             case'1':
  4.                 header("Location: home.php$rubrique_num" );


T'es bien d'accord qu'il redirige sur home.php?rubrique=  ???
Vu que tu passes "rubrique" en GET dans tes liens et que tu le récupères en POST?


 
Exact !  :jap:  
 
Lorsque je récupère en GET ça marche ! Le code était donc :
 

Code :
  1. $rubrique_num = '?rubrique='.$_GET;
  2. switch($_GET['rubrique']) {
  3.             case'1':
  4.                 header("Location: home.php$rubrique_num" );


 
Merci !  :D  
 

Ricco a écrit :

... Dans le script du début C pas plutôt ça que tu veux ?
 
 

Code :
  1. if (empty($_POST['rubrique'])) {
  2.         header("Location: home.php" );
  3.     }



 
Je ne pense pas. A moins que cela change quelque chose, pour moi c'est équivalent ! Non ?

n°1400069
Ricco
Retour au pays
Posté le 04-07-2006 à 11:40:58  profilanswer
 

traskarin a écrit :


Je ne pense pas. A moins que cela change quelque chose, pour moi c'est équivalent ! Non ?


 
Oui j'y ai pensé après ... Mais ça veut dire que t'as le register_global à ON dans le php.ini et ça fait un peu 4 ans que c'est fortement déconseillé.


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
mood
Publicité
Posté le 04-07-2006 à 11:40:58  profilanswer
 

n°1400079
traskarin
Posté le 04-07-2006 à 11:44:24  profilanswer
 

Ricco a écrit :

Oui j'y ai pensé après ... Mais ça veut dire que t'as le register_global à ON dans le php.ini et ça fait un peu 4 ans que c'est fortement déconseillé.


 
Sur mon réseau local (EasyPHP 1.8) je pourrais le modifier, mais mon hébergeur (qui est online.net) je ne pense pas que je sois en mesure de le modifier.
 
Mais je vais faire la modification, histoire d'être sur ! Je te dirais si j'ai des problèmes !

n°1400112
traskarin
Posté le 04-07-2006 à 12:09:10  profilanswer
 

J'ai un autre problème !
 
Lorsque je clique sur les autres liens, le navigateur affiche :

Citation :

home.php?rubrique=Array


 :ouch:  
 
 
 
Quand je change :

Code :
  1. $rubrique_num = '?rubrique='.$_GET;


en :

Code :
  1. $rubrique_num = '?rubrique='.$_GET['rubrique'];


Le temps de chargement s'allonge et n'affiche rien ! J'ai essayer d'autre truc mais rien !

n°1400129
Ricco
Retour au pays
Posté le 04-07-2006 à 12:29:49  profilanswer
 

Bein là c'est normal ... Le header( location ... ) ça lui fait recharger la page . S'il arrive dans home.php?rubrique=4 alors tu ajoute 1 dans une variable local ( variable aussitôt perdue ... ) et tu le fait repartir dans home.php?rubrique=4. C'est normal que ça boucle sans fin.


---------------
"L'informatique n'est pas plus la science des ordinateurs que l'astronomie n'est celle des télescopes." Michael R. Fellows & Ian Parberry
n°1400137
traskarin
Posté le 04-07-2006 à 12:39:08  profilanswer
 

Ricco a écrit :

Bein là c'est normal ... Le header( location ... ) ça lui fait recharger la page . S'il arrive dans home.php?rubrique=4 alors tu ajoute 1 dans une variable local ( variable aussitôt perdue ... ) et tu le fait repartir dans home.php?rubrique=4. C'est normal que ça boucle sans fin.


 
J'ai enlever tous les header() qui renvoie sur home.php et maintenant ça fonctionne ! (une erreur de débutant)
 
Merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu][PHP] Problème avec header()

 

Sujets relatifs
Problème au survol d'un lien dans un divD'une iframe au xhtml (problème)
[résolu]modification d'une colonne[résolu]Loadvars Rapide
php4 -> php5 probleme sessionsProbleme avec shellapi.h
Warning suite a utilisation d'une référence dans une méthode [RESOLU][irrésolvable, donc RESOLU] PB diffusion vidéo format real (avec IE)
(Résolu) Filtre sur feuille verrouillée[résolu] Pb de onChange (désolé)
Plus de sujets relatifs à : [Résolu][PHP] Problème avec header()


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR