upload d'image

Eléphanteau du PHP | 11 Messages

25 nov. 2006, 15:28

D'accord, mais comment faire alors ? en utilisant htmlentities ?
Je suis vraiment débutant en php, j'ai fais se script a partir plus plusieurs tuto et j'ai pris se que je voulais pour faire mon script. je comprend la plupart des choses car je fais du c++ et la syntaxe est relativement la même. Mais je suis encore beaucoup dépasser par le php.
Comment faire pour renommer un fichier. dans la logique je sais le faire mais après avec le php....
Il faut prendre $_FILES['photo']['name'] puis enlever l'extension, renommer et rajouter l'extension je pense. Mais je sais pas comment faire pour que le fichier sa nomme 01.extension puis 02.extension....
J'ai créé une BDD comme sa je peux savoir comment a était nommé la dernière image uploader. il faut donc lire la valeur, incrémentée de +1.
Si vous avez quelque idée et vous pouvez me guidé se serait gentils, merci
Image

Mammouth du PHP | 1776 Messages

26 nov. 2006, 01:41

un truc marrant => passer la chaine en md5() et lenregistrer en bdd. ou alors renommer en fonction de son id, un truc du genre. pour renommer il suffit juste de sélectionner l'elmplacement du fichier final a ta convenance :wink:
move_uploaded_file($_FILES['photo']['tmp_name'], $dossier.'/'.$file_upload); 
la dedans, suffit de modifier $dossier pour le chemin et $file_upload pour son nom de fichier et extension :wink:

En fin, un htmlentities te servira à rien ! Il faut fixer les dossiers de destination, donc les figer dans la page de traitement
Au pire tu fais un if squr chaquerepertoire possible, et si c'est un autre nom tu ejecte le type. :wink:

Mammouth du PHP | 1776 Messages

26 nov. 2006, 11:34

donné sur le forum, on te montre une injection sql et le détournement de formulaire http://www.youtube.com/watch?v=jMQ2wdOmMIA

Eléphanteau du PHP | 11 Messages

26 nov. 2006, 18:59

J'ai tester ceci pour renommer l'image uploader.
 $extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' );
 $extension_upload = substr(  strrchr($_FILES['photo']['name'], '.')  ,1);
 $retour = mysql_query("SELECT COUNT(*) AS id FROM test");
 $tempdonne = mysql_fetch_array($retour);
 $file_upload2=$tempdonne.$extension_upload;
 rename("$dossier.'/'.$file_upload", "$dossier.'/'.$file_upload2");
 mysql_close(); // Déconnexion de MySQL
sa me renvoie cette erreur :
Warning: rename(/mnt/112/free.fr/b/c/snshinobi/images/dbz/.'/'.logo4.png,/mnt/112/free.fr/b/c/snshinobi/images/dbz/.'/'.Array) [function.rename]: No such file or directory in /mnt/112/free.fr/b/c/snshinobi/test.php on line 25
Image

Mammouth du PHP | 1967 Messages

26 nov. 2006, 20:42

essaye ca
$extensions_valides = array( 'jpg' , 'jpeg' , 'gif' , 'png' );
 $extension_upload = substr(  strrchr($_FILES['photo']['name'], '.')  ,1);
 $retour = mysql_query("SELECT COUNT(*) AS id FROM test");
 $tempdonne = mysql_fetch_array($retour);
 $file_upload2=$tempdonne.$extension_upload;
 rename($dossier.'/'.$file_upload, $dossier.'/'.$file_upload2);
 mysql_close(); // Déconnexion de MySQL 
et apparement file_upload2 est un tableau, et pas une chaine de caractère
Spols
pour les fan de rubik's cube ou pour les curieux ==> le portail francophone du rubik's cube

Mammouth du PHP | 1776 Messages

26 nov. 2006, 23:13

Je ne comprend pas ton fonctionnement...
Il ne faudrait pas renommer les images actuelles (enfin, le prévoir) mais surtout les uploader déjà renommées :roll:
Enfin, je serai trop j'apprendrai la concaténation, car apparemment tu n'as pas compris. Fab t'avait expliqué et par la même résolu ton soucis et ta seconde erreur est exactement la même :roll:

Eléphanteau du PHP | 11 Messages

27 nov. 2006, 19:20

 $file_upload2=$tempdonne.$extension_upload;
En faite il fallait pas que je mets sa, mais :
$file_upload2=$tempnames.'.'.$extension_upload;
sinon sa me met 01jpg au lieu de 01.jpg

Il me reste une chose et je vous embête plus :
Pas du tout compris comment sécuriser la liste déroulante....

Enfin au pire se n'est pas grave, la sécurité c'est juste un petit plus pour moi, j'ai déjà ma galerie qui marche.
Image

Mammouth du PHP | 1776 Messages

27 nov. 2006, 19:27

Enfin au pire se n'est pas grave, la sécurité c'est juste un petit plus pour moi, j'ai déjà ma galerie qui marche.
Ca je ne veu même pas l'entendre ! La securité c'est ce qui passe avant tout !

As-tu regardé la vidéo ? Si oui, tu as vu que le mec controlait la page comme il voulait, c'est que du html ! Donc pour éviter des surprises du genre, on contrôle à l'arrivée que le répertoire selectionnée correspond bien à un repertoire que tu as définis. Pour ça tu compares la variable du formulaire à celles possibles. Si c'est faux, tu arrête le script, si c'est une bonne variable, tu peux continuer :wink:

Eléphanteau du PHP | 11 Messages

27 nov. 2006, 19:29

Ah ok, je pensai fallait faire un truc compliqué.
Oui j'avais regarder la video, j'ai même essayer....
Image

Mammouth du PHP | 1776 Messages

27 nov. 2006, 19:34

Ah ok, je pensai fallait faire un truc compliqué.
Oui j'avais regarder la video, j'ai même essayer....
^^ non, un truc "simple" qui permet de limiter les actions des visiteurs est plsu que suffisant (c'est même LA méthode) :wink:
Bon code m'sieur :wink:

Eléphanteau du PHP | 11 Messages

27 nov. 2006, 19:37

Bon cette fois le sujet est réellement résolu.
Merci à tous pour votre aide.
Image