Location replace

Eléphant du PHP | 256 Messages

29 janv. 2011, 09:37

Bonjour,
Etant dans un document PHP je voudrais remplacer la page actuelle par une autre.
En fait la même fonction que
window.location.replace("url.php")
mais en PHP.
Merci d'avance pour votre aide
Rudy

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

29 janv. 2011, 12:25

salut,
la fonction header /!\ lit bien la doc y a un piège :-)


@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 256 Messages

30 janv. 2011, 09:55

Merci pour ta réponse ... que je n'avais pas vue car j'ai probablement oublié de cocher "M'avertir ..." (ça ne peut pas être coché d'office ?)
Entretemps j'ai utilisé
header('Location: url.php');
et ça fonctionne très bien.
Où est le piège ?
(J'ai coché "M'avertir ..." :) )

ViPHP
xTG
ViPHP | 7331 Messages

30 janv. 2011, 10:33

N'oubliez jamais que header() doit être appelée avant que le moindre contenu ne soit envoyé, soit par des lignes HTML habituelles dans le fichier, soit par des affichages PHP. Une erreur très classique est de lire un fichier avec include() ou require(), et de laisser des espaces ou des lignes vides, qui produiront un affichage avant que la fonction header() ne soit appelée. Le même problème existe avec les fichiers PHP/HTML standards.
Le voilà le piège. :)

Eléphant du PHP | 256 Messages

30 janv. 2011, 10:52

Le seul header que j'envoie est "location:"; je ne vois pas où il pourrait y avoir un problème puisque la page est purement et simplement remplacée par le nouvel URL.
D'ailleurs j'envoie plein de choses avant et ça fonctionne très bien.

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 janv. 2011, 13:02

s'il y a affichage avant et que cela fonctionne, c'est que ton serveur met tout en cache avant envoie au navigateur. C'est une bonne chose dans ton cas mais une très mauvaise habitude car ce n'est pas la configuration par défaut ;)

et d’ailleurs quel intérêt d'afficher un truc que l'on ne va voir :)

@+
Il en faut peu pour être heureux ......

Eléphant du PHP | 256 Messages

30 janv. 2011, 13:07

quel intérêt d'afficher un truc que l'on ne va voir :)
Non, ce n'est pas ça.
Sur une page j'affiche des infos et un bouton.
Quand on clique sur le bouton j'appelle un module php qui n'affiche rien (en fait il envoie un mail) puis appelle une autre page php avec header(location:...).

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 janv. 2011, 13:29

ha ba donc y a pas d'affichage ....
Il en faut peu pour être heureux ......

Eléphant du PHP | 256 Messages

30 janv. 2011, 13:32

OK alors, merci pour ton aide.
Puis-je amicalement te faire remarquer que "Il en faut peut pour être heureux ......" il ne faut pas de "t" à "peu".

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 janv. 2011, 13:36

tu peu :)
Il en faut peu pour être heureux ......

Eléphant du PHP | 256 Messages

30 janv. 2011, 13:44

tu peu :)
Ben non, "tu peux" =D>

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 8758 Messages

30 janv. 2011, 13:48

^^
Il en faut peu pour être heureux ......