Problème appel champs formulaire php/mysql

Fermé
daf46 - 24 juin 2009 à 09:57
 daf46 - 24 juin 2009 à 13:46
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.
A voir également:

10 réponses

Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 juin 2009 à 10:11
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
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 juin 2009 à 10:47
alors donnes le code de la ligne qui contient <form ...
0
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
ps : dans le form, je suis obligé de mettre name?
0
Une idée?
0
Alain_42 Messages postés 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 juin 2009 à 11:44
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
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 5361 Date d'inscription dimanche 3 février 2008 Statut Membre Dernière intervention 13 février 2017 894
24 juin 2009 à 13:15
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
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
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