Formulaire php upload

elenarom Messages postés 4 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 6 janvier 2009 - 5 janv. 2009 à 11:44
elenarom Messages postés 4 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 6 janvier 2009 - 6 janv. 2009 à 11:53
Bonjour,
je suis entrain de réaliser un site web dynamique avec php/mysql avec dreamweaver mx
Sur mon site web j'ai un formulaire avec un champ de fichier et j'utilise php upload
Mais quand on remplis le formulaire il ne peut pas aboutir si le champ de fichier est vide
Pourriez vous m'aider à ce sujet,
Et merci d'avance.

4 réponses

kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
5 janv. 2009 à 13:17
Salut,

Sans un minimum de code il n'est pas possible de t'aider.

Cordialement,

Kohntark -
0
elenarom Messages postés 4 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 6 janvier 2009
5 janv. 2009 à 13:50
// ---------------------------------------------
// Pure PHP Upload version 1.1
// -------------------------------------------
if (phpversion() > "4.0.6") {
 $HTTP_POST_FILES = &$_FILES;
}
define("MAX_SIZE",300000);
define("DESTINATION_FOLDER", "./img");
define("no_error", "pagemembre.php");
define("yes_error", "echoue.php");
$_accepted_extensions_ = "gif,jpg,jpeg";
if(strlen($_accepted_extensions_) > 0){
 $_accepted_extensions_ = @explode(",",$_accepted_extensions_);
} else {
 $_accepted_extensions_ = array();
}
$_file_ = @$HTTP_POST_FILES['photo'];
if(is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['photo']['error'] == 0){
 $errStr = "";
    $categorie = $_POST['categorie'];
    $modelle = $_POST['modelle'];
    $annee = $_POST['annee'];
    $prix = $_POST['prix'];
    $resume = $_POST['resume'];
    $id_membre = $_POST['id_membre'];
 $_name_ = $_file_['name'];
 $_type_ = $_file_['type'];
 $_tmp_name_ = $_file_['tmp_name'];
 $_size_ = $_file_['size'];
 if($_size_ > MAX_SIZE && MAX_SIZE > 0){
  $errStr = "File troppo pesante";
 }
 $_ext_ = explode(".", $_name_);
 $_ext_ = strtolower($_ext_[count($_ext_)-1]);
 if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
  $errStr = "Estensione non valida";
 }
 if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
  $errStr = "Cartella di destinazione non valida";
 }
 if(empty($errStr)){
  if(@move_uploaded_file($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){
   header("Location: " . no_error);
   mysql_select_db($database_kart, $kart);
   $insertMateriel = "INSERT INTO materiel (categorie, modelle, annee, prix, resume, photo, id_membre) VALUES ('$categorie', '$modelle', '$annee', '$prix', '$resume', '$_name_', $id_membre)";
   mysql_query($insertMateriel, $kart) or die(mysql_error());
  } else {
   header("Location: " . yes_error);
  }
 } else {
  header("Location: " . yes_error);
 }
}
?>
0
kohntark Messages postés 3705 Date d'inscription lundi 5 juillet 2004 Statut Membre Dernière intervention 27 avril 2012 30
6 janv. 2009 à 01:34
Salut,

Effectivement le script est prévu pour "ne rien faire" si il n'y a pas de fichier posté.
Que souhaites tu faire exactement ?
Laisser la possibilité d'uploader un fichier (sans que ce soit obligatoire) ?
Faire un simple post et mettre en DB les valeurs de modèle, année, prix, etc ... ?

Dans le premier cas regroupe tout ce qui concerne l'upload du fichier, par exemple :

if(is_uploaded_file($_file_['tmp_name']) && $HTTP_POST_FILES['photo']['error'] == 0){
  $_accepted_extensions_ = "gif,jpg,jpeg";
  if(strlen($_accepted_extensions_) > 0){
     $_accepted_extensions_ = @explode(",",$_accepted_extensions_);
  } else {
     $_accepted_extensions_ = array();
  }
  $_file_ = @$HTTP_POST_FILES['photo'];
  $_name_ = $_file_['name'];
  $_type_ = $_file_['type'];
  $_tmp_name_ = $_file_['tmp_name'];
  $_size_ = $_file_['size'];
  if($_size_ > MAX_SIZE && MAX_SIZE > 0){
    $errStr = "File troppo pesante";
  }
 $_ext_ = explode(".", $_name_);
 $_ext_ = strtolower($_ext_[count($_ext_)-1]);
 if(!in_array($_ext_, $_accepted_extensions_) && count($_accepted_extensions_) > 0){
   $errStr = "Estensione non valida";
 }
 if(!is_dir(DESTINATION_FOLDER) && is_writeable(DESTINATION_FOLDER)){
   $errStr = "Cartella di destinazione non valida";
 }
 if(empty($errStr)){
   if(@move_uploaded_file($_tmp_name_,DESTINATION_FOLDER . "/" . $_name_)){
 }
}

et ensuite tu fais ton insertion dans la DB (mysql_select_db($database_kart, ...)

Il y a plein d'erreurs dans le script, mais l'esprit est là :

[
Y a t il un fichier d'uploadé ?
  => oui
     contrôle de la taille, de l'extension, etc ...
     enregistrement du fichier ou affichage erreur
  => non => aucune action
] ET [
  contrôle des champs du formulaire
  => OK
      mise à jour de la base de données
  => affichage erreur
]

Poste tes modifs, je serai plus précis la prochaine fois, promis

Cordialement,

Kohntark -
0
elenarom Messages postés 4 Date d'inscription mercredi 3 décembre 2008 Statut Membre Dernière intervention 6 janvier 2009
6 janv. 2009 à 11:53
Merci


j'ai résolu le probleme
0
Rejoignez-nous