Probléme réaffichage formulaire

Fermé
flo076 - Modifié par flo076 le 16/11/2010 à 13:22
avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 - 16 nov. 2010 à 18:06
Bonjour,

Je suis actuellement en deuxiéme année de dut informatique. J'ai pour projet la conception et le developement d'un site de vote en ligne. J'ai decidé de commencé ce site par un simple formulaire d'inscription en tant qu'electeur ou candidat.
J'ai codé en php se formulaire pour que si il existe une erreur dans le formulaire qu'il se réaffiche avec les champs préremplie sauf ce mauvais par exemple si l'adresse mail ne contient pas d'arobas je réaffiche en affichant tous le formulaire rempli sauf l'adresse mail et le mot de passe.
Pour se faire j'ai mit un "if" dans lequel je test différente choses. Et dans le "else" je m'occupe dans l'enregistrement dans ma base de donné. Mon probléme et que je veux testé que le login ( le pseudo ) n'existe pas dans la bases de donné le probléme et que si il existe je ne voit pas comment réaffiché l'ensemble de mon formulaire pré-rempli sauf le mot de passe et le login. Plutot que des grandes phrases voila mon code:

Pour info c'est au niveau de :

while ($ligne = pg_fetch_object($reponse) && $i==0)

Que je ne sais que faire, voila le code


--------------------------------------------------------------------------------
<body>

<?php include("en_tete.php"); ?>
<?php include("menu.php"); ?>

<?php
echo("<form method=\"get\" action=\"inscript.php\">");

/*Verifie si les variable ont été crée et
si ce NEST pas le cas il crée des variable vide*/

//1er test qui permet de savoir si c'est le 1er affichage du formulaire
if(! isset( $_REQUEST['nom'])&&! isset( $_REQUEST['prenom'])&&! isset( $_REQUEST['email'])&& ! isset( $_REQUEST['login'])&&! isset( $_REQUEST['mdp1'])&&! isset( $_REQUEST['mdp2']))
$boolean=1;
else
$boolean=0;


if ( ! isset( $_REQUEST['arg']) )
$arg="";
else
$arg=$_REQUEST['arg'];


if ( ! isset( $_REQUEST['genre']) )
$genre="";
else
$genre=$_REQUEST['genre'];

if ( ! isset( $_REQUEST['nom']) )
$nom="";
else
$nom=$_REQUEST['nom'];

if ( ! isset( $_REQUEST['prenom']) )
$prenom="";
else
$prenom=$_REQUEST['prenom'];

if ( ! isset( $_REQUEST['email']) )
{
$email="";
$bool=1;
}
else
{
$email=$_REQUEST['email'];
$bool=0;
}

if ( ! isset( $_REQUEST['type']) )
$type="";
else
$type= $_REQUEST['type'];
if ( ! isset( $_REQUEST['login']) )
$login="";
else
$login=$_REQUEST['login'];
if ( ! isset( $_REQUEST['mdp1']) )
{
$mdp1="";
$mdp2="";
}
else
{
$mdp1=$_REQUEST['mdp1'];
$mdp2=$_REQUEST['mdp2'];
}

/*TEST L'ENSEMBLE DES VARIABLE POUR VOIR SI ELLE SONT CORRECT
SI CE NEST PAS LE CAS IL LES REMET A BLANC*/

if ( !isset($message))
$message="";
$long=strlen($mdp1);

if (strcmp($mdp1,$mdp2) != 0 || strcmp($mdp1,"")==0 || $long<6 )
{
if(strcmp($mdp1,"")==0)
$message .= "-Vous n'avez pas rempli la case mot de Passe<br/>";
if(strcmp($mdp1,$mdp2) != 0)
$message .= "-Vos mots de passe ne sont pas identique<br/>";
if ( $long <6)
{
$message .= "-votre mot de passe fait $long au lieu de 6<br/>";
}
$mdp1="";
$mdp2="";
}

$point=strpos($email,'.');
$aroba=strpos($email,'@');
if ( $aroba == false || $point==false )
{
$email="";
$mdp1="";
$mdp2="";
$message .= "-adresse email invalide<br/>";
}





/*AFFICHAGE DU FORMULAIRE PREREMPLI SI C BON*/

if ( $point ==false || $aroba==false || strcmp($mdp1,"")==0 || $long <6 )
{

echo("<div id=\"corps\">");
echo("<fieldset>");
echo("<legend>Information personelle</legend>");
echo "<select size='1' name='genre' > ";
echo "<OPTION value='M' selected value='M'>M ";
echo "<OPTION value='Mme'>Mme ";
echo "<OPTION value='Mlle'>Mlle ";
echo "</select> ";

echo( "<br/>Nom:<br/>" );
echo(" <input type=\"text\" name=\"nom\" size=60 value=$nom ><br/>" );
echo( "Prenom:<br/>" );
echo(" <input type=\"text\" name=\"prenom\" size=60 value=$prenom ><br/>" );
echo( "Adresse e-mail :<br/>" );
echo(" <input type=\"text\" name=\"email\" size=60 value=$email ><br/>" );
echo("</fieldset><br/><br/>");


echo("<fieldset>");
echo("<legend>Identifiant</legend>");

echo ("Vous vouz inscrivez en tant que :");
echo "<select size='1' name='type'value=$type> ";
echo "<OPTION value='electeur'>Electeur ";
echo "<OPTION value='cand'>Candidat ";
echo "</select> ";

echo( "<br/>Login:<br/>" );
echo(" <input type=\"text\" name=\"login\" size=60 value=$login ><br/>" );
echo( "Mot de passe: (minimun 6 caractere)<br/>" );
echo(" <input type=\"password\" name=\"mdp1\" size=60 value=$mdp1 ><br/>" );
echo( "Confirmation Mot de passe:<br/>" );
echo(" <input type=\"password\" name=\"mdp2\" size=60 ><br/>" );

echo( "<br/>Si vous êtes un candidat rentrez votre argumentation:<br/>" );
echo("<TEXTAREA NAME=\"arg\" ROWS=\"5\" COLS=\"50\"></TEXTAREA>");

echo("</fieldset>");

if($boolean==0)
echo("<h4>Le formulaire comporte plusieur erreur , voici la liste : <br/> $message<br/><br/></h4>");

echo("<input type=\"submit\" name=\"ok\" value=\"Enregistrer\"/> ");
echo("<input type=\"reset\" name=\"reset\" value=\"Annuler\"/>");

echo("</form>");

echo("</div>");
}
else
{

//echo("Partie a coder qui apelle la validation et enregistre dans la base de donné");
echo ("1=> la connexion\n");
$connexion=pg_connect(" host=***** dbname=**** user=**** password=*****")
or die("Impossible de se connecter");
echo("valeur de login : $login<br/>");


$requete= "select * from vote_electeur where login_electeur='$login' ;";
$reponse = pg_query($connexion, $requete)
or die ("Impossible de se connecter");
$i=0;
while ($ligne = pg_fetch_object($reponse) && $i==0)
{
echo("valeur de ligne : $ligne<br/>");
if( strcmp($login, $ligne) )
{
echo("Ce pseudo est déja utilisé");
header("Location: temp.php?nom=$nom");
exit();
}

}

/*if($type=="electeur")
{
echo("<br /><br /><br />Enregistrement d'un Electeur<br /><br /><br /><br />");

$enreg = "INSERT INTO VOTE_Electeur (nom_Electeur,prenom_Electeur,login_Electeur,mot_de_passe_Electeur,email_Electeur)
values ('$nom','$prenom','$login','$mdp1','$email');";
pg_query($connexion,$requete);
}
else if ($type=="cand")
{
echo("<br /><br /><br />Enregistrement d'un Candidat<br /><br /><br />");
$enreg = "INSERT INTO VOTE_Candidat (nom_Candidat,prenom_Candidat,login_Candidat,mot_de_passe_Candidat,email_Candidat,arg)
values ('$nom','$prenom','$login','$mdp1','$email','$arg');";
pg_query($connexion,$requete);
}*/


}


?>

</body>

</html>


Merci d'avance pour votre réponses.

1 réponse

avion-f16 Messages postés 19250 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 22 décembre 2024 4 505
16 nov. 2010 à 18:06
Salut.

Je n'ai pas lu ton code, mais je te conseille d'utiliser des variables :
- une pour stocker le nombre d'erreurs
- une autre pour les messages d'erreur
- une dernière pour stocker les valeur par défaut des champs.


Exemple avec ces champs :
- Genre
- Nom
- Prénom
- Email
- Identifiant
- Type
- Mot de passe
- Mot de passe (vérification)

<?php
$nbErrors = 0;
$msgErrors = array();
$defaultValues = array(
	'genre' => 'M',
	'nom' => 'Votre nom',
	'prenom' => 'Votre prénom',
	'email' => 'Votre adresse email (user@example.com)',
	'identifiant' => 'Votre identifiant',
	'type' => 'Electeur'
);

// Fonction qui retourne true si l'utilisateur $identifiant
// est déjà enregistré dans la table
function deja_utilise($identifiant) {
	/*$pdo = new PDO('mysql:host=localhost;dbname=ma_base','root','');
	$sql = 'SELECT COUNT(*) AS nb FROM utilisateurs WHERE identifiant='.$pdo->quote($identifiant);
	$req = $pdo->query($sql);
	$result = $req->fetch();
	
	return ($result > 0) ? true : false;*/
	return false;
}

if(!empty($_POST)) {
	// Vérification du genre
	if(isset($_POST['genre']) && ($_POST['genre'] == 'M' || $_POST['genre'] == 'Mme' || $_POST['genre'] == 'Mlle')) {
		$defaultValues['genre'] = $_POST['genre'];
	} else {
		$nbErrors++;
		array_push($msgErrors, 'La valeur du champ "Genre" est incorrecte');
	}

	// Vérification du nom
	if(isset($_POST['nom']) && strlen($_POST['nom']) > 1) {
		$defaultValues['nom'] = $_POST['nom'];
	} else {
		$nbErrors++;
		array_push($msgErrors, 'Le champ "Nom" doit contenir au minimum 2 lettres');
	}

	// Vérification du prénom
	if(isset($_POST['prenom']) && strlen($_POST['prenom']) > 1) {
		$defaultValues['prenom'] = $_POST['prenom'];
	} else {
		$nbErrors++;
		array_push($msgErrors, 'Le champ "Prénom" doit contenir au minimum 2 lettres');
	}

	// Vérification de l'adresse email
	if(isset($_POST['email']) && filter_var($_POST['email'], FILTER_VALIDATE_EMAIL)) {
		$defaultValues['email'] = $_POST['email'];
	} else {
		$nbErrors++;
		array_push($msgErrors, 'L\'adresse email indiquée est invalide');
	}

	// Vérification de l'identifiant
	if(isset($_POST['identifiant']) && !deja_utilise($_POST['identifiant']) && strlen($_POST['identifiant']) > 3) {
		$defaultValues['identifiant'] = $_POST['identifiant'];
	} else {
		$nbErrors++;
		array_push($msgErrors, 'L\'identifiant choisis est trop court (4 caractères min.) ou est déjà utilisé');
	}

	// Vérification du type
	if(isset($_POST['type']) && ($_POST['type'] == 'Electeur' || $_POST['type'] == 'Candidat')) {
		$defaultValues['type'] = $_POST['type'];
	} else {
		$nbErrors++;
		array_push($msgErrors, 'La valeur du champ "Type" est invalide');
	}

	// Vérification du mot de passe
	if(!isset($_POST['password1']) || strlen($_POST['password1']) < 4) {
		$nbErrors++;
		array_push($msgErrors, 'Le mot de passe est trop court (4 caractères min.)');
	}

	// Concordance des mots de passe
	if(!isset($_POST['password2']) || $_POST['password1'] =! $_POST['password2']) {
		$nbErrors++;
		array_push($msgErrors, 'Les mots de passe entrés ne correspondent pas');
	}
}

include 'formulaire.php';
?>


Le fichier formulaire.php :
<?php
$m_selected = '';
$mme_selected = '';
$mlle_selected = '';

if($defaultValues['genre'] == 'M') { $m_selected = ' selected="selected"'; }
if($defaultValues['genre'] == 'Mme') { $mme_selected = ' selected="selected"'; } 
if($defaultValues['genre'] == 'Mlle') { $mlle_selected = ' selected="selected"'; } 

$electeur_selected = '';
$candidat_selected = '';

if($defaultValues['type'] == 'Candidat') { $candidat_selected = ' selected="selected"'; }
if($defaultValues['type'] == 'Electeur') { $electeur_selected = ' selected="selected"'; } 

?><form method="post" action="">

	<?php if($nbErrors > 0) {
	echo '<div class="errors">';
	foreach($msgErrors as $msg) {
		echo $msg.'<br />';
	}
	echo '</div>';
	} ?>
	
	<p>
		<label for="genre_id">Genre :</label>
		<select name="genre" id="genre_id">
			<option value="M"<?php echo $m_selected; ?>>M</option>
			<option value="Mme"<?php echo $mme_selected; ?>>Mme</option>
			<option value="Mlle"<?php echo $mlle_selected; ?>>Mlle</option>
		</select>
	</p>

	<p>
		<label for="nom_id">Nom :</label>
		<input type="text" name="nom" id="nom_id" value="<?php echo $defaultValues['nom']; ?>" />
	</p>
	
	<p>
		<label for="prenom_id">Prénom :</label>
		<input type="text" name="prenom" id="prenom_id" value="<?php echo $defaultValues['prenom']; ?>" />
	</p>
	
	<p>
		<label for="email_id">Email :</label>
		<input type="text" name="email" id="email_id" value="<?php echo $defaultValues['email']; ?>" />
	</p>
	
	<p>
		<label for="identifiant_id">Identifiant :</label>
		<input type="text" name="identifiant" id="identifiant_id" value="<?php echo $defaultValues['identifiant']; ?>" />
	</p>
	
	<p>
		<label for="type_id">Type :</label>
		<select name="type" id="type_id">
			<option value="Electeur"<?php echo $electeur_selected; ?>>Electeur</option>
			<option value="Candidat"<?php echo $candidat_selected; ?>>Candidat</option>
		</select>
	</p>
	
	<p>
		<label for="password1_id">Mot de passe :</label>
		<input type="password" name="password1" id="password1_id" />
	</p>
	
	<p>
		<label for="password2_id">Mot de passe (vérification) :</label>
		<input type="password" name="password2" id="password2_id" />
	</p>
	
	<p>
		<input type="submit" value="Envoyer" />
	</p>
</form>
0