envoi d'un mail quizz php

thomas59000
Invité n'ayant pas de compte PHPfrance

03 juin 2010, 16:48

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)
?> 

ViPHP
ViPHP | 5462 Messages

03 juin 2010, 17:01

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

thomas59000
Invité n'ayant pas de compte PHPfrance

03 juin 2010, 17:09

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

ViPHP
ViPHP | 5462 Messages

03 juin 2010, 17:17

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'];
Modifié en dernier par stealth35 le 03 juin 2010, 17:25, modifié 1 fois.

thomas59000
Invité n'ayant pas de compte PHPfrance

03 juin 2010, 17:22

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

ViPHP
ViPHP | 5462 Messages

03 juin 2010, 17:25

$points désolé :wink:

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

thomas5900
Invité n'ayant pas de compte PHPfrance

03 juin 2010, 17:28

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

ViPHP
ViPHP | 5462 Messages

03 juin 2010, 17:30

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:

Invité
Invité n'ayant pas de compte PHPfrance

03 juin 2010, 17:31

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 />

ViPHP
ViPHP | 5462 Messages

03 juin 2010, 17:33

normale t'as mis $points avant qui sois créée

tu le cree dans infobasecorrection ligne 38

thomas59000
Invité n'ayant pas de compte PHPfrance

03 juin 2010, 17:34

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

Invité
Invité n'ayant pas de compte PHPfrance

03 juin 2010, 17:35

euh ligne 38 c'est sa <FORM NAME="form1">

thomas59000
Invité n'ayant pas de compte PHPfrance

03 juin 2010, 17:36

euh ligne 38 c'est sa <FORM NAME="form1">
Oops dsl c'est sa : $points=0;

thomas59000
Invité n'ayant pas de compte PHPfrance

03 juin 2010, 17:40

Je dois faire quoi a la place de c $points = 0 ?

ViPHP
ViPHP | 5462 Messages

03 juin 2010, 17:41

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