Probleme upload image dans mysql [Résolu]

Messages postés
2
Date d'inscription
mercredi 14 avril 2010
Dernière intervention
4 mai 2011
- - Dernière réponse : vetcho2paname
Messages postés
2
Date d'inscription
mercredi 14 avril 2010
Dernière intervention
4 mai 2011
- 4 mai 2011 à 23:29
bonjour a tous

je travail sur un projet personnel et je suis bloqué sur un problème.
j ai creer un formulaire qui permet a un users de telecharger une image, ensuite j ai pu mettre cette image dans un dossier sur le disque dur. mon probleme c est que maintenant j aimerai bien enregistrer l' id, le nom et l url de cette image dans ma base de données.mais mon script ne marche il enregistre la photo dans le dossier mais pas les informations dans ma base de données

voici mon code:
<?php
session_start() ;
if(!isset($_SESSION["email"]) || $_SESSION["email"] == "")
{
header("Location: index.php") ;
}
//fin if
?>

<?php

if(isset($_FILES['photo']))
{
// params
unset($erreur);
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg');
$taille_max = 100000;
$dest_dossier = '../img/';
// vérifications
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) )
{
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !';
}
elseif( file_exists($_FILES['photo']['tmp_name'])
and filesize($_FILES['photo']['tmp_name']) > $taille_max)
{
$erreur = 'Votre fichier doit faire moins de 500Ko !';
}
// copie du fichier
if(!isset($erreur))
{
$dest_fichier = basename($_FILES['photo']['name']);
// formatage nom fichier
// enlever les accents
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy');
// remplacer les caracteres autres que lettres, chiffres et point par _
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier);
// copie du fichier
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier);




//connexion au serveur
$cnx = mysql_connect("localhost", "root", "");
//sélection de la base de données
$db = mysql_select_db("225connexion");
$za = $_SESSION['email'];
//création de la requête SQL
$sql "SELECT nom,prenom FROM user WHERE email '$za'";

//exécution de la requête SQL
$req = @mysql_query($sql, $cnx) or die($sql."
".mysql_error());
$data = mysql_fetch_assoc($req);

//si la requête s'est bien passé, on affiche un message de succès
if($data)
{
echo ''.$data['nom'].' '.$data['prenom'].'';
}

mysql_query("INSERT INTO images VALUES('',''".$data['nom']."'','".$dest_dossier . $dest_fichier."')");
//table images champ id, prenom,chemin



}

}

?>


<html>

<!-- Erreur ? -->
<?php
if(isset($erreur)){
echo '', $erreur ,'

';
}
?>
<!-- Formulaire -->
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" -->
<form method="POST" action="transfert.php" enctype="multipart/form-data">
<!-- Limiter la taille des fichiers à 500Ko -->

<fieldset>
<legend>Envoi de fichiers</legend>
<!-- champs d'envoi de fichier, de type file -->
<label for="photo">Photo :</label>


<label for="photo_2">Photo 2 :</label>


<!-- bouton d'envoi -->


</legend>
</fieldset>
</form>

</html>

merci d avance..
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
1660
Date d'inscription
dimanche 7 septembre 2008
Dernière intervention
11 septembre 2013
3
Merci
bonsoir
sans doute la query
les apostrophes mal positionnés ...
a++

essaie ...
<?php 
session_start() ; 
if(!isset($_SESSION["email"]) || $_SESSION["email"] == "") 
{ 
header("Location: index.php") ; 
} 
//fin if 
?> 

<?php 

if(isset($_FILES['photo'])){ 
// params 
unset($erreur); 
$extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); 
$taille_max = 100000; 
$dest_dossier = '../img/'; 
// vérifications 
if( !in_array( substr(strrchr($_FILES['photo']['name'], '.'), 1), $extensions_ok ) ) 
{ 
$erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !'; 
} 
elseif( file_exists($_FILES['photo']['tmp_name']) 
and filesize($_FILES['photo']['tmp_name']) > $taille_max) 
{ 
$erreur = 'Votre fichier doit faire moins de 500Ko !'; 
} 
// copie du fichier 
if(!isset($erreur)) 
{ 
$dest_fichier = basename($_FILES['photo']['name']); 
// formatage nom fichier 
// enlever les accents 
$dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); 
// remplacer les caracteres autres que lettres, chiffres et point par _ 
$dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier); 
// copie du fichier 
move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier); 
$image=$dest_dossier . $dest_fichier;
}else{
$image="";
}
 

//connexion au serveur 
$cnx = mysql_connect("localhost", "root", ""); 
//sélection de la base de données 
$db = mysql_select_db("225connexion"); 
$za = $_SESSION['email']; 
//création de la requête SQL 
$sql "SELECT nom,prenom FROM user WHERE email '$za'"; 
//exécution de la requête SQL 
$req = @mysql_query($sql, $cnx) or die($sql."
".mysql_error()); 
$data = mysql_fetch_assoc($req); 
//si la requête s'est bien passé, on affiche un message de succès 
if($data){ 
echo ''.$data['nom'].' '.$data['prenom'].''; 
}else{
} 

$sql="INSERT INTO `images` VALUES('','".$data['nom']."','".$image."')";
if(mysql_query($sql)){
echo 'insert ok';
}else{
echo 'insert pas ok';
} 
//table images champ id, prenom,chemin 

} 
?> 


<html> 
 
<!-- Erreur ? --> 
<?php 
if(isset($erreur)){ 
echo '', $erreur ,'

'; 
} 
?> 
<!-- Formulaire --> 
<!-- Attention, ne de ne pas oublier le enctype="multipart/form-data" --> 
<form method="POST" action="transfert.php" enctype="multipart/form-data"> 
<!-- Limiter la taille des fichiers à 500Ko --> 
 
<fieldset> 
<legend>Envoi de fichiers</legend> 
<!-- champs d'envoi de fichier, de type file --> 
<label for="photo">Photo :</label>

 
<label for="photo_2">Photo 2 :</label>

 
<!-- bouton d'envoi --> 

 
</legend> 
</fieldset> 
</form> 
 
</html>



Bonne programmation !

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de cod57
Messages postés
2
Date d'inscription
mercredi 14 avril 2010
Dernière intervention
4 mai 2011
0
Merci
merci jc ca marche parfaitement merci encore...
Commenter la réponse de vetcho2paname

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.