Page 1 sur 1

info Formulaire Upload

Posté : 23 juil. 2006, 17:32
par polo
Bonjour à tous,
J’aurais besoin d'une info, est t'il possible, de savoir si un champs de fichier est vide.

Si oui ce serait sympa de me filer de la doc, ou un exemple!

Merci d'avance :D

Posté : 23 juil. 2006, 17:41
par zigz4g
Salut.
Tu peux regarder dans les tutoriaux de phpfrance.
http://www.phpfrance.com/tutoriaux/index.php/toc/home

Posté : 23 juil. 2006, 17:45
par polo
Merci, mais, j'ai déjà suivi le tuto pour le formulaire et l'upload, mais il n'y à rien concernant le fait de savoir si un champ fichier est vide ou pas, à moins que je n'ai loupé un passage.

En tout cas merci pour ta réponse, rapide :D

Posté : 23 juil. 2006, 18:04
par Truc
Jette un oeil à isset() ou empty()
et
http://www.deformedweb.co.uk/php_variable_tests.php

Posté : 23 juil. 2006, 18:09
par polo
En fait avec ce que tu me dit, je devrait faire un truc du style ?
if(isset($ma_var) == NULL){
 echo "désolé veuillez recommencer"; 
 }else{
 echo "le fichier à bien été envoyé";
 }
En tout cas merci, cette page est sympa, ça rafraîchie la mémoire, et éclaire des zones d'ombres :D
Je vais tester et je dirai si ça marche

Posté : 23 juil. 2006, 18:19
par polo
j'ai essayé, mais ça ne marche pas, il me semble d'ailleurs que j'avez déjà essayé, sa me renvoie tout le temps, le message qui correspond au fait qu'il y est un fichier dans le champ alors qu'il n'y en à pas!

Enfin, si quelqu'un à une solution je prend volontier :D

Posté : 23 juil. 2006, 18:23
par zigz4g
Tu recois un fichier mais il n'y est pas ??? :-k
Peux tu mettre le bout de code qui posse problème ?
Ou alors je ne comprend pas le problème.

Posté : 23 juil. 2006, 18:33
par polo
En fait j'ai un formulaire, d'envoie de fichier,
et je doit récupérer des informations dans mysql, qui vont me servir pour afficher un page sur mon site avec les infos du formulaire, donc sa sa ne pose pas de problème, mais c'est le champ fichier qui envoie mon fichier, je voudrais que la requête sql ne s'exécute que si il y avez un fichier dans le champ fichier lors de l'envoie car je me sert de ce fichier pour ma requête, récupère nom, etc...
enfin mais ça c'est la réalisation final, la pour l'instant pour faire des test, à la place des requête sql j’ai mis des echo, donc dans le processus, si il y a un fichier, il me marque "fichier envoyé" -> ça correspondra plus tard à ce que la requête soit exécuté, et si l'utilisateur à oublier de sélectionner un fichier avant l'envoie du formulaire, il y est un message, "désolé veuillez sélectionner un fichier!"

Mais la qu'il y ai un fichier ou non, et bien il considère toujour que le champ fichier est plein!

d'ou ma demande si quelqu'un connaissé un moyen de savoir si un champ fichier été vide ou non

Voila j'espère avoir été plus clair!
sinon, je peut réexpliquer!

merci, pour vos réponses

Posté : 23 juil. 2006, 19:03
par polo
c'est bon j'ai réusi, mais maintenant un autre problème ce pose à moi, je ne peut pas réaliser l'upload

il m'affiche cette erreur:
Warning: move_uploaded_file(http://mon_site/video/mon_fichier.pps) [function.move-uploaded-file]: failed to open stream: HTTP wrapper does not support writeable connections. in /mnt/116/sdb/5/7/mon_site/admin/pps.php on line 55

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/mnt/116/sdb/5/7/mon_site/phpbSrgXw' to 'http://mon_site/video/mon_fichier.pps' in /mnt/116/sdb/5/7/mon_site/admin/pps.php on line 55
mon dossier ne veut apparament pas passé en 777, il reste à 700, donc ça coince, pour (info je suis chez free, j'utilise filezilla)

voici le code (on sait jamais c'est peut être moi qui ai fait une erreur):
<?php
if(isset($_FILES['pps']) != NULL){
     
   // params
   unset($erreur);
   $extensions_ok = array( 'pps', 'ppt');
   $taille_max = 2000000;
   $dest_dossier = 'http://mon_site/video/';
    // vérifications
  if( !in_array( substr(strrchr($_FILES['pps']['name'], '.'), 1), $extensions_ok ) )
  {
   $erreur = 'Veuillez sélectionner un fichier de type pps ou ppt';
  }
  elseif( file_exists($_FILES['pps']['tmp_name'])
  and filesize($_FILES['pps']['tmp_name']) > $taille_max)
  {
  $erreur = 'Votre fichier doit faire 10Mo ou moins de 10Mo!';
  }
  // copie du fichier
  if(!isset($erreur))
  {
  $dest_fichier = basename($_FILES['pps']['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-9]+)/i', '_', $dest_fichier);
  // copie du fichier
  move_uploaded_file($_FILES['pps']['tmp_name'], $dest_dossier . $dest_fichier);
  echo "<div align='center'>Le fichier :".$dest_fichier." à bien été envoié</div>";
  }else{
  echo "le champs fichier été vide";
  } 
?>

Posté : 23 juil. 2006, 19:30
par Truc
utilise un chemin relatif au lieu de l'absolu:
$dest_dossier = 'http://mon_site/video/';

Posté : 23 juil. 2006, 19:39
par polo
Merci, c'est bon tout marche, encore merci à toutes les personnes, m'aillant aider dans de ce topic qui m'on permet de finir ce script!