8791 sujets

Développement web côté serveur, CMS

Pages :
(reprise du message précédent)

en faisant cela, il m'écrit ( pas d'affichage d'images) :
../..//mini/001.jpg../..//mini/002.jpg../..//mini/003.jpg../..// etc etc ...
non, erreur de ma part, il écrit :
../../drole/mini/001.jpg../../drole/mini/002.jpg../../drole/mini/003.jpg
Modérateur
Ah bin du coup c'est la bonne url non ?
il t'en met plusieurs a cause du $i
si tu mets un numéro
echo '../../' .$sup. '/mini/' .$tableau[1];
il devrait te donner une seule url correcte.
Modérateur
Si l'image s'affiche bien et qu'il n'y a que la suppression qui bloque tu devrais refaire un post histoire d'avoir un nom approprié et de l'aide fraiche Smiley smile
ben non, si je fais :
echo '../../' .$sup. '/mini/' .$tableau[1];
voila ce qu'il m'affiche (il n'affiche toujours pas l'image !)
je laisse tomber pour ce soir ( obligation familiale oblige !) et revois tout ça demain, encore merci du temps que tu as passé à ce souci


../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg../../drole//mini/002.jpg
Bonjour ,
bon, ce matin je me dis que je vais essayer d'y voir un peu plus clair, je commence par reprendre mes variables de départ, j'ai donc au départ :
$sup = $_POST['sup'];
valeur que je récupère de mon formulaire dans index.php et qui fonctionne
puis
// on défini le répertoire où sont stockées les images de grande taille
$dir = "../../" .$sup. "/pics";
// on défini le répertoire où seront stockées les miniatures
$dir_mini = "../../" .$sup. "/mini/";

donc à partir de maintenant plutôt que d'utiliser
'../../' .$sup. '/mini/'
j'utiliserais donc par sécurité :
$dir
je teste le formulaire (index.php) avec deux dossiers et ça renvois bien le contenu du dossier demandé donc on peux imaginer qu'il n'y a pas d'erreur au niveau de l'écriture des variables puisque l'affichage des images se fait bien et la lecture du code html de la page renvoyée le confirme, ben non, cette satanée ligne 169 (
$dossier = opendir ($dir_mini);
while ($fichier = readdir ($dossier)) {
	if ($fichier != '.' && $fichier != '..' && $fichier != 'supprime.php') {
		$tableau[] = $fichier;
	}
}
closedir ($dossier);
)
continue de me renvoyer l'erreur suivante :
Warning: opendir(../..//mini/) [function.opendir]: failed to open dir: No error in C:\xampp\htdocs\liste\admin\maintenance\supprime.php on line 169

incompréhensible pourquoi la variable $dir_mini me renvoie un "../..//mini/" avec opendir alors qu'elle me renvoie un ../../répertoire_demandé/mini/" avec le reste !
Modérateur
Après une bonne nuit on y voit toujours plus clair ! Smiley smile

Ta formule de concaténation et d'utilisation est correcte il y a un problème au moment ou la variable est utilisée... apparemment sup n'est pas récupérée, on dirait qu'elle reste vide..
Salut _laurent, oui, c'est bien ce que je vois aussi, mais pourquoi reste t elle vide dans ce morceau de code ( ligne 169) alors qu'elle est correcte pour le reste du code, mystère mystère !
toujours plus fou :
j'essaie en réécrivant tout mes chemins sans ma variable $sup soit comme ceci :
"../../pics"
et la tout fonctionne nickel (en plaçant bien évidement les dossiers ci dessus nommé au bon endroit !)
mais si j'écris les chemin comme ceci :
"../../drole/pics"
plus rien ne fonctionne (toujours en plaçant bien évidement les dossiers ci dessus nommé au bon endroit !) et je me retrouve avec la même erreur que si je faisait appel à $sup
Modérateur
Smiley biggol Smiley biggol Smiley biggol

bah revoit bien l'architecture de tes dossier et surtout leur nom (pas d'accent, d'espace etc...)
pff, j'en suis sur de l'architecture, je l'ai revérifiée mille fois, qu'est que je dis, même dix mille fois !
j'ai choisi la facilité en fait c'est pour gérer mes galeries photos donc il y a 6 pages, un login, un index une page pour ajouter une autre pour renommer une autre pour créer des miniatures et enfin une pour supprimer, ben celles qui fonctionnent pas avec cette méthode comme celle dont on parle et bien je la copie dans chaque dossiers et je fais juste un lien pointant vers le dossier voulu, pas bien, je sais mais bon au moins ça fonctionne ! Smiley biggol
Pour qu'on puisse vérifier l'architecture avec toi, pourrais tu faire ces commandes windows, et coller le résultat ? (Démarrer -> Executer, ou Windows+R)

CD C:\xampp\htdocs\liste
dir


Peux tu aussi tester ceci dans ton code, en remplacent ceci :

$sup = $_POST['sup'];


Par cela :
$sup = $_POST['sup'];
var_dump($_POST);


Et colle nous le résultat stp Smiley cligne

(Le but est de trouver quels sont les variables POST définies, d'après ce que je vois, rien n'est défini)

Pour info, tu peux voir tout le contenu des variables avec ce code :

var_dump($GLOBALS);

Modifié par Super_baloo8 (30 Mar 2012 - 00:45)
salut Super_baloo8 si je tape la commande que tu me donne j'ai comme réponse "Windows ne trouve pas CD" bon j'imagine que tu voulais que je fasse un cmd, alors si c'est cela en voila le résultat :

29/23/2012  16:05  <REP>   .
29/23/2012  16:05  <REP>   ..
29/23/2012  15:10  <REP>   admin
28/23/2012  10:27  <REP>   css
29/23/2012  14:55  <REP>   drole
29/23/2012  15:15  <REP>   fe
11/03/2012  12:53              4117 index.php


je n'ai pas encore testé le bout de code que tu me conseille de changer, je me lève à peine mais dès que c'est fait je te poste le résultat

me revoici me revoila,
bon voici le résultat à ta commande (
$sup = $_POST['sup'];

var_dump($_POST);
) :
array(1) { ["sup"]=> string(5) "drole" } 
par contre si je demande à voir toutes les variables, brrrr y'en a pour six mois de lecture intensive !!!
Modifié par padymen (30 Mar 2012 - 07:32)
Merci pour les résultats.

Donc ça confirme que le dossier "drole" existe bien.

Ça confirme aussi que la variable "$_POST['sup']" est bien rempli.

Tu peux tester ceci (bien n'ayant pas vu le script entier, je me suis basé sur ce que tu as présenté, à moins que j'ai mal lu)

if(isset($_POST['sup']) AND trim($_POST['sup']) != '')
	{
	$sup = trim($_POST['sup']);
	$pathrel = '../../'; //Chemin relatif à la racine
	$dir_gal = $pathrel.$sup //Chemin du dossier de la galerie
	$dir = $dir_gal.'/pics'; //Répertoire des photos de la galerie
	$dir_mini =  $dir_gal.'/mini'; // Répertoire des miniatures des photos de la galerie

	if(is_dir($dir_mini)) //Vérifier que le répertoire obtenu est bien un répertoire
		{
		$tableau = array(); //On initialise le tableau pour retourner les photos
		if($dossier = opendir($dir_mini))//On ouvre le dossier
			{
			while($fichier = readdir($dossier)) //On lis les fichiers présents dans le répertoire
				{
				if($fichier != 'supprime.php' AND filetype($dir_mini.$fichier) != 'dir') //Ne pas prendre en compte les répertoires, ni le fichier supprime.php
					{
					$tableau[] = $fichier; //On associe tous les fichiers au tableau initialisé plus haut
					}
				}
			closedir ($dossier); //On ferme le dossier
			}
			else
				{
				echo '<p>$dir_mini n\'est pas accessible : '.$dir_mini.'</p>';
				}
		}
		else
			{
			echo '<p>$dir_mini n\'est pas un répertoire valide : '.$dir_mini.'</p>';
			}
	}
	else
		{
		echo '<p>$_POST[\'sup\'] n\'est pas définis ou il est vide</p>';
		}


P.S : Pour le $GLOBALS, c'est normal d'avoir des centaines de lignes de résultat, mais tu peux l'utiliser pour débugger ton script, en voyant quelle variable n'a pas le contenu attendu.
Modifié par Super_baloo8 (30 Mar 2012 - 21:35)
hello Super_baloo8
alors déjà merci de ton aide, mais première question : ou est ce que je l'insère ton code ? et je l'ai testé en début de page et parse error ligne 8, soit
	$dir = $dir_gal.'/pics'; //Répertoire des photos de la galerie
Il va falloir apprendre à trouver où ça coince un peu tout seul quand même hein Smiley biggol

C'est la ligne du dessus que j'ai oublié de fermée :

$dir_gal = $pathrel.$sup[b][#red];[/#][/b]


Ensuite, ce code, c'est à toi de l'intégrer où il faut, il y a même surement du découpage à faire, car je n'ai pas le code de la page qui traite ton formulaire Smiley cligne

J'ai tout commenté, alors tu devrais pouvoir y arriver tout seul Smiley cligne
Hello,
bon j'ai essayé avec ton code et toujours le même souci, hallucinant quand même , cette page "suppprime.php" devrait faire deux choses à partir de la même variable (
$sup
) elle le fait bien pour l'un et pas pour l'autre à savoir : lorsque cette page est lancée, elle doit afficher les miniatures du dossier renseigné par la variable $sup, et elle le fait très bien son deuxième boulot à cette page est lorsque l'on clique sur une image de supprimer l'image et sa miniature et beh là j'ai : $_POST['sup'] n'est pas définis ou il est vide
array(0) { }
Je pense avoir compris, comment appelle tu ta page pour faire la suppression ?

Il faut absolument repasser par un formulaire pour que la variable POST soit définis.

Quel est le lien que tu as sur ton image pour effectué la suppression ?
Modifié par Super_baloo8 (31 Mar 2012 - 13:37)
Voila le lien qui est censé supprimer l'image et la miniature
echo '<td class="cadre rond"><a href="supprime.php?del=' . $tableau[$i] . '"><img src="../../' . $sup . '/mini/' . $tableau[$i] . '" alt="Image" /></a></td>';

sans vouloir te contredire, pourquoi faudrait il repasser par un formulaire pour supprimer l'image et sa miniature puisque lorsque j'utilise des chemins du style
echo '<td class="cadre rond"><a href="supprime.php?del=' , $tableau[$i] , '"><img src="../../drole/mini/' , $tableau[$i] , '" alt="Image" /></a></td>';
ça fonctionne parfaitement

ah oui, et voila le formulaire de ma page index.php qui appelle ma page supprime.php :
				<div >
					<!--<h1>Suppression</h3>-->
					<p>Suppression d'images et de miniatures</p>
						<form action="supprime.php" method="post" border="0"><br />
						<label for='service'></label>
						<select id='sups' name='sup' class='formStd' >	
						<option value="drole">drole</option>
						<option value="fe">fond d ecran</option>
						</select>
						<input class="button" type="submit" value="valider">
						</form>
				</div>

Modifié par padymen (31 Mar 2012 - 14:15)
C'est bien ce qu'il me semblait, lorsque tu cliques sur ce style de lien (qui apparaît, si j'ai bien compris, après le formualaire)

supprime.php?del=' , $tableau[$i] , '"


En cliquant sur ce lien, la variable $_POST n'est plus définis, et c'est bien normal, seul un formulaire peut transmettre ce type de variable (ou avec cUrl, mais c'est autre chose).

Quel est le bout de code de ta page supprimer.php pour l'action "$_GET['del']" ?
Modifié par Super_baloo8 (01 Apr 2012 - 03:55)
oui c'est la page index.php qui contient le formulaire et qui renvoie donc vers la page supprime.php

if (isset($_GET['del'])) {
	if (empty($_GET['del'])) {
		$erreur = 'Aucune image à supprimer';
	}
	else {
		$pic_a_zapper = $_GET['del'];
		// si l'image existe ainsi que sa miniature, on les supprime
		if (is_file('"../" .$sup. "/mini/"'.$pic_a_zapper) && is_file('"../../" .$sup. "/pics/"'.$pic_a_zapper)) {
			unlink('"../" .$sup. "/mini/"'.$pic_a_zapper);
			unlink('"../" .$sup. "/pics/"'.$pic_a_zapper);
		}
		// si l'image ou la miniature n'existe pas, on affiche un message d'erreur
		else {
			$erreur = 'Image non reconnue';
		}
	}
Pages :