| Auteur |
Message |
|
|
darkreal PentiumII-233


Inscrit le: 14 Mar 2006 Messages: 478 Localisation: A la fois Mars et Hyrule
|
Posté le: Mer Fév 21, 2007 6:47 pm Sujet du message: [PHP] Upload de fichiers |
|
|
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
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 |
|
GerGalP Modérateur


Inscrit le: 15 Fév 2005 Messages: 1949 Localisation: Lyon, France
|
Posté le: Mer Fév 21, 2007 7:08 pm Sujet du message: |
|
|
| 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 |
|
darkreal PentiumII-233


Inscrit le: 14 Mar 2006 Messages: 478 Localisation: A la fois Mars et Hyrule
|
Posté le: Jeu Fév 22, 2007 7:49 am Sujet du message: |
|
|
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 |
|
GerGalP Modérateur


Inscrit le: 15 Fév 2005 Messages: 1949 Localisation: Lyon, France
|
Posté le: Jeu Fév 22, 2007 2:31 pm Sujet du message: |
|
|
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 |
|
darkreal PentiumII-233


Inscrit le: 14 Mar 2006 Messages: 478 Localisation: A la fois Mars et Hyrule
|
Posté le: Jeu Fév 22, 2007 5:45 pm Sujet du message: |
|
|
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 |
|
GerGalP Modérateur


Inscrit le: 15 Fév 2005 Messages: 1949 Localisation: Lyon, France
|
Posté le: Jeu Fév 22, 2007 9:10 pm Sujet du message: |
|
|
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 |
|
darkreal PentiumII-233


Inscrit le: 14 Mar 2006 Messages: 478 Localisation: A la fois Mars et Hyrule
|
Posté le: Ven Fév 23, 2007 12:05 pm Sujet du message: |
|
|
J'ai tout mis à la racine.
C'est pas bon ? |
|
| Revenir en haut |
|
GerGalP Modérateur


Inscrit le: 15 Fév 2005 Messages: 1949 Localisation: Lyon, France
|
Posté le: Ven Fév 23, 2007 4:42 pm Sujet du message: |
|
|
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 |
|
darkreal PentiumII-233


Inscrit le: 14 Mar 2006 Messages: 478 Localisation: A la fois Mars et Hyrule
|
Posté le: Ven Fév 23, 2007 6:26 pm Sujet du message: |
|
|
re.
Je suis mon propre hebergeur.
C'est bon en effet je n'avais pas créé /upload
ça marcheeee
merci à toi !
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  |
|
| Revenir en haut |
|
GerGalP Modérateur


Inscrit le: 15 Fév 2005 Messages: 1949 Localisation: Lyon, France
|
Posté le: Ven Fév 23, 2007 10:24 pm Sujet du message: |
|
|
| darkreal a écrit: | edit : trop fort : presque 1 smiley different par ligne  |
mdr
tu as un tableau appelé $extensions :
| Code: | | $extensions = array('.png', '.gif', '.jpg', '.jpeg'); |
ajoutes les extensions qui t'intéressent à l'intérieur
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  |
|
| Revenir en haut |
|
darkreal PentiumII-233


Inscrit le: 14 Mar 2006 Messages: 478 Localisation: A la fois Mars et Hyrule
|
Posté le: Sam Fév 24, 2007 5:27 pm Sujet du message: |
|
|
Ba c'est bien de coder
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 |
|
GerGalP Modérateur


Inscrit le: 15 Fév 2005 Messages: 1949 Localisation: Lyon, France
|
Posté le: Dim Fév 25, 2007 1:37 am Sujet du message: |
|
|
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  |
|
| Revenir en haut |
|
|
|
|