Php -> remplacer "header('location:.....

94_killer_94 Messages postés 235 Statut Membre -  
 pepe Gomez -
salut tout le monde,

Voila, j'ais mon site perso qui marche parfaitement en local, mais une fois sur internet j'ais un petit probleme: la commande

<?
header('loaction:index.php');
?>

ne veut pas marcher. Je ne vois pas pourquoi ca ne marche pas, car j'ais essayé dans <head></head>, <body></body> mais rien a faire.

Y a-t-il une autre commande que je peux utiliser?

Merci d'avance

A+

Elle a fait la belle
Puis s'est fait la belle

24 réponses

  • 1
  • 2
Résumé de la discussion

L'envoi d'une redirection HTTP en PHP avec header Location peut échouer sur le serveur distant à cause d'une configuration qui empêche l'en-tête d'être envoyé par le serveur web. Des éléments essentiels de solution incluent d'utiliser correctement la syntaxe header("Location: index.php"); et de ne placer aucun contenu ni espace avant l'en-tête, y compris dans les balises head ou body. D'autres interventions expliquent que le serveur peut nécessiter une configuration adaptée et que le recours à JavaScript est possible mais moins recommandé, l'option privilégiée restant l'envoi de l'en-tête côté serveur. En cas d'échec persistant, certains soulignent qu'une vérification de l'état du serveur et des tests avec une URL relative ou absolue peut aider à déterminer si la redirection est bloquée.

Généré automatiquement par IA
sur la base des meilleures réponses
  1. 94_killer_94
     
    Bonjour tout le monde,

    Désolé pour cette réponse un peu tardive, mais j'avais oublié ce compte.
    La réponse a été que le serveur sur lequel j'étais ne gérait pas les header("location: index.php") à cause d'une mauvaise configuration du serveur. Après plusieurs mails avec le support, ils me l'on enfin avoué.

    Voila, un mystère de résolu !
    Merci quand même pour toutes vos réponses.
    Bonne continuation.
    34
  2. vignemail1 Messages postés 1262 Statut Contributeur 259
     
    essaie
    <?php
    header("Location: index.php");
    ?>
    18
  3. sebas
     
    tu peux passer par du javascript -->

    <?php
    print("<script type=\"text/javascript\">setTimeout('location=(\"page.php\")' ,1000);</script>");
    ?>
    
    11
    1. noob =)
       
      sa marche très bien !
      0
    2. med
       
      ça marche mais c un peu lourd
      0
    3. Fodil
       
      Merci pour l'astuce, ça marche
      0
    4. faical_nirvana
       
      ça march ;) mercii
      0
    5. bysmo
       
      très bien vu, ça marche impec
      0
  4. halucard
     
    La solution a ton problème est très simple:
    il ne doit rien y avoir d'autre que <?php Header("Location: index.php"); ?> sur ta page, même pas un espace avant, si tu as mis des balise <head> avant, ou quoi que ce soit d'autre, ton si va considéré que l'entête est déjà envoyée et ne pas appliquer la fonction. Sur une page qui contient cette fonction il ne faut rien mettre d'autre avant
    6
    1. inconue
       
      ou encore plus simple, retire le <?php et le ?> normalement sa marche, car tu peut metre autre chose que header() sur ta page, sinon, a coi sert-elle a part prendre de la place pour rien... revoit tes cours, car la.... pfff
      0
    2. alice aiml
       
      oui c est vrais
      0
    3. stepby
       
      peut etre doit-il revoir ses cours, mais toi revoit tes base sur l'utilisation d'un forum avec ton deterrage de deux ans :s
      0
    4. dave
       
      lool ... zetes trop des merdes
      0
  5. Vous n’avez pas trouvé la réponse que vous recherchez ?

    Posez votre question
  6. patafix
     
    je sais que ça fait longtemps mais quand je lis des bêtises pareilles, je ne peux pas m'empêcher de rectifier. La fonction header est gérée côté serveur! Ton navigateur n'a rien à voir avec la choucroute...
    3
  7. MOP
     
    Personne n'a vu que le post original datait du 14 juin 2004.

    Si la personne n'a pas trouvé elle a surement dû abandonner.
    2
  8. dédé
     
    Par hasard, c'est quoi ton serveur?
    parce que j'ai le même problème
    y a t il une solution en php, ou faut il absolument passer par du javascript ?
    1
  9. Shingetsu
     
    0.0 Y'a tu vraiment des programmeurs ici? les headers peuvent juste être inscrits avant <html>.
    Donc le code devrait être
    <?php header("location:http....") ?>
    <html>
    ....
    1
  10. ffert2907
     
    mieux je pense... que simplement header tout seul...

    die(header("Location:./index.html"));
    1
  11. kalamit
     
    Non, c'est pas dans <head> qu'il faut la placer.
    Tout ce qui concerne les heder doit etre envoyé au serveur AVANT le moindre caractere. (balise html comprise).

    Ce doit etre la premiere chose à mettre sur ta page.

    Kalamit,
    11 jours avant le soleil, la mer et les mouettes. :)
    0
    1. 94_killer_94 Messages postés 235 Statut Membre 55
       
      Rien a faire, ca ne marche pas non plus :(

      Elle a fait la belle
      Puis s'est fait la belle
      -1
    2. kalamit
       
      Dis, quel est le message d'erreur ?

      Kalamit,
      11 jours avant le soleil, la mer et les mouettes. :)
      0
    3. 94_killer_94 Messages postés 235 Statut Membre 55 > kalamit
       
      Justement, C ca qui m'embete aussi, c'est qu'il n'y a aucun message d'error. Il ne redirige pas le client, il le lesse en plan, tt seul, sans rien dire.

      Elle a fait la belle
      Puis s'est fait la belle
      0
    4. flokocha Messages postés 1519 Statut Membre 281
       
      Ah oui pardon ! Autant pour moi ! :)

      .::: "A trop vouloir feindre de faire fi, on finit 
      par faire fi de vouloir feindre." 
      :::.
      0
    5. kalamit > kalamit
       
      OK. Essaye:
      header('location: ./index.php') Ca devrait fonctionner.

      Kalamit,
      11 jours avant le soleil, la mer et les mouettes. :)
      0
  12. Utilisateur anonyme
     
    <?
    header('loaction:index.php');
    ?>

    loaction -> location
    -2
    1. 94_killer_94 Messages postés 235 Statut Membre 55
       
      j'avoue, j'ais fait une faute en tappant mon message, mais sur ma page, G tout vérifié!


      Elle a fait la belle
      Puis s'est fait la belle
      0
  13. Utilisateur anonyme
     
    essaie en mettant un espace apres les :
    -2
  14. macgawel Messages postés 676 Statut Membre 89
     
    Tu peux toujours essayer :
    <meta HTTP-EQUIV="Refresh" CONTENT="1; index.php" />
    à mettre dans le <head></head>
    -2
  15. Flohti Messages postés 165 Statut Membre 15
     
    Salut,

    je sais pas si il faut pas mettre un "exit;" après !
    -2
    1. toto
       
      Oui, il en faut un
      0
  16. flokocha Messages postés 1519 Statut Membre 281
     
    Et c'est bien dans HEAD qu'il faut la placer ! :)

    .::: "A trop vouloir feindre de faire fi, on finit 
    par faire fi de vouloir feindre." 
    :::.
    -3
  17. 94_killer_94 Messages postés 235 Statut Membre 55
     
    ca ne change rien

    Elle a fait la belle
    Puis s'est fait la belle
    -3
  18. warlix Messages postés 1204 Statut Contributeur 288
     
    salut

    question c...

    L hebergeur prend en charge le PHP ?
    -3
  19. omda
     
    vous avez ecrit loaction au lieu de location
    -3
  20. pabois
     
    Ce que tu décris se produit si le header n'est pas la première chose envoyée par le navigateur.
    Si tu as déjà un affichage quelconque ("echo" ou balise html) le header location ne s'effectue pas.
    -3
  21. Flohti Messages postés 165 Statut Membre 15
     
    Salut,

    Vous êtes bourin en javascript^^ :

    top.location='index.php'; // si vous n'aimez pas les frames

    document.location='index.php'; // simplement
    -3
  • 1
  • 2