par
neomega » 27 janv. 2013, 20:26
bonjour voici mon script pour Upload d'image avec envoi du nom sur bdd
celui ci fonctionnait tres bien jusqu’à mise a jour de php
voici l'erreur qui apparait quant je clique sur " envoyer le fichier "
Erreur SQL !
SELECT * FROM location WHERE id =
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
pourtant $_GET['idlocation'] me retourne bien la valeur
<?php require('../include.php');
protect();
?>
<!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" lang="fr">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="content-language" content="fr" />
<meta name="robots" content="noindex" />
<link href="<?php echo $css ?>style.css" title="Défaut" rel="stylesheet" type="text/css" media="screen" />
<link href="<?php echo $css ?>menu.css" title="Défaut" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<?php include "../menu.php" ?>
<div class="news"><!-- News -->
<?php
// lancement de la requete
$sql = 'SELECT * FROM location WHERE id = ' . $_GET['idlocation'] . '';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close ();
?>
<center>
l'image actuelle est :<br />
<?php
if (!empty ($data['url_img'] )){
echo '<img src=" ../../boutique/' .$data['url_img']. '"width="100px"> ';
}
else { echo 'AUCUNE IMAGE ' ;
}
?>
</center>
<?php
if(isset($_POST['send'])){
$id = $_POST["id"] ;
$dossier = '../../boutique/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.jpg');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png ou jpg ';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo '
<center><br><br><font color="#000000" size="4"> voici l\'image uploader :<br><br><br> <img src="' . $dossier . '' . $fichier. '"> </font></center>' ;
//creation requette sql SQL:
$sql = "UPDATE location SET
url_img = '" . $fichier . "'
WHERE id = ".$id ;
//exécution de la requéte SQL:
$requete = mysql_query($sql) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si la modification a marchée:
if($requete)
{
echo("La modification à été correctement effectuée") ;
//redirect('../emplacement.php');
}
else
{
echo("<div class=\"succes\">La modification à échouée</div>") ;
}
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
} else {
echo '
<center>
<br><br>
<br>
pour uploader votre logo personnel respecter ces regles d\'upload
<br><br>
- format de l\'image : .jpg et .png<br>
- dimmention --> largeur: __ px hauteur: __ px
<br><br>
<form method="POST" action="form_upload.php" enctype="multipart/form-data">
<input name="id" type="hidden" value="'. $_GET["idlocation"] .'">
<!-- On limite le fichier à 1000Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
Fichier : <input type="file" name="avatar">
<input type="submit" name="send" value="Envoyer le fichier">
</form>
<br><br>
<br><br>
<br><br>
</center>
';
}
?>
</div>
</div>
<!-- CADRE COULEUR -->
<?php include "../bas.php" ?>
</body>
</html>
encore merci de votre aide
bonjour voici mon script pour Upload d'image avec envoi du nom sur bdd
celui ci fonctionnait tres bien jusqu’à mise a jour de php
voici l'erreur qui apparait quant je clique sur " envoyer le fichier "
[quote]Erreur SQL !
SELECT * FROM location WHERE id =
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
[/quote]
pourtant $_GET['idlocation'] me retourne bien la valeur
[php]<?php require('../include.php');
protect();
?>
<!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" lang="fr">
<head>
<title></title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta http-equiv="content-language" content="fr" />
<meta name="robots" content="noindex" />
<link href="<?php echo $css ?>style.css" title="Défaut" rel="stylesheet" type="text/css" media="screen" />
<link href="<?php echo $css ?>menu.css" title="Défaut" rel="stylesheet" type="text/css" media="screen" />
</head>
<body>
<?php include "../menu.php" ?>
<div class="news"><!-- News -->
<?php
// lancement de la requete
$sql = 'SELECT * FROM location WHERE id = ' . $_GET['idlocation'] . '';
// on lance la requête (mysql_query) et on impose un message d'erreur si la requête ne se passe pas bien (or die)
$req = mysql_query($sql) or die('Erreur SQL !<br />'.$sql.'<br />'.mysql_error());
// on recupere le resultat sous forme d'un tableau
$data = mysql_fetch_array($req);
// on libère l'espace mémoire alloué pour cette interrogation de la base
mysql_free_result ($req);
mysql_close ();
?>
<center>
l'image actuelle est :<br />
<?php
if (!empty ($data['url_img'] )){
echo '<img src=" ../../boutique/' .$data['url_img']. '"width="100px"> ';
}
else { echo 'AUCUNE IMAGE ' ;
}
?>
</center>
<?php
if(isset($_POST['send'])){
$id = $_POST["id"] ;
$dossier = '../../boutique/';
$fichier = basename($_FILES['avatar']['name']);
$taille_maxi = 1000000;
$taille = filesize($_FILES['avatar']['tmp_name']);
$extensions = array('.png', '.jpg');
$extension = strrchr($_FILES['avatar']['name'], '.');
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type png ou jpg ';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
//On formate le nom du fichier ici...
$fichier = strtr($fichier,
'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ',
'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
$fichier = preg_replace('/([^.a-z0-9]+)/i', '-', $fichier);
if(move_uploaded_file($_FILES['avatar']['tmp_name'], $dossier . $fichier)) //Si la fonction renvoie TRUE, c'est que ça a fonctionné...
{
echo '
<center><br><br><font color="#000000" size="4"> voici l\'image uploader :<br><br><br> <img src="' . $dossier . '' . $fichier. '"> </font></center>' ;
//creation requette sql SQL:
$sql = "UPDATE location SET
url_img = '" . $fichier . "'
WHERE id = ".$id ;
//exécution de la requéte SQL:
$requete = mysql_query($sql) or die( mysql_error() ) ;
//affichage des résultats, pour savoir si la modification a marchée:
if($requete)
{
echo("La modification à été correctement effectuée") ;
//redirect('../emplacement.php');
}
else
{
echo("<div class=\"succes\">La modification à échouée</div>") ;
}
}
else //Sinon (la fonction renvoie FALSE).
{
echo 'Echec de l\'upload !';
}
}
else
{
echo $erreur;
}
} else {
echo '
<center>
<br><br>
<br>
pour uploader votre logo personnel respecter ces regles d\'upload
<br><br>
- format de l\'image : .jpg et .png<br>
- dimmention --> largeur: __ px hauteur: __ px
<br><br>
<form method="POST" action="form_upload.php" enctype="multipart/form-data">
<input name="id" type="hidden" value="'. $_GET["idlocation"] .'">
<!-- On limite le fichier à 1000Ko -->
<input type="hidden" name="MAX_FILE_SIZE" value="1000000">
Fichier : <input type="file" name="avatar">
<input type="submit" name="send" value="Envoyer le fichier">
</form>
<br><br>
<br><br>
<br><br>
</center>
';
}
?>
</div>
</div>
<!-- CADRE COULEUR -->
<?php include "../bas.php" ?>
</body>
</html>
[/php]
encore merci de votre aide