Page 1 sur 1

Afficher un sujet direct apres l'ajouter

Posté : 20 juil. 2011, 14:17
par miiidooo19
Bonjour à tous le monde,

je suis entrain de coder un forum et chui arrivé a la partie d'ajouter un sujet
d'abord les sujet sont organisé par forum .... comme sur ce site :D

la page qui m'afficher le formulaire pour ajouter un sujet s'appelle viewsalon.php?forum=IdDeForum l'id me sert pour ajouter le sujet dans le bon endroit apres
mais mon problème si ici dans le formulaire d'ajouter un sujet dans <form action="" method="post" name="send_topic"> je sais pas quoi mettre dans action pour afficher direct ce sujet qui vas être créer
sachant que pour afficher un sujet c'est dans la page topic.php?topic_id=IdDeSujetQueJeVeuxAfficher donc normalement dans action je doit mettre action="topic.php?topic_id=IdDeNouveauSujet" mais vu que je le connais pas encore je fait comment ?

PS le traitement de l'ajout de sujet ce fait dans la page topic.php

Cordialement

Edit : après que j'ai valider ce sujet "Afficher un sujet direct apres l'ajouter" sur phpfrance j'ai vu que le chargement de la page ce fait sur deux fois et la jé compris que l'id de nouveau sujet on le recupérer dans la 2eme phase de télechargement non ? si oui comment on peux faire ça?

Re: Afficher un sujet direct apres l'ajouter

Posté : 20 juil. 2011, 15:10
par moogli
Salut,

La page d'attente permet d'éviter le revois de la page lors d'un f5 apres validation du formulaire ;)

Le principe :
- formulaire
- page de validation du formulaire (en fait on de fou un peux du nom c'est transparent limite tu peux utiliser la meme pour tous et trier en fonction d'un champ de formulaire)
- tu recupere l'id du sujet apres insertion (mysql_last_insert_id()
-header pour aller sur le sujet inseré


@+

Re: Afficher un sujet direct apres l'ajouter

Posté : 20 juil. 2011, 15:41
par miiidooo19
Salut,

La page d'attente permet d'éviter le revois de la page lors d'un f5 apres validation du formulaire ;)

Le principe :
- formulaire
- page de validation du formulaire (en fait on de fou un peux du nom c'est transparent limite tu peux utiliser la meme pour tous et trier en fonction d'un champ de formulaire)
- tu recupere l'id du sujet apres insertion (mysql_last_insert_id()
-header pour aller sur le sujet inseré


@+
merci pour ta réponse moogli tjr la pour me répondre ^^ mais cette fois c'est un peux compliquer pour moi ^^
si j'ai compris ce que tu vien de dire je vais faire une page dans la quelle je met le formulaire + le script d'ajout et en bas de script je fait un appel de la page ou j'affiche les sujet ? exemple de s que j'ai compris :

page1.php

formulaire
script ajout
$id_topic = mysql_last_insert_id();
header ( ' location: page2.php?id_topic='.$id_topic.' ' );

comme ça?

Edit : ça march merci moogli :)

Re: Afficher un sujet direct apres l'ajouter

Posté : 20 juil. 2011, 20:16
par miiidooo19
Salut,

La page d'attente permet d'éviter le revois de la page lors d'un f5 apres validation du formulaire ;)

@+
Moogli j'ai bien ce problème en fait qd j'ajoute un commentaire tous vas bien sa m'affiche la liste des commentaire avec la zone de saisie de nouveau commentaire vide mais qd je fait f5 il m'insert de nouveau le commentaire précédant :s j'ai essayé de cherche sur google des infos sur page d'attente mais j'ai pas tro compris comment ça marche :s

Re: Afficher un sujet direct apres l'ajouter

Posté : 20 juil. 2011, 20:26
par Skw33d
C'est un header('Location : URL_DE_TA_PAGE');

Tu dois simplement rediriger l'utilisateur pour vider les données $_POST.

Re: Afficher un sujet direct apres l'ajouter

Posté : 20 juil. 2011, 20:33
par miiidooo19
C'est un header('Location : URL_DE_TA_PAGE');

Tu dois simplement rediriger l'utilisateur pour vider les données $_POST.
j'ai pas compris ? moi qd l'utilisateur il click sue bouton pour ajouter son commentaire le commentaire et bien afficher avec les autres commentaire et la zone de saisi et vide mais malgré ça qd je fait un f5 il m'ajoute un commentaire avec le meme texte que le précédant

Re: Afficher un sujet direct apres l'ajouter

Posté : 21 juil. 2011, 01:06
par Skw33d
Oui, c'est normal, car en fait, schématiser ça doit donner quelque chose comme ça :

Utilisateur [Page 1] =====> [ENVOI DONNÉES FORMULAIRE] ====> [Même page ou autre page]

Quand l'utilisateur va actualiser il va refaire ce chemin on va dire et renverra donc les données du formulaire.
Alors que si tu le redirige, le chemin sera plus quelque chose comme ça :

Utilisateur [Page 1] =====> [ENVOI DONNÉES FORMULAIRE] ====> [Même page ou autre page] =====> [REDIRECTION] ====> [Même page ou autre page]

Cette fois ci, lorsque l'utilisateur actualisera la page, il fera le chemin surligné en rouge et ne renverra donc pas les données du formulaire.
D'où l’intérêt d'utiliser header(); .

Pour intégrer ça c'est très simple, tu n'as qu'a le mettre à la fin de de ton traitement PHP du formulaire.
Pour rediriger, il faut utiliser header('Location: URL'); . Tu peux tout à fait rediriger sur la page actuelle de cette manière :
header('Location: ./');

Voilà, j'espère que tu as à peu près compris :wink:

Un petit lien vers la doc, c'est toujours utile : http://www.php.net/manual/fr/function.header.php

Re: Afficher un sujet direct apres l'ajouter

Posté : 21 juil. 2011, 01:29
par miiidooo19
Oui, c'est normal, car en fait, schématiser ça doit donner quelque chose comme ça :

Utilisateur [Page 1] =====> [ENVOI DONNÉES FORMULAIRE] ====> [Même page ou autre page]

Quand l'utilisateur va actualiser il va refaire ce chemin on va dire et renverra donc les données du formulaire.
Alors que si tu le redirige, le chemin sera plus quelque chose comme ça :

Utilisateur [Page 1] =====> [ENVOI DONNÉES FORMULAIRE] ====> [Même page ou autre page] =====> [REDIRECTION] ====> [Même page ou autre page]

Cette fois ci, lorsque l'utilisateur actualisera la page, il fera le chemin surligné en rouge et ne renverra donc pas les données du formulaire.
D'où l’intérêt d'utiliser header(); .

Pour intégrer ça c'est très simple, tu n'as qu'a le mettre à la fin de de ton traitement PHP du formulaire.
Pour rediriger, il faut utiliser header('Location: URL'); . Tu peux tout à fait rediriger sur la page actuelle de cette manière :
header('Location: ./');

Voilà, j'espère que tu as à peu près compris :wink:

Un petit lien vers la doc, c'est toujours utile : http://www.php.net/manual/fr/function.header.php
tt a fait cool :) bien expliqué et résultat 100% :) Merci cher ami =D> +10