<form action="calcul.php" method="post">Quelles sont vos connaissances de HTML ?<input type="radio" name="choice" value="1" checked>faibles<input type="radio" name="choice" value="2">moyennes<input type="radio" name="choice" value="3">bonnes<br>Indiquez votre expertise en programmation:<input type="radio" name="choice2" value="1" checked>absente<input type="radio" name="choice2" value="2">moyenne<input type="radio" name="choice2" value="3">bonne<P><input type="submit" value="Voir le résultat!"></form>
Les données en provenance des formulaires sont stockées dans des variables spéciales de php qu’on appelle des arrays "super globaux" (car ils sont accessible depuis n’importe quel endroit du programme).
Selon la méthode choisie pour la transmission du formulaire (POST ou GET), on utilise la variable $_POST ou $_GET.
Les valeurs sont indéxés dans ces arrays par le nom donné à l’input avec l’attribut NAME.
Dans notre exemple, on peut donc récupérer la réponse aux questions dans la variable $_POST:
$choice = $_POST[’choice’];
$choice2 = $_POST[’choice2’];
<?php
// Récupération des variables du formulaire
$choice = $_POST[’choice’];
$choice2 = $_POST[’choice2’];
// Ensuite on calcule le score
$score = $choice + $choice2;
// Et on donne le résultat en fonction du score obtenu
echo "<h3>Votre score est de " . $score . "</h3>";
// Et finalement un commentaire
if ($score < 3 ) {
echo "<p>Vous êtes un débutant</p>";
} elseif ($score < 5) {
echo "<p>Vous avez un niveau moyen</p>";
} else {
echo "<p>Vous êtes un expert !</p>";
}
?>
<form action="calcul4.php " method=post>
Quels sont vos couleurs préféres?
<br>
<input type="checkbox " name="choice[] " value="Red">Red
<table bgcolor="red" width="50"><tr><td> </td></tr></table>
<input type="checkbox" name="choice[] " value="Blue">Blue
<table bgcolor="blue" width="50"><tr><td> </td></tr></table>
<input type="checkbox" name="choice[] " value="Green">Green
<table bgcolor="green" width="50"><tr><td> </td></tr></table>
.....
<input type="checkbox" name="choice[] " value="Black">Black
<table bgcolor="black" width="50"><tr><td> </td></tr></table>
<input type="submit" value="Voir le résultat!">
</form>
<form action="calcul3.php " method=post>
Quels sont vos couleurs préféres?
<input type="checkbox" name="choice1 " value="Red">Red
<table bgcolor="red" width="50"><tr><td> </td></tr></table>
<input type="checkbox" name="choice2 " value="Blue">Blue
<table bgcolor="blue" width="50"><tr><td> </td></tr></table>
.....
<input type="checkbox" name="choice6 " value="Black">Black
<table bgcolor="black" width="50"><tr><td> </td></tr></table>
<input type="submit" value="Voir le résultat!">
</form>
<?php
echo "<h3>Vos couleurs préférées sont </h3>";
if (isset($_POST[’choice1’])) {echo $_POST[’choice1’] . " - ";}
if (isset($_POST[’choice2’])) {echo $_POST[’choice2’] . " - ";}
if (isset($_POST[’choice3’])) {echo $_POST[’choice3’] . " - ";}
if (isset($_POST[’choice4’])) {echo $_POST[’choice4’] . " - ";}
if (isset($_POST[’choice5’])) {echo $_POST[’choice5’] . " - ";}
if (isset($_POST[’choice6’])) {echo $_POST[’choice6’]);}
?>
<FORM METHOD="POST" ACTION="<? echo $_SERVER[’PHP_SELF’] ?>" > ........ <br> Entrez le cout de votre assurance/ Insurance<br> <input type="text" name=assurance size=8 value=0><br> Entrez le prix que vous ont coûté vos accidents / Accidents<br> <input type="text" size=8 name=accidents value=0><br>........ Entrez le coût de vos amendes ... / fines<br> <input type="text" size=8 name=amendes value=0><br> Votre Nom / Your name <input type="text" size=40 name=nom><br> <HR width=250><BR> <input type="submit" value="Alors / Let’s see !?!" name="process" > </FORM> </center>
<?php if (!isset($_POST[’process’])) { ?>//... ici on affiche le formulaire (directement en HTML)// uniquement si $process = FALSE. <FORM METHOD="POST" ACTION="<? echo $PHP_SELF ?>"> ..... </FORM><?} else { //... ici on effectue les calculs} ?>
Voici le code (sans la phase de récupération des variables):
// calculate the cost per month
$cost = round(((((((($accidents + $assurance) + (((($consokilo / 100.0) * $kilomois) * $prixcarbu) * 12.0)) + $vignette) + $tcs) + $autoroutes) + $entretien) + $amendes) / 12.0);echo "<h2>Resultat/Result</h2>";// print the name if we got oneif ($nom) { echo "$nom, votre "; } else { echo "Votre ";}// print the resultsecho "bagnole vous coutera environ $cost francs par mois / Your car costs about $cost Swiss francs/month.<p>";// give a short comment if ($cost < 10) { $evaluation = "Heh c’est pas sérieux / Mhh this doesn’t look serious !"; } elseif ($cost < 400.0) { $evaluation = "Vous en sortez bien / This is fine :)"; } else { $evaluation = "Vous ne vous en sortez pas bien, pensez aux transports communs / You pay quite a lot!"; }echo "$evaluation <p>";
Voir la version intégrée de l’ exemple Un simple quiz et POST vers un autre fichier PHP:
Dans PHP vous pouvez tester si une variable “POST/GET” existe ou si elle a une valeur non-zéro ou non-vide (string):
if (array_key_exists(’first’, $_POST)) { .... faire ...};
if (isset($POST[’first’]) ) { .... faire ....}
La différence est que array_key_exists retourne TRUE même quand la valeur est NULL alors que isset retourne FAUX.
if (empty ($input) ) { ... ne rien faire} else { ... faire ...}
Donc empty() retourne TRUE si la valeur est soit: "", 0, "0", NULL, FALSE, array(), ....
session_start();
if (!isset($_SESSION[’count’])) {
$_SESSION[’count’] = 0;
} else {
$_SESSION[’count’]++;
}
if ($_SESSION[’count’] > 2) {
echo ’<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">’;
echo "<html> <body>";
echo "Désolé c’est terminé, vous ne pouvez pas envoyer 2 fois le meme questionnaire";
echo "</body> </html>";
exit;
}
// .... continuer ici le code qui gère l’accès 1 et 2