Retour de PHP vers HTML

Eléphant du PHP | 256 Messages

28 août 2010, 12:07

Bonjour,
J'ai créé un formulaire HTML pour enregistrer un membre dans un club.
Un bouton input envoie les données vers un document PHP qui les traite (crée l'enregistrement dans une base de données SQL).
Tout ceci fonctionne très bien.

Ma question : quand le document PHP a terminé son travail, comment revenir au formulaire HTML ?
Merci d'avance pour vos réponses

Mammouth du PHP | 1339 Messages

28 août 2010, 12:30

Le plus simple :)

A la fin de ta page PHP :
header('Location: '.$_SERVER['HTTP_REFERER']);
Bon sinon tu me fais un message privé et on se fait un TeamViewer

Eléphant du PHP | 256 Messages

28 août 2010, 12:49

Je ne connaissais pas cette fonction.
C'est exactement ce que je voulais.
Un tout grand merci.

ViPHP
AB
ViPHP | 5818 Messages

30 août 2010, 15:51

NON ne pas utiliser la variable de serveur $_SERVER['HTTP_REFERER'] dans ce cas. Ce n'est pas une variable de confiance car elle peut exister ou non suivant le paramétrage du navigateur par le visiteur cf la doc. En moyenne elle est renseignée moins d'une fois sur deux.

Donc à la place d'utiliser $_SERVER['HTTP_REFERER'] qui fonctionnera ou pas suivant la configuration du navigateur, tu peux très bien indiquer le nom de ta page de formulaire, ce qui fonctionnera à tous les coups :
header('Location: nom_de_ma_page_formulaire.html');
exit;

Eléphant du PHP | 256 Messages

30 août 2010, 16:14

En fait, je n'ai pas compris, je pensais que 'HTTP_REFERER' voulait justement dire "l'URL de ma page" et j'ai donc écrit
header('Location: http://www.xxxxxxxx/MembersUpdate.php');
ce qui fonctionne très bien !

ViPHP
AB
ViPHP | 5818 Messages

30 août 2010, 21:41

Le nom du fichier du script en cours d'exécution est $_SERVER['PHP_SELF']

L'adresse de la page (si elle existe) qui a conduit le client (le visiteur) à la page courante est $_SERVER['HTTP_REFERER'] mais cette variable n'est pas une valeur de confiance comme le dit la doc http://php.net/manual/fr/reserved.variables.server.php

A l'intérieur d'un formulaire (action = "#") ou d'un lien href tu peux utiliser # pour appeler la même page.

Note : A la suite d'un header(Location..); prends soin d'écrire exit à la suite (comme dans mon exemple) car dans certains cas le header ne fonctionnera pas et le code continuera à s'exécuter sans redirection.

ViPHP
ViPHP | 5462 Messages

31 août 2010, 03:34

Le nom du fichier du script en cours d'exécution est $_SERVER['PHP_SELF']
faut faire gaffe aussi avec $_SERVER['PHP_SELF'] parce que le script c'est pas forcement la page (rewriting)

Eléphant du PHP | 256 Messages

31 août 2010, 08:38

Merci pour toutes ces infos.
J'ai ajouté exit;