Bonjour, j'ai mis en place un script d'upload d'image, le code de ce script est mit dans un ficher, Dans un autre fichier, je veux y afficher le contenu pour qu'on puisse uploader les images. Seulement il faut que je l'affiche 3 fois dans ma page pour pouvoir mettre 3 articles à jours en changeant les images à chaque fois, le problème c'est que lorsque je veux le mettre 2 fois j'ai ce code d'erreur:
Fatal error: Cannot redeclare get_extension() (previously declared in /homepages/45/d237713167/htdocs/blue/admin/index.php:87) in /homepages/45/d237713167/htdocs/blue/admin/index.php on line 247
Je ne sais pas du tout comment faire pour appeler la fonction get_extension plusieurs fois....
Voici le contenu du fichier ou j'ai mis le script:
<?php /** * Script d'upload d'image PHP * http://damienalexandre.fr/ * Novembre 2007 - v1.3 * http://damienalexandre.fr/Upload-d-image-en-PHP.html */ get_extension($nom) { $nom = explode(".", $nom); $nb = count($nom); return strtolower($nom[$nb-1]); } // --------------------- Options diverses // // Extensions images autorisé (pour le moment, que du jpeg) $extensions_ok = array('jpg', 'jpeg'); // MimeType autorisé /* 1 = GIF, 2 = JPG, 3 = PNG, 4 = SWF, 5 = PSD, 6 = BMP, 7 = TIFF (Ordre des octets Intel), 8 = TIFF (Ordre des octets Motorola), 9 = JPC, 10 = JP2, 11 = JPX, 12 = JB2, 13 = SWC, 14 = IFF */ $typeimages_ok = array(2); $taille_ko = 1024; // Taille en kilo octect (ko) $taille_max = $taille_ko*1024; // En octects $dest_dossier = 'img/'; // Creez ce dossier et chmoodez le ! print_r($_FILES['photo']); if(isset($_FILES['photo'])) // Formulaire envoyé { // Les erreurs que PHP renvoi if($_FILES['photo']['error'] !== "0") { switch ($_FILES['photo']['error']) { case 1: $erreurs[] = "Votre image doit faire moins de $taille_ko Ko !"; break; case 2: $erreurs[] = "Votre image doit faire moins de $taille_ko Ko !"; break; case 3: $erreurs[] = "L'image n'a été que partiellement téléchargé."; break; case 4: $erreurs[] = "Aucun fichier n'a été téléchargé."; break; // Pas de 5, ne pas demander pourquoi (voir doc PHP) case 6: $erreur[] = "Un dossier temporaire est manquant."; break; case 7: $erreurs[] = "Ãchec de l'écriture du fichier sur le disque."; break; } } // getimagesize arrive à traiter le fichier ? if(!$getimagesize = getimagesize($_FILES['photo']['tmp_name'])) { $erreurs[] = "Le fichier n'est pas une image valide."; } // on vérifie le type de l'image if( (!in_array( get_extension($_FILES['photo']['name']), $extensions_ok )) or (!in_array($getimagesize[2], $typeimages_ok ))) { foreach($extensions_ok as $text) { $extensions_string .= $text.', '; } $erreurs[] = 'Veuillez sélectionner un fichier de type '.substr($extensions_string, 0, -2).' !'; } // on vérifie le poids de l'image if( file_exists($_FILES['photo']['tmp_name']) and filesize($_FILES['photo']['tmp_name']) > $taille_max) { $erreurs[] = "Votre fichier doit faire moins de $taille_ko Ko !"; } // copie du fichier si aucune erreur ! if(!isset($erreurs) or empty($erreurs)) { $dest_fichier = basename($_FILES['photo']['name']); $dest_fichier = strtr($dest_fichier, 'ÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃÃà áâãÀåçÚéêëìÃîïðòóÎõöùúûÌÜÿ', 'AAAAAACEEEEIIIIOOOOOUUUUYaaaaaaceeeeiiiioooooouuuuyy'); // un chtit regex pour remplacer tous ce qui n'est ni chiffre ni lettre par "_" $dest_fichier = preg_replace('/([^.a-z0-9]+)/i', '_', $dest_fichier); // pour ne pas ecraser un fichier existant while(file_exists($dest_dossier . $dest_fichier)) { $dest_fichier = rand().$dest_fichier; } function redimage($img_src,$dst_w,$dst_h) { // Lit les dimensions de l'image $size = GetImageSize($img_src); $src_w = $size[0]; $src_h = $size[1]; // Teste les dimensions tenant dans la zone $test_h = round(($dst_w / $src_w) * $src_h); $test_w = round(($dst_h / $src_h) * $src_w); // Si Height final non précisé (0) if(!$dst_h) $dst_h = $test_h; // Sinon si Width final non précisé (0) elseif(!$dst_w) $dst_w = $test_w; // Sinon teste quel redimensionnement tient dans la zone elseif($test_h>$dst_h) $dst_w = $test_w; else $dst_h = $test_h; // Affiche les dimensions optimales echo "WIDTH=".$dst_w." HEIGHT=".$dst_h; } // copie du fichier if(move_uploaded_file($_FILES['photo']['tmp_name'], $dest_dossier . $dest_fichier)) { $valid[] = "Image uploadé avec succés (<a href='".$dest_dossier . $dest_fichier."'>Voir</a>)"; } else { $erreurs[] = "Impossible d'uploader le fichier.<br />Veuillez vérifier que le dossier ".$dest_dossier." existe avec un chmod 755 (ou 777)."; } } } ?> <form method="POST" action="" enctype="multipart/form-data"> <?php if(!empty($erreurs)) { echo '<ul class="erreur">'; foreach($erreurs as $erreur) { echo '<li>'.$erreur.'</li>'; } echo '</ul>'; } if(!empty($valid)) { echo '<ul class="validation">'; foreach($valid as $text) { echo '<li>'.$text.'</li>'; } echo '</ul>'; } ?> <fieldset> <legend>Envoi d'image</legend> <p> <label for="photo">Image : </label> <input type="file" name="photo" id="photo" /> </p> <p> <input type="hidden" name="MAX_FILE_SIZE" value="<?php echo $taille_max; ?>" /> <input type="submit" name="envoi" value="Envoyer l'image" /> </p> </fieldset> </form>
Voici le contenu du fichier ou je veux faire apparaître le script 3 fois:
<!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>test</title> <meta name="keywords" content="blue, marble, design, theme, web, free templates, website templates, CSS, HTML" /> <meta name="description" content="Blue Marble Theme is a free website template provided by templatemo.com" /> <link href="templatemo_style.css" rel="stylesheet" type="text/css" /> <link rel="stylesheet" href="nivo-slider.css" type="text/css" media="screen" /> <script src="js/jquery.min.js" type="text/javascript"></script> <script src="js/jquery.nivo.slider.js" type="text/javascript"></script> </head> <body> <div id="templatemo_header_wrapper"> <div id="templatemo_header"> <div id="site_title"> <a href="http://www.templatemo.com"><span>YOUR TAGLINE GOES HERE</span></a> </div> <!-- end of site_title --> <div id="social_box"> <a href="http://www.facebook.com/profile.php?id=1261530221" target="_blank"><img src="images/facebook.png" alt="facebook" /></a><p> <h5>Rejoignez-nous</h5> </div> <div id="templatemo_menu"> <ul> <li><a href="index.html" class="current">Accueil</a></li> <li><a href="about.html">Acc?/a></li> <li><a href="gallery.html">Photos</a></li> <li><a href="gallery.html">Lostra</a></li> <li><a href="gallery.html">Le Cara?</a></li> <li><a href="contact.html">Contact</a></li> </ul> </div> <!-- end of templatemo_menu --> </div> <!-- end of header --> </div> <!-- end of header wrapper --> <div id="templatemo_main_wrapper"> <div id="templatemo_main"> <div id="templatemo_content"> <h2>Mise à jour du site</h2> <div class="cleaner h40"></div> <div id="contact_form"> <img src="images/edition1.gif" alt="Moussier Tombola" /> <form method="POST" action="add.php"> <input type="text" name="titre" size="20" value="titre du site" maxlength="70"> <br><textarea name="url" size="20" value="url du site" maxlength="255"></textarea><br> <input type="submit" value="Envoyer" name="envoyer"> </form> [color="#006400"][size="5"][b]Ici je veux mettre le script[/b][/size][/color] <img src="images/edition2.gif" alt="Moussier Tombola" /> <form method="POST" action="add2.php"> <input type="text" name="titre" cols="200" value="titre du site" maxlength="70"> <textarea name="url" cols="200" value="url du site" maxlength="255"></textarea><br> <input type="submit" value="Envoyer" name="envoyer"> </form> <br /> [color="#006400"][size="5"][b]Ici je veux mettre le script[/b][/size][/color] <img src="images/edition3.gif" alt="Moussier Tombola" /> <form method="POST" action="add3.php"> <input type="text" name="titre" size="20" value="titre du site" maxlength="70"> <textarea name="url" size="20" value="url du site" maxlength="255"></textarea><br> <input type="submit" value="Envoyer" name="envoyer"> </form> [color="#006400"][size="5"][b]Ici je veux mettre le script[/b][/size][/color] <img src="images/edition4.gif" alt="Moussier Tombola" /> <form method="POST" action="playlistupdate.php"> <textarea name="url" size="20" value="url du site" maxlength="1000"></textarea><br> <input type="submit" value="Envoyer" name="envoyer"> </form> </div> <!-- end of content --> </div> <div id="templatemo_sidebar"> <div class="sidebar_box"> <h4>Recent comments</h4> <div class="recent_comment_box"> NE PAS OUBLIER DE CLIQUER SUR VALIDER LORSQUE LE CHAMP TEXTE EST REMPLIT!!!! </div> </div> </div> <div class="cleaner"></div> </div> <!-- end of main --> </div> <!-- end of main wrapper --> <div id="templatemo_footer_wrapper"> <div id="templatemo_footer"> <div class="cleaner"></div> </div> <!-- end of templatemo_footer --> </div> <!-- end of templatemo_footer wrapper --> </body> </html>
Merci à tout le monde pour votre aide qui me sera très precieuse.