Poster les bonnes et mauvaises réponses d'un test par mail
Posté : 20 août 2010, 11:45
Bonjour, je travaille sur un test en ligne. Lorsque la personne à rempli le test, et le formulaire avec ses coordonnées (sur une deuxième page), un mail automatique est envoyé au formateur, mais il ne reçoit que la comptabilisation des points dans chaque catégorie (grammaire, verbes etc...). Le formateur souhaiterait pouvoir voir où la personne a fait des erreurs...
Je reprends le travail de quelqu'un qui n'est pas vraiment disponible...comment je peux faire, sachant que je peux afficher les bonnes et mauvaises réponses mais seulement sur la deuxième page juste avant le formulaire, le but étant de ne pas donner les réponses à la personne qui fait le test. Voilà les écritures où il y a les réponses :
Je reprends le travail de quelqu'un qui n'est pas vraiment disponible...comment je peux faire, sachant que je peux afficher les bonnes et mauvaises réponses mais seulement sur la deuxième page juste avant le formulaire, le but étant de ne pas donner les réponses à la personne qui fait le test. Voilà les écritures où il y a les réponses :
if(isset($_POST['suivant'])){
// Si on arrive de la page precedente, alors les données POST du test sont presente, donc on peut faire la boucle.
// Une fois la boucle faite, les donnees sont enregistrées en sessions.
foreach($_POST['ans'] as $cle => $valeur) {
if (trim(strtolower($_POST['ans'][$cle])) == $good[$cle]){
$question_courante = substr($cle, 1, 2);
//Affichage des bonnes reponses
//echo '<li>'.$cle.' : <span style ="'.$ansUser.'">'.$_POST["ans"][$cle].'</span> => <span style="'.$ansGood.'">BON</span></li>';
if ($question_courante <= 30){
$pts = $pts + 1; // Les questions de 1 a 30 donnent 1 point
} else {
$pts = $pts + 2; // Les questions de 31 a 60 comptent double
}
// Comptage des bonnes réponses plus précis (rajouté le 13/10/09)
if ((0 <= $question_courante) && ($question_courante <= 20)){
$rep_grammar = $rep_grammar + 1; // Réponses de 1 à 20 = GRAMMAR
} elseif ((21 <= $question_courante) && ($question_courante <= 30)) {
$rep_prep = $rep_prep + 1; // Réponses de 21 à 30 = PREPOSITIONS
} elseif ((31 <= $question_courante) && ($question_courante <= 45)) {
$rep_verbs = $rep_verbs + 1; // Réponses de 31 à 45 = VERBS
} else {
$rep_vocab = $rep_vocab + 1; // Réponses de 46 à 60 = VOCAB
}
$bonne_reponse = $bonne_reponse + 1;
} else {
//Affichage des mauvaises reponses
//echo '<li>'.$cle.' : <span style ="'.$ansUser.'">'.$_POST["ans"][$cle].'</span> => <span style="'.$ansWrong.'">FAUX</span> La reponse correcte etait : '.$good[$cle].'</li>';
}
}
$_SESSION['bonne_rep'] = $bonne_reponse;
$_SESSION['total_score'] = $pts;
$_SESSION['pts_grammar'] = $rep_grammar;
$_SESSION['pts_prepositions'] = $rep_prep;
$_SESSION['pts_verbs'] = $rep_verbs*2;
$_SESSION['pts_vocabulaire'] = $rep_vocab*2;
}
Et voilà une partie du mail envoyé au formateur :
// Contenu du mail
$acb_msg = "--$mime_boundary\n";
$acb_msg .= "Content-Type: text/html; charset=utf-8\n";
$acb_msg .= "Content-Transfer-Encoding: 8bit\n\n";
$acb_msg .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">'."\r";
$acb_msg .= '<html xmlns="http://www.w3.org/1999/xhtml">'."\r";
$acb_msg .= '<head>'."\r";
$acb_msg .= '<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />'."\r";
$acb_msg .= '<title>Detail du test</title>'."\r";
$acb_msg .= '<style type="text/css">'."\r";
$acb_msg .= 'table {font-family: Verdana, Arial, Helvetica, sans-serif; font-size:11px; text-align:left;}'."\r";
$acb_msg .= 'hr {color: #ddd; background-color: #ddd; height: 1px; border: 0;}'."\r";
$acb_msg .= '</style>'."\r";
$acb_msg .= '</head>'."\r";
$acb_msg .= '<body>'."\r";
$acb_msg .= '<div style="font-family: Verdana, Arial, Helvetica, sans-serif; font-size:12px;">'."\r";
$acb_msg .= 'Bonjour,<br /><br />'.$fUserCiv.' '.$fUserName.' '.$fUserFirstname.' vient de soumettre le test : '.constant(strtoupper($_SESSION['lang_test'])).'<br /><br />'."\r";
$acb_msg .= '<h3 style="color:#069;">Détail du test :</h3>'."\r";
$acb_msg .= '<table width="350" border="0" cellspacing="2" cellpadding="0">'."\r";
$acb_msg .= '<tr>'."\r";
$acb_msg .= '<th scope="row" style="color:#069;">Langue du test</th>'."\r";
$acb_msg .= '<td>'.constant(strtoupper($_SESSION['lang_test'])).'</td>'."\r";
$acb_msg .= '</tr>'."\r";
$acb_msg .= '<tr>'."\r";
$acb_msg .= '<th scope="row" style="color:#069;">Heure</th>'."\r";
$acb_msg .= '<td>'.date("H:i").'</td>'."\r";
$acb_msg .= '</tr>'."\r";
$acb_msg .= '<tr>'."\r";
$acb_msg .= '<th scope="row" style="color:#069;">Grammar</th>'."\r";
$acb_msg .= '<td>'.$_SESSION['pts_grammar'].' / 20</td>'."\r";
Comment je peux faire ???? Et comment je l'écris surtout ?? Si vous avez une idée.... merci d'avance