Help php, récup les infos de bt radio etc

Fermé
Nagh Messages postés 3 Date d'inscription samedi 1 mai 2010 Statut Membre Dernière intervention 1 mai 2010 - 1 mai 2010 à 09:45
Nagh Messages postés 3 Date d'inscription samedi 1 mai 2010 Statut Membre Dernière intervention 1 mai 2010 - 1 mai 2010 à 11:14
Bonjour à tous,

Voila je suis un peu perdue j'ai besoin d'aide svp...

J'ai crée un site dans le cadre d'un stage, tout va plus ou moins bien, sauf pour les formulaires, ou j'ai besoin de php pour récupérer les infos et je m'y perd un peu.

Le 1er formulaire, c'est pour la page contact:
-j'ai crée ma pg html, avec mn form et les données suivantes (nom, prénom, email, commentaire)
De cette page, j'ai appellé l'action: <form id="form1" name="form1" method="post" action="script/email.php">

Dc ca appelle la page email.php qui dit cela:

(le empty est-il bien placé? est ce que cela fait bien en sorte qu'on soit obligé de remplir la case?)

<?php
require("config.inc.php");
if(empty($_POST['email']) && isset($_POST['nom']) && empty($_POST['commentaires'])) {
$headers = "From: ".$_POST['nom']."<".$_POST['email'].">\r\n";
$headers .= "X-Sender: ".$_POST['email']."\r\n";
$headers .= "X-Mailer: PHP/".phpversion()."\r\n";
$headers .= "X-Priority: 2\r\n";
$headers .= "Return-Path: ".$_POST['email']."\r\n";
$headers .= "MIME-Version: 1.0\r\n";
$headers .= "Content-Type: text/plain; charset=\"US-ASCII\"\r\n";
$headers .= "Content-Transfer-Encoding: 7bit\r\n";

if(mail($to, $titre, $_POST['commentaires'], $headers)) {
header("Location:../".$lienOK);
} else {
header("Location:../".$lienPasOK);
}
} else {
header("Location:../".$lienPasOK);
}
?>


qui donc elle appelle la page config.inc.php qui dit:

<?php
/* Inserer ici votre courriel */
$to = "adresse@x.be";

/* Inserer ici le titre quand on vous envoie un message */
$titre = "Message du site";

/* Inserer ici le nom de la page lorsque le message a été envoyé avec succès */
$lienOK = "succes.html";

/* Inserer ici le nom de la page lorsque le message n'a pas été envoyé avec succès */
$lienPasOK = "echec.html";

?>


(j'ai donc crée 2pg html une avk un msg de succes et autre avk echec.






Bon pr ca a priori ca devrait fonctionner...jespere!

le prob c pr le 2eme formulaire

J'ai crée une page newsletter (ms on envoie à la main les infos)

dc g fais form, avk les données email et 2bt radio avk com choix: m abonner et me désabonner:

<form action="mailto:adressemail;" method="post" enctype="text/plain;" name="form1" id="form1">

(j'ai essayé de faire avk mailto ms je crois pas que c comme ca qu il faut faire, alors du coup j'aimerai créer comme pr l autre une page php et config, etc pour pouvoir récupere les données de l e mail et des boutons radio...sauf que je ne sais pas trop comment m'y prendre, quel code mettre et quoi mettre exactement

qqun pourrait-il m'aider svp?
A voir également:

2 réponses

giheller Messages postés 1875 Date d'inscription dimanche 14 juin 2009 Statut Membre Dernière intervention 3 février 2024 142
Modifié par giheller le 1/05/2010 à 10:12
Bonjour,

je vous donne juste une combine pour savoir quelles informations sont récupérées quand on utilise un formulaire.

au début du script appelé par le formulaire codez (pendant la pahse d'écriture seulement :
echo "<pre>";print-r($_POST);echo "</pre>";

cela affichera en décut le contenu du tableau $_POST avec le nom des valeurs passées (name = dans le formulaire) et leur contenu, vous pourrezainsi voir le nom associé aux boutons radio et ce qu'il contiennent.


Pour qu'il ait le moins de mécontents possible il faut toujours taper sur les mêmes.
(comme vous l'avez reconnu : proverbe shadocks)
0
Nagh Messages postés 3 Date d'inscription samedi 1 mai 2010 Statut Membre Dernière intervention 1 mai 2010
1 mai 2010 à 11:10
merci je testerai ça demain matin ;-)
0
thunder413 Messages postés 167 Date d'inscription jeudi 21 mai 2009 Statut Membre Dernière intervention 16 novembre 2012 23
1 mai 2010 à 10:37
if(empty($_POST['email']) && isset($_POST['nom']) && empty($_POST['commentaires'])) {

pour ce contrôle n'est pas correcte tu risque d'avoir de gros problème car ca signifie : si la variable $_POST['email'] est vide et que $_POST['nom'] est envoyer mais peut tre vide et $_POST['commentaire'] est vide le raisonnement correct donne:
//si l'émail est envoyer et qu'elle n'est pas vide on passe
if ( isset($_POST['email']) && !empty($_POST['email']) {
    
    //si le nom est envoyer et qu'il n'est pas vide on passe 
    if (isset($_POST['nom']) && !empty($_POST['nom']) {
        
       if (isset($_POST['commentaire']) && !empty($_POST['commentaire']) {
    
          //du coup c'est la dernière variable a contrôler donc la tu peut faire ton envoie
      } else {
     
         echo "vous devez maitre un commentaire"; 
     }   
  } else {
  
    echo "vous devez saisir le nom";
 }

} else {

   echo "l'adresse émail est requise";
}

pour les variable qui ne sont pas requise tu peut enlever le !empty();

pour le deuxième formulaire

//d abord le formulaire
<form name="newletters" action="newsSender.php" method='post'>
<p>
Votre adresse E-mail : <input type='text' name='email' value=''><br>

//ici tu peut spécifier un choix par defaut en utilisant l'attribut checked
Je m'abonne <input type='radio' name='choice' value='abo' checked="checked">
Je me desabonne <input type='radio' name='choice' value='desabo'><br>
<input type='submit' name='enreg' value='valider'>
</p>
</form>

//ensuite le php avec newsSender
<?php
   
   // si l'adresse email n'est pas envoyer ou est vide on passe pas
   if (!isset($_POST['email']) || empty($_POST['email']) {
       
      echo "veuillez saisir votre addresse email"; 
  } else {
    
   //tu recupere le choix t'a besoin de controler le choice puisque t'a mis checked
  //donc quelque soit alpha au pire tu aura choice = "abo"
  
  $choix = $_POST['choice'];

  //ton traitement ici

}
?>

j'espere que ceci va t'aider
0
Nagh Messages postés 3 Date d'inscription samedi 1 mai 2010 Statut Membre Dernière intervention 1 mai 2010
1 mai 2010 à 11:14
merci :-) je pense que ca devrait m'aider oui, si ça ne te derange pas, je t'enverrai un pti message si il y a une chose ou l'autre que je ne comprends pas, car je n'ai pas le temps de regarder tt de suite je vais devoir y aller
0