problème lister un répertoire

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : problème lister un répertoire

par yuuzhantar » 01 août 2007, 22:10

ah d'accord, je vois

merci bien

par Truc » 01 août 2007, 20:12

Tu as nommé ta variable contenant le chemin $d, et tu écrases ensuite cette variable en ayant également nommé le pointeur du dossier $d... donc forcément quand tu l'utilises pour concaténer chemin et fichier, php rale en te disant qu'à la ligne 38, tu utilises un objet de type Directory que tu essayes sauvagement de transformer en chaine de caractères.
On ne peut pas en dire plus que Ryle "change le nom de la variable"

ici tu as un objet
$d=dir("./logs/"); 
et la une chaine
$nd=$d.$entry;
:idea:

par yuuzhantar » 01 août 2007, 19:43

oui la ligne 38 est bien celle ci

mais je ne comprends pas votre remarque, comment dois-je mettre en forme le code ?

par Ryle » 31 juil. 2007, 23:29

Tu as nommé ta variable contenant le chemin $d, et tu écrases ensuite cette variable en ayant également nommé le pointeur du dossier $d... donc forcément quand tu l'utilises pour concaténer chemin et fichier, php rale en te disant qu'à la ligne 38, tu utilises un objet de type Directory que tu essayes sauvagement de transformer en chaine de caractères.

Je suppose que la ligne 38 doit être celle-ci (sachant que tu auras la même erreur quelques lignes plus bas) :
$nd=$d.$entry; 
En donnant des noms plus explicites à tes variables tu éviterais ce genre de désagréments :)

par Truc » 31 juil. 2007, 22:18

ligne 38 ?

par yuuzhantar » 31 juil. 2007, 22:09

bonjour

j'essaye maintenant avec une autre méthode
mais j'ai une erreur

voici le code
$d=$_GET['d'];
$type=$_GET['type'];
$parent=$_GET['parent'];

if(empty($d)||empty($type))
{
$d="./logs/";
$type="rep";
}

if($type=="file")
{

}
else
	{
	$d=dir("./logs/");
	echo "Pointeur: ".$d->handle."<br>\n";
	echo "Chemin: ".$d->path."<br>\n";
	echo"Parent : <a href=\"/index.php?page=adminpaneltools&sous=listerlogs&d=$parent&type=rep\" class=menuling>explorer</a><br>\n";
	while($entry=$d->read()) 
		{
		$pt=strpos($entry,'.');
		echo $entry." $pt ";
		if($pt>=1)//fichier
			{
			$nd=$d.$entry;
			echo"<a href=\"/index.php?page=adminpaneltools&sous=listerlogs&d=$nd&type=file&parent=$d\" class=menuling>consulter</a>";
			}
		else //répertoire
			{
			$nd=$d.$entry;
			echo" <a href=\"/index.php?page=adminpaneltools&sous=listerlogs&d=$nd&type=rep&parent=$d\" class=\"menulink\">explorer</a>";
			}
		}
	$d->close();

}
il y a un blocage aux affichages :
Catchable fatal error: Object of class Directory could not be converted to string in D:\FTP\www\clients\yuuzhantar\admin\listerlogs.php on line 38
pourriez vous m'aider svp ?

merci

par Ryle » 30 juil. 2007, 20:37

Pour les messages d'erreur il suffit de le paramétrer dans le .ini ou de spécifier le niveau d'erreur que tu veux gérer avec la fonction error_reporting() :
error_reporting(E_ALL);
As-tu vérifié que le dossier que tu essayes d'ouvrir est bien présent ? Pour rappel, le chemin doit être relatif au script, il faut donc d'après ton code que le dossier "logs" soit présent dans le dossier ou s'exécute le script...

par yuuzhantar » 30 juil. 2007, 19:08

oui : rien ne s'affiche alors qu'il y a environ 800 fichiers dans le répertoire des requètes

edit : aussi je ne peux plus vous fournir d'erreur car suite a un problème de php.ini quand il y a une erreur celà ne l'affiche plus

par Truc » 30 juil. 2007, 19:08

une erreur à nous fournir ?

problème lister un répertoire

par yuuzhantar » 30 juil. 2007, 18:41

bonjour

j'ai un petit problème pour lister un répertoire
je me suis inspiré de cette page :
http://www.asp-php.net/tutorial/asp-php/directory.php

mais celà ne fonctionne pas

voici mon code
<?php
$logs=$_GET['logs'];
if($logs=="requetes"){ $repertoire="logs/requetes/";}
elseif($logs=="campagnes"){ $repertoire="logs/campagne/";}
elseif($logs=="ips"){ $repertoire="logs/ips/";}
?>
<br /><div class="titre">résultat pour logs de <?php echo"$logs"; ?></div><br /><br />
<?php
if($logs=="fichier")
	{
	$fichier=$_GET['fichier'];
       //ouverture du fichier
	}
else
	{
// listage du répertoire
	$dir=opendir($repertoire); 
	while($f=readdir($dir)) 
		{
		if(is_file($repertoire.$f)) 
			{
			echo "<b><u> Nom : </b></u>".$f;
			echo "<b><u> Consulter : </b></u> <a href=\"\">consulter</a>";
			echo "<b><u> Taille : </b></u>".filesize($rep.$f)." octets";
			echo "<b><u> Création : </b></u>".dd(filectime($rep.$f));
			echo "<b><u> Modification : </b></u>".dd(filemtime($rep.$f));
			echo "<b><u> Dernier accès : </b></u>".dd(fileatime($rep.$f));
			echo "<br><br>";
			}
		}
	closedir($dir);
	}
pourriez vous m'aider svp ?

merci