par
Stef » 21 déc. 2008, 19:08
Problème résolu, y avait un ch'tite virgule qui trainait et faisait capoter l'insertion dans la table...
Bonjour à tous,
Je suis en train de coder un formulaire mais ça coince...
Voici le message que j'ai:
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 3
Voici le formulaire:
<form enctype="multipart/form-data" method="post"
action="register2.php">
<table style="text-align: left; width: 100%;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td
style="width: 200px; text-align: right; vertical-align: top;">Nom:
*</td>
<td style="vertical-align: top; text-align: left;"><input
name="nom" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Mail:
*</td>
<td style="vertical-align: top;"><input
name="mail" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Site
web:</td>
<td style="vertical-align: top;"><input
name="site" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Titre
de l'annonce: *</td>
<td style="vertical-align: top;"><input
name="titre" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Description:
*</td>
<td style="vertical-align: top;"><textarea
cols="60" rows="13" name="descriptif"></textarea></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Catégorie:
*</td>
<td style="vertical-align: top;">
<select name="list">
<option value="restauration">Restauration</option>
<option value="hotel">Hôtel/gite</option>
<option value="loisirs">Loisirs</option>
<option value="sport">Sport</option>
<option value="service">Service</option>
<option value="autre">Autre/divers</option>
</select>
</td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Localisation:</td>
<td style="vertical-align: top;"><input
name="place" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Téléphone:</td>
<td style="vertical-align: top;"><input
name="tel" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Adresse:</td>
<td style="vertical-align: top;"><textarea
cols="30" rows="6" name="adresse"></textarea></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Photo:</td>
<td style="vertical-align: top;"><input
name="image" type="file" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;"></td>
<td style="vertical-align: top;"><input
type="submit" /></td>
</tr>
</tbody>
</table>
</form>
Et voici le traitement du formulaire:
<?php
//On récupère les variables
$i = 0;
$temps = time();
$descriptif = mysql_real_escape_string(htmlspecialchars($_POST['descriptif'], ENT_QUOTES));
$pseudo = mysql_real_escape_string($_POST['nom']);
$email = mysql_real_escape_string($_POST['mail']);
$website = mysql_real_escape_string($_POST['site']);
$titre = mysql_real_escape_string($_POST['titre']);
$cat = $_POST['list'];
$place = mysql_real_escape_string($_POST['place']);
$tel = mysql_real_escape_string($_POST['tel']);
$adresse = mysql_real_escape_string($_POST['adresse']);
//Vérification de l'adresse email
if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
{
$email_erreur = "L'adresse mail n'a pas un format valide";
$i++;
}
//Vérification de la photo :
if (!empty($_FILES['image']['size']))
{
//On définit les variables :
$maxsize = 1002400; //Poid de l'image
$maxwidth = 800; //Largeur de l'image
$maxheight = 800; //Longueur de l'image
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' ); //Liste des extensions valides
if ($_FILES['image']['error'] > 0)
{
$avatar_erreur = "Erreur lors du tranfsert de la photo : ";
}
if ($_FILES['image']['size'] > $maxsize)
{
$i++;
$avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['image']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)";
}
$image_sizes = getimagesize($_FILES['image']['tmp_name']);
if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
{
$i++;
$avatar_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)";
}
$extension_upload = strtolower(substr( strrchr($_FILES['image']['name'], '.') ,1));
if (!in_array($extension_upload,$extensions_valides) )
{
$i++;
$avatar_erreur3 = "L'extension de l'image est incorrecte";
}
}
if ($i == 0) // Si i est vide, il n'y a pas d'erreur
{
echo'<h2>Inscription 2/2</h2>';
echo'<h3>Félicitations '; echo stripslashes(htmlspecialchars($_POST['nom'])); echo'</h3>';
if (isset($_FILES['image']['size']))
{
//On déplace l'avatar
$avatar = time();
$nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
$avatar = "images/photos/".str_replace(' ','',$avatar).".".$extension_upload;
move_uploaded_file($_FILES['image']['tmp_name'],$avatar);
}
//On balance le tout dans notre table
mysql_query('
INSERT INTO vitrine (nom, mail, site, date, titre, descriptif, cat, place, tel, adresse, image)
VALUES ("'.$pseudo.'" , "'.$email.'" , "'.$website.'" , "'.$temps.'" , "'.$titre.'" , "'.$descriptif.'" , "'.$cat.'" , "'.$place.'" , "'.$tel.'" , "'.$adresse.'" , "'.$nomavatar.'" ,
) ') or die(mysql_error());
}
else
{
echo'<h2>Inscription interrompue</h2>';
echo'<h3>Une ou plusieurs erreurs se sont produites pendant l\'incription...</h3><br />';
echo'<p>'.$i.' <b>Erreur(s):</b></p>';
echo'<p>- '.$pseudo_erreur1.'</p>';
echo'<p>- '.$pseudo_erreur2.'</p>';
echo'<p>- '.$mdp_erreur.'</p>';
echo'<p>- '.$email_erreur1.'</p>';
echo'<p>- '.$email_erreur2.'</p>';
echo'<p>- '.$signature_erreur.'</p>';
echo'<p>- '.$avatar_erreur.'</p>';
echo'<p>- '.$avatar_erreur1.'</p>';
echo'<p>- '.$avatar_erreur2.'</p>';
echo'<p>- '.$avatar_erreur3.'</p>';
echo'<br />';
echo'<p>Cliquez <a href="register.php">ici</a> pour recommencer.</p>';
}
mysql_close();
?>
Si quelqu'un peut me dire ce qui cloche dans mon code je lui en serai bien reconnaissant!
[b]Problème résolu, y avait un ch'tite virgule qui trainait et faisait capoter l'insertion dans la table...[/b]
Bonjour à tous,
Je suis en train de coder un formulaire mais ça coince...
Voici le message que j'ai:
[quote]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 3[/quote]
[b]Voici le formulaire:[/b]
[php]<form enctype="multipart/form-data" method="post"
action="register2.php">
<table style="text-align: left; width: 100%;" border="0"
cellpadding="2" cellspacing="2">
<tbody>
<tr>
<td
style="width: 200px; text-align: right; vertical-align: top;">Nom:
*</td>
<td style="vertical-align: top; text-align: left;"><input
name="nom" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Mail:
*</td>
<td style="vertical-align: top;"><input
name="mail" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Site
web:</td>
<td style="vertical-align: top;"><input
name="site" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Titre
de l'annonce: *</td>
<td style="vertical-align: top;"><input
name="titre" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Description:
*</td>
<td style="vertical-align: top;"><textarea
cols="60" rows="13" name="descriptif"></textarea></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Catégorie:
*</td>
<td style="vertical-align: top;">
<select name="list">
<option value="restauration">Restauration</option>
<option value="hotel">Hôtel/gite</option>
<option value="loisirs">Loisirs</option>
<option value="sport">Sport</option>
<option value="service">Service</option>
<option value="autre">Autre/divers</option>
</select>
</td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Localisation:</td>
<td style="vertical-align: top;"><input
name="place" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Téléphone:</td>
<td style="vertical-align: top;"><input
name="tel" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Adresse:</td>
<td style="vertical-align: top;"><textarea
cols="30" rows="6" name="adresse"></textarea></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;">Photo:</td>
<td style="vertical-align: top;"><input
name="image" type="file" /></td>
</tr>
<tr>
<td style="text-align: right; vertical-align: top;"></td>
<td style="vertical-align: top;"><input
type="submit" /></td>
</tr>
</tbody>
</table>
</form>[/php]
[b]Et voici le traitement du formulaire:[/b]
[php]<?php
//On récupère les variables
$i = 0;
$temps = time();
$descriptif = mysql_real_escape_string(htmlspecialchars($_POST['descriptif'], ENT_QUOTES));
$pseudo = mysql_real_escape_string($_POST['nom']);
$email = mysql_real_escape_string($_POST['mail']);
$website = mysql_real_escape_string($_POST['site']);
$titre = mysql_real_escape_string($_POST['titre']);
$cat = $_POST['list'];
$place = mysql_real_escape_string($_POST['place']);
$tel = mysql_real_escape_string($_POST['tel']);
$adresse = mysql_real_escape_string($_POST['adresse']);
//Vérification de l'adresse email
if (!preg_match("#^[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]{2,}\.[a-z]{2,4}$#", $email) || empty($email))
{
$email_erreur = "L'adresse mail n'a pas un format valide";
$i++;
}
//Vérification de la photo :
if (!empty($_FILES['image']['size']))
{
//On définit les variables :
$maxsize = 1002400; //Poid de l'image
$maxwidth = 800; //Largeur de l'image
$maxheight = 800; //Longueur de l'image
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' ); //Liste des extensions valides
if ($_FILES['image']['error'] > 0)
{
$avatar_erreur = "Erreur lors du tranfsert de la photo : ";
}
if ($_FILES['image']['size'] > $maxsize)
{
$i++;
$avatar_erreur1 = "Le fichier est trop gros : (<strong>".$_FILES['image']['size']." Octets</strong> contre <strong>".$maxsize." Octets</strong>)";
}
$image_sizes = getimagesize($_FILES['image']['tmp_name']);
if ($image_sizes[0] > $maxwidth OR $image_sizes[1] > $maxheight)
{
$i++;
$avatar_erreur2 = "Image trop large ou trop longue : (<strong>".$image_sizes[0]."x".$image_sizes[1]."</strong> contre <strong>".$maxwidth."x".$maxheight."</strong>)";
}
$extension_upload = strtolower(substr( strrchr($_FILES['image']['name'], '.') ,1));
if (!in_array($extension_upload,$extensions_valides) )
{
$i++;
$avatar_erreur3 = "L'extension de l'image est incorrecte";
}
}
if ($i == 0) // Si i est vide, il n'y a pas d'erreur
{
echo'<h2>Inscription 2/2</h2>';
echo'<h3>Félicitations '; echo stripslashes(htmlspecialchars($_POST['nom'])); echo'</h3>';
if (isset($_FILES['image']['size']))
{
//On déplace l'avatar
$avatar = time();
$nomavatar = str_replace(' ','',$avatar).".".$extension_upload;
$avatar = "images/photos/".str_replace(' ','',$avatar).".".$extension_upload;
move_uploaded_file($_FILES['image']['tmp_name'],$avatar);
}
//On balance le tout dans notre table
mysql_query('
INSERT INTO vitrine (nom, mail, site, date, titre, descriptif, cat, place, tel, adresse, image)
VALUES ("'.$pseudo.'" , "'.$email.'" , "'.$website.'" , "'.$temps.'" , "'.$titre.'" , "'.$descriptif.'" , "'.$cat.'" , "'.$place.'" , "'.$tel.'" , "'.$adresse.'" , "'.$nomavatar.'" ,
) ') or die(mysql_error());
}
else
{
echo'<h2>Inscription interrompue</h2>';
echo'<h3>Une ou plusieurs erreurs se sont produites pendant l\'incription...</h3><br />';
echo'<p>'.$i.' <b>Erreur(s):</b></p>';
echo'<p>- '.$pseudo_erreur1.'</p>';
echo'<p>- '.$pseudo_erreur2.'</p>';
echo'<p>- '.$mdp_erreur.'</p>';
echo'<p>- '.$email_erreur1.'</p>';
echo'<p>- '.$email_erreur2.'</p>';
echo'<p>- '.$signature_erreur.'</p>';
echo'<p>- '.$avatar_erreur.'</p>';
echo'<p>- '.$avatar_erreur1.'</p>';
echo'<p>- '.$avatar_erreur2.'</p>';
echo'<p>- '.$avatar_erreur3.'</p>';
echo'<br />';
echo'<p>Cliquez <a href="register.php">ici</a> pour recommencer.</p>';
}
mysql_close();
?>[/php]
Si quelqu'un peut me dire ce qui cloche dans mon code je lui en serai bien reconnaissant!