Page 1 sur 1

ajout de champs dans une table sql et modif formulaire

Posté : 28 août 2011, 16:04
par olivxii
bonjour, sur ma bdd X j'ai une table membres avec des champs comme ceci :
INSERT INTO `membres`(`id`, `pseudo`, `mot_passe`, `acces`, `date_inscription`, `email`, `avatar`, `avatar_actif`, `admin`, `email_visible`, `configuration`, `biographie`, `design`, `langue`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10],[value-11],[value-12],[value-13],[value-14])
je voudrais y rajouter des champs comme ceci :
INSERT INTO `membres`(`id`, `nom`, `prenom`, `age`, `adresse`, `ville`, `pseudo`, `mot_passe`, `acces`, `date_inscription`, `email`, `avatar`, `avatar_actif`, `admin`, `email_visible`, `configuration`, `biographie`, `design`, `langue`) VALUES ([value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],[value-9],[value-10],[value-11],[value-12],[value-13],[value-14],[value-15],[value-16],[value-17],[value-18],[value-19])
mais lorsque que je valide j'ai ce message d'erreur :

#1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '[value-1],[value-2],[value-3],[value-4],[value-5],[value-6],[value-7],[value-8],' at line 1

en faite je voudrais rajouter a la table deja existante les champs suivant :

nom, prenom, age, adresse, ville

et ensuite modifier le formulaire d'inscription :
//informations
	if ($config['autorisation_inscriptions'] == 1)//si les inscriptions sont ouvertes
	{
		//si les variables existent (sinon, c'es que l'on a pas encore affiché le formulaire)
		if(isset($_POST['pseudo'], $_POST['mot_passe'], $_POST['email']))
		{
			//si l'on aaffiché le formulaire, l'on crée des varibles pour éviter de le reremplir de 0
			$pseudo = htmlspecialchars($_POST['pseudo']);
			$email = htmlspecialchars($_POST['email']);
			
			//Si les variables contenant le pseudo, le mot de passe et l'email contiennent quelque chose.
			if (!empty($_POST['pseudo']) && !empty($_POST['mot_passe']) && !empty($_POST['email']))
		        {
				//Si le pseudo est supérieur à 3 caractères et inférieur à 35 caractères.
		                if (strlen(trim($_POST['pseudo'])) > 3 && strlen(trim($_POST['pseudo'])) < 35)
				{
					//Si le mot de passe est supérieur à 4 caractères.
					if (strlen(trim($_POST['mot_passe'])) > 4)
					{
						if(preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $email))
						{
							$pseudo = mysql_real_escape_string($pseudo);//sécurisation pseudo
							//On vérifie que le pseudo n'existe pas.
	                                		$sql = mysql_query('SELECT COUNT(*) AS nb_pseudo FROM '.$prefix."membres WHERE pseudo='".$pseudo."'");
							if (mysql_result($sql, 0, 'nb_pseudo') == 0)
							{
								//verif email
								$email = mysql_real_escape_string($email);//sécurisation email
								$sql2 = mysql_query('SELECT COUNT(*) AS nb_email FROM '.$prefix."membres WHERE email='".$email."'");
								if (mysql_result($sql2, 0, 'nb_email') == 0)
								{
									//Mesure de sécurité.
									$mot_passe = mysql_real_escape_string(htmlspecialchars($_POST['mot_passe']));
								
									//Hashage du mot de passe avec md5().
									$mot_passe = md5($mot_passe);
	
									//On éxécute la requête qui enregistre un nouveau membre.
									mysql_query('INSERT INTO '.$prefix."membres (pseudo, mot_passe, acces, email, date_inscription, design) VALUES ('".$pseudo."', '".$mot_passe."', '1', '".$email."', '".time()."', '".$config['design_defaut']."')")or die(mysql_error());
								
									$resultat = 'ok';//ouf, tout c'est bien passé :) .
								}
								else
									$resultat = $lang['erreur'].' : '.$lang['email_utilise'];
							}
							else
								$resultat = $lang['erreur'].' : '.$lang['pseudo_existant'];
						}
						else
							$resultat = $lang['erreur'].' : '.$lang['adresse_email_invalide'];
					}
					else
						$resultat = $lang['erreur'].' : '.$lang['mot_de_passe_trop_court'];
				}
				else
					$resultat = $lang['erreur'].' : '.$lang['pseudo_trop_court_ou_trop_long'];
			}
			else
				$resultat = $lang['erreur'].' : '.$lang['vous_devez_remplir_tous_les_champs_pour_vous_inscrire'];
		}
	}
merci

Re: ajout de champs dans une table sql et modif formulaire

Posté : 28 août 2011, 23:56
par Ryle
Est-ce que les [value-1] et suivants ne devraient pas plutôt être remplacés par les valeurs que tu veux insérer en base, et délimités par des apostrophes pour ce qui concerne les chaines de caractères ?

Je ne vois pas la requête en question dans ton code... peux tu poster le code correspondant ?

Re: ajout de champs dans une table sql et modif formulaire

Posté : 29 août 2011, 09:05
par lezarts
yop man,

Tu pourrais déja regrouper 2 if en 1 if pour ce qui est du teste des champs du form..

Par exemple :
       //informations
        if ($config['autorisation_inscriptions'] == 1)//si les inscriptions sont ouvertes
        {
                //si les variables existent (sinon, c'es que l'on a pas encore affiché le formulaire)
                if (isset($_POST['pseudo'] && !empty,($_POST['pseudo'])) && (isset($_POST['mot_passe']) && !empty($_POST['mot_passe'])) && (isset($_POST['email']) && !empty($_POST['email'])))
                {
Bon y a d'autres manières de faire..? C'est juste histoire de faire avancer le..? Et apporter un peu de reflexion..? il me semble que tu pourrais aussi simplifier et améliorer le code qui fait le controle de tes champs....

Voila, après à chacun ces goûts et ces couleurs....