mojosi Posté 12 Mars 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Dan Posté 12 Mars 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mojosi Posté 14 Mars 2005 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 14 Mars 2005 Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
mojosi Posté 15 Mars 2005 Auteur Partager 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> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 15 Mars 2005 Partager Posté 15 Mars 2005 Bonsoir, Mets la fonction "collectif images()" Lien vers le commentaire Partager sur d’autres sites More sharing options...
mojosi Posté 15 Mars 2005 Auteur Partager Posté 15 Mars 2005 Excuse mon ignorance, mais je la place ou? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sarc Posté 15 Mars 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 15 Mars 2005 Partager Posté 15 Mars 2005 Je n'ai pas testé mais une fonction en deux mots? M'étonne la.... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 16 Mars 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mojosi Posté 16 Mars 2005 Auteur Partager 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];} ?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 16 Mars 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mojosi Posté 16 Mars 2005 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Anonymus Posté 16 Mars 2005 Partager Posté 16 Mars 2005 tu peux nous poster le fichier : images.class.php stp ? merci. Lien vers le commentaire Partager sur d’autres sites More sharing options...
mojosi Posté 16 Mars 2005 Auteur Partager 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\">";}}?> Lien vers le commentaire Partager sur d’autres sites More sharing options...
mojosi Posté 16 Mars 2005 Auteur Partager 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. Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cariboo Posté 17 Mars 2005 Partager 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... Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cariboo Posté 17 Mars 2005 Partager 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/ ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
Cariboo Posté 17 Mars 2005 Partager 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 ? Lien vers le commentaire Partager sur d’autres sites More sharing options...
mojosi Posté 17 Mars 2005 Auteur Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
mojosi Posté 17 Mars 2005 Auteur Partager 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> Lien vers le commentaire Partager sur d’autres sites More sharing options...
Portekoi Posté 17 Mars 2005 Partager 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 Lien vers le commentaire Partager sur d’autres sites More sharing options...
Sujets conseillés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant