3/5 (19 avis)
Vue 11 741 fois - Téléchargée 1 287 fois
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> <HTML LANG="fr"> <HEAD> <TITLE>Console d'administration: Images</TITLE> <META HTTP-EQUIV="content-type" CONTENT="text/html; charset=iso-8859-1"> <META HTTP-EQUIV="content-style-type" CONTENT="text/css"> <META HTTP-EQUIV="content-script-type" CONTENT="text/javascript"> <META NAME="author" CONTENT="Elektordi"> </HEAD> <body> <h1 align="center">Console d'administration: Images</h1> <? $script_name = "gestion_images.php"; $repertoire = "images/"; if($mode=="copy") // Copier une image depuis une URL { echo "<h2>Copie d'image</h2>\n"; $er=0; if(!preg_match('/^(http:\/\/)?([\w\-\.]+)\:?([0-9]*)\/(.*)$/', $url, $url_ary)) $er=1; if(empty($url_ary[4])) $er=1; if($er==1) { ?><form name="form1" method="post" action="<? echo $script_name; ?>"> <p><b><font color="red">URL incomplète:</font></b> <input name="url" type="text" id="url" size="100" value="<? echo $url; ?>"> <input type="submit" name="Submit" value="Copier"> <input name="mode" type="hidden" id="mode" value="copy"> <a href="<? echo $script_name; ?>">Annuler</a></p> </form> <? } else { $maxsize = 100000; $base_filename = substr($url_ary[4],strrpos($url_ary[4],"/")+1); $base_get = '/' . $url_ary[4]; $port = ( !empty($url_ary[3]) ) ? $url_ary[3] : 80; if($base_filename=="") die("<h2>Impossible de télécharger l'image...</h2><p>Erreur de récupération du nom.</p></body></html>"); if ( !($fsock = fsockopen($url_ary[2], $port, $errno, $errstr)) ) { die("<h2>Impossible de télécharger l'image...</h2><p>Pas de connexion.</p></body></html>"); } fputs($fsock, "GET $base_get HTTP/1.1\r\n"); fputs($fsock, "Host: " . $url_ary[2] . "\r\n"); fputs($fsock, "Accept-Language: fr\r\n"); fputs($fsock, "Accept-Encoding: none\r\n"); fputs($fsock, "User-Agent: PHP\r\n"); fputs($fsock, "Connection: close\r\n\r\n"); unset($data); while( !feof($fsock) ) { $data .= fread($fsock, $maxsize); } fclose($fsock); if (!preg_match('#Content-Length\: ([0-9]+)[^ /][\s]+#i', $data, $file_data1) || !preg_match('#Content-Type\: image/[x\-]*([a-z]+)[\s]+#i', $data, $file_data2)) { die("<h2>Impossible de télécharger l'image...</h2><p>Aucune donnée.</p></body></html>"); } $filesize = $file_data1[1]; $filetype = $file_data2[1]; if ( !$error && $filesize > 0 && $filesize < $maxsize ) { $data = substr($data, strlen($data) - $filesize, $filesize); $filename = $repertoire.$base_filename; if(file_exists($filename)) echo "<p>Le fichier de destination ".$base_filename." existe déjà !</p>"; else { $fptr = fopen($filename, 'wb'); $bytes_written = fwrite($fptr, $data, $filesize); fclose($fptr); if ( $bytes_written != $filesize ) { unlink($tmp_filename); die("<h2>Impossible de télécharger l'image...</h2><p>Echec d'écriture.</p></body></html>"); } echo "<p>".$base_filename." enregistré avec succès ! <img src='".$repertoire.$base_filename."'></p>"; } } else { die("<h2>Impossible de télécharger l'image...</h2><p>Fichier trop gros.</p></body></html>"); } } } if($mode=="upload") // Envoyer une image { echo "<h2>Upload d'image</h2>\n"; $extensions_ok = array('png', 'gif', 'jpg', 'jpeg'); $taille_max = 100000; // vérifications if( !in_array( strtolower(substr(strrchr($_FILES['file']['name'], '.'), 1)), $extensions_ok) ) { $erreur = 'Veuillez sélectionner un fichier de type png, gif ou jpg !'; } elseif( file_exists($_FILES['file']['tmp_name']) and filesize($_FILES['file']['tmp_name']) > $taille_max) { $erreur = 'Votre fichier doit faire moins de 500Ko !'; } // copie du fichier if(!isset($erreur)) { $dest_fichier = basename($_FILES['file']['name']); // formatage nom fichier // enlever les accents $dest_fichier = strtr($dest_fichier, 'ÀÁÂÃÄÅÇÈÉÊËÌÍÎÏÒÓÔÕÖÙÚÛÜÝàáâãäåçèéêëìíîïðòóôõöùúûüýÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); // remplacer les caracteres autres que lettres, chiffres et point par _ $dest_fichier = preg_replace('/([^.a-z0-1]+)/i', '_', $dest_fichier); //vérif if(file_exists($repertoire.$dest_fichier)) echo "<p>Le fichier de destination existe déjà !</p>"; else { // copie du fichier move_uploaded_file($_FILES['file']['tmp_name'], $repertoire.$dest_fichier); echo "<p>".$dest_fichier." envoyé avec succès ! <img src='".$repertoire.$dest_fichier."'></p>"; } } else{ echo "<p>".$erreur."</p>"; } } if($mode=="del") // Supprimer une image { if(!isset($file)) die("<h2>Aucun nom de fichier !</h2></body></html>"); if(!file_exists($repertoire.$file)) die("<h2>Fichier inexistant !</h2></body></html>"); if(isset($confirm)) { if($confirm+10<time()) die("<h2>L'action a expirée...</h2></body></html>"); unlink($repertoire.$file); echo "<h2>Entrée supprimée !</h2>"; } else { echo "<h2>Supression d'une image ?</h2>\n"; echo "<p>Vous êtes sur le point de supprimer l'image '".$file."' qui ressemble à ça: <img src='".$repertoire.$file."'><br>"; echo "<b>Etes-vous sûr de vouloir continuer ?<br><font size=\"5\">"; echo "<a href='".$script_name."?mode=del&file=".$file."&confirm=".time()."'><font color='red'>Oui</font></a> - "; echo "<a href='".$script_name."'><font color='green'>Non</font></a></font></b></p>\n"; } } ?> <h2>Ajout d'images</h2> <form name="form1" method="post" action="<? echo $script_name; ?>"> <p>Copier une image depuis une URL: <input name="url" type="text" id="url" value="http://www.clonk.de/news/news_???.gif" size="100"> <input type="submit" name="Submit" value="Copier"> <input name="mode" type="hidden" id="mode" value="copy"> </p> </form> <form action="<? echo $script_name; ?>" method="post" enctype="multipart/form-data" name="form2"> <p>Envoyer une image: <input name="file" type="file" size="100"> <input type="submit" name="Submit" value="Envoyer"> <input type="hidden" name="MAX_FILE_SIZE" value="500000" /> <input name="mode" type="hidden" id="mode" value="upload"> </p> </form> <h2>Liste des images</h2> <? $dossier=opendir($repertoire); while ($fichier = readdir($dossier)) { if(is_dir($fichier)) continue; $s=""; if($fichier==$val) $s=" selected"; echo "<p>".$fichier." = <img src='".$repertoire.$fichier."'> [ <a href='".$script_name."?mode=del&file=".$fichier."'>Supprimer</a> ]</p>"; } ?> <h2>Fini ?</h2> <p>Alors on retourne à l'<a href="admin.php">index de l'administration</a>... </p> </body> </html> <? /* Voici le code à mettre dans une autre page pour sélectionner l'image: <? $repertoire="images/"; function put_imgselector($name, $val) { echo "<select name='".$name."' onchange=\"preview('".$name."');\">\n"; echo "<option value=''>---AUCUNE---</option>\n"; $dossier=opendir($repertoire); while ($fichier = readdir($dossier)) { if(is_dir($fichier)) continue; $s=""; if($fichier==$val) $s=" selected"; echo "<option value='".$fichier."'".$s.">".$fichier."</option>\n"; } echo "</select> <img id='".$name."_prv' src='".$repertoire.$val."' border='1'>\n"; } ?> <script language="JavaScript" type="text/JavaScript"> function preview(name) { var img; img = document.getElementById(name).value; document.getElementById(name+"_prv").src="<? echo $repertoire; ?>"+img; } </script> ---Code formulaire--- Image : <? put_imgselector("img_g", $img_g); ?> ---Fin formulaire---
15 août 2006 à 14:25
Désolé mais mon code nécessite l'option $register_globals... Je sais, c'est une mauvaise habitude ! Mais j'arrive pas à m'en défaire !!!
16 août 2006 à 16:54
Peux-tu le mettre en zip, cela me tente pas d'effacer les 242 numéros devant le code
16 août 2006 à 19:10
Si tu sélectionne le code et que tu fait copier, ca le copie sans les numéros de ligne !!!
16 août 2006 à 19:17
Si tu sélectionne le code et que tu fait copier, ca le copie sans les numéros de ligne !!!"
>> Heu... Manifestement pas chez moi, :D
@++
R@f
16 août 2006 à 20:19
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.