8768 sujets

Développement web côté serveur, CMS

Bonjour à tous !
Sous IE 7 et Firefox, je ne parviens pas à conserver la saisie des champs de mon formulaire après qu'il soit validé.
J'utilise cryptograph comme CAPTCHA qui fonctionne très bien d'ailleurs, tout comme mes codes de saisis obligatoires.
J'ai essayé pas mal de trucs, comme l'insertion dans chaque champ de la propriété VALUE :
value= "<? echo $_POST [nom_de_mon_champ]; ?>"
J'ai tenté également l'utilisation des sessions afin de conserver mes variables, mais sans succès.
Lorsque je clique sur retour, en cas d'erreur du code de sécurité, les valeurs saisies disparaissent.
J'aimerais qu'elle restent à l'écran afin que le visiteur n'ait pas à tout retaper.
Quelle page dois-je modifier, celle du formulaire, celle de la vérification ou bien les deux ?
Quelqu'un pourrait-il m'aider ?
Voici le lien :
http://zothique.free.fr/crypt/formulaire.php
Cordialement.
Modifié par zothique (11 Dec 2007 - 23:04)
Ceci est indépendant du bouton précédent, si c'était ça ta question.
C'est le fonctionnement du navigateur qui veut ça...
Hello zothique Smiley cligne ,

le plus simple pour ne pas se compliquer la vie avec des sessions ou autre est de tout faire sur la même page et de ne la quitter que lorsque tous les champs sont OK et validés avec un header. Un petit exemple :
<?php
// Déclaration des champs (vides ou récupération des $_POST)...
$nom = (isset($_POST['nom'])) ? htmlspecialchars($_POST['nom']) : '';
$prenom = (isset($_POST['prenom'])) ? htmlspecialchars($_POST['prenom']) : '';

// Si le formulaire a été envoyé, on teste les champs...
$erreur = false;
if (!empty($_POST)) { 
	// vérification dans l'ordre inverse pour que le dernier soit le premier [smile]
	// prénom obligatoire
	if (empty($prenom)) {
		$erreur = true;
		$errmsg = 'Merci de saisir le Prénom.';
	}
	// nom obligatoire
	if (empty($nom)) {
		$erreur = true;
		$errmsg = 'Merci de saisir le Nom.';
	}
	// Si tout est OK on exécute l'action (INSERT dans la base, envoi d'email, etc...)
	if (!$erreur) {
		// INSERT INTO... mail()... etc...
		// et on sort
		header("Location: pagedeconfirmation.php");
		exit;
	}
}
?>
<!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=utf-8" />
<title>Test formulaire</title>
<style type="text/css">
<!-- 
.alert {
	color:#990000;
}
-->
</style>
</head>
<body>
<?php
if ($erreur) {
	echo '<p class="alert">'.$errmsg.'</p>';
}
?>
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
	<p>
		<label for="nom">Nom:</label>
		<input type="text" id="nom" name="nom" value="<?php echo stripslashes($nom); ?>" />
	</p>
	<p>
		<label for="prenom">Prénom:</label>
		<input type="text" id="prenom" name="prenom" value="<?php echo stripslashes($prenom); ?>" />
	</p>
	<p>
		<input type="submit" value="Envoyer" />
	</p>
</form>
</body>
</html>

A+
Modifié par Heyoan (11 Jul 2008 - 01:55)
Administrateur
Bonjour et bienvenue, Smiley smile

En tant que modérateur, je me dois de te faire remarquer que tu n'as malheureusement pas respecté l'une des Règles de base du forum qui est de ne pas utiliser les majuscules dans un titre.

Je te remercie par avance de bien vouloir éditer ton 1er message (où tu pourras modifier ton titre) afin de rendre conforme à cette règle. Smiley cligne

D'ailleurs, je rappelle que le lien qui apparaît en bandeau tout en haut du forum ("Nouveau sur le forum ?...") est important. Il contient des pistes de recherche, des indications sur les règles de vie de la communauté, etc.
Il serait courtois de ta part de bien vouloir en prendre connaissance.

Bonne continuation Smiley smile
Modifié par Felipe (11 Dec 2007 - 14:15)