Page 1 sur 4

envoi d'un mail quizz php

Posté : 03 juin 2010, 16:48
par thomas59000
Bonjour,

Il y a un bouton envoyer sur le quizz. Je voudrais d'abord en cliquant dessus qu'il me recupere le nom et prenom et la note obtenu.J'arrive à faire pour le nom et prenom mais la note impossible. Je dois recevoir un mail en fait en cliquant sur le bouton envoyer m'indiquant ces 3 infos. Si quelqu'un peut m'aider svp. (par la suite je voudrais faire sa sur le bouton valider mais comme c'est déjà galère je préfère le faire sur un bouton à part

Voici le code :
Page infodebase.php
<html>
<head>
<title>Quiz Info de base</title>
<style type="text/css">
<!--
body {
  font-family: Verdana, Arial, Helvetica, sans-serif;
  background-color: #ffffff;
  font-size: 11px;
  color: #000000;
  margin-top: 0;
  margin-left: 0;
  padding:0;
}
p, ul, ol, td {
  text-align: justify;
}
.orange {
  color: #ff6600;
  background-color: transparent;
  font-weight: bold;
//-->
</style>
</head>
<body>

<?php
 print "<input onclick='history.go(-1)'  type='submit' style='background-color:#f66' onmouseover=\"this.style.color='#fff'\" onmouseout=\"this.style.color='#000'\" onmousedown=\"this.style.color='#f90'\" value='Retour' /></center></form>\n";   
?>

<center>
<h1>INITIATION : INFO DE BASE</h1>
<FORM method=post action="page2.php">
Nom :	<INPUT type=text name="nom"> Prénom : <INPUT type=text name="prenom"> <INPUT type="submit" value="Envoyer"><br>
</FORM>
<FORM NAME="form1">
</center>


</form>
<br>

<p></p>
<?php
$quizz= array(
array("<u>Question 1</u> : Quel dossier de votre Bureau ne peut pas être effacé ?","Poste de Travail","Corbeille","Mes Documents","Favoris Réseau","2","<u>Commentaire</u> : La corbeille est le seul dossier du Bureau qui ne peut pas être effacé ni même renommé."),
array("<u>Question 2</u> : Quel est le meilleur OS ?","Windows","Linux","Mac","Chrome OS","2","<u>Commentaire</u> : Linux est de loin le meilleur OS, le Pingouin gagne toujours devant Apple et Windows. Quant à Chrome OS, il n'est pas encore ouvert grand public."),
);
include("infodebasecorrection.php");
?>

</body>
</html>
Page infodebasecorrection.php

<html>
<head>
<script language='JavaScript'>

function controle(form1) {
var nom = document.form1.nom.value;
var prenom = document.form1.prenom.value;

 if(( form1.nom.value == "") || ( form1.prenom.value == ""))
       alert('Veuillez rentrer votre NOM ET PRENOM !!!');
       else
alert("Bonjour " + nom + " " + prenom + ". " + "Vous avez choisis l'initiation Info De Base"   );
}
</script>
</head>
<body>
<?php $page = basename($_SERVER['PHP_SELF']);
error_reporting(E_ALL ^ E_NOTICE);
if (!$_POST['result']) { 
  print "<form action=\"$page\" method='post'>\n";
  for ($i=0; $i<count($quizz); $i++) {
        print '<blockquote><span class="orange">';
        print "\t".$quizz[$i][0]."\n";
        print '</span><br /><br />';
            for ($j=1; $j<count($quizz[$i])-2; $j++) {
           $quest=$quizz[$i][$j];
           print "<input type='radio' name=\"$i\" value=\"$j\" /> $quest<br />\n ";
            }
        print "</blockquote><hr />";
  }
  print "<input type='hidden' name='result' value='voir' /><br />\n<center>";
  print "<input onclick='controle(form1)'  type='submit' style='background-color:#f66' onmouseover=\"this.style.color='#fff'\" onmouseout=\"this.style.color='#000'\" onmousedown=\"this.style.color='#f90'\" value='VALIDER' /></center></form>\n"; 
 

}
else {
  print '<h4 align="center">INITIATION : INFO DE BASE : CORRECTION</h4><br />';
  $points=0;
  for($i=0; $i<count($quizz); $i++) {
        $reponse = trim($_POST[$i]);
        print  '<blockquote><span class="orange">';
        print "\t".$quizz[$i][0]."</span><br /><br />\n";
        $numero_bonne=$quizz[$i][count($quizz[$i])-2]; // avant dernière valeur du tableau
       $bonne=$quizz[$i][$numero_bonne]; // Bonne réponse
        if ($reponse==$numero_bonne) {
           print "Votre réponse <b><i>".$bonne."</i></b> est exacte.";
           $points++;
           }
           else {
                print "<u>Réponse</u> : La bonne réponse est <b>".$bonne."</b> mais vous ";
                if ($reponse=="") {
                   print "n'avez rien répondu.";
                }
                else {
                   print 'avez répondu" <b>'.$quizz[$i][$reponse].' "</b>.';
                }
           }
        $commentaire=$quizz[$i][count($quizz[$i])-1]; // dernière valeur du tableau
       print "<br />".$commentaire."<br />\n";       
       print "</blockquote><hr />\n";
  }
  if($points==count($quizz)) {
        print"<br /><h4 align='center'>Félicitations vous avez tout juste!</h4>\n";
        }
        else {
          print "<br /><h4 align='center'>Vous avez la note de $points";
          if ($points>1) print "s";
          print " sur ".count($quizz)."</h4>\n";
        }
}
?>
</body>
</html>
page2.php : 

<?php
$nom = $_POST['nom'];
$prenom = $_POST['prenom'];
     $headers ='From: "cyber quizz"<[email protected]>'."\n"; 
     $headers .='Reply-To: [email protected]'."\n";
     $headers .='Content-Type: text/plain; charset="iso-8859-1"'."\n";
     $headers .='Content-Transfer-Encoding: 8bit';
     mail('une adresse mail ', 'note du quizz [Info De Base]', "$nom  $prenom  a obtenu la note de X", $headers)
?> 

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:01
par stealth35
hello, deja dans ton fichier infodebase.php , ta une balise formulaire qui traine ligne 36 qui se ferme un peu plus loin, et ton forumlaire principale s'arrete a nom et prenom

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:09
par thomas59000
Euh le </form ? c'est à dire que veut tu que je fasse?
Sinon vu le nombre de messages que tu as lol tu dois être doué,
Si tu copie mes 3 fichiers tu verra mon quizz, et le bouton envoyer
si tu rentre une adresse mail à toi dans page2.php mail('XXXX@XXXXX', 'note du quizz [Info De Base]', "$nom $prenom a obtenu la note de X", $headers)
?>
tu pourrais voir le mail recu et tu verrai que je recois ceci : thomas thomas a obtenu la note de X. (si j'ai écrit thomas thomas dans les 2 champs. Mais le soucis c'est que je veux la note

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:17
par stealth35
il va falloir un a un moment rajouter un
<input type="hidden" name="points" value="<?php echo $points ?>" />
que tu récupéras dans ton page2.php

$points = $_POST['points'];

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:22
par thomas59000
alors jai rajouter le input en dessous et nom et prenom j'ai rajouter ce que tu mas dit dans page2.php mais dans le mail je recois sa :

t t a obtenu la note de <br />
<b>Notice</b>: Use of undefined constant points - assumed 'points' in <b>C:\Program Files\EasyPHP-5.3.2i\www\mail - Copie\infodebase.php</b> on line <b>36</b><br />
points

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:25
par stealth35
$points désolé :wink:

mais il faut que ca soit la valeur de ton $points que t'as créee

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:28
par thomas5900
C'est à dire ? moi je veux juste que la personne ecrit son nom et prenom coche la bonne réponse aux questions et fait envoyer et moi je dois recevoir un mail avec le nom et prenom de la personne ainsi que sa note

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:30
par stealth35
C'est à dire ? moi je veux juste que la personne ecrit son nom et prenom coche la bonne réponse aux questions et fait envoyer et moi je dois recevoir un mail avec le nom et prenom de la personne ainsi que sa note

a un moment tu comptes bien le nombre de points, donc débrouille toi pour récupérer se nombre pour l'insérer dans ton formulaire final :wink:

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:31
par Invité
J'ai fais ce que tu mas dit je recois sa dans le mail :

t t a obtenu la note de <br />
<b>Notice</b>: Undefined variable: points in <b>C:\Program Files\EasyPHP-5.3.2i\www\mail - Copie\infodebase.php</b> on line <b>36</b><br />

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:33
par stealth35
normale t'as mis $points avant qui sois créée

tu le cree dans infobasecorrection ligne 38

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:34
par thomas59000
Ba le calcul se fait dans infodebasecorrection.php mais comme je débute a peine (1 semaine de php) si tu peux m'aider stp crois moi que je suis sur ce mail depuis une bonne dizaine d'heure mais impossible

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:35
par Invité
euh ligne 38 c'est sa <FORM NAME="form1">

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:36
par thomas59000
euh ligne 38 c'est sa <FORM NAME="form1">
Oops dsl c'est sa : $points=0;

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:40
par thomas59000
Je dois faire quoi a la place de c $points = 0 ?

Re: envoi d'un mail quizz php

Posté : 03 juin 2010, 17:41
par stealth35
Ba le calcul se fait dans infodebasecorrection.php mais comme je débute a peine (1 semaine de php) si tu peux m'aider stp crois moi que je suis sur ce mail depuis une bonne dizaine d'heure mais impossible
faut procéder autrement , parce que la ta 2 formulaires

page1 : formulaire vers infobasecorrection avec juste les questions
infobasecorrection : afficher les resultats, compter les points et creer le formulaire 'nom' 'prenom' + point -> valider vers la page2.php