[PHP] Upload de fichiers


[PHP] Upload de fichiers    [PHP] Upload de fichiers
Auteur Message
darkreal
PentiumII-233
PentiumII-233


Inscrit le: 14 Mar 2006
Messages: 478
Localisation: A la fois Mars et Hyrule

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Mer Fév 21, 2007 6:47 pm    Sujet du message: [PHP] Upload de fichiers Répondre en citant

Bonjour,

J'aimerais trouver une solution pour uploader un fichier depuis un client http vers un serveur http, le plus simplement possible
(pas de bdd etc.)

J'ai mis le code suivant dans upload.html
http://darkreal.multimania.com/dual/upload.html.txt

et celui ci dans upload.php :
http://darkreal.multimania.com/dual/upload.php.txt


Mais çe ne marche pas !
Ou est mon erreur ?
Je veut faire un truc tout simple, c pr mon uilisation perso.

Merci Wink

EDIT : censure automaqiue de dualforum : les codes sont là :
http://darkreal.multimania.com/dual


Dernière édition par darkreal le Jeu Fév 22, 2007 7:53 am, édité 5 fois
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
GerGalP
Modérateur
Modérateur


Inscrit le: 15 Fév 2005
Messages: 1949
Localisation: Lyon, France

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Mer Fév 21, 2007 7:08 pm    Sujet du message: Répondre en citant

en fait, c'est un peu normal si ton code php ne s'exécute pas, il n'y a pas d'ouverture de balise php, et le code est bizarre au début, on dirait qu'il en manque un bout...
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
darkreal
PentiumII-233
PentiumII-233


Inscrit le: 14 Mar 2006
Messages: 478
Localisation: A la fois Mars et Hyrule

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Jeu Fév 22, 2007 7:49 am    Sujet du message: Répondre en citant

excuse moi c'est dû à une erreur de copier/coller, la balise php est belle et bien ouverte.
Quand au code qui s'affiche mal c'est pour une histoire de formatage.
J'ai mis les code en .TXT ici :
http://darkreal.multimania.com/dual
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
GerGalP
Modérateur
Modérateur


Inscrit le: 15 Fév 2005
Messages: 1949
Localisation: Lyon, France

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Jeu Fév 22, 2007 2:31 pm    Sujet du message: Répondre en citant

ben.... chez moi ca marche ^^

à part le fait que le code n'ait pas d'indentation, il n'y a pas de grosse erreur de coding(juste le $erreur = 'bla bla...'; ou j'aurais mis un die() mais bon, c'est pas très important)
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
darkreal
PentiumII-233
PentiumII-233


Inscrit le: 14 Mar 2006
Messages: 478
Localisation: A la fois Mars et Hyrule

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Jeu Fév 22, 2007 5:45 pm    Sujet du message: Répondre en citant

Heu... Comment ta fait ?
J'ai apache 2 windows sur mon ordi avec php5.
Il s'est copié dans quel repertorie ton fichier ?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
GerGalP
Modérateur
Modérateur


Inscrit le: 15 Fév 2005
Messages: 1949
Localisation: Lyon, France

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Jeu Fév 22, 2007 9:10 pm    Sujet du message: Répondre en citant

j'ai mis les 2 fichiers dans un dossier, et il a tout envoyé dans upload/

tu as créé un dossier upload? le problème peut venir de là
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
darkreal
PentiumII-233
PentiumII-233


Inscrit le: 14 Mar 2006
Messages: 478
Localisation: A la fois Mars et Hyrule

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Ven Fév 23, 2007 12:05 pm    Sujet du message: Répondre en citant

J'ai tout mis à la racine.
C'est pas bon ?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
GerGalP
Modérateur
Modérateur


Inscrit le: 15 Fév 2005
Messages: 1949
Localisation: Lyon, France

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Ven Fév 23, 2007 4:42 pm    Sujet du message: Répondre en citant

tu peux mettre les fichiers ou tu veux, du moment qu'il y a un dossier upload au même endroit.

j'ai testé avec wamp5(package apache+php5) et ca a marché sans que j'ai quoi que ce soit à faire à part créer un dossier upload. si tu es chez un hébergeur, ca se peut que certaines fonctions aient étées désactivées, pour en être sûr, lances ce script :

Code:
<?php

phpinfo(INFO_CONFIGURATION);

?>


et recherches la ligne disable_functions, si une des fonctions que le script utilise est dans la liste, le script ne marchera pas sur ce serveur.

sinon, le script ne renvoie rien, même pas des erreurs?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
darkreal
PentiumII-233
PentiumII-233


Inscrit le: 14 Mar 2006
Messages: 478
Localisation: A la fois Mars et Hyrule

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Ven Fév 23, 2007 6:26 pm    Sujet du message: Répondre en citant

re.
Je suis mon propre hebergeur. Laughing
C'est bon en effet je n'avais pas créé /upload Wink
ça marcheeee Smile
merci à toi ! Razz

Par contre j'aimerais géré les fichiers compressés (au moins .ZIP), htm/html, pdf, odt, xls, ppt et autres... (au moins zip)
Comment faire ?
thx

edit : trop fort : presque 1 smiley different par ligne Smile
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
GerGalP
Modérateur
Modérateur


Inscrit le: 15 Fév 2005
Messages: 1949
Localisation: Lyon, France

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Ven Fév 23, 2007 10:24 pm    Sujet du message: Répondre en citant

darkreal a écrit:
edit : trop fort : presque 1 smiley different par ligne Smile


mdr

tu as un tableau appelé $extensions :
Code:
$extensions = array('.png', '.gif', '.jpg', '.jpeg');


ajoutes les extensions qui t'intéressent à l'intérieur Smile

sinon, j'ai trouvé un petit article sympa sur l'upload de fichier : http://phpcodeur.net/articles/php/upload

en le modifiant un ptit peu pour pouvoir choisir les extensions autorisées et en ajoutant le petit bout de code qui va bien pour la sécurité, ca donne ca :

Code:
<?php

if( isset($_POST['upload']) ) // si formulaire soumis
{
    $extensions = array(
        'jpg',
        'jpeg',
        'gif',
        'png',
        'bmp',
        'zip',
        'rar'
    );

    $content_dir = 'upload/'; // dossier où sera déplacé le fichier

    $tmp_file = $_FILES['fichier']['tmp_name'];

    if( preg_match('#[\x00-\x1F\x7F-\x9F/\\\\]#', $name_file) )
    {
        exit("Nom de fichier non valide");
    }
    else if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }

    // on vérifie maintenant l'extension
    $type_file = $_FILES['fichier']['type'];

    if(!in_array($type_file, $extensions)
    {
        exit("Type de fichier non autorisé");
    }

    // on copie le fichier dans le dossier de destination
    $name_file = $_FILES['fichier']['name'];

    if( !move_uploaded_file($tmp_file, $content_dir . $name_file) )
    {
        exit("Impossible de copier le fichier dans $content_dir");
    }

    echo "Le fichier a bien été uploadé";
}

?>


tu m'as presque redonné l'envie de coder avec tes histoires Razz
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
darkreal
PentiumII-233
PentiumII-233


Inscrit le: 14 Mar 2006
Messages: 478
Localisation: A la fois Mars et Hyrule

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Sam Fév 24, 2007 5:27 pm    Sujet du message: Répondre en citant

Ba c'est bien de coder Wink

OK pr les extensions, ct simple.
Par contre je ne comprends pas ce que m'apporte ta solution supplementaire ? Securite de quoi?
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
GerGalP
Modérateur
Modérateur


Inscrit le: 15 Fév 2005
Messages: 1949
Localisation: Lyon, France

Forum informatique FORUM sur l'Informatique, forum internet, forum emploi, la musique, le cinéma, les DIVX, les DVD, les séries, les bandes dessinées, les livres, la photographie.Posté le: Dim Fév 25, 2007 1:37 am    Sujet du message: Répondre en citant

il est plus joli le code xD

en fait, je ne sais pas du tout comment tu veux utiliser ton script, mais, c'est toujours très désagréable de retrouver son site défacé ou tout simplement supprimmé. l'upload de fichiers est très dangereux : tu peux laisser l'opportunité à n'importe qui d'envoyer n'importe quoi sur ton serveur parceque tu as oublié un truc qui te paraissait insignifiant. même si ton script est à la base fait pour un usage personnel, ne négliges pas la sécurité, google sait bien trouver les pages qui ne doivent pas l'être.

l'article est bien fait, et je ne connaissais pas ce petit bug de php... je pense que ca me sera difficile de te l'expliquer simplement, mais en gros, un caractère nul(0x00 en hexa) caractérise une fin de chaine. passer en paramètre le nom de fichier "index.php\0.jpeg" au script ne sera pas détécté comme un type de fichier interdit. seulement, en interne lors du passage de cette chaine à la fonction fopen() en tant que nom de fichier, ouvrira en réalité le fichier index.php.

ton script fonctionne très bien, si ca reste pour des tests en local, c'est pas très grave, mais fais gaffe sur internet Wink
Revenir en haut
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web du posteur
Montrer les messages depuis:   
[PHP] Upload de fichiers    [PHP] Upload de fichiers

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum


Dual Forum  Hit-Parade