Besoin d'aide avec PHP upload
Valneo
-
Valneo -
Valneo -
Bonjour,
Depuis hier soir j'essaye de faire un petit programme composé d'un formulaire html et d'un fichier php pour uploader une image en .png qui se renommerai en fonction d'un texte qu'on aurait renseigné dans le formulaire.
Voici le code source du formulaire :
<FORM method=post action="reception2.php" enctype="multipart/form-data">
Formulaire a remplir pour obtenir votre cape !
<fieldset>
<TABLE BORDER=0>
<TR>
<TD>Pseudo Minecraft</TD>
<TD>
<INPUT type="text" name="pseudo" id="pseudomc">
</TD>
</TR>
<TR>
<TD>Votre Cape en 22x17 (.png)</TD>
<TD>
<INPUT type="hidden" name="MAX_FILE_SIZE" value="1048576">
<INPUT type="file" name="cape">
</TD>
</TR>
<TR>
<TD>Ce systeme est encore instable : ne pas se plaindre si la cape ne marche pas</TD>
</TR>
<TR>
<TD COLSPAN=2>
<INPUT type="submit" value="Enfile moi ma cape !">
</TD>
</fieldset>
</TR>
</TABLE>
</FORM>
et voici le code source du php :
<?php
$dossier = 'Capes/';
$fichier = basename($_FILES['pseudo']['name']);
$taille_maxi = 1048576;
$taille = filesize($_FILES['pseudo']['tmp_name']);
$extensions = array('.png');
$extension = strrchr($_FILES['pseudo']['name'], '.');
if($taille>$taille_maxi)
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type .png !';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
$nom = "{$id_pseudo}.{$extension}";
if(move_uploaded_file($_FILES['icone']['tmp_name'],$nom)); //Si la fonction renvoie TRUE, c'est OK
{
echo "Success ! La cape devrait apparaitre au lancement du jeu !";
}
}
?>
Voici mon raisonnement, l'utilisateur renseigne dans le formulaire son pseudo ainsi que le fichier image à uploader, le tout est envoyé au php qui place le fichier dans le dossier /Capes mais ce n'est pas tout : le php doit rennommer le fichier uploadé de cette façon : pseudo.png
Mais je n'y arrive pas : PHP affiche le message de succès, mais rien n'a changé dans mon FTP, j'ai mis les droits en écriture avec le code 777, mais rien ne change non plus.
Vous pouvez m'aider ? Comme vous le voyez, je début en php, et je me suis servis de morceau de tuto pour créer le php.
Merci ! Valneo
Depuis hier soir j'essaye de faire un petit programme composé d'un formulaire html et d'un fichier php pour uploader une image en .png qui se renommerai en fonction d'un texte qu'on aurait renseigné dans le formulaire.
Voici le code source du formulaire :
<FORM method=post action="reception2.php" enctype="multipart/form-data">
Formulaire a remplir pour obtenir votre cape !
<fieldset>
<TABLE BORDER=0>
<TR>
<TD>Pseudo Minecraft</TD>
<TD>
<INPUT type="text" name="pseudo" id="pseudomc">
</TD>
</TR>
<TR>
<TD>Votre Cape en 22x17 (.png)</TD>
<TD>
<INPUT type="hidden" name="MAX_FILE_SIZE" value="1048576">
<INPUT type="file" name="cape">
</TD>
</TR>
<TR>
<TD>Ce systeme est encore instable : ne pas se plaindre si la cape ne marche pas</TD>
</TR>
<TR>
<TD COLSPAN=2>
<INPUT type="submit" value="Enfile moi ma cape !">
</TD>
</fieldset>
</TR>
</TABLE>
</FORM>
et voici le code source du php :
<?php
$dossier = 'Capes/';
$fichier = basename($_FILES['pseudo']['name']);
$taille_maxi = 1048576;
$taille = filesize($_FILES['pseudo']['tmp_name']);
$extensions = array('.png');
$extension = strrchr($_FILES['pseudo']['name'], '.');
if($taille>$taille_maxi)
//Début des vérifications de sécurité...
if(!in_array($extension, $extensions)) //Si l'extension n'est pas dans le tableau
{
$erreur = 'Vous devez uploader un fichier de type .png !';
}
if($taille>$taille_maxi)
{
$erreur = 'Le fichier est trop gros...';
}
if(!isset($erreur)) //S'il n'y a pas d'erreur, on upload
{
$nom = "{$id_pseudo}.{$extension}";
if(move_uploaded_file($_FILES['icone']['tmp_name'],$nom)); //Si la fonction renvoie TRUE, c'est OK
{
echo "Success ! La cape devrait apparaitre au lancement du jeu !";
}
}
?>
Voici mon raisonnement, l'utilisateur renseigne dans le formulaire son pseudo ainsi que le fichier image à uploader, le tout est envoyé au php qui place le fichier dans le dossier /Capes mais ce n'est pas tout : le php doit rennommer le fichier uploadé de cette façon : pseudo.png
Mais je n'y arrive pas : PHP affiche le message de succès, mais rien n'a changé dans mon FTP, j'ai mis les droits en écriture avec le code 777, mais rien ne change non plus.
Vous pouvez m'aider ? Comme vous le voyez, je début en php, et je me suis servis de morceau de tuto pour créer le php.
Merci ! Valneo
A voir également:
- Besoin d'aide avec PHP upload
- Youtube upload - Télécharger - Diffusion
- Easy php - Télécharger - Divers Web & Internet
- Expert php pinterest - Télécharger - Langages
- Commun file upload pattern ✓ - Forum Réseaux sociaux
- Gofile upload - Télécharger - Téléchargement & Transfert
2 réponses
Bonjour
Si ton input file s'appelle 'cape', pourquoi des $_FILES['pseudo'] et des $_FILES['icone'] dans ton script ?
Si ton input file s'appelle 'cape', pourquoi des $_FILES['pseudo'] et des $_FILES['icone'] dans ton script ?
Valneo
Comme je le dit plus haut : j'ai pris plusieurs morceau de tuto, et comme je débute en PHP, eh bien je n'ai pas vu ceci, je te tiens au courant
Bon suite au conseil de le père, j'ai modifié mes bêtises et ya du progrès : tout d'abord le fichier est bien uploadé, mais au lieu d'avoir l'image comme votrepseudo.png, j'ai un ..png qui est bien l'image que j'ai uploadé.
Je suis entrain de bidouiller le code pour qu'il prenne en compte le pseudo du joueur, mais j'ai quand même l'impression que ca marche aléatoirement ...
Je suis entrain de bidouiller le code pour qu'il prenne en compte le pseudo du joueur, mais j'ai quand même l'impression que ca marche aléatoirement ...