Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

UPLOAD CHEZ FREE.FR


Information sur la source

Catégorie :Tutoriaux Niveau : Débutant Date de création : 04/05/2003 Date de mise à jour : 04/05/2003 14:21:44 Vu : 38 460

Note :
5,83 / 10 - par 12 personnes
5,83 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10

Commentaire sur cette source (91)
Ajouter un commentaire et/ou une note


Description

Demandé par Eax sur le forum, voila l'upload chez free.

Superbe upload en php3 :-| donc [nomdefichier].php3 obligatoire, pourquoi faire simple ... lol

Le script vérifi divers choses avec des expressions réguliéres, il es assez basique pour la gestion des noms de fichier uploadé (à vous de le gérer en fonction de ce que vous voulez)

Veillez à toujours bien faire gaffe de tester le nom du fichier à uploader et d'assigner vous meme une extension prédéfinie au fichier une fois uploader sur le serveur.

Petite faille d'une upload mal faite :
Si vous pouvez uploader un fichier sans qu'il n'y ai aucun controle dessus, il est facile d'uploader un fichier copy.php qui contient <? copy(index.php,index.txt); ?>. Et hop tout le code d'index.php est visible ...
 

Source

  • --- formulaire
  • <form name="form1" method="post" action="upload.php3" enctype="multipart/form-data">
  • <input name="fichier" type="file">
  • <br>
  • <input type="submit" name="Submit" value="Ajouter la photo" class="bouton">
  • </form>
  • Notez bien le enctype="multipart/form-data" cvar sans ça, ça ne marchera pas.
  • Tout le code de la page est fait sur un champs file qui s'appele fichier
  • ---- Page upload.php3
  • <?
  • // si le nom du fichier est vide
  • if ($fichier_name == "")
  • {
  • echo "fichier vide ...";
  • exit;
  • }
  • // Vérifie si le fichier contient juste des lettres de A à Z en majuscule ou minuscule, des chiffres de 0 à 9, un "_", un "." ou un "-"
  • $masque = "^[_a-zA-Z0-9.-]+$";
  • if (!ereg($masque,$fichier_name))
  • {
  • echo "Nom de fichier invalide ...";
  • exit;
  • }
  • // Regarde si la fin du nom de fichier est gif ou jpeg
  • // A sauter si vous uploadez autre chose lol
  • if(!ereg(".gif$", $fichier_name) && !ereg(".jpg$", $fichier_name))
  • {
  • echo "Format incorrect ...";
  • exit;
  • }
  • // regarde si le poid est compris entre 5 et 50 Ko
  • $poid = filesize($fichier)/1024;
  • if ($poid >= 50 || $poid <= 5 )
  • {
  • echo "Taille du fichier incorrect ...";
  • }
  • // ici je met un truc bidon avec le nom et l'extension en dure
  • $repedest = "photo/";
  • $nomdest = "blabla.jpg";
  • if (file_exists($fichier))
  • {
  • // ici on déplace le fichier ou on veut
  • if (!@copy($fichier,$repedest$nomdest))
  • {
  • echo "Déplacement non éffectué ...";
  • exit;
  • }
  • else
  • {
  • echo "Fichier ".$fichier_name." ajoutée";
  • exit;
  • }
  • }
  • else
  • {
  • echo "Erreur d'upload ...";
  • exit;
  • }
  • ?>
--- formulaire

<form name="form1" method="post" action="upload.php3" enctype="multipart/form-data">
        <input name="fichier" type="file">
  <br>
  <input type="submit" name="Submit" value="Ajouter la photo" class="bouton">
</form>

Notez bien le enctype="multipart/form-data" cvar sans ça, ça ne marchera pas.


Tout le code de la page est fait sur un champs file qui s'appele fichier

---- Page upload.php3

<?
// si le nom du fichier est vide
if ($fichier_name == "")
{
    echo "fichier vide ...";
	exit;
}

// Vérifie si le fichier contient juste des lettres de A à Z en majuscule ou minuscule, des chiffres de 0 à 9, un "_", un "." ou un "-"
$masque = "^[_a-zA-Z0-9.-]+$";
if (!ereg($masque,$fichier_name))
{
	echo "Nom de fichier invalide ...";
	exit;
}

// Regarde si la fin du nom de fichier est gif ou jpeg
// A sauter si vous uploadez autre chose lol
if(!ereg(".gif$", $fichier_name) && !ereg(".jpg$", $fichier_name))
{
	echo "Format incorrect ...";
	exit;
}

// regarde si le poid est compris entre 5 et 50 Ko
$poid = filesize($fichier)/1024;	
if ($poid >= 50 || $poid <= 5 )
{
	echo "Taille du fichier incorrect ...";
}

// ici je met un truc bidon avec le nom et l'extension en dure
$repedest = "photo/";
$nomdest = "blabla.jpg";

if (file_exists($fichier))
{
	// ici on déplace le fichier ou on veut
	if (!@copy($fichier,$repedest$nomdest))
	{
		echo "Déplacement non éffectué ...";
		exit;
	}
	else
	{
		echo "Fichier ".$fichier_name." ajoutée";
		exit;
	}
}
else
{
	echo "Erreur d'upload ...";
	exit;
}
?>

Conclusion

Attention, si la page d'upload est  utilisé avec une session : Les sessions ne sont pas gérées de la meme façon en php4 ou php3, c'est d'ailleur une des raison pour laquel je quitte free en juillet, trop de contrainte ...

Si vous connaissez d'autre truc pour la sécurité, faites en part, ça interessera plein de monde ...


++
Bon coding :-D
 

Commentaires et avis

signaler à un administrateur
Commentaire de eax le 04/05/2003 14:32:50

ah ok je te remercie c coo

je vais m'amuser avec ça

à+

signaler à un administrateur
Commentaire de Kirua le 05/05/2003 07:37:29

bien vu pour la brêche. ça peut se révéler particulièrement gênant si on ne protège pas ses mots de passes MySQL et qu'on les tape en dur dans le code source.

signaler à un administrateur
Commentaire de mehdibou le 08/05/2003 13:11:35

Merci, je cherchais justement ça :)
C'est un peu bête que ça fonctionne pas avec php4...(chez free).
Est-il possible d'appeler une page .php avec le formulaire puis dans ce script .php inclure le .php3 pour l'upload ? (j'ai été clair?)

@+
Mehdi

signaler à un administrateur
Commentaire de Tomcube le 21/05/2003 16:53:20

En réponse à mehdibou, c'est impossible d'inclure le .php3 dans le php appelé par le formulaire pour l'upload. J'ai essayé, ça m'aurais bien arrangé :-) !

signaler à un administrateur
Commentaire de eax le 25/06/2003 09:55:12

coucou
g une question pour le ereg qui teste si le nom des fichiers, on fait comment pour lui faire prendre les noms de fichiers avec un espace? sorry, j'y connais rien en ereg lol

signaler à un administrateur
Commentaire de Tortuegeniale le 25/06/2003 10:27:37

eax&gt; c tout bete lol ==&gt; $masque = "^[ _a-zA-Z0-9.-]+$";

signaler à un administrateur
Commentaire de eax le 25/06/2003 10:58:07

ah ok merci, mais je viens de me rendre compte que ça vire aussi tous les caractères spéciaux du genre accents et cie, alors j'ai viré le test et ça marche nickel en local :)  mais je pense que je va

signaler à un administrateur
Commentaire de seed le 14/07/2003 17:28:32

esque la fonction getimagesize marche sur free pasque moi j arrive pas l utiliser!!!

signaler à un administrateur
Commentaire de eax le 14/07/2003 19:38:31

free? ça fait longtemps que g pas entendu ce mot

signaler à un administrateur
Commentaire de Tortuegeniale le 14/07/2003 21:51:33

elle marche sans pb cette fonction

ça te dit koi ?

signaler à un administrateur
Commentaire de seed le 15/07/2003 10:00:52

ca me dis

Warning: Unable to open mon_image.jpg in your script on line 102

signaler à un administrateur
Commentaire de seed le 15/07/2003 10:32:27

en faite mon gros probleme c est que lorsque j upload une image quand j'affiche le contenut de $fichier et il m affiche un truc comme ./phpBm2Qur

cette valeur change pour chaque image je ne sais pas si c est normal mais lorsque j affiche^$fichier_name j ai le bon nom de fichier mais maintenant le plus gros probleme c'est que lorsque je fais copy($fichier, $nouveau_nom)

le serveur renvoie ;

Warning: Unable to open './phpBm2Qur' for reading: No such file or directory in your script on line 102

lorsque je remplace fichier par fichier_name j ai
Warning: Unable to open 'mon_image.jpeg' for reading: No such file or directory in your script on line 102

ralala free c reloo

signaler à un administrateur
Commentaire de Tortuegeniale le 15/07/2003 11:11:45

le nom c le nom temporaire de l'image quand elle est uploadé sur le serveur.

Pour l'autre erreur ça veut dire que ligne 102 le le fichier ou le dossier que tu appeles n'existe pas

signaler à un administrateur
Commentaire de Tortuegeniale le 15/07/2003 11:13:01

Pour le warning ça te dit qu'il arrivce pas a ouvrir ton image ligne 102, doit y avoir une grosse merde ligne 102

signaler à un administrateur
Commentaire de seed le 15/07/2003 11:19:16

oula la ligne 102 correspond a a la meme  ligne cite dans le tuto :
copy($fichier, $nouveau_nom);

signaler à un administrateur
Commentaire de Tortuegeniale le 15/07/2003 20:59:29

c que $nouveau_nom a une erreur

signaler à un administrateur
Commentaire de seed le 16/07/2003 12:52:02

ba non sinon il me dirait pas qu il ne peu pas lire $fichier

Warning: Unable to open ./phpBm2Qur in your script on line 102

je vais vous filer mon code vous allez voir!!


&lt;?php
$pseudo="seed";
if($REQUEST_METHOD=='POST'){
$taille = filesize($fichier);
echo"$fichier_name ++++++++++++++++++++++++ $fichier &lt;br&gt;";
if ($fichier != "none")
{ if ($taille &lt; 100000)
  {$nom_vrai = $fichier_name;
    $point = strrpos($nom_vrai, ".");
    if ($point)
      $extension = substr($nom_vrai, $point);
    else
      $extension = "";
    $nouveau_nom = "photos//".strtolower($pseudo.$extension);
    chdir ("photos//");
    if (file_exists(strtolower($pseudo.$extension)))
    { unlink ($nouveau_nom);
      echo "L'ancienne photo a été supprimée&lt;br&gt;";
    }
if (copy($fichier, $nouveau_nom))echo "Ok";
else  echo"erreur";
}}}
?&gt;
&lt;form name="photo" action="?" enctype="multipart/form-data" method="post"&gt;  
&lt;input type="hidden" name="MAX_FILE_SIZE" value="100000"&gt;&lt;input class="champ" type="file" name="fichier"&gt;
&lt;input type="submit" class="bouton" name="envoie" value="Envoyer la photo" onClick="this.value='Patientez...'"&gt;
&lt;/form&gt;

signaler à un administrateur
Commentaire de Tortuegeniale le 16/07/2003 14:11:24

Pk double / dans $nouveau_nom ?

signaler à un administrateur
Commentaire de Kirua le 16/07/2003 14:31:53

je poste juste pr plus recevoir les msg par mail, dsl

signaler à un administrateur
Commentaire de Tortuegeniale le 16/07/2003 14:36:57

ou j'avais pas pensé a ça

seed&gt; on fini cette conversation sur le forum pour pas poluer la boites mails des gens, pose un message dessus et j répondrai

signaler à un administrateur
Commentaire de xtcrsr le 18/07/2003 15:11:47

Un petit truc à ajouter, le CHMOD (pour les droit d'acces),je viens de passer une journée à chercher pourquoi ca voulait pas a cause de ce petit truc :').

pour php4, il y a pas beaucoup de difference non?(les variables avec par exemple $HTTP_POST_FILES['fichier']['tmp_name']).
Quel est le problème avec les sessions?

signaler à un administrateur
Commentaire de Tortuegeniale le 18/07/2003 16:40:58

l'upload chez free est en php3 et on paut pas mélanger session php4 et page php3

signaler à un administrateur
Commentaire de xtcrsr le 18/07/2003 17:20:21

Ok, rien de bien mechant en fait ;)
Pour plus de sécurité on peut utiliser move_uploaded_files($fichier,$repedest$nomdest) ,qui verifie que le fichier a bien été telecharger en HTTP POST et qui le deplace si c ok.
Ou is_uploaded_file($fichier), qui fait que verifier.
Je l'ai si c en php3 :) pour php4 c avec $HTTP_POST_FILES[][].

Ps: Oui je suis en plein sur l'upload de fichier, ca se voit tant que ca ? ;p
Si je decouvre autre chose de "revolutionnaire" je l'ajouterai(on peut pas editer?)

signaler à un administrateur
Commentaire de Tortuegeniale le 18/07/2003 18:53:19

je sais que y a move_uploaded_files mais il marche pas chez free en php3

signaler à un administrateur
Commentaire de seed le 18/07/2003 19:02:54

moi ca commence vraiment a me souler pasque j ai copier exactement le tuto et ca ne marche pas lorsque j envoi un photo que ca soit un smiley ou un vrai photo ca me fais taille fichier incorect et quand je vire la partie de verification de la taille du fichier rien ne s affiche le script ne va pas jusqu a la fonction copy()
ca me rend dingue le pire c est que j en ai deja fais des uploads chez free .. enfin je vais y arriver ..

signaler à un administrateur
Commentaire de seed le 18/07/2003 19:08:34

mon probleme avefc la taille du fichier est regler mais par contre le script ne veut tj pas aller jusqu a la fonction copy() il me donnne une page blanche...

vous pouvez tester si vous voulez :
http://skateboard.site.free.fr/my_upload.php3

signaler à un administrateur
Commentaire de Tomcube le 18/07/2003 21:51:08

Avez-vous essayé un formulaire d'upload que j'ai créé : "Freeuploader" qui est sur PHPCS ??

signaler à un administrateur
Commentaire de seed le 18/07/2003 23:41:22

aaaa genial lol je suis entrain de passerr pour un boulet mas bon.. CA FAIT PLaisir je le testerais 2m1

signaler à un administrateur
Commentaire de seed le 19/07/2003 12:48:23

aaaaa je ne te felicite pas tortue geniale ....
if (!@copy($fichier,$repedest$nomdest))

normal que le script dupload ne marche pas.... en + le fait d ajouter une arobase avant copy m a fait tourner en bourique pasque aucune erreur ne s affichait enfin bon je t en veut pas tu peux changer par

if (!@copy($fichier,$repedest.$nomdest))// he oui il fo un point et ca marche... ;-D

signaler à un administrateur
Commentaire de Tortuegeniale le 19/07/2003 17:08:35

j'ai testé ce script avant de le mettre, il marche SANS AUCUN probleme

signaler à un administrateur
Commentaire de seed le 19/07/2003 17:18:46

chez moi ca ne marche pas en tt cas mais c vrai qu il serait logique que ca marche car lorsque l on fait
&lt;?php
$deb="hehehehe";
$d="seed";
echo "$deb$d";?&gt;
ca s affiche sans erreur ... enfin merci bcp en tt cas pour ton aide ;-)

signaler à un administrateur
Commentaire de djtale le 23/07/2003 19:22:23

Bonjour. Lorsque j'utilise un script .php3 sur Free, impossible d'afficher la page.
J'ai l'impression qu'il ne charge aucune page dont l'extension est .php3.

Avez vous aussi ce pb ? Comment puis je le résoudre .

Merci.

signaler à un administrateur
Commentaire de Tortuegeniale le 23/07/2003 20:48:06

free lit le php3, c un autre probleme que tu dois avoir

signaler à un administrateur
Commentaire de seed le 23/07/2003 20:51:23

lol non free lis les fichiers php3 une fois sur 10 c tt faite le test la meme page 1 avec le php3 et l autre avec php freee va avoir 4 fois sur 5 une page blanche impossible d afficher la page avec php3 alor que php va tres bien marcher ...ca vient bien de free a moin qu ca vienne de mon navigateur ie ... enfin je ne pense pas pasque bcp de personne le disent!!!!

signaler à un administrateur
Commentaire de Tortuegeniale le 23/07/2003 21:16:36

c pas les pages php3 que free lit mal c toutes les pages, leur serveur fait plein d'erreurs 500

signaler à un administrateur
Commentaire de seed le 23/07/2003 21:18:10

ba c bien connue ca mais je te certifie qu il a + de mal avec les page php3

signaler à un administrateur
Commentaire de djtale le 23/07/2003 21:26:35

Donc ca ne vient pas de moi mais de free.

J'ai essayé de taper http://php3.free.fr/mon_login/upload.php3 et pareil, ca plante.

Free c bien car c gratos mais c le bordel au niveau des restrictions !!

signaler à un administrateur
Commentaire de Tortuegeniale le 23/07/2003 21:57:46

j'ai jamais eu de probleme avec du php3 ...

signaler à un administrateur
Commentaire de Tomcube le 24/07/2003 11:43:36

Moi non plus, j'ai quasiment jamais de problème avec mes pages, que ce soit php ou php3. Free est en train de sombrer ...

signaler à un administrateur
Commentaire de Tortuegeniale le 24/07/2003 12:42:15

ouais free ce multimania-ise lol, moi perso je passe en hebergement payant, c franchement pas cher (40 ? / AN) pour l'espace disque que je vais avoir (250Mo) et y a les sockets, la gestion imap/pop3, l'upload en php4 et le mail.
Pour quelqu'un qui veut présenter un site fonctionnel, je pense que le paiement s'impose depuis kelke moi ... merci Free :-|
-&gt; PHP je t'aime lol &lt;-

signaler à un administrateur
Commentaire de Tomcube le 24/07/2003 12:57:04

Justement tortue géniale, tu devais me dire quel hébergement tu choisirai pour ton site. Tu as pris quoi comme pack ?? chez ki ??

signaler à un administrateur
Commentaire de Tortuegeniale le 24/07/2003 16:40:28

ah ouais j'avais oublié lol

Doncj e vais surement prendre ça
http://www.phpnet.org/index.php?page=offre4&t=Offre_250Mo

45 euros / an soit 3.75 euros / mois (faut tout payer a l'inscription)

le traffic ce fait pas sur le nombre de hits mais sur le poids du traffic généré ( 6 Go ce qui représente 1 000 visiteurs par jour)

Vu l'offre moi je vous le conseil fortement, y a 6 base sql quand meme, l'upload le mail et tout ...

La ça fait vraiment mal un site la dessus :-D

signaler à un administrateur
Commentaire de Tomcube le 25/07/2003 09:47:40

OK ! L'offre est interessante. Je l'avais déjà vue auparavant. Je vais y réfléchir ... ^^

signaler à un administrateur
Commentaire de clem23 le 22/08/2003 13:38:06

Salut , j'ai trouvé un script un peut plus poussé qui évite les faille de securité, il pas de moi alors je laisse les ref http://balno.free.fr/upload.html . Par contre comment vous faite quand vousavez un site en php4 avec sessions pour allez sur une page php3 et revenir en php4 sans perdre la session et en protégeant le page php3 ??

Upload de fichiers en PHP
Ce petit script PHP permet l'upload de fichiers sur un serveur distant. On peut le tester ici. Le fonctionnement de ce script est décrit dans les commentaires. Petites précisions cependant :

Ce script doit être enregistré dans un fichier dont l'extension est .php (.php3 pour Free) sur un serveur supportant PHP, évidemment. note Ce script fonctionne avec la version 3 de PHP. Avec PHP4, l'upload fonctionne de manière légèrement différente même si le principe reste le même. Vous pouvez consulter cet exemple d'implémentation en PHP4 (c'est avec ce genre de code que l'inframonde se dessine...).
Le comportement du script est défini par deux variables positionnées au début : $MAX_SIZE, qui fixe la taille maximum (en octets) des fichiers que l'on peut uploader et $ENABLE_RM, qui indique si l'utilisateur est en mesure de supprimer des fichiers. La taille maximum est indicative puisque la limite est en réalité fixée par votre hébergeur dans la fichier PHP.INI qui règle le comportement de PHP sur le serveur.
L'utilisateur ne peut pas uploader des scripts PHP. Il s'agit de ne pas se faire défacer, quand même.



Télécharger le source : http://balno.free.fr/upload_src.txt

&lt;?
  /* PhpUpload
     script d'upload de fichiers
     François Lemarchand. Médiathèque d'Agneaux. 2001
          mail : françois.banholzer@online.fr
  */

  // variables de configuration
  // taille maximum (en octets) des fichiers à télécharger
  $MAX_SIZE = 100000 ;

  // autoriser ou non la suppression de fichiers (1=oui, 0=non)
  $ENABLE_RM = 1 ;
?&gt;
&lt;html&gt;
  &lt;head&gt;
    &lt;title&gt;PhpUpload&lt;/title&gt;
    &lt;script language='JavaScript'&gt;
    function testNomFichier(form)
    {
        /* cette fonction teste si le champ userfile_name du
           formulaire est bien renseigné */

    taille = form.userfile.value.length;

    if(taille == 0)
    {
        alert("Spécifiez un nom de fichier.");  
        erreur = false;
    }

    else erreur = true;

    return erreur;
    }
    &lt;/script&gt;
  &lt;/head&gt;
&lt;body bgcolor='#9999cc'&gt;
  &lt;h3&gt;PhpUpload&lt;/h3&gt;
  &lt;small&gt;François Lemarchand. 2001&lt;/small&gt;
  &lt;a href='../upload.html'&gt;Retour Homepage&lt;/a&gt;
  &lt;div align='center'&gt;

  &lt;?

      // upload d'un fichier


     // on teste différentes conditions

      if(strlen($userfile_name)
         && file_exists($userfile)
         && stristr($userfile_name, ".php") == "") {
        if(!copy($userfile, $userfile_name))
          echo "&lt;script language='javascript'&gt;
                alert('une erreur s'est produite pendant
                       le téléchargement.');&lt;/script&gt;";

        // un peu de nettoyage peut faire du bien, "des coups que..."

        if(file_exists($userfile))
          unlink($userfile);
        }
  ?&gt;

  &lt;?

      // suppression d'un fichier

      // set mode = paranoïd !

      if($ENABLE_RM && $action=="del" && strlen($fichier)) {
        // test de la forme du fichier :
        // on interdit tous les noms qui commencent par un point (../, ./)
        //  et http (merci à Jean-François Bernot pour avoir signalé la faille)

        if(!preg_match('/^.|^http/si', $fichier))
            unlink($fichier);
        $action = "";
        $fichier = "";
      }
  ?&gt;

  &lt;hr&gt;
  &lt;h4&gt;Télécharger un fichier dans ce répertoire&lt;/h4&gt;
  &lt;form enctype='multipart/form-data' method='post' action='
     &lt;? echo basename($PHP_SELF) ?&gt;'&gt;
    &lt;input type='hidden' name='MAX_FILE_SIZE' value='&lt;? echo $MAX_SIZE ?&gt;'&gt;
    &lt;table border="0"&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;small&gt;Fichier à télécharger&lt;/small&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td&gt;&lt;input name='userfile' type='file' size='60'&gt;&lt;/td&gt;
      &lt;/tr&gt;
      &lt;tr&gt;
        &lt;td align='center'&gt;
          &lt;input type='Submit' value='  Ok   '  
              onclick='return testNomFichier(this.form)'&gt;
          &lt;input type='reset' value='Reset'&gt;
        &lt;/td&gt;
      &lt;/tr&gt;
    &lt;/table&gt;
  &lt;/form&gt;
  &lt;/div&gt;
  &lt;hr&gt;
  &lt;h4&gt;&lt;? echo "contenu de ".dirname($PHP_SELF)."&lt;br&gt;" ?&gt;&lt;/h4&gt;
  &lt;ul&gt;
  &lt;?
    /* affichage des fichiers du répertoire */

    $fichier = array("");
    $d =0;

    /* ouverture du répertoire courant */

    $handle = opendir('.');

    /* lecture des entrées du répertoire */

    while ($entree = readdir($handle)) {
      if (is_file("$entree") && stristr($entree, ".php") == "") {
        $fichier[$d] = $entree;
        $d++;
      }
    }

    /* tri du tableau des fichiers */

    sort($fichier);

    /* affichage */

    for($key = 0; $key &lt; $d; $key++) {
      echo "&lt;li&gt;";
      echo "&lt;a HREF='$fichier[$key]'&gt;";
      echo $fichier[$key];
      echo "&lt;/a&gt;&lt;small&gt; (";

      // on rajoute la taille du fichier

      echo filesize($fichier[$key])." Octets) ";

     // et la date du téléchargement

     echo "téléchargé le ".date('j/m/Y',filemtime($fichier[$key]))." à ";
     echo date('h:i',filemtime($fichier[$key]));

     // lien pour la suppression
     if($ENABLE_RM) {
       echo " &lt;A href='";
       echo "./".basename($PHP_SELF);
       echo "?action=del&fichier=$fichier[$key]'&gt;Supprimer&lt;/A&gt;";
     }
    
     echo "&lt;/small&gt;&lt;/li&gt;";
   }

   closedir($handle);

  ?&gt;
  &lt;/ul&gt;
&lt;/body&gt;
&lt;/html&gt;

signaler à un administrateur
Commentaire de Tortuegeniale le 22/08/2003 14:32:02

Merci de NE PLUS REPOSTER de message de se genre, regarde mon script avant de poster ça, il est bien plus poussé que ce script la. Mon script utilise des expressions régulieres et en plus vérifie le poids du fichier.

signaler à un administrateur
Commentaire de eax le 22/08/2003 20:12:48

clair, tant qu'à faire, poste une autre source

signaler à un administrateur
Commentaire de mfaraday le 26/08/2003 14:47:11

Salut !

Je suis un peu perdu avec l'uplaod, j'ai compris en gras le principe... Mais ya kan même kkch que j'entrave pas : On a un champ qui s'appelle "FICHIER" donc une fois sous php, il devient "$FICHIER"...

Mais au long du script, on utilise un truc qui s'appelle $FICHIER_NAME. Ca vient d'ou ? c passé par le form ? c une variable PHP ????

à l'aide !!!!

Merci

Max

signaler à un administrateur
Commentaire de Tortuegeniale le 26/08/2003 15:01:32

c une variable php pour l'upload, y en a d'autre aussi mais on en a pas besoin chez free

signaler à un administrateur
Commentaire de mfaraday le 26/08/2003 15:05:24

Bah alors g un pbm...

Je met un fichier dnas mon champ (c:windowsureaufichier.csv) [g besoin de csv pour traitement après] j'envoie... et il me dit "fichier vide"

Max

signaler à un administrateur
Commentaire de mfaraday le 26/08/2003 15:10:17

Euh en me baladant sur dev.nexen.net, j'ai trouvé un truc...

html : fichier

taille : $_FILES['fichier']['size'] et nom : $_FILES['fichier']['name']

est ce que $fichier_name équivaut à $_FILES['fichier']['name']
?

signaler à un administrateur
Commentaire de Tomcube le 26/08/2003 15:30:54

Oui

signaler à un administrateur
Commentaire de Tomcube le 26/08/2003 15:34:20

J'ai une 1 question :
Le fichier qu'on indique dans un formulaire est après validation transféré dans un dossier temporaire sur le serveur. Mais si le fichier qu'on transfère est supérieur à la taille autorisée par le serveur, il me semble qu'il est impossible de voir sa taille, et l'upload bug, non ?

signaler à un administrateur
Commentaire de Tortuegeniale le 26/08/2003 21:25:05

D'aprés certains articles que j'ai lu, l'upload est l'une des plus grosse faille de php car le fichier quand il est passé dans le formulaire est automatiquement uploadé sur le serveur, et c ensuite qu'il est traité, d'ou le $_FILES[tmpname] (ou un truc du genre g plus la syntaxe exacte la lol)
Donc faudrai peut etre mettre un timeout en javascript au moment de l'upload, j'ai jamais essayé d'uploadé un fichier énorme lol

signaler à un administrateur
Commentaire de Tomcube le 26/08/2003 21:37:53

Mais pour free, 250Ko (une grosse image) signifie déjà "énorme" ...

signaler à un administrateur
Commentaire de Tortuegeniale le 26/08/2003 21:44:08

arf ouais free lol, bah free a mis une grosse limite d'upload (faut pas trop tirer sur leur serveur minable lol) c pour ça que j'ai enfin pris mon hébergement pro, pas cher et performant :D www.phpnet.org

signaler à un administrateur
Commentaire de Vincman87 le 29/08/2003 15:48:47

post pour que les mails suivent... sorry

signaler à un administrateur
Commentaire de belsd le 05/09/2003 13:45:50

Bonjour,
Mois j'ai un autre problème, A la récupération, $fichier ne contien que du vide...
D'où il n'es pas possible d'uploader...

signaler à un administrateur
Commentaire de Tortuegeniale le 05/09/2003 15:00:01

t'as mis enctype="multipart/form-data" dans le formulaire ??

signaler à un administrateur
Commentaire de rclsilver02 le 19/09/2003 19:20:38

je voudrais faire un script avec un formulaire qui envoie des fichiers ZIP sur un serveur Free ou Multimania .. mais je n y connais rien en PHP et en lisant les messages la g rien capte !
Qui peut m envoyer un script qui fonctionne sur Free ou Multimania svp ? Merci ... avec ce script, il me me a chaque fois, Taille Inccorrecte, Format inccorect ou deplacement non effectue ... Merci d avance ...
PS : Vous pourvez envoyer la source a thomas.betrancourt@laposte.net .. merci

signaler à un administrateur
Commentaire de Tortuegeniale le 19/09/2003 20:50:28

suffit de lire la source et d'essayer de la comprendre un peu. Ma source analyse le fichier et accepte que les images et il y a un poids limite dans ma sources. Et en plus je me suis fait chier a commenter chaque ligne du script (apparament pour rien). C hallucinant les gens qui rallent parcque ça marche pas comme ils veulent.
Pour uploader n'importe kel fichier enleve ça
if(!ereg(".gif$", $fichier_name) && !ereg(".jpg$", $fichier_name))
{
    echo "Format incorrect ...";
    exit;
}

// regarde si le poid est compris entre 5 et 50 Ko
$poid = filesize($fichier)/1024;    
if ($poid &gt;= 50 || $poid &lt;= 5 )
{
    echo "Taille du fichier incorrect ...";
}

signaler à un administrateur
Commentaire de lca94 le 06/02/2004 14:13:32

vous pouvez critique clem23 mais au moins ça MARCHE et sasn rein modifier

... ton truc tortuegéniale.. ya un pb... tous les commentaires fait par les gens en haut.. ont rien avoir avec ton code... pazss mysql ... et patati

out'as vu que ça marche???
étonant ça!

signaler à un administrateur
Commentaire de eryver le 29/03/2004 15:48:03

bon ben juste pour dire que en effet phpnet c pas mal mais y a pas mal de pb de serveur sql

Mon site est hebergés chez eux et ils est souvent bloqué car le serveur de phpnet a sauté.

ensuite attention , le fait de payer empeche pas le fait que l'up est limité chez phpnet tout comme NVhost, c'est limité a 2 mo -_-

je recherche un moyen de contourner cette limite (comme un clientFTP) si vous trouvez avant moi merci de me tenir au courant

signaler à un administrateur
Commentaire de Ziman le 16/06/2004 00:36:27

Merci ca marche !

signaler à un administrateur
Commentaire de jddz le 16/06/2004 15:15:25

Super code rien a dire
de plus il fonctionne chez tiscali

signaler à un administrateur
Commentaire de Hash2o le 28/09/2004 23:27:43

et ton code fctionne pour tout les hébergeurs ?

signaler à un administrateur
Commentaire de MichaelKnight le 02/12/2004 18:56:01

Ton script est super cool, j'ai d'ailleur modifier un petit truc : Lorsqu'on upload un fichier il est renommé automatiquement "blabla.jpg" ce qui n'est pas extra cool puisque lorsqu'on upload un second fichier il ecrase le premier, alors j'ai remplacer par $fichier_name ce qui est plus pratique et evite l'ecrasement d'image:

// ici je met un truc bidon avec le nom et l'extension en dure
$repedest = "dossier/";
$nomdest = "$fichier_name";

Sinon je voudrai savoir si il ya la possibilité d'afficher le lien vers l'image uploadé apres le message de confirmation d'upload. Et si c'est possible faudrai m'expliquer comment faire ;)

Merci

signaler à un administrateur
Commentaire de Kirua le 02/12/2004 21:16:07

$nomdest = "$fichier_name";

pourquoi faire ça?

$nomdest = $fichier_name;

est plus rapide est plus logique.

signaler à un administrateur
Commentaire de MichaelKnight le 03/12/2004 21:07:37

ah oui, j'y avais pas pensé lol

signaler à un administrateur
Commentaire de KheYrO le 19/12/2004 00:55:44

Yo!
Je crois qu'il manque un point par là.

entre $repedest et $nomdest

if (!@copy($fichier,$repedest.$nomdest))
    {
        echo "Déplacement non éffectué ...";
        exit;
    }
    else
    {
        echo "Fichier ".$fichier_name." ajoutée";
        exit;
    }

CiaO

signaler à un administrateur
Commentaire de fancameleon le 22/12/2004 21:43:56

Salut à tous

J'aimerai savoir comment on fait pour vérifier qu'un fichier du même nom n'est pas présent dans le répertoire ?

Merci

Kmeleon

signaler à un administrateur
Commentaire de Kirua le 22/12/2004 21:46:34

file_exists()

signaler à un administrateur
Commentaire de fancameleon le 23/12/2004 21:40:55

Euh avec Free j'ai une erreur:

Parse error: parse error, unexpected T_VARIABLE in /var/www/free.fr/e/3/kmeleon1/upload.php3 on line 39

La l39 correspond à

if (!@copy($fichier,$repedest$nomdest))

HELP ME PLEASE

Kmeleon

signaler à un administrateur
Commentaire de Kirua le 24/12/2004 01:38:18

il te manque une virgule entre $repdest et $nomdest

signaler à un administrateur
Commentaire de mehdibou le 24/12/2004 11:34:31

un point plutôt, non ?

signaler à un administrateur
Commentaire de fancameleon le 24/12/2004 11:41:57

Merci ! C'était bien un point !
Jme demandais pourquoi je galerai ;)

signaler à un administrateur
Commentaire de Kirua le 24/12/2004 23:38:05

ouais, un point par exemple, syntaxiquement ça aurait pu être une virgule, j'en sais trop rien, j'ai pas lu ton code ^^

signaler à un administrateur
Commentaire de Blacknight91titi le 31/03/2005 18:33:21

j'ai essayer mais cela ne marche pas, il me dit que le fichier n'est pas transferé...
je suis bien chez free
il me dit toujours que le fichier n'est pas tranferé :(
le code :


<?
// si le nom du fichier est vide
if ($fichier_name == "")
{
    echo "fichier vide ...";
    exit;
}

// Vérifie si le fichier contient juste des lettres de A à Z en majuscule ou minuscule, des chiffres de 0 à 9, un "_", un "." ou un "-"
$masque = "^[_a-zA-Z0-9.-]+$";
if (!ereg($masque,$fichier_name))
{
    echo "Nom de fichier invalide ...";
    exit;
}

// Regarde si la fin du nom de fichier est gif ou jpeg
// A sauter si vous uploadez autre chose lol
if(!ereg(".gif$", $fichier_name) && !ereg(".jpg$", $fichier_name) && !ereg(".JPG$", $fichier_name))
{
    echo "Format incorrect ...";
    exit;
}

// regarde si le poid est compris entre 5 et 50 Ko
$poid = filesize($fichier)/1024;    
if ($poid >= 500 || $poid <= 1 )
{
    echo "Taille du fichier incorrect ...";
}

// ici je met un truc bidon avec le nom et l'extension en dure
$repedest = "../img/";
$nomdest = "blabla.JPG";

if (file_exists($fichier))
{
    // ici on déplace le fichier ou on veut
    if (!@copy($fichier,$repedest,$nomdest))
    {
        echo "Déplacement non éffectué ...";
        exit;
    }
    else
    {
        echo "Fichier ".$fichier_name." ajoutée";
        exit;
    }
}
else
{
    echo "Erreur d'upload ...";
    exit;
}
?>





Mon image est en JPEG
Comprend pas
peut être le répertoire de destination ?

signaler à un administrateur
Commentaire de Tortuegeniale le 01/04/2005 09:40:24

Free est surement passé en PHP4 pour l'upload, cherchez une source ne PHP4 qui se sert des fonctions PHP4 du genre is_uploaded_file() ou des trucs du genre.

Cette source est une source PHP3 et ne sera pas mise à jours en PHP4

signaler à un administrateur
Commentaire de CString le 30/08/2005 08:15:29

Bonjour a tous , j'ajouterai simplement qu'il faut aussi vérifier le type mime du message avec la fonction getimagrsize, la je pourrai très bien uploader un fichier nommé , test.php.jpg , et faire executer par le serveur le fichier test.php (en oubliant le .jpg de la fin , cela fonctionne sur certain serveur ..)

++

signaler à un administrateur
Commentaire de Blacknight91titi le 30/08/2005 09:09:55

Il ne faut pas vérifier l'estension mais le type, le type lui ne peusx pas se changer.

signaler à un administrateur
Commentaire de cyrphp le 23/09/2005 01:58:07

bonjour/bonsoir, comme l'indique le titre , ce script fonctionne bien chez free, je confirme .... a condition de mettre le point ou il manque !
a priori, free accepte les extension: .php .php3 et .php4

voilou et merci pour ce script.


a propos, verifier le type, oui mais comment ? un lien vers/ou une explication ?

signaler à un administrateur
Commentaire de Blacknight91titi le 23/09/2005 17:39:41

Tu peux récupéré l type du fichier avec ceci :
$_FILES['nomduchamp']['type']
Ainsi les extensions récupéré seront (quelque exemples) "pjpg", "jpeg", "pjpeg", "jpg"
Ces extension sont pour les images.
Cherche sur phpcs tu devrais bient rouver une source détaillant quelque exetension que renvoi le type.

Au passage tu peux aussi récupéré la taille du fichier par
$_FILES['nmduchamp']['size']

Voila voila

Blacknight
http://flash-nouvelle.no-ip.org/

signaler à un administrateur
Commentaire de Tortuegeniale le 23/09/2005 17:48:21

A savoir que cette source à + de 2 ans et n'est donc plus dutout d'actualité :)
Elle ne sera jamais MAJ (pas la peine de demander ;)). Il y a d'autres sources plus ou moins bien sur ce site traitant du meme sujet et qui font à peu prés la même chose.

Je ne sais même pas si free continu de garder son upload en php3 ou pas. Il est évident que si vous faites un upload et que php3 n'est pas obligatoire, cette source ne vous serviera a rien.

Place aux jeunes ^^ lol

signaler à un administrateur
Commentaire de cyrphp le 23/09/2005 23:08:46

salut, tortuegeniale , c'etait une simple confirmation !

            c'est un script simple qui marche (encore ,
                  ni plus ni moins )sur free.

(ma question  opportuniste etait a propos du "type mime", mais je n'ai qu'as cherché :-) et bien ecrire , cela dit, merci des infos blacknight91titi ).

signaler à un administrateur
Commentaire de Tortuegeniale le 23/09/2005 23:31:04

CYRPHP> oh bah t'inquiete c'était pas pour tes commentaires ;), j'étais plutot étonné de voir encore autant de commentaires sur une aussi vieilles source c'est tout donc ^^ lol

signaler à un administrateur
Commentaire de OneHacker le 04/06/2007 23:05:59

ca ne marche pas : $fichier_name n'existe pas.

signaler à un administrateur
Commentaire de lca94 le 16/06/2007 10:46:51

sisi ça marche

mettre le point à l'endroit indiqué ci-dessus (cherchez un peu ...c au niveau du copy)
=> exemple flagrant sur http://skateboard.site.free.fr/my_upload.php3
>> allez voir votre image sur http://skateboard.site.free.fr/photos

comme vous le voyez c'est en .php3 et ça renomme comme dans le script premier
j'ai mis ma jolies Eddie Brickel mais surement kk'un va l'effacer :(

signaler à un administrateur
Commentaire de OneHacker le 16/06/2007 10:52:46

Non ca ne marche pas car ca m'affiche une erreur comme quoi $fichier_name est null et n'existe pas.

J'ai re regarfé le code et en effet nulle part la variable est instanciée.

signaler à un administrateur
Commentaire de Tortuegeniale le 16/06/2007 19:18:55

Bah instancie la :)

signaler à un administrateur
Commentaire de tooffy123 le 14/10/2007 19:08:46

Salut !

j'ai le meme pb que onehacker...

signaler à un administrateur
Commentaire de Tortuegeniale le 15/10/2007 10:46:51

Bah même réponse :)

Ajouter un commentaire



Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Comparez les prix Nouvelle version

Photothèque Nouveau !



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 1,404 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.