Infos stockées dans base apres un upload

Eléphant du PHP | 297 Messages

07 mars 2006, 19:52

Bonjour,
J'ai mon script pour uploader une image sur mon serveur qui fonctionne bien, mais par contre je souhaite archiver son nom et chemin dans une base et la ca bloque !! :(
voici mon script :
<?php 
//DEFINITION DES VARIABLES 
//-------------------------------------- 

$max_size = 100000; // Taille max en octets du fichier 
$width_max = 100; // Largeur max de l'image en pixels 
$height_max = 100; // Hauteur max de l'image en pixels 

$hostname_x = xxxx
$database_x = xxxx
$username_x = xxxx
$password_x = xxxx

$nom_file = $_FILES['file']['name']; 
$extension = substr(strrchr($nom_file, "."), 0);

// Récupération de l'extension 
//$newname =($rename.$ext); 
$extensions_ok = array(".jpg",".gif",".png",".jpeg"); 

// On vérifie si le champ est rempli 
//1 if 
  if($_FILES['file']['name']) 
  { 

// On vérifie l'extension du fichier 
//2 if 
    if(in_array(strtolower($extension),$extensions_ok)) 
    { 
// On récupère les dimensions du fichier 

    $infos_img = getimagesize($_FILES['file']['tmp_name']); 

// On vérifie les dimensions et taille de l'image 
//3 if 
    if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($infos_img[2] <= $max_size)) 
    { 

//vos paramettre conection 
    $connexion = mysql_connect($hostname_x, $username_x, $password_x) or die ('erreur de connexion');//mysql_connect("", "", ""); 
//votre table images
     mysql_select_db('images',$connexion);
//mysql_select_db(""); 

//chemin voudra dire le chemin de deplacement de l'image 
     $chemin = "./".$nom_file; 
//nom de la table
      $table = "images"; 
//$rename = $_POST["rename"]; 

// on depose le fichier a l'endroit choisi
      move_uploaded_file($HTTP_POST_FILES["file"]["tmp_name"],$chemin);
 
//et pour finir on même ca dans la base de donnée 
      mysql_query("INSERT INTO images VALUES('$nom_file','$chemin')"); 

//echo "Bonjour $nom, merci pour votre inscription "; 
      echo "envoye terminé $extension $nom_file"; 

} 
//3else 
else 
{ 
echo "vérifie les dimensions et taille de l'image"; 
} 

} 
//2 else 
else 
{ 
echo "non extension"; 
} 
} 
//1 else 
  else 
  { 
  echo "remplir le champs "; 
  } 
?>  
j'ai une table qui existe avec trois colonnes : id/nom/chemin
merci de votre aide

Mammouth du PHP | 19672 Messages

07 mars 2006, 20:05

Alors la requête pose problème puisque tu n'envoies que deux valeurs alors que selon ta formulation, il en faudrait trois. Pour n'envoyer que deux valeurs, il faut préciser quels champs tu alimentes toi-même, les autres devant prendre les valeurs par défaut :
mysql_query("INSERT INTO images (`nom`, `chemin`) VALUES('$nom_file', '$chemin')");
Là ça devrait fonctionner mieux.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 297 Messages

07 mars 2006, 22:02

Alors la requête pose problème puisque tu n'envoies que deux valeurs alors que selon ta formulation, il en faudrait trois. Pour n'envoyer que deux valeurs, il faut préciser quels champs tu alimentes toi-même, les autres devant prendre les valeurs par défaut :
mysql_query("INSERT INTO images (`nom`, `chemin`) VALUES('$nom_file', '$chemin')");
Là ça devrait fonctionner mieux.
Alors la requête pose problème puisque tu n'envoies que deux valeurs alors que selon ta formulation, il en faudrait trois. Pour n'envoyer que deux valeurs, il faut préciser quels champs tu alimentes toi-même, les autres devant prendre les valeurs par défaut :
mysql_query("INSERT INTO images (`nom`, `chemin`) VALUES('$nom_file', '$chemin')");
Là ça devrait fonctionner mieux.
j'ai éliminer la colonne id, ainsi il me reste deux colonnes dans ma table (nom et chemin), mais ca ne fonctionne pas non plus avec le code ci dessus.
je n'ai pas de message d'erreur, mais les données ne rentrent pas dans la base.

Eléphant du PHP | 297 Messages

07 mars 2006, 22:30

probleme resolu !
une grosse erreur sur cette ligne :

Code : Tout sélectionner

//connection mysql_connect($hostname_x, $username_x, $password_x) or die ('erreur de connexion');//mysql_connect("", "", "");
et non pas

Code : Tout sélectionner

//vos paramettre conection $connexion = mysql_connect($hostname_x, $username_x, $password_x) or die ('erreur de connexion');//mysql_connect("", "", "");
merci qm Cyrano