Voir le sujet précédent :: Voir le sujet suivant |
Auteur |
Message |
AddiKT1ve Invité
|
Posté le: 25 Mai 2006 à 12:50 Sujet du message: Script d'upload PHP |
|
|
Hell low
Bon, je ne suis pas une bête en PHP, mais je me débrouille comme je peux, et pour réaliser ce script d'upload, je suis aller chercher un peu partout, pour finalement arriver à un résultat convenable : je peux uploader des fichiers. ^^
Problème : je veux que les fichiers soient automatiquement renommés (ajout de deux chiffres et deux lettres à la fin du nom du fichier) après l'envoi, de façon à ce qu'une personne malveillante ne puisse pas uploader ses images (et souvent peu recommandables :-° ) à la place de celles des membres.
J'avais trouvé une solution, les encrypter en md5, mais les noms deviennent imcompréhensibles... donc si quelqu'un a une meilleure solution... ^^
Voici mon script :
Code: |
<?php
// Et hop! On définit les variables.
$target = "upload/"; // Repertoire cible
$extension = "png"; // Extension du fichier sans le .
$max_size = 100000000; // Taille max en octets du fichier
$width_max = 1000000; // Largeur max de l'image en pixels
$height_max = 10000000; // Hauteur max de l'image en pixels
$nom_file = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
// Uploadons, uploadons... Ze Script !
if($_POST['posted'])
{
// On vérifie si le champ est rempli
if($_FILES['fichier']['name'])
{
// On vérifie l'extension du fichier
if(substr($nom_file,-3) == $extension)
{
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);
// On vérifie les dimensions et taille de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size))
{
// Si c'est OK, on teste l'upload
if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$_FILES
['fichier']['name']))
{
// Yeah guy, u win! :p
echo '<p style="text-align: center;">';
echo '<span style="font-family: Verdana; font-size: 13; color: #FF0000;">';
echo '<strong>Image uploadée avec succès !</strong>';
echo '</span>';
echo '<br /><br />';
echo '<strong>___________________________________</strong>';
echo '<br /><br />';
echo '<strong>Fichier :</strong> '.$_FILES['fichier']['name'].'</br>';
echo '<br />';
echo '<strong>Taille :</strong> '.$_FILES['fichier']['size'].' Octets</br>';
echo '<br />';
echo '<strong>Largeur :</strong> '.$infos_img[0].' px</br>';
echo '<br />';
echo '<strong>Hauteur :</strong> '.$infos_img[1].' px</br>';
echo '<br /><br />';
echo '<strong>___________________________________</strong>';
echo '<br /><br />';
}
else
{
// Sinon on affiche une erreur fatale
echo '<p style="text-align: center;">';
echo '<span style="font-family: Verdana; font-size: 13; color: #FF0000;">';
echo '<strong>Problème lors de l\'upload !</strong><br /><br /><strong>'.$_FILES['fichier']['error'].'</strong>';
echo '</span><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour les dimensions et taille de l'image
echo '<p style="text-align: center;">';
echo '<span style="font-family: Verdana; font-size: 13; color: #FF0000;">';
echo '<strong>Problème dans les dimensions ou taille de l\'image !</strong>';
echo '</span><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
echo '<p style="text-align: center;">';
echo '<span style="font-family: Verdana; font-size: 13; color: #FF0000;">';
echo '<strong>Votre image ne comporte pas l\'extension .PNG !</strong>';
echo '</span><br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide (faut vraiment être niais)
echo '<p style="text-align: center;">';
echo '<span style="font-family: Verdana; font-size: 13; color: #FF0000;">';
echo '<strong>Le champ du formulaire est vide !</strong>';
echo '</span><br /><br />';
}
}
?>
<form enctype="multipart/form-data" action="<?php echo $PHP_SELF; ?>" method="POST">
<span style="font-family: Verdana; font-size: 13; color: #000000;">
<strong>Envoyer le fichier :</strong>
</span>
<br /><br />
<input type="hidden" name="posted" value="1">
<input name="fichier" type="file">
<input type="submit" value="Uploader">
</form>
|
Merci d'avance de votre aide... Bonne journée ! |
|
Revenir en haut de page |
|
|
vin-moi Administrateur
Inscrit le: 28 Aoû 2004 Messages: 6897 Localisation: France
|
Posté le: 30 Mai 2006 à 12:10 Sujet du message: |
|
|
Salut,
Tu peux utiliser MD5 comme ca :
Citation: |
$var = substr(md5(uniqid (rand())), 0, 4); |
De cette facon, un chiffre aléatoire sera crypté en MD5, et la fonction substr te permet de prendre un nombre défini de caractères _________________ |
|
Revenir en haut de page |
|
|
AddiKT1ve Invité
|
Posté le: 30 Mai 2006 à 13:11 Sujet du message: |
|
|
C'est exactement ce que je voulais faire, merci beaucoup |
|
Revenir en haut de page |
|
|
AddiKT1ve Invité
|
Posté le: 31 Mai 2006 à 13:08 Sujet du message: |
|
|
Code: |
<?php
// Et hop! On définit les variables.
$target = "upload/"; // Repertoire cible
$fichier_accepte = array('png','jpg','jpeg','gif','xcf','psd'); // Extension du fichier sans le .
$extention = FALSE; // On la definit à false, si elle change c'est que le fichier a une extention reconnue
$max_size = 800000; // Taille max en octets du fichier
$width_max = 1024; // Largeur max de l'image en pixels
$height_max = 768; // Hauteur max de l'image en pixels
$nom_file = $_FILES['fichier']['name'];
$taille = $_FILES['fichier']['size'];
$tmp = $_FILES['fichier']['tmp_name'];
// Uploadons, uploadons... Ze Script !
if($_POST['posted'])
{
// On vérifie si le champ est rempli
if($_FILES['fichier']['name'])
{
// On vérifie l'extension du fichier
foreach($fichier_accepte AS $valeur)
{
if(strpos($_FILES['fichier']['type'], $valeur) !== FALSE)
{
$extention = '.'.$valeur;
}
}
//Si $extention n'est pas égale à false c'est qu'il comporte une extention autorisée
if($extension !== FALSE)
{
// On récupère les dimensions du fichier
$infos_img = getimagesize($_FILES['fichier']['tmp_name']);
// On vérifie les dimensions et taille de l'image
if(($infos_img[0] <= $width_max) && ($infos_img[1] <= $height_max) && ($_FILES['fichier']['size'] <= $max_size))
{
// Si c'est OK, on teste l'upload
$nom_fichier = md5(microtime()).$extention;
if(move_uploaded_file($_FILES['fichier']['tmp_name'],$target.$nom_fichier))
{
// Yeah guy, u win! :p
echo '<p style="text-align: center;">';
echo '<span style="font-family: Verdana; font-size: 13; color: #FF0000;">';
echo '<strong>Image uploadée avec succès !</strong>';
echo '</span>';
echo '<br /><br />';
echo '<strong>___________________________________</strong>';
echo '<br /><br />';
echo '<strong>Fichier :</strong> <a href="http://www.graff1k.org/upload/'.$nom_fichier.'">'.$nom_fichier.'</a></br>';
echo '<br />';
echo '<strong>Taille :</strong> '.$_FILES['fichier']['size'].' Octets</br>';
echo '<br />';
echo '<strong>Largeur :</strong> '.$infos_img[0].' px</br>';
echo '<br />';
echo '<strong>Hauteur :</strong> '.$infos_img[1].' px</br>';
echo '<br /><br />';
echo '<strong>___________________________________</strong>';
echo '<br /><br />';
}
else
{
// Sinon on affiche une erreur fatale
echo '<p style="text-align: center; font-family: Verdana; font-size: 13; color: #FF0000;">';
echo '<strong>Problème lors de l\'upload !</strong><br /><br /><strong>'.$_FILES['fichier']['error'].'</strong>';
echo '<br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour les dimensions et taille de l'image
echo '<p style="text-align: center; font-family: Verdana; font-size: 13; color: #FF0000;">';
echo '<strong>Problème dans les dimensions ou taille de l\'image !</strong>';
echo '<br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour l'extension
echo '<p style="text-align: center; font-family: Verdana; font-size: 13; color: #FF0000;">';
echo '<strong>Votre image ne comporte pas l\'extension .PNG !</strong>';
echo '<br /><br />';
}
}
else
{
// Sinon on affiche une erreur pour le champ vide (faut vraiment être niais)
echo '<p style="text-align: center; font-family: Verdana; font-size: 13; color: #FF0000;">';
echo '<strong>Le champ du formulaire est vide !</strong>';
echo '<br /><br />';
}
}
?> |
Maintenant, je vais essayer d'utiliser le md5 comme tu me l'as indiqué |
|
Revenir en haut de page |
|
|
vin-moi Administrateur
Inscrit le: 28 Aoû 2004 Messages: 6897 Localisation: France
|
Posté le: 31 Mai 2006 à 18:30 Sujet du message: |
|
|
Bon courage _________________ |
|
Revenir en haut de page |
|
|
Ajouter à :
|
|