pages blanche

Shaÿna
Invité n'ayant pas de compte PHPfrance

04 mai 2005, 15:23

salut, je me pose une petite question assez conne,

J'ai un form html qui renvoye a une page php. Lorsque je valide mon formulaire, la page php est appelée et fait son boulot, mais le problème s'est que cette page est neutre.
Je ne sais pas comment faire travailler la page php tout en affichant ma page html
J'ai regarder un peu la "fonction" header mais je ne comprend pas trop ce qu''elle fait ni comment ca marche.

Mammouth du PHP | 19672 Messages

04 mai 2005, 15:28

dans ta page de traitement, tu peux très bien inclure l'affichage d'éléments HTML selon le résultat du traitement, ce qui inclut des liens vers d'autres pages. C'est aussi simple qu'un header.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Mammouth du PHP | 859 Messages

04 mai 2005, 15:29

PHP et HTML cohabitent parfaitement bien après tout dépend de ce que tu comptes faire avec ta page PHP.

Elle est sensée traiter le formulaire : insérer des infos dans une base de donnée, valider un utilisateur, etc. tout ça dans une mise en page en HTML si tu en as envie.

Eléphant du PHP | 219 Messages

04 mai 2005, 15:31

Salut,

tu peux tout à fait avoir ton traitement et ton affichage dans la même page, et tu peux aussi comme tu le dis utiliser la fonction header.

pour header voici un lien : http://www.nexen.net/docs/php/annotee/f ... header.php
Ce qui est important avec cette fonction c'est de ne rien envoyer avant d'y faire appel (pas même un espace).

a+
daoud

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2005, 15:43

merci pour vos infos


ce que je voudrai c'est :

au depart, avoir mon form vide . (ça, c'est fait!)
le remplir et valider.(ça, c'est fait!)
qd il y a validation, appeler ma page de traitement php (ça, c'est fait!) et reafficher ma page html comme au depart. (ça, je sais pas faire)

Je ne veux pas devoir cliquer sur un lien ou autre pour retrouver ma page a l'etat neutre.

Mammouth du PHP | 19672 Messages

04 mai 2005, 15:46

Rajoute simplement un lien vers cette page dans la page de traitement, sinon, si cette page n'affiche strictement pas la moindre ligne html
header(Location: "ta_page_de_base.php");
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2005, 16:03

et bien ma page php n'affiche rien html.
j'ai ajouté

Code : Tout sélectionner

header(Location: "form_ajout_service.php");
en 1ère ligne de code, juste aprés ma balise <?, et j'ai une erreur:
Parse error: parse error, unexpected ':' in /var/www/html/synthese/administration/ajout_service.php on line 2

Mammouth du PHP | 19672 Messages

04 mai 2005, 16:05

autant pour moi:
header("Location: http://www.php.net/");
L'adresse ET le Location doivent être entre les guillemets. Désolé pour l'erreur
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2005, 16:10

Un grand merci.

ViPHP
ViPHP | 2144 Messages

04 mai 2005, 16:11

Une autre solution plus simple à mettre en oeuvre c'est de regrouper la page de traitement et le formulaire dans une seule page.
On commence par tester si la page a été submité (avec un isset ) si oui on fait le traitement voulu( ajout dans la db,...) et ensuite on ferme les balises php et on affiche le code html du formulaire, sans spécifier d'action (le formulaire s'appellera lui-même lors du submit)

Mammouth du PHP | 859 Messages

04 mai 2005, 16:21

Une autre solution plus simple à mettre en oeuvre c'est de regrouper la page de traitement et le formulaire dans une seule page.
On commence par tester si la page a été submité (avec un isset ) si oui on fait le traitement voulu( ajout dans la db,...) et ensuite on ferme les balises php et on affiche le code html du formulaire, sans spécifier d'action (le formulaire s'appellera lui-même lors du submit)
Après tout dépend de la volonté du codeur à vouloir séparer ses fichiers et par conséquent diviser le nombre de lignes ou avoir tout à faire dans la même page.

Personnellement j'opte quasiment tout le temps pour diviser le traitement et un header me renvoie dans ma page d'avant comme si il n'était pas passé par une autre page.

Je tiens également à préciser que dans une page contenant un code PHP tout en haut, le header n'a pas forcément besoin d'être placé sur la 1re ligne ;)

Je voulais que la confusion soit évitée sachant qu'on dit tout le temps qu'il doit être en premier ;)

ViPHP
pjl
ViPHP | 2119 Messages

04 mai 2005, 16:26

Je fais comme Iclo.

Vérif du formulaire
- si OK, travail sur les données puis redirection
- si KO, affichage du formulaire (avec les données déjà saisies par l'utilisateur si besoin et message d'erreur).

Invité
Invité n'ayant pas de compte PHPfrance

04 mai 2005, 16:27

j'avait deja essayer avec un isset mais j'ai pas réussi, (j'avais des erreurs que je ne savais pas resoudre)
Pour ce que je veut faire, ca pourrai s'averer plus pratique (parce que là je ne suis pas a la moitié de la réalisation de mon api et je me perd deja dans mes nombreux fichiers.