Vous n'êtes pas identifié(e).
Pages : 1
Bonjour,
Je suis occupé de modificier un petit script, celui-ci contient un code php pour uploader des photos JPG, PNG, GIF, j'aurai voulu modifier ce script légèrement pour pouvoir uploader aussi des fichiers. rar, le problème c'est que je comprend pas certaines choses, merci de m'aider! J'ai déjà regarder certains tutoriaux pour l'upload bien entendu, mais c'est ce code que j'aimerai adapter pour avoir un code identique dans tout le site web, merci ...
Cette fonction est faite pour l'envoi d'image et très sécurisée graçe à la fonction getimagesize car c'est uniquement des images qui peuvent être uploadées, mais si je voudrai mettre des fichiers .rar comment pourrais je faire?
J'ai lu ce tutorial très intéressant aussi: http://www.vulgarisation-informatique.c … ad-php.php
Formulaire pour ajouter un fichier photo
[c]<tr>
<td nowrap="nowrap" bgcolor="#dadada">Photo 1 :</td>
<td bgcolor="#e9e9e9"><input name="photo1" type="text" id="photo1" size="30" value="<?php echo $data_annonce['photo']; ?>" />
<a href="#null" onclick="OpenCenterPopUp('upload.php?champ=photo1')"><img src="images/disque-dur.jpg" alt="upload" width="21" height="21" border="0" align="middle" style="vertical-align:middle" /></a> <?php echo $language['info_add_photo']; ?></td>
</tr>[/c]
Source de upload.php
[c]if(isset($_POST['upload_photo']))
{
//-- On lance l'upload de la photo
$resultat = $petite_annonces -> upload_photo($_FILES['fichier']['name'],$_FILES['fichier']['size'],$_FILES['fichier']['tmp_name'],"../");
//-- Preparation des variables
$nom_fichier = $resultat['image_reel'];
$url_reel = $resultat['image_reel'];
$poids = $resultat['poids'];
$resolution = $resultat['resolution'];
$resultat = $resultat['resultat'];
//-- Traitement du résultat
if($resultat=="succes")
{
header("location:upload.php?fichier=".urlencode($url_reel)."&champ=".$_POST['champ']."&MoveUrlFile=1&msg=1");
}
else
{
header("location:upload.php?error=1&champ=".$_POST['champ']."");
}
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Uploader une photo</title>
<script>
<?php if(isset($_GET['MoveUrlFile'])) { ?>
function MoveUrlFile()
{
window.opener.document.getElementById('<?php echo $_GET['champ']; ?>').value='<?php echo urldecode($_GET['fichier']); ?>';
//window.close();
}
<?php } ?>
//--
function GoUpload()
{
document.getElementById('load').style.display='block';
}
</script>
<style>
body {
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
color:#000;
margin:0px;
padding:0px
}
h1 {
font-size:16px;
font-weight:bold
}
a {
color:#F60;
text-decoration:none
}
</style>
</head>
<?php if(isset($_GET['MoveUrlFile'])) echo '<body onload="MoveUrlFile()">'; else echo '<body>'; ?>
<div id="load" style="height:344px; background-color:#FFF; display:none; position:absolute; width:396px; text-align:center">
<p><strong>Veuillez patienter, chargement en cours.</strong></p>
<p><img src="images/progressbar10.gif" width="200" height="10" /></p>
<p>Cela peut prendre plusieurs minutes</p>
<p><img src="images/floppy_disk_48.png" width="48" height="48" /></p>
</div>
<div style="background-image:url(images/fenetre-upload-script-petite-annonces_03.jpg); width:396px; height:344px; top:0px">
<div style="padding-left:20px; padding-top:50px; padding-right:10px;">
<?php
if(isset($_GET['msg']))
{
echo '<p align="center"><img src="images/accepted_48.png" width="48" height="48" alt="ok" /></p>
<p align="center">La photo a bien été ajoutée</p>
<p align="center">[ <a href="javascript:window.close();">Fermer la page</a> ]';
}
else if(isset($_GET['error']))
{
echo '<p align="center"><img src="images/cancel_48.png" width="48" height="48" alt="ok" /></p>
<p align="center">Erreur lors de l\'enregistrement de la photo</p>
<p align="center">[ <a href="javascript:window.close();">Fermer la page</a> ]';
}
else
{
?>
<p>Format de photo acceptés : JPG, PNG, GIF (MAX 2Mo)</p>
<form action="" method="post" enctype="multipart/form-data" name="form1" id="form1">
<input type="hidden" name="upload_photo" value="1" />
<input type="hidden" name="champ" value="<?php echo $_GET['champ']; ?>" />
<table border="0" cellspacing="0" cellpadding="3">
<tr>
<td><input name="fichier" type="file" id="fichier" size="25" /></td>
<td><input type="submit" name="button" id="button" value="Envoyer" onclick="GoUpload()" /></td>
</tr>
</table>
</form>
<p>Sélectionnez le fichier sur votre ordinateur, l'envoi peut prendre plusieurs minutes.</p>
<?php } ?>
</div>
</div>
</body>
</html>[/c]
Fonction upload
[c]function upload_photo($fichier_name,$fichier_size,$fichier_tmp_name,$destination)
{
//-- Generation du de l'avatar
$nom_fichier = time();
//-- Definition des variables
$target = $destination.'upload/'; // Repertoire cible
$nom_file = strtolower($fichier_name);
$taille = $fichier_size;
$tmp = $fichier_tmp_name;
$max_size = 5000;
$width_max = 100;
$height_max = 100;
//-- Verification du poids de l'image
if($taille>=2097100)
{
//-- On retourn les parametres
return array(
"resultat" => "false",
"message" => "La photos est trop lourde",
);
}
//-- Preparation des variables
$nom_du_fichier = $nom_fichier.".".strtolower(substr($nom_file, -3));
$image_reel = "photo-".$nom_fichier.".".strtolower(substr($nom_file, -3));
//-- Upload de l'image
if(move_uploaded_file($tmp,$target.$nom_file))
{
$this->miniature($target.$nom_file,800,600,$target.$image_reel,75);
}
else
{
//-- On retourn les parametres
return array(
"resultat" => "false",
);
}
// On récupère les dimensions du fichier
list($width_orig, $height_orig, $type) = getimagesize($target.$image_reel);
//-- Calcule du poids du fichier
$poids_photo = filesize($target.$image_reel);
//-- Suppression de l'image temporaire
unlink($target.$nom_file);
//-- On retourn les parametres
return array(
"message" => "La photo a bien été enregistrée",
"fichier" => $image_reel,
"image_reel" => $image_reel,
"poids" => $poids_photo,
"resolution" => $width_orig."x".$height_orig,
"resultat" => "succes",
);
}
//-- Fonction : Deconnexion d'une annonce[/c]
Fonction miniature, plus utile ici dans mon cas:
[c]function miniature($image,$width,$height,$rep,$qualite)
{
//-- On augmente la memoire de php
ini_set("memory_limit","50M");
// Cacul des nouvelles dimensions
list($width_orig, $height_orig, $type) = getimagesize($image);
//-- On calcule les proportio,
if($width_orig > $width or $height_orig > $height)
{
$ratio_orig = $width_orig/$height_orig;
if ($width/$height > $ratio_orig)
{
$width = $height*$ratio_orig;
$lance_resize = 1;
}
else
{
$height = $width/$ratio_orig;
$lance_resize = 1;
}
}
else
{
$lance_resize = 0;
$width = $width_orig;
$height = $height_orig;
}
// Redimensionnement
$image_p = imagecreatetruecolor($width, $height);
//-- Type 1 : GIF
if($type == "1")
{
copy($image,$rep);
}
//-- Type 2 : JPG
if($type == "2")
{
//-- Creation d'une image jpeg
$image = imagecreatefromjpeg($image);
//-- On copy la nouvelle image
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
//-- Enregistrement de la miniature
imagejpeg($image_p, $rep, $qualite);
}
//-- Type 3 : PNG
if($type == "3")
{
if($lance_resize==1)
{
$image = imagecreatefrompng($image);
$transparent = imageColorAllocate($image_p, 0, 0, 0);
$red = imageColorAllocate($image_p, 255, 50, 50);
imageColorTransparent($image_p, $transparent);
imageFilledRectangle($image_p, 0, 0, 640-1, 100-1, $transparent);
imagecopyresampled($image_p, $image, 0, 0, 0, 0, $width, $height, $width_orig, $height_orig);
}
//--
if($lance_resize==1)
{
imagepng($image_p, $rep,0);
}
else
{
copy($image,$rep);
}
}
//--
return true;
}
//-- Enregistrement de la photo sur le serveur[/c]
Ce code ici j'ai assez du mal à comprendre, je le trouve pas très clair,
je voudrai par exemple ajouter une page en + pour une autre fonction au niveau des annonces
if(empty($_GET['id_categorie']) and empty($_GET['details'])) => Vérifie si catégorie vide et si pas de détail des annoncs
echo $petite_annonces -> display_liste_categorie(); => Affiche fonction de la liste des catégories
else if(isset($_GET['view_list'])) => Sinon si view liste est utilisée
echo $petite_annonces -> display_liste_petites_annonces("ALL"); => Il affiche cette fonction
else
echo $petite_annonces -> display_details_annonce(); Sinon pour celle ci, je comprend pas bien
merci d'avance
Bonjour, très bonne idée ce nouveau forum!
Je suis occupé de modifier un peu un script que j'ai acheté mais j'arrive pas à faire un truc,
Voila la démo:
http://www.service-webmaster.fr/scripts … /index.php
Au niveaux des différentes pages, voila les codes qui gèrent cela:
Partie 1
[c]
if(isset($_GET['view_list']))
{
$InfoCategorie = $petite_annonces -> Get_Name_Categorie($_GET['id_categorie']);
$titre_page = TITRE_MODULE." - ".$InfoCategorie['name'];
}
else if(isset($_GET['details']))
{
$InfoAnnonce = $petite_annonces -> Get_Name_Annonce($_GET['id_annonce']);
$titre_page = TITRE_MODULE." - ".$InfoAnnonce['name'];
}
else
{
$titre_page = TITRE_MODULE;
}
[/c]
Partie 2
[c]//-- Affichage des differentes pages
if(empty($_GET['id_categorie']) and empty($_GET['details']))
echo $petite_annonces -> display_liste_categorie();
else if(isset($_GET['view_list']))
echo $petite_annonces -> display_liste_petites_annonces("ALL");
else
echo $petite_annonces -> display_details_annonce();[/c]
J'ai fait la fonction display_details_annonce_commentaires, qui gère les commentaires mais le problème, c'est que j'ai toujours des erreurs, je comprend pas très bien le code au dessus!
Par exemple j'aimerai que ca apparaisse en mettant ceci:
http://www.service-webmaster.fr/scripts … annonce=25&commentaires
Merci d'avance!
Pages : 1