Formulaire inscription php mysql
Bonjour,
j'ai vraiment besoin de votre aide.
j'ai un souci avec mon code pour s'inscrire
aucun problème pour s'identifier, mais quand je veux tester la partie s'enregistrer, j'ai cette ligne de code:
Erreur : 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 '" )' at line 1
j'ai vraiment besoin d'aide, car la je craque, je vois vraiment pas ou est la faute
j'ai vraiment besoin de votre aide.
j'ai un souci avec mon code pour s'inscrire
<?php
/*Programme: Login.php
Description: Programme de login pour la section à accès réservé de la boutique.
Il propose 2 options: s'identifier
créer un nouveau compte.*/
session_start();
include("inf.php");//on définit la base de données, identifiant
switch (@$_POST['do'])
{
case "login":
$cxn=mysql_connect(SERVER,LOGIN,MDP) or die ('Erreur : '.mysql_error());
mysql_select_db(BDD,$cxn) or die ('Erreur : '.mysql_error());
$sql="SELECT loginName FROM member WHERE loginName='".mysql_real_escape_string($_POST[fusername])."'
AND password='".mysql_real_escape_string($_POST[fpassword])."'";
$result=mysql_query($sql,$cxn) or die ('Erreur : '.mysql_error());
$num=mysql_num_rows($result);
if($num>0) // mot de passe OK
{
$_SESSION['auth']="yes";
$logname=$_POST['fusername'];
$_SESSION['logname']=$logname;
$today=date("y-m-d h:i:s");
$sql="INSERT INTO Login(loginName,loginTime) VALUES ('$logname', '$today')";
$result=mysql_query($sql,$cxn) or die ('Erreur : '.mysql_error());
header("Location: Nouveau_membre.php");
}
else // mot de passe incorrect
{
$message="Le nom de Login '$_POST[fusername]' existe, mais le mot de passe ne correspond pas! Réessayez.<br>";
include("login_form.inc");
}
if($num==0)//Nom de longin introuvable
{
$message="Le nom de Login que vous avez saisi n'existe pas. Essayez une nouvelle fois.<br>";
include("login_form.inc");
}
mysql_close();
break;
case"news":
/*Recherche de champs vides.*/
foreach ($_POST as $field=>$value)
{
if($field!="fax")
{
if($value=="")
{
$blanks[]=$field;
}
}
}
if(isset($blanks))
{
$message_new="Champs non saisis. Veuillez les renseigner:";
foreach($blanks as $value)
{
$message_new.="$value,";
}
extract($_POST);
include("login_form.inc");
exit();
}
/*Validation des données*/
foreach($_POST as $field=>$value)
{
if(!empty($value))
{
if(ereg("name",$field) and !ereg("login",$field))
{
if(!ereg("^[A-Za-z' -] {1,50} $",$value))
{
$errors[]="$value. n'est pas un nom valide.";
}
}
if(ereg("street",$field) or ereg("addr",$field) or ereg("city",$field))
{
if(!ereg("^[A-Za-z0-9., '-]{1,50}$",$value))
{
$errors[]="$value est incorrect.";
}
}
if(ereg("state",$field))
{
if(!ereg("[A-Za-z]{2}",$value))
{
$errors[]="$value est refusée pour state.";
}
}
if(ereg("email",$field))
{
if(!ereg("^.+@.+\\..+$" ,$value))
{
$errors[]="$value est refusé comme email.";
}
}
if(ereg("zip",$field))
{
if(!ereg("^[0-9]{5,5}(\-[0-9]{4,4})?$",$value))
{
$errors[]="$value n'est pas un zipcode autorisé.";
}
}
}//fin de if empty
}//fin de foreach
if(@is_array($errors))
{
$message_new="";
foreach($errors as $value)
{
$message_new.=$value."Réessayez.<br/>";
}
extract($_POST);
include("login_form.inc");
exit();
}
/*Nettoyage des données*/
$cxn=mysql_connect(SERVER,LOGIN,MDP);
mysql_select_db(BDD,$cxn) or die ('Erreur : '.mysql_error());
foreach($_POST as $field =>$value)
{
if($field !="Button" and $field !="do")
{
if($field=="password")
{
$password=strip_tags(trim($value));
}
else
{
$fields[]=$field;
$value=strip_tags(trim($value));
$values[]=mysql_real_escape_string($value,$cxn);
$field=$value;
}
}
}
/*Le nom de login existe-t-il déjà?*/
$sql="SELECT loginName FROM member WHERE loginName";
$result=mysql_query($sql,$cxn) or die ('Erreur : '.mysql_error()."<br /> Requête : $sql");
$num=mysql_num_rows($result);
if($num>0)
{
$message_new="$loginName existe déjà. Choisissez-en un autre.";
include("login_form.inc");
exit();
}
/*Ajout du nouveau membre dans la base.*/
else
{
$today=date("Y-m-d");
$fields_str=implode(",",$fields);
$values_str=implode(",",$values);
$fields_str .=",createDate";
$values_str .='"'.",".'"'.$today;
$fields_str .=",password";
$values_str .='"'.","."md5"."(".$password.")";
$sql="INSERT INTO member ";
$sql .="(".$fields_str .")";
$sql .="VALUES";
$sql .="(".'"'.$value_str . ")";
$result=mysql_query($sql,$cxn) or die ('Erreur : '.mysql_error());
$_SESSION['auth']="yes";
$_SESSION['logname']=$loginName;
/*Envoyer un emai au nouveau membre*/
$emess="Un nouveau compte de membre vient d'être créé.";
$emess .="Votre identifiant et votre mot de passe sont:";
$emess .="\n\n\t$loginName\n\t$password\n\n";
$emess .="Nous apprécions l'intérêt que vous portez à notre librairie.\n\n";
$emess .="Si vous avez des questions à poser, vous pouvez envoyer,";
$emess .="un e-mail à contact@honyamanga.fr";//adresse a changer ou modifier
$ehead="From: member-desk@honyamanga.fr\r\n";// adresse a changer
$subj="Votre nouveau compte à la librairie.";
$mailsnd=mail("$email","$subj","$emess","$ehead");
header("Location: Nouveau_membre.php");
}
break;
default:
include("login_form.inc");
}
?>
aucun problème pour s'identifier, mais quand je veux tester la partie s'enregistrer, j'ai cette ligne de code:
Erreur : 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 '" )' at line 1
j'ai vraiment besoin d'aide, car la je craque, je vois vraiment pas ou est la faute
1 réponse
-
$sql="SELECT loginName FROM member WHERE loginName";
Ta requête n'est pas complète.
$sql .="(".'"'.$value_str . ")";Tu oublies de fermer le guillemet double qui contient $value_str.$sql .='("'.$value_str.'")';
Ton ordinateur ne fait pas ce que tu veux ... mais ce que tu lui dis de faire.-
-
-
J'ai remodifié le code.
En effet, j'avais oublié un s à $values_str.
revoici le code
<?php $today=date("Y-m-d"); $fields_str=implode(",",$fields); $values_str=implode('","',$values); $fields_str .=",createDate"; $values_str .='"'.",".'"'.$today; $fields_str .=",password"; $values_str .='"'.","."md5"."(".$password.")"; $sql="INSERT INTO member "; $sql .='("'.$fields_str .'")'; $sql .="VALUES"; $sql .='("'.$values_str . '")'; $result=mysql_query($sql,$cxn) or die ('Erreur : '.mysql_error()); $_SESSION['auth']="yes"; $_SESSION['logname']=$loginName; /*Envoyer un emai au nouveau membre*/ $emess="Un nouveau compte de membre vient d'être créé."; $emess .="Votre identifiant et votre mot de passe sont:"; $emess .="\n\n\t$loginName\n\t$password\n\n"; $emess .="Nous apprécions l'intérêt que vous portez à notre librairie.\n\n"; $emess .="Si vous avez des questions à poser, vous pouvez envoyer,"; $emess .="un e-mail à contact@honyamanga.fr";//adresse a changer ou modifier $ehead="From: member-desk@honyamanga.fr\r\n";// adresse a changer $subj="Votre nouveau compte à la librairie."; $mailsnd=mail("$email","$subj","$emess","$ehead"); header("Location: Nouveau_membre.php"); ?>
et cette fois, j'ai cette erreur
Erreur : 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 '"loginName,firstName,lastName,street,city,zip,phone,fax,email,createDate,passwor' at line 1 -
-