Probleme upload image dans mysql [Résolu]

vetcho2paname 2 Messages postés mercredi 14 avril 2010Date d'inscription 4 mai 2011 Dernière intervention - 4 mai 2011 à 17:25 - Dernière réponse : vetcho2paname 2 Messages postés mercredi 14 avril 2010Date d'inscription 4 mai 2011 Dernière intervention
- 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
cod57 1661 Messages postés dimanche 7 septembre 2008Date d'inscription 11 septembre 2013 Dernière intervention - 4 mai 2011 à 20:14
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 !

Merci cod57 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 69 internautes ce mois-ci

Commenter la réponse de cod57
vetcho2paname 2 Messages postés mercredi 14 avril 2010Date d'inscription 4 mai 2011 Dernière intervention - 4 mai 2011 à 23:29
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.