Garder les données déjà saisies dans un formulaire

Fermé
L.A.. Messages postés 3 Date d'inscription jeudi 21 août 2014 Statut Membre Dernière intervention 5 septembre 2014 - 5 sept. 2014 à 11:08
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 - 5 sept. 2014 à 19:24
Bonjour,

J'ai créé un formulaire d'ajout d'utilisateur.

Le nouvel utilisateur doit remplir plusieurs champs et pour à peu près chaque champ, j'ai un test pour être sûre du bon remplissage.

Mon but et ma question est : est ce qu'il est possible de garder les valeurs déjà remplis par l'utilisateur et qui sont bonnes?

J'ai déjà vu plusieurs exemples mais ça n'a pas marché.

J'ai d'un côté mon fichier avec mon formulaire

<?php
if($_rep=='1'){print"<font color=red><b><center>Vous avez déjà un compte.</center></b></font>";}
if($_rep=='2'){print"<font color=red><b><center>L'année de naissance doit être de la forme YYYY.</center></b></font>";}
if($_rep=='3'){print"<font color=red><b><center>Tous les champs doivent être remplis.</center></b></font>";}
if($_rep=='4'){print"<font color=red><b><center>L'email est incorrect.</center></b></font>";}
if($_rep=='5'){print"<font color=red><b><center>L'année d'obtention du diplôme est incorrect.</center></b></font>";}
?>

<div class='connect4'>
<form action="./ajoutUtil.php" method='POST'>
<table align="center" cellpadding="0" cellspacing="20" border="0">
	<tr>
		<td align="center" colspan="2"><h1>Votre compte</h1></td>
	</tr>
	<tr>
		<td align="right"><b>Nom :</b></td>
		<td align="left"><input type="text" name="nom" value="" maxlength="20" size="25"></td>
	</tr>
	<tr>
		<td align="right"><b>Prénom :</b></td>
		<td align="left"><input type="text" name="prenom" value="" maxlength="20" size="25"></td>
	</tr>
	<tr>
		<td align="right"><b>Vous êtes :</b></td>
		<td align="left"><input type='radio' name="sexe" value='Homme'>Homme
		<input type='radio' name="sexe" value='Femme'>Femme</td>
	</tr>
	<tr>
		<td align="right"><b>Votre statut :</b></td>
		<td align="left"><br/><input type='radio' name="statut" value='PUPHMCUPH'>PU-PH/MCU-PH
		<br /><input type='radio' name="statut" value='CCAPHU'>CCA/PHU
		<br /><input type='radio' name="statut" value='Praticienclinique'>PH/Praticien en clinique
		<br /><input type='radio' name="statut" value='Autre'>Autre</td>
	</tr>
	 

	<tr>
		<td align="right"><b>Année de naissance :</b></td>
		<td align="left"><input placeholder="____" type="date" size="15" name="datenaiss" value="" maxlength="4" size="25"></td>
	</tr>
	
	<tr>
		<td align="right"><b>Votre email : </b></td>
		<td align="left"><input type="text" name="email" value="" maxlength="40" size="30"></td>
	</tr>
	
	<tr>
<td align="right"><a href='./index.php' target='blank' tabindex='_blank' class='bouton_rouge' >Annuler</a></td>

<td align="left"><input value="ok" size="10"  type="image" img src="./images/valider.png" onmouseover="this.src='./images/validerO.png';" onmouseout="this.src='./images/valider.png';"></td>
						</tr>
	<tr>
		<td align="center" colspan="2"><input type="hidden" name="denom" value="u"></td>
	</tr>



Et de l'autre, mon fichier de traitement

/*On recupere le type d'ajout*/
$denom=$_POST['denom'];
//print"le nom est $denom<br>";

if($denom=='u'){//Si utilisateur
	
	//Récupération des variables
	$nom=safe($_POST['nom']);
	$prenom=safe($_POST['prenom']);
	$sexe=safe($_POST['sexe']);
	$statut=$_POST['statut'];
	$datenaiss=safe($_POST['datenaiss']);
	$email=$_POST['email'];	
	
	//On ajoute les condition si null
	if($nom==null){$nom='0';}
	if($prenom==null){$prenom='0';}
	if($sexe==null){$sexe='0';}
	if($statut==null){$statut='0';}
	if($datenaiss==null){$datenaiss='0';}
	if($email==null){$email='0';}
	
	
	if($nom==null || $prenom==null || $sexe==null || $statut==null || $datenaiss==null ||$email==null){
		header("Location: ./ajoutUtil.php?rep=3");// Redirection vers la feuille ajout
		exit;
	}

	//On verifie que le nom et le prenom n'existe pas deja
	$affich = "SELECT nom, prenom FROM qp_users WHERE nom = '$nom' AND prenom = '$prenom' ";
    	$result = mysql_query($affich) or die("pas de chance");
	$tab = mysql_fetch_row($result);
	
	if($tab[0]){
		header("Location: ./ajoutUtil.php?rep=1");// Redirection vers la feuille ajout
		exit;
	}
	if(strlen($datenaiss) < 4 ){
		header("Location: ./ajoutUtil.php?rep=2");
// Redirection vers la feuille ajout
		exit;
	}

	//verification email
	if(!IsEmail($email)){
		echo $_POST['email'];
		header("Location: ./ajoutUtil.php?rep=4");
		exit;	
	}


Est-il possible en ayant ces deux fichiers séparés de garder les valeurs déjà saisies?
Si l'utilisateur fait une erreur, il faudrait qu'il n'ait pas à tout remplir une seconde fois...

Je vous remercie d'avance

5 réponses

Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
5 sept. 2014 à 12:04
Bonjour,
Tes pages étant séparé, le plus simple est de passer tes données en sessions tout simplement.
0
L.A.. Messages postés 3 Date d'inscription jeudi 21 août 2014 Statut Membre Dernière intervention 5 septembre 2014
5 sept. 2014 à 12:18
Dans ce cas, quelles seraient les grosses modifications à effectuer?
0
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
5 sept. 2014 à 13:01
1) Ajouter session_start() en haut de tes pages.
2) Mettre tes variables en session
$_SESSION["nom"]=$nom;
dans la partie php
3) Afficher les valeurs
<input value="<?php echo htmlspecialchars($_SESSION["nom"]); ?>" ... />
0
Cela affiche dans la zone de texte :

<br /><b>Notice</b>:  Undefined index: nom in <b>C:\Documents and Settings\4070776\EasyPHP-DevServer-14.1VC9\data\localweb\unisurc\ajoutUtil.php</b> on line <b>77</b><br />



La ligne 77 étant

<td align="left"><input type="text" name="nom" value="<?php echo htmlspecialchars($_SESSION["nom"]); ?>" maxlength="20" size="25"></td>


Que manque t-il?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Nhay Messages postés 838 Date d'inscription vendredi 2 novembre 2012 Statut Membre Dernière intervention 17 décembre 2015 126
Modifié par Nhay le 5/09/2014 à 19:24
C'est juste que $_SESSION["nom"] n'existe pas (lors de la première visite), tu peut soit tester son existence soit ne plus afficher les erreurs notices.
0