Problème appel champs formulaire php/mysql

daf46 -  
 daf46 -
Bonjour,
Je suis actuellement entrain de réalisé un annuaire mais lors de l'inscription d'un usager les champs texte du formulaire ne sont pas reconnu.
Ma fonction isset() ne fonctionne pas je vous donne mon code :

fieldset id="inscr"><legend>Identifiant de connexion</legend>
<label for="login">Login : </label><input type="text" name="login" class="input" id="login" /><br />
<label for="pass">Mot de passe : </label><input type="text" name="pass" class="input" id="pass" /><br />

</fieldset></br>
<fieldset id="inscr"><legend>Informations personnelles</legend>
<label for="nom">Nom : </label><input type="text" name="nom" class="input" id="nom" /><br />
<label for="prenom">Prenom : </label><input type="text" name="prenom" class="input" id="prenom" /><br />
<label for="adresse">Adresse : </label><input type="text" name="adresse" class="input" id="adresse" /><br />
<label for="telephone">Telephone : </label><input type="text" name="telephone" class="input" id="telephone" /><br />
</fieldset>
</center>
<center><input type="submit" class="valider" value="S'inscrire" name="inscrire"></input></center>
</form>
<?php
mysql_connect("localhost", "root", "");
mysql_select_db("annuaire");



if (isset ($_POST['login']) && isset($_POST['pass']) && isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['adresse']) && isset($_POST['telephone'])){

$sql = 'INSERT INTO utilisateurs VALUES( "","kvvvdf","vhjvdvfj","bguugoi","gbuogo","goggg","hohg")';
mysql_query($sql);
echo "OK";
$login = mysql_real_escape_string(htmlspecialchars($_POST['login'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
$pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
$adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse']));
$telephone = mysql_real_escape_string(htmlspecialchars($_POST['telephone']));

$sql = "INSERT INTO utilisateurs VALUES( '', '" . $login . "', '" . $pass . "', '" . $nom . "', '" . $prenom . "', '" . $adresse . "', '" . $telephone . "')";
mysql_query($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

mysql_close(); // On n'oublie pas de fermer la connexion à MySQL

}
else {
echo 'Les variables du formulaire ne sont pas déclarées';
}
?>


Je vous remercie d'avance.

PS : Ce n'est pas un problème de connexion a la base.

10 réponses

Alain_42 Messages postés 5413 Statut Membre 894
 
Soit c'est un pb de copier coller soit il te manque la balise <form

<form name="form1" method="post" action="">
<fieldset id="inscr"><legend>Identifiant de connexion</legend>
<label for="login">Login : </label><input type="text" name="login" class="input" id="login" /><br />
<label for="pass">Mot de passe : </label><input type="text" name="pass" class="input" id="pass" /><br />

</fieldset></br>
<fieldset id="inscr"><legend>Informations personnelles</legend>
<label for="nom">Nom : </label><input type="text" name="nom" class="input" id="nom" /><br />
<label for="prenom">Prenom : </label><input type="text" name="prenom" class="input" id="prenom" /><br />
<label for="adresse">Adresse : </label><input type="text" name="adresse" class="input" id="adresse" /><br />
<label for="telephone">Telephone : </label><input type="text" name="telephone" class="input" id="telephone" /><br />
</fieldset>
</center>
<center><input type="submit" class="valider" value="S'inscrire" name="inscrire"></input></center>
</form>
<?php
///TEST pour voir ce que tu reçoit
if(isset($_POST['inscrire'])){
	echo '<pre>';
	print_r($_POST);
	echo '</pre>';
}
//fin test
if (isset($_POST['login']) && isset($_POST['pass']) && isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['adresse']) && isset($_POST['telephone'])){
	
	//il faut faire la connexion a la base que qd tu as reçu les valeurs
	mysql_connect("localhost", "root", "");
	mysql_select_db("annuaire");
	//$sql = 'INSERT INTO utilisateurs VALUES( "","kvvvdf","vhjvdvfj","bguugoi","gbuogo","goggg","hohg")';
	//mysql_query($sql);
	//echo "OK";
	$login = mysql_real_escape_string(htmlspecialchars($_POST['login'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
	$pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
	$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
	$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
	$adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse']));
	$telephone = mysql_real_escape_string(htmlspecialchars($_POST['telephone']));

	$sql = "INSERT INTO utilisateurs VALUES( '', '".$login."', '". $pass."', '".$nom."', '".$prenom."', '".$adresse."', '".$telephone."')";
	mysql_query($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

	mysql_close(); // On n'oublie pas de fermer la connexion à MySQL

}
/*
si tu mets ça tu vas avoir le mesage au premier chargement de ta pageelse {
echo 'Les variables du formulaire ne sont pas déclarées';
}
*/
?>
0
daf46
 
Oui pardon la balise ouvrante form était bien mise, mais ca ne marche toujours pas jai fais ton test :
if(isset($_POST['inscrire'])){
echo '<pre>';
print_r($_POST);
echo '</pre>';

Mais ca ne me rend rien, et rien ne s'insère dans ma base de donnée.

Une autre idée?
Merci d'avance
0
Alain_42 Messages postés 5413 Statut Membre 894
 
alors donnes le code de la ligne qui contient <form ...
0
daf46
 
Voici le code du form :

<form name="form1" method="post" action="authentification.php">
0

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

Posez votre question
daf46
 
ps : dans le form, je suis obligé de mettre name?
0
daf46
 
Une idée?
0
Alain_42 Messages postés 5413 Statut Membre 894
 
action="authentification.php"

donc le formulaire poste vers authentification.php

est ce que dans ce script tu as bien le code:

<?php
///TEST pour voir ce que tu reçoit
if(isset($_POST['inscrire'])){
	echo '<pre>';
	print_r($_POST);
	echo '</pre>';
}
//fin test
if (isset($_POST['login']) && isset($_POST['pass']) && isset($_POST['nom']) && isset($_POST['prenom']) && isset($_POST['adresse']) && isset($_POST['telephone'])){
	
	//il faut faire la connexion a la base que qd tu as reçu les valeurs
	mysql_connect("localhost", "root", "");
	mysql_select_db("annuaire");
	//$sql = 'INSERT INTO utilisateurs VALUES( "","kvvvdf","vhjvdvfj","bguugoi","gbuogo","goggg","hohg")';
	//mysql_query($sql);
	//echo "OK";
	$login = mysql_real_escape_string(htmlspecialchars($_POST['login'])); // On utilise mysql_real_escape_string et htmlspecialchars par mesure de sécurité
	$pass = mysql_real_escape_string(htmlspecialchars($_POST['pass']));
	$nom = mysql_real_escape_string(htmlspecialchars($_POST['nom']));
	$prenom = mysql_real_escape_string(htmlspecialchars($_POST['prenom']));
	$adresse = mysql_real_escape_string(htmlspecialchars($_POST['adresse']));
	$telephone = mysql_real_escape_string(htmlspecialchars($_POST['telephone']));

	$sql = "INSERT INTO utilisateurs VALUES( '', '".$login."', '". $pass."', '".$nom."', '".$prenom."', '".$adresse."', '".$telephone."')";
	mysql_query($sql) or die ('Erreur SQL !'.$sql.'<br />'.mysql_error());

	mysql_close(); // On n'oublie pas de fermer la connexion à MySQL

}
/*
si tu mets ça tu vas avoir le mesage au premier chargement de ta pageelse {
echo 'Les variables du formulaire ne sont pas déclarées';
}
*/
?>


ou est que c'est toute la page qui contient le formulaire et le code php qui se nomme authentification.php
0
daf46
 
OUi j'ai bien rentré le code dans mon script.
la page que je t'ai donné s'appelle inscription.php ,Authentification.php est la page sur laquelle l'utilisateur s'authentifie après avoir remplie le formulaire d'inscription.
Voila le code ci-joint si cela peut aider :

<!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" >
<head>
<title>Bienvenue sur mon site !</title>
<link rel="stylesheet" href="commun.css" type="text/css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<body>
</head>

<body>
<fieldset id= "auth"><legend>Authentification</legend>
<div id="authentification">
<form method="POST" action="annuaire.php">
<label for="login">Login : </label><input type="text" name="login" class="input" id="login" /><br />
<label for="pass">Mot de passe : </label><input type="password" name="pass" class="input" id="pass" /><br />
<center><input type="submit" class="valider" value="Se connecter"></input></center>
</form>
</div>
<center>Vous n'êtes pas inscrit? <a href="inscription.php">Inscrivez vous</a></center>
</fieldset>
</body>
</html>
0
Alain_42 Messages postés 5413 Statut Membre 894
 
tu as un pb

<form method="POST" action="annuaire.php">

et plus haut tu parles de authentification.php

alors ton code php il est dans quel script ?

authentification.php ou annuaire.php ?
0
daf46
 
Ok en laissant vide le champ action dans le form de annuaire.php j'ai bien les variables qui s'affichent.
Je ne comprend donc pas pour ètre redirigé vers authentification.php une fois le formulaire validé que dois-je faire?
0
daf46
 
Lol me suis peut ètre mélangé les pinceaux.
En fait mon code php se trouve dans inscription php qui lorsqu'on clic sur le bouton soumission ramène a la page authentification dans laquelle il faut renseigner le login et mot de passe et qui nous emmène ensuite dans annuaire .php une fois la personne authentifié.
0