Problème chemin photo

mottin -  
 mottin -
Bonjour,
j'ais un messages d'erreur qui apparait en plus des photos sur http://www.restaurantmarbella.net/restaurant.php

Voici le fichier incriminé

<?php
class 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) || $fichier=="." || $fichier=="..") continue; $liste[] = $fichier;
}

}
closedir($pointeur);
return $liste;
} 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($lien) {
$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";
if( isset($lien) && !empty($lien) ) {
$lien_avant = '<a href="'.$lien.'">';
$lien_apres = '</a>';
} else {
$lien_avant = '';
$lien_apres = '';
}
echo " <td align=\"center\">" . $lien_avant . $this->afficher_image($liste[$i]) . $lien_apres ."<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 width=\"200px\" src=\"" . $this->repertoire . "/" . $fichier . "\" alt=\"" . $fichier . " - " . round((filesize($this->repertoire. "/" . $fichier)/1024), 2) . " ko\">";
}


}

?>

J'ais mis en gras la ligne 19 car je ne vois vraiment pas comment régler ce problème

Merci d'avance pour l'aide
A voir également:

22 réponses

TEMCA Messages postés 377 Statut Membre 76
 
Ton script va chercher les images dans D:\www\restaurantmarbella.net\
En effet, tu vois sur ta page dans les erreurs D:\www\restaurantmarbella.net\htdocs\images.class.php

Il faudrait déjà qu'il aille chercher dans le bon répertoire, c'est à dire sur le serveur avec http://www.restaurantmarbella.net/ et pas sur le disque dur de ton pc (D:\). Voir avec le fichier de config pour donner le bon chemin d'accès...
0
mottin
 
Seulement je n'ais pas de fichier configuration il n'y a que ce fichier (images.class.php) plus le fichier admin permettant de modifier les photos comme ci dessous
<?php

include("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'] == "nevzat") {
if ($_POST['repertoire'] == "resto1" || $_POST['repertoire'] == "resto2" || $_POST['repertoire'] == "resto3" ||$_POST['repertoire'] == "resto4" || $_POST['repertoire'] == "resto5" || $_POST['repertoire'] == "resto6" ||$_POST['repertoire'] == "soiree1" || $_POST['repertoire'] == "soiree2" ||$_POST['repertoire'] == "soiree3" ||$_POST['repertoire'] == "soiree4" ) {
$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'] == "nevzat") {
$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">
<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="">+++ resto1 +++</option>
<?php

Et les lignes de code se trouvant dans la page pour afficher les photos

<a href="resto1.php"> <?php
$images = new images();
$images->repertoire = "resto1";
$images->nb_par_ligne = 1;
$images->afficher_liste('resto1.php');
?></a>
Ce que je ne comprends pas c'est que j'utilise un hébergement chez phpnux pour faire mes essais et cela fonctionnes sans aucun problèmes et que l'hébergement définitif est chez hebergeur-discount et c'est là que le problème apparait
0
mottin
 
Comment je peut régler ce problème, comme j'ais dit je n'ais pas de fichier de config.
0
toto
 
Bonjour

ligne 19, repertoirte au lieu de repertoirte c'est une faute de recopie, ou vraiment une erreur dans le script ?

Sinon, quel est le message d'erreur ?
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
toto
 
au lieu de repertoire !!!
0
mottin
 
Il s'agissait d'une erreur dans le script merci de mel'avoir montrer je l'ais modifié.
Le vrai problème vient du fait que systèmatiquement il me marque le D: dans le chemin d'accès, on m'as dit de modifier le fichier config mais je n'en ais pas et sur mon hébergement mutualisé je n'ais aucun accès.
Pour exemple de message d'erreur:
Fatal error: Class 'images' not found in D:\www\restaurantmarbella.net\htdocs\restaurant1.php on line 41

Si je pouvais enlever ce D: tout rentrerais dans l'ordre
0
toto
 
Non, ce n'est pas une question de D: et tu n'as pas besoin d'accéder au fichier de config.

Le message signifie qu'il ne trouve pas la classe images et le D: est celui de ton script, pas celui du chemin des images. C'est PHP lui-même qui a affiché D:\www\restaurantmarbella etc.
peux-tu remplacer include("images.class.php"); par require("images.class.php"); et voir si le message d'erreur change ? Si oui, quel est le nouveau message ?
0
mottin
 
Non le message d'erreur est le même.
0
toto
 
pour s'assurer que le fichier images.class.php est bien uinclus, peux-tu mettre entre le <?php et le class images :
echo "coucou";

le coucou s'affiche-t-il bien quand tu ouvres ta page d'admin ?
0
mottin
 
Le coucou apparait sur la page qui afiche les photos http://www.restaurantmarbella.net/restaurant1.php par contre la ge d'admin buggue http://www.restaurantmarbella.net/admin_images.php alors qu'en définitive elle doit être comme ça http://www.creation-mjc.com/restaurant-marbella/admin_images.php
0
toto
 
Dans ton message 2, tu dis que tu n'as que 2 fichiers. Or tu en as au moins 3 : images.class.php, restaurant1.php et admin_images.php
Commençons par admin_images.php.
Je constate que sur ta page d'admin http://www.restaurantmarbella.net/admin_images.php le coucou ne s'affiche pas. Donc le fichier images.class.php semble ne pas être inclus.

Es-tu vraiment sûr qu'au début de admin_images.php il y a include("images.class.php"); avec la bonne orthographe ?

L'hébergeur chez lequel ça marche utilse-t-il windows lui aussi ?
Quelles sont les versions de PHP de l'ancien hébergeur et du nouveau ?
0
mottin
 
Pour la version fonctionnelle je suis chez phpnux et pour l'autre je suis chez hebergeur-discount.com.
Sur ce serveur j'ais la version php5 par contre je ne pourrais pas te dire si il utilise windows.
Pour ce qui est de admin_images.php, il n'y a pas d'erreur de frappe.
Voici la partie importante du script:
<?php

include("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'] == "XXXX") {
if ($_POST['repertoire'] == "resto1" || $_POST['repertoire'] == "resto2" || $_POST['repertoire'] == "resto3" ||$_POST['repertoire'] == "resto4" || $_POST['repertoire'] == "resto5" || $_POST['repertoire'] == "resto6" ||$_POST['repertoire'] == "soiree1" || $_POST['repertoire'] == "soiree2" ||$_POST['repertoire'] == "soiree3" ) {
$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'] == "XXXX") {
$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>";
}

?>
0
toto
 
J'ai beau réfléchir, je ne vois pas pourquoi le coucou s'affiche dans une de tes pages et pas l'autre. Comment est fait le include au début de la page restaurant1.php (copier-coller) ?
0
mottin
 
Je dois hélas m'absenter pour travailler, je serais de retour ce soir vers 21H30 donc si tu n'as pas de réponses de ma part, ne t'étonnes pas
0
mottin
 
Voici la partie du fichier restaurant.php qui t'intéresses:
<?php include("images.class.php"); ?>
<div id="body"><center><img src="images/titrenews1.jpg"><br>
<br>
<br>
<p>Le restaurant MARBELLA vous invite à découvrir son nouveau décor et sa nouvelle carte... </p>
<br><p>Un large choix à votre disposition : amateur de pizzas, vous retrouverez l´ambiance italienne...<br>des tartes flambées croustillantes et odorantes...des grillades, des salades, bref de quoi satisfaire votre appétit!</p>
<br>
<table border="0" width="100%" cellspading="0" cellspacing="0" valign=top>
<tr>
<td width="30%" valign=top>
<a href="resto1.php"> <?php
$images = new images();
$images->repertoire = "resto1";
$images->nb_par_ligne = 1;
$images->afficher_liste('resto1.php');
?></a> </td>

La partie en gras appelle l'image
0
toto
 
Chez moi ça marche, pour autant que j'ai pu recréer ton site avec les éléments de script que tu as donnés.
Le coucou s'affiche dans les 2 pages et la classe images est bien reconnue
Bien sûr j'ai d'autres erreurs puisque je n'ai pas une copie complète de ton site, mais au moins sur ces deux points-là le comportement est normal.
Je sèche...
0
mottin
 
Le problème ne peut il pas venir de l'hébergeur?
0
toto
 
Si c'est possible. Il y aurait une bizarrerie dans le système de fichiers ?
peux-tu (provisoirement) retirer la ligne include("images.class.php"); du début de chacun de tes fichiers pour voir si le message d'erreur change ?

Au passage, tu as mis un mot de passe en clair dans ton code (1 ère erreur) et tu as recopié ce code sur le forum (2 ème erreur). Change le vite et ne recommence jamais !
0
mottin
 
j'ais tout supprimé et remis les fichiers de bases sans les modifs et tu peut voir sur http://www.restaurantmarbella.net/restaurant1.php .
J'ais aussi essayé de supprimer l'include sans succès
0
mottin
 
Il vient de m'arriver un grand mystère de l'univers ça marche.
J'ais remis les fichiers de bases qui au début ne fonctionnaient pas et maintenant miracle ça marche.
Malgré tout je tiens à te remercier pour ta patience et ton aide.
0