Inclusion de fichier par un <SELECT ... dans un formulaire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Inclusion de fichier par un <SELECT ... dans un formulaire

par Truc » 02 mai 2008, 09:50

V'la ta grimace :D

Délestage signifie que le sujet à été abandonné par son auteur sans réponse au problème soulevé...

Donc pour moi tu abandonnes le sujet alors que des réponses ont été données et tu ne donneras pas de solution.

par Anémone » 01 mai 2008, 00:51

Bon,

J'ai enlevé "délestage", puisque ça te fait faire la grimace.
D'ailleurs je ne comprends pas très bien à quoi cela sert.
Oui je sais, "si tu sais pas à quoi ça sert, t'en sers pas, et vas te coucher!"
Alors bonsoir;
Et me voilà bonne pour une autre grimace.

par Truc » 30 avr. 2008, 17:07

Et pourquoi remettre celui-ci en délestage maintenant alors que des réponses ont été données ?!??

En tous cas ça donne envie de réfléchir à tes problèmes :evil:

par Anémone » 30 avr. 2008, 15:46

Bon, merci pour toutes ces pistes, je vais travailler la_dessus....

P.S: J'ai effacé mon premier message, qui était identique, car je croyais avoir trouvé la solution. J'avais en fait créé un nouveau problème qui occultait le problème initial...

par caroube » 30 avr. 2008, 11:58

quand tu fais
<OPTION VALUE="<?php include ("newsletter_1.php"); ?>">annonce_1</OPTION> 
on attend que newsletter_1.php retourne une valeur qui va être utilisée comme value du tag option. Quand on regarde le code HTML généré, on doit avoir

Code : Tout sélectionner

<OPTION VALUE="identifiant_annonce_1">annonce_1</OPTION>
Or ton fichier newsletter_1.php fait uniquement l'affectation d'une variable message, mais ne l'affiche pas. Regarde donc ton code HTML et tu dois avoir un truc du style :

Code : Tout sélectionner

<OPTION VALUE=" ">annonce_1</OPTION>
avec tous les espaces et tous les retours chariots qu'il y a dans ton fichier newsletter_1.php. et donc à la valeur 3D... qui correspond bien à ce qu'il y a dans le VALUE. Les choses se passeraient différemment si ton fichier newsletter_1.php contenait :
<?php
echo "identifiant 1";
?>
Sans espace avant <?php et sans espace après ?>

Mais je crois que tu devrais commencer par regarder à quoi servent les fichiers include. Ils ne sont pas là pour gérer des options, mais pour découper ton code PHP en morceau (avoir x fichiers au lieu d'un seul énorme fichier) : tu ne vas quand même pas générer un fichier newsletter_x.php pour chacune des 1000 newsletters que tu vas créer. Pose-toi donc la question : Où est stocké ou comment est généré l'identifiant de la newsletter n°n ? Et après, utilise une boucle qui génère les champs option l'un après l'autre.

par Truc » 30 avr. 2008, 11:54

Au lieu d'affecter à l'option la valeur de l'include contente toi d'affecter le nom de la newsletter.
L'include se fera sur la page envoi_mail.php avec
include($_POST['newsletter']);
Avec les vérifications de sécurité d'usage...

par Truc » 30 avr. 2008, 11:26

Pourquoi réouvrir un sujet que tu as toi même effacé ?

Inclusion de fichier par un <SELECT ... dans un formulair

par Anémone » 30 avr. 2008, 11:01

Bonjour,

Voici le problème.
Cherchant à afficher une message contenu dans un fichier à partir d'une séléction de ce fichier par un formulaire, voici comment je procède:
le fichier newsletter_1.php contient:
$message="patatipatata";
le fichier newsletter_2.php contient:
$message="patatichose";
etc
lefichier choix_newsletter.php contient:
<FORM action="envoi_mail.php" method="POST">
<P><SELECT NAME="newsletter">
   <OPTION VALUE="<?php include ("newsletter_1.php"); ?>">annonce_1</OPTION>
   <OPTION VALUE="<?php include("echonewsletter_2.php"); ?>">annonce_2</OPTION>
</SELECT></P>
<INPUT TYPE="submit" NAME="Envoi" VALUE="OK"/>
</FORM>
Enfin
envoi_mail.php contient:
$newsletter=$_POST['newsletter'];
echo $newsletter;
echo $message;
Mais à ce stade, je n'affiche pas "patatipatata" ou "patatichose" selon ma sélection, mais une chose inattendue avec plein de 3D==3D3D etc.
Comment dois-je procéder pour afficher correctement ma sélection?
Merci