Page 1 sur 1

pages blanche

Posté : 04 mai 2005, 15:23
par Shaÿna
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.

Posté : 04 mai 2005, 15:28
par Cyrano
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.

Posté : 04 mai 2005, 15:29
par flitox
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.

Posté : 04 mai 2005, 15:31
par daoud
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

Posté : 04 mai 2005, 15:43
par Invité
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.

Posté : 04 mai 2005, 15:46
par Cyrano
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");

Posté : 04 mai 2005, 16:03
par Invité
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

Posté : 04 mai 2005, 16:05
par Cyrano
autant pour moi:
header("Location: http://www.php.net/");
L'adresse ET le Location doivent être entre les guillemets. Désolé pour l'erreur

Posté : 04 mai 2005, 16:10
par Invité
Un grand merci.

Posté : 04 mai 2005, 16:11
par iclo
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)

Posté : 04 mai 2005, 16:21
par flitox
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 ;)

Posté : 04 mai 2005, 16:26
par pjl
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).

Posté : 04 mai 2005, 16:27
par Invité
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.