mojosi Posté 12 Mars 2005 Posté 12 Mars 2005 Bonsoir, je viens d'essayer de rajouter dans le code getimagesize. <?phpinclude("images.class.php");$images = new images();$images->repertoire = "collectif";$images->nb_par_ligne = 1;$images->afficher_liste();$size = GetImageSize($image);$src_w = $size[150];?> L'image apparait mais en taille réelle avec ce message d'erreur Warning: getimagesize: Unable to open '' for reading. in /home/archit/www/collectif.php on line 40 Ou peut se trouver le problème Merci d'avance
Dan Posté 12 Mars 2005 Posté 12 Mars 2005 Bonjour, Tout simplement parce que la fonction GetImageSize attend un argument de type "string" (nom de fichier) qui ne semble pas être le type de $image. Dan
mojosi Posté 14 Mars 2005 Auteur Posté 14 Mars 2005 Bonsoir, J'envoie le code du fichier images.class.php si cela peut aider <?phpclass images {var $repertoire;var $nb_par_ligne;function ajouter_image($image,$nom) {if (is_dir($this->repertoire)) {if (copy($image, $this->repertoire . "/" . $nom)) return true;else return false;} else return false;}function lister_repertoire() {$liste = array();if (is_dir($this->repertoire)) {if ($pointeur = opendir($this->repertoire)) {while (($fichier = readdir($pointeur)) !== false) {if (!is_dir($this->repertoirte . "/" . $fichier)) {$liste[] = $fichier;}}closedir($pointeur);return $liste;} else return false;} else return false;}function liste_select() {$liste = $this->lister_repertoire();for ($i = 0; $i < count($liste); $i++) {echo " <option value=\"$this->repertoire/$liste[$i]\">$liste[$i]</option>\n";}}function afficher_liste() {$liste = $this->lister_repertoire();echo "<table summary=\"table d'images\">\n";for ($i = 0; $i < count($liste); $i++) {$nom = explode(".", $liste[$i]);$nom = str_replace("_", " ", $nom[0]);$nom = str_replace("-", " ", $nom);$nom = strtoupper(substr($nom, 0, 1)) . substr($nom, 1);if (round($i/$this->nb_par_ligne) == ($i/$this->nb_par_ligne)) echo " <tr>\n";echo " <td align=\"center\">" . $this->afficher_image($liste[$i]) . "<br></td>\n";if (round(($i+1)/$this->nb_par_ligne) == (($i+1)/$this->nb_par_ligne) || ($i+2) > count($liste)) echo " </tr>\n";}echo "</table>\n";}function afficher_image($fichier) {return "<img src=\"" . $this->repertoire . "/" . $fichier . "\" alt=\"" . $fichier . " - " . round((filesize($this->repertoire. "/" . $fichier)/1024), 2) . " ko\">";}}?> Merci d'avance pour l'aide
Anonymus Posté 14 Mars 2005 Posté 14 Mars 2005 Ce n'est pas ce fichier qui ne marche pas, mais : /home/archit/www/collectif.php Si tu pouvais poster les 40-50 premières lignes Nico.
mojosi Posté 15 Mars 2005 Auteur Posté 15 Mars 2005 voici tout ,le fichier <html><head> <title></title> <script><!--var win=null;function NewWindow(mypage,myname,w,h,pos,infocus){if(pos=="random"){myleft=(screen.width)?Math.floor(Math.random()*(screen.width-w)):100;mytop=(screen.height)?Math.floor(Math.random()*((screen.height-h)-75)):100;}if(pos=="center"){myleft=(screen.width)?(screen.width-w)/2:100;mytop=(screen.height)?(screen.height-h)/2:100;}else if((pos!='center' && pos!="random") || pos==null){myleft=10;mytop=20}settings="width=" + w + ",height=350" + h + ",top=" + mytop + ",left=" + myleft + ",scrollbars=yes,location=no,directories=no,status=,menubar=no,toolbar=no,reszable=no";win=window.open(mypage,myname,settings);win.focus();}// --></script></head><BODY bgcolor="#9f9999" text=#000000 leftMargin=0 topMargin=0 marginheight="0" marginwidth="0"><TABLE cellSpacing=0 cellPadding=0 width=608 border=0 align=center> <TBODY> <TR> <TD align=center><STRONG><FONT face="Arial, Helvetica, sans-serif" size=3><u>Immeubles collectifs</u></FONT></STRONG><br><br></TD></TR></TBODY></TR> <TR> <TD valign=top> <TABLE cellSpacing=0 cellPadding=0 width="530" border=0> <TR> <tr> <td width=250><a href="javascript:NewWindow('exemple7.html','350','500','custom','front');"> <?phpinclude("images.class.php");$images = collectif images();$images->repertoire = "collectif";$images->nb_par_ligne = 1;$images->afficher_liste();$size = GetImageSize($image);$src_w = $size[150];?> </a><br><br> <FONT face="Arial, Helvetica, sans-serif" size=2>Mettez ici le texte explicatif pour la photo </FONT><br><br> </TD> </TR></TABLE></body></html>
Sarc Posté 15 Mars 2005 Posté 15 Mars 2005 lol, en fait dans ton programme tu dois avoir un truc du genre : function collectif images() {...} Il faudrait que tu la recopies ici Sarc
Portekoi Posté 15 Mars 2005 Posté 15 Mars 2005 Je n'ai pas testé mais une fonction en deux mots? M'étonne la....
Anonymus Posté 16 Mars 2005 Posté 16 Mars 2005 Non, une fonction 'en 2 mots' ne peut pas marcher. Reste à savoir comment elle s'écrit réellement, d'où le : Il faudrait que tu la recopies ici
mojosi Posté 16 Mars 2005 Auteur Posté 16 Mars 2005 Donc comme ça: <?phpinclude("images.class.php");function collectif images() {$images = collectif images();$images->repertoire = "collectif";$images->nb_par_ligne = 1;$images->afficher_liste();$size = GetImageSize($image);$src_w = $size[150];} ?>
Portekoi Posté 16 Mars 2005 Posté 16 Mars 2005 On va y arriver On recommence : Dans ton code, tu as un truc bizarre qui est ceci -> function collectif images() En php, une fonction ne peut pas avoir un nom comportant un ' ' (espace). Donc colle nous ton code au complet A bientot Portekoi
mojosi Posté 16 Mars 2005 Auteur Posté 16 Mars 2005 Désolé mais tout le code permettant de faire apparaitre l'image est là ainsi que sur le premier message tout le code complet de la page Je ne voit vraiment pas quoi rajouter
Anonymus Posté 16 Mars 2005 Posté 16 Mars 2005 tu peux nous poster le fichier : images.class.php stp ? merci.
mojosi Posté 16 Mars 2005 Auteur Posté 16 Mars 2005 Sans problèmes: <?phpclass images {var $repertoire;var $nb_par_ligne;function ajouter_image($image,$nom) {if (is_dir($this->repertoire)) { if (copy($image, $this->repertoire . "/" . $nom)) return true; else return false; } else return false;}function lister_repertoire() { $liste = array(); if (is_dir($this->repertoire)) { if ($pointeur = opendir($this->repertoire)) { while (($fichier = readdir($pointeur)) !== false) { if (!is_dir($this->repertoirte . "/" . $fichier)) { $liste[] = $fichier; } } closedir($pointeur); return $liste; } else return false; } else return false;}function liste_select() { $liste = $this->lister_repertoire(); for ($i = 0; $i < count($liste); $i++) { echo " <option value=\"$this->repertoire/$liste[$i]\">$liste[$i]</option>\n"; }}function afficher_liste() { $liste = $this->lister_repertoire(); echo "<table summary=\"table d'images\">\n"; for ($i = 0; $i < count($liste); $i++) { $nom = explode(".", $liste[$i]); $nom = str_replace("_", " ", $nom[0]); $nom = str_replace("-", " ", $nom); $nom = strtoupper(substr($nom, 0, 1)) . substr($nom, 1); if (round($i/$this->nb_par_ligne) == ($i/$this->nb_par_ligne)) echo " <tr>\n"; echo " <td align=\"center\">" . $this->afficher_image($liste[$i]) . "<br></td>\n"; if (round(($i+1)/$this->nb_par_ligne) == (($i+1)/$this->nb_par_ligne) || ($i+2) > count($liste)) echo " </tr>\n"; } echo "</table>\n";}function afficher_image($fichier) { return "<img src=\"" . $this->repertoire . "/" . $fichier . "\" alt=\"" . $fichier . " - " . round((filesize($this->repertoire. "/" . $fichier)/1024), 2) . " ko\">";}}?>
mojosi Posté 16 Mars 2005 Auteur Posté 16 Mars 2005 j'ais modifié le script <?phpinclude("images.class.php");$images = new images();$images->repertoire = "collectif";$images->nb_par_ligne = 1;$images->afficher_liste();$size = GetImageSize($image);$src_w = $size[150];?> mais le message d'erreur est tjrs là. Je ne pensais pas que c'était tellement compliqué de redimenssionner une image qu'on transfère.
Cariboo Posté 17 Mars 2005 Posté 17 Mars 2005 Bon mojosi, on est revenu à la bonne syntaxe Le code que tu as reposté ci-dessus à l'air ok, faut chercher ailleurs...
Cariboo Posté 17 Mars 2005 Posté 17 Mars 2005 Apparemment, c'est un problème de chemin, ou de nom de fichier, ou de droit... As tu bien un fichier qui s'appelle /home/archit/www/collectif.php ? c'est à dire un fichier collectif.php à l'emplacement /home/archit/www/ ?
Cariboo Posté 17 Mars 2005 Posté 17 Mars 2005 Apparemment, le programme a besoin d'un répertoire pour y chercher des images à redimensionner Le répertoire attendu est un truc du genre /home/archit/www/collectif/ Ce répertoire existe-t'il ?
mojosi Posté 17 Mars 2005 Auteur Posté 17 Mars 2005 Le fichier existe les droits sont mis et voici les messages d'erreurs sur la page Fatal error: Cannot redeclare class images in /home/archit/www/images.class.php on line Warning: getimagesize: Unable to open '' for reading. in /home/archit/www/collectif.php on line 40 et voici la ligne 40 $size = GetImageSize($image); je suis perdu
mojosi Posté 17 Mars 2005 Auteur Posté 17 Mars 2005 si ça peut aider, pour transférer les images, j'utilise également un fichier admin_images.php <?phpinclude("images.class.php");function getextension($fichier) { $bouts = explode(".", $fichier); $extension = array_pop($bouts); return $extension;}if ($_POST['action'] == "ajouter") { if ($image && !empty($_POST['repertoire']) && !empty($_POST['mot_de_passe'])){ if ($_POST['mot_de_passe'] == "####") { if ($_POST['repertoire'] == "collectif" || $_POST['repertoire'] == "individuelle" || $_POST['repertoire'] == "accueil" ||$_POST['repertoire'] == "etude" ||$_POST['repertoire'] == "renovation" ||$_POST['repertoire'] == "entreprise") { $repertoire = $_POST['repertoire']; $extension = strtolower(getextension($image_name)); if ($extension == "jpg" || $extension == "png" || $extension == "bmp" || $extension == "gif") { $imag = new images(); $imag->repertoire = $repertoire; if ($imag->ajouter_image($image, $image_name)) echo "<font face=\"Verdana\">Le fichier " . $image_name . " a bien été envoyé.</font>"; else echo "<font face=\"Verdana\">Une erreur s'est produite !</font>"; } else echo "<font face=\"Verdana\">Extension interdite !</font>"; } else echo "<font face=\"Verdana\">Repertoire interdit !</font>"; } else echo "<font face=\"Verdana\">Mot de passe incorrect !</font>"; } else echo "<font face=\"Verdana\">Formulaire incomplet !</font>";} else if ($_POST['action'] == "supprimer") { if (!empty($_POST['image']) && !empty($_POST['mot_de_passe'])) { if ($_POST['mot_de_passe'] == "style67") { $extension = strtolower(getextension($image)); if ($extension == "jpg" || $extension == "png" || $extension == "bmp" || $extension == "gif" || $extension == "jpeg") { if (@unlink($image)) echo "<font face=\"Verdana\">L'image <b>$image</b> a bien été suprimé !</font>"; else echo "<font face=\"Verdana\">Une erreur s'est produite !</font>"; } else echo "<font face=\"Verdana\">Extension interdite !</font>"; } else echo "<font face=\"Verdana\">Mot de passe incorrect !</font>"; } else echo "<font face=\"Verdana\">Formulaire incomplet !</font>";}?><html><body><form action="admin_images.php" method="post" enctype="multipart/form-data"><input type="hidden" name="action" value="ajouter"><table><tr><td><font face="Verdana">Repertoire de destination :</font></td><td><select name="repertoire"><option></option><option value="collectif">collectif</option><option value="individuelle">individuelle</option><option value="accueil">accueil</option><option value="etude">etude</option><option value="renovation">renovation</option><option value="entreprise">entreprise</option></select></td></tr><tr><td><font face="Verdana">Fichier à envoyer :</font></td><td><input type="file" name="image"></td></tr><tr><td><font face="Verdana">Mot de passe :</font></td><td><input type="password" name="mot_de_passe"></td></tr><tr><td><input type="submit" value="Envoyer image"></td></tr></table></form><hr><form action="admin_images.php" method="post"><input type="hidden" name="action" value="supprimer"><table><tr><td><font face="Verdana">Image à supprimer :</font></td><td><select name="image"><option></option><option value="">+++ collectif +++</option><?php$images1 = new images();$images1->repertoire = "collectif";$images1->liste_select();?><option value="">+++ individuelle +++</option><?php$images2 = new images();$images2->repertoire = "individuelle";$images2->liste_select();?><option value="">+++ accueil +++</option><?php$images3 = new images();$images3->repertoire = "accueil";$images3->liste_select();?><option value="">+++ etude +++</option><?php$images4 = new images();$images4->repertoire = "etude";$images4->liste_select();?><option value="">+++ renovation +++</option><?php$images5 = new images();$images5->repertoire = "renovation";$images5->liste_select();?><option value="">+++ entreprise +++</option><?php$images6 = new images();$images6->repertoire = "entreprise";$images6->liste_select();?></select></td></tr><tr><td><font face="Verdana">Mot de passe :</font></td><td><input type="password" name="mot_de_passe"></td></tr><tr><td><input type="submit" value="Supprimer l'image !" style="color: #FF0000;"></td></tr></table></form></body></html><tr><td><font face="Verdana">Mot de passe :</font></td><td><input type="password" name="mot_de_passe"></td></tr><tr><td><input type="submit" value="Supprimer l'image !" style="color: #FF0000;"></td></tr></table></form></body></html>
Portekoi Posté 17 Mars 2005 Posté 17 Mars 2005 (modifié) Re, EDIT: j'ai rien dis. Je viens de tester ton script chez moi et ca marche. EDIT : Télécharger ca, dézippe le et test en choisissant 'collectif' et en mot de passe, tu mets '1' http://desfurets.free.fr/photo/upload/test3.rar A plus Portekoi Modifié 17 Mars 2005 par portekoi
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant