8796 sujets

Développement web côté serveur, CMS

salut a tous j'ai un petit problem,comment garder les selection des bouton radio choisi par utilisateu si j'ai un message d'erreu Smiley confus ,ya quelqu'un qui me voi?
Modifié par kiki23 (05 Jun 2009 - 01:37)
Hello kiki23 et bienvenue, Smiley smile

(sujet déplacé dans le bon salon).

Pour commencer et comme cela est indiqué dans la règle #11, il est demandé que les titres soient évocateurs... ce qui n'est pas le cas du tien : si tous les sujets étaient aussi peu clairs on aurait vraiment du mal à s'y retrouver. Smiley cligne

Pourrais-tu STP éditer ton message pour te conformer à cette règle ?


Pour ce qui est de ta question voici un petit exemple :
<?php
// Déclaration des champs (vides ou récupération des $_POST)...
$nom = !empty($_POST['nom']) ? trim($_POST['nom']) : ''; // 
$prenom = !empty($_POST['prenom']) ? trim($_POST['prenom']) : ''; // 
$toto = !empty($_POST['toto']) ? $_POST['toto'] : ''; // 

$erreurs = array();

// Si le formulaire a été envoyé, on teste les champs...
if($_SERVER['REQUEST_METHOD'] == 'POST') {
	if(empty($nom)) {
		$erreurs[] = 'Le nom doit être renseigné !';
	}
	if(empty($prenom)) {
		$erreurs[] = 'Le prénom doit être renseigné !';
	}
	if(empty($toto)) {
		$erreurs[] = 'Il faut dire comment ça va !';
	}

	// Si aucune erreur
	if(empty($erreurs)) {
		// traitement
		header("Location: confirmation.php"); // redirection vers page de confirmation du traitement
	}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr" lang="fr">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<title>Test formulaire</title>
<style type="text/css">
.alert {
	color:#990000;
}
</style>
</head>
<body>
<?php
// erreur(s) à afficher ?
if(!empty($erreurs)) {
	foreach($erreurs as $erreur) {
		echo '<p class="alert">'.$erreur."</p>\n";
	}
}
?>
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post">
	<fieldset>
		<legend>Identité</legend>
		<p>
			<label for="nom">Nom : </label>
			<input type="text" id="nom" name="nom" value="<?php echo htmlspecialchars($nom); ?>" />
		</p>
		<p>
			<label for="prenom">Pr&eacute;nom : </label>
			<input type="text" id="prenom" name="prenom" value="<?php echo htmlspecialchars($prenom); ?>" />
		</p>
	</fieldset>
	<fieldset>
		<legend>Questionnaire</legend>
		<p>Ça va toi ?</p>
		<p>
			<input name="toto" value="oui" id="toto_oui" type="radio"<?php if($toto == 'oui') echo ' checked="checked"'; ?> />
			<label for="toto_oui">Oui</label>
		</p>
		<p>
			<input name="toto" value="non" id="toto_non" type="radio"<?php if($toto == 'non') echo ' checked="checked"'; ?> />
			<label for="toto_non">Non</label>
		</p>
		<p>
			<input name="toto" value="bof" id="toto_bof" type="radio"<?php if($toto == 'bof') echo ' checked="checked"'; ?> />
			<label for="toto_bof">Bof</label>
		</p>
	</fieldset>
	<p>
		<input type="submit" value="Envoyer" />
	</p>
</form>
</body>
</html>

Modifié par Heyoan (05 Jun 2009 - 03:46)
Salut Heyoan

j'ai lue attentivement le code que tu as mis, et j'ai une petite question

<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>


Je n'ai pas encore eu l'occasion d'utiliser $_SERVER['PHP_SELF'] mais je suppose qu'il renvoie le nom du fichier (donc son propre nom), mais je ne comprend pas pourquoi coder les caractères spéciaux en html ? il ne peut pas y en avoir dans un nom de fichier si ?
C'est recommandé car $_SERVER['PHP_SELF'] est généré par le navigateur et est potentiellement susceptible d'être modifié.


Edit: plus d'infos sur developpez.com.
Modifié par Heyoan (11 Jun 2009 - 16:03)