Création d'un espace membre (inscription.php)

Résolu
Eléa7 -  
Mimiste Messages postés 1149 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,


Voila , je suis en train de créer un espace membre en php .

voici le script du formulaire d'inscription d'un utilisateur:

<?php
// on teste si le visiteur a soumis le formulaire
if (isset($_POST['inscription']) && $_POST['inscription'] == 'Inscription') {
	// on teste l'existence de nos variables. On teste également si elles ne sont pas vides
	if ((isset($_POST['account_name']) && !empty($_POST['account_name'])) && (isset($_POST['account_pwd']) && !empty($_POST['account_pwd'])) && (isset($_POST['pass_confirm']) && !empty($_POST['pass_confirm']))) {
		// on teste les deux mots de passe
		if ($_POST['account_pwd'] != $_POST['pass_confirm']) {
			$erreur = 'Les 2 mots de passe sont différents.';
		}
		else {
			$base = mysql_connect ('localhost', 'root', 'password');
			mysql_select_db ('AWare', $base);

			// on recherche si ce login est déjà utilisé par un autre membre
			$sql = 'SELECT count(*) FROM egw_agw_accounts WHERE account_name="'.mysql_escape_string($_POST['account_name']).'"';
			$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
			$data = mysql_fetch_array($req);

			if ($data[0] == 0) {
				$sql = 'INSERT INTO egw_agw_accounts VALUES("","'.mysql_escape_string($_POST['account_name']).'", "'.md5(mysql_escape_string($_POST['account_pwd'])).'")';
				mysql_query($sql) or die('Erreur SQL !'.$sql.'<br />'.mysql_error());

				session_start();
				$_SESSION['account_name'] = $_POST['account_name'];
				header('Location: membre.php');
				exit();
			}
			else {
				$erreur = 'Un membre possède déjà ce login.';
			}
		}
	}
	else {
		$erreur = 'Au moins un des champs est vide.';
	}
}
?>
<html>
<head>
<title>Inscription</title>
</head>

<body>
Inscription à l'espace membre :<br />
<form action="inscription.php" method="post">
Votre identifiant : <input type="text" name="account_name" value="<?php if (isset($_POST['account_name'])) echo htmlentities(trim($_POST['account_name'])); ?>"><br />
Votre mot de passe : <input type="password" name="account_pwd" value="<?php if (isset($_POST['account_pwd'])) echo htmlentities(trim($_POST['account_pwd'])); ?>"><br />
Confirmation du mot de passe : <input type="password" name="pass_confirm" value="<?php if (isset($_POST['pass_confirm'])) echo htmlentities(trim($_POST['pass_confirm'])); ?>"><br />
<input type="submit" name="inscription" value="Inscription">
</form>
<?php
if (isset($erreur)) echo '<br />',$erreur;
?>
</body>
</html>



Et voici ce qui s'affiche après un essai d'inscription d'utilisateur:

Column count doesn't match value count at row 1



Que signifie cette erreur?

Merci beaucoup
A voir également:

3 réponses

Mimiste Messages postés 1149 Date d'inscription   Statut Membre Dernière intervention   206
 
Salut

Sa signifie qu'au moment de l'insert tu essai d'inserer plus de champs (ou pas assez) que ce qu'il a de colonne dans ta table egw_agw_accounts
0
Eléa7
 
Merci,

En effet je pense que tu as raison, j'ai donc corriger .

Dans mon INSERT voici ce que j'ai donc effectué à lma place:

sql = 'INSERT INTO egw_agw_accounts (account_id,account_name,account_pwd) VALUES("","'.mysql_escape_string($_POST['account_name']).'", "'.md5(mysql_escape_string($_POST['account_pwd'])).'")'



cette fois j'ai le message d'érreur suivant:
Parse error: syntax error, unexpected '=' in /var/www/AWare/Espace_membre/inscription.php on line 20


je ne comprends pas ce que le "=" peut bien apporter comme soucis.
0
Eléa7
 
oulala ...


mouep... m'en vais m'acheter des lunettes... "$sql" et non pas "sql" !
0
Mimiste Messages postés 1149 Date d'inscription   Statut Membre Dernière intervention   206
 
Ha oui en effet sa peut poser probleme ^^
0