Je commence à apprendre le PHP. Je suis les exercices d'un livre et je suis tomber sur un scripte qui ne fonctionne pas. Il me permet de tester des champs obligatoire. Certes, il existe d'autre moyen d'y parvenir, mais ce scripte se développe à mesure que l'on avance dans le livre. D'où l'interrêt de savoir pourquoi ça ne marche pas. Je pense avoir correctement recopier le code. Il ne me reste plus qu'à supposer que l'erreur est dans le livre. Mais là, ce n'est plus de mon niveau.
Voici le code :
CODE
HTML
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Test des champs vides</title>
</head>
<body>
<?php
// Définir les champs à tester
$etiquettes = array ( "prenom" => "Prénom",
"second_prenom" => "Second prénom",
"nom" => "Nom",
"telephone" => "Téléphone");
// Contrôler tous les champs sauf celui du second prénom
foreach ($HTTP_POST_VARS as $cle => $valeur)
{if ($cle != "second_prenom")
{ if ( $valeur == "" )
{ $champVide[$cle] = "blanc";
}
}
}
$champVide["prenom"] = "blanc";
// Si l'un des champs est vide, afficher un message
if (@sizeof($champVide) != "") //en cas de champs vide
{ echo "<b> Un des champs obligatoire n'a pas été renseigné. Vous devez saisir :</b><br>";
// Affichage du nom des informations requises
foreach($champVide as $cle => $valeur)
{ echo " {$etiquettes[$cle]}<br>";
}
// réafficher le formulaire
echo "<p><hr>
<form action='testblanc.php' method='post'>
<center>
<table width='95%' border='0' cellspacing='0' cellpadding='2'>
<tr>
<td align='right'><b>{$etiquettes['prenom']}:</br></td>
<td><input type ='text' name='prenom' size='35' maxlenght='35' value='$prenom' > </td>
</tr>
<tr>
<td align='right'><b>{$etiquettes['second_prenom']}:</br></td>
<td><input type ='text' name='second_prenom' size='35' maxlenght='35' value='$second_prenom' > </td>
</tr>
<tr>
<td align='right'><b>{$etiquettes['nom']}:</br></td>
<td><input type ='text' name='nom' size='35' maxlenght='35' value='$nom' > </td>
</tr>
<tr>
<td align='right'><b>{$etiquettes['telephone']}:</br></td>
<td><input type ='text' name='telephone' size='35' maxlenght='35' value='$telephone' > </td>
</tr>
<table>
<p><input type='submit' value='Validez'>
</form>
</center>";
exit();
}
echo "Bienvenue...";
?>
</body>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<title>Test des champs vides</title>
</head>
<body>
<?php
// Définir les champs à tester
$etiquettes = array ( "prenom" => "Prénom",
"second_prenom" => "Second prénom",
"nom" => "Nom",
"telephone" => "Téléphone");
// Contrôler tous les champs sauf celui du second prénom
foreach ($HTTP_POST_VARS as $cle => $valeur)
{if ($cle != "second_prenom")
{ if ( $valeur == "" )
{ $champVide[$cle] = "blanc";
}
}
}
$champVide["prenom"] = "blanc";
// Si l'un des champs est vide, afficher un message
if (@sizeof($champVide) != "") //en cas de champs vide
{ echo "<b> Un des champs obligatoire n'a pas été renseigné. Vous devez saisir :</b><br>";
// Affichage du nom des informations requises
foreach($champVide as $cle => $valeur)
{ echo " {$etiquettes[$cle]}<br>";
}
// réafficher le formulaire
echo "<p><hr>
<form action='testblanc.php' method='post'>
<center>
<table width='95%' border='0' cellspacing='0' cellpadding='2'>
<tr>
<td align='right'><b>{$etiquettes['prenom']}:</br></td>
<td><input type ='text' name='prenom' size='35' maxlenght='35' value='$prenom' > </td>
</tr>
<tr>
<td align='right'><b>{$etiquettes['second_prenom']}:</br></td>
<td><input type ='text' name='second_prenom' size='35' maxlenght='35' value='$second_prenom' > </td>
</tr>
<tr>
<td align='right'><b>{$etiquettes['nom']}:</br></td>
<td><input type ='text' name='nom' size='35' maxlenght='35' value='$nom' > </td>
</tr>
<tr>
<td align='right'><b>{$etiquettes['telephone']}:</br></td>
<td><input type ='text' name='telephone' size='35' maxlenght='35' value='$telephone' > </td>
</tr>
<table>
<p><input type='submit' value='Validez'>
</form>
</center>";
exit();
}
echo "Bienvenue...";
?>
</body>
Ce scripte me fait tourner en bourique. Si quelqu'un trouve la solution à mon problème, ce serait un grand soulagement.
Je vous remercie par avance,
Michaël.