webForumDet fria alternativet

Warning: readdir(): 1 is not a valid Directory resource

PHP

4 svar · 608 visningar · startad av web00132

Medlem sedan maj 2001797 inlägg
Frågan#1

Får detta felmeddelande på denna kod:

$dir = ($_GET[dir]) ? $_GET[dir] : "andrabilder";
$kat = opendir($dir);
while ($fil = readdir($kat)) { // Denna rad genererar felmeddelandet
	if (!($fil == "." || $fil == "..")) {
		$vFil = explode("_",$fil);
		if ($vFil[1] == "small") {
			echo "<li><a href='index.php?dir=$dir&amp;img=$fil'><img src='$dir/$fil' alt=''></a></li>";
		}
		closedir($kat);
	}
}

Det är rätt katalog och så, annars skulle felmeddelandet se annorlunda ut. Och det finns en bild i katalogen som heter test.jpg. Vad är egentligen fel?

Medlem sedan juli 20023 617 inlägg
#2

Kan det möjligen saknas ett / i början på $dir?

Medlem sedan maj 2001797 inlägg
#3

Tack för svar!
Nej det är det som är grejen, då får jag ett annat felmeddelande:
"Warning: opendir(/andrabilder) [function.opendir]: failed to open dir: No such file or directory"
Och jag står i rätt katalog och så tycker jag, verkar vara något annat. Någon som har någon annan idé?

Medlem sedan mars 20034 471 inlägg
#4

Vad vill du göra egentligen?

web00132 skrev:

Och det finns en bild i katalogen som heter test.jpg.

$dir = ($_GET[dir]) ? $_GET[dir] : "andrabilder";
$kat = opendir($dir);
while ($fil = readdir($kat)) { // Denna rad genererar felmeddelandet
	if (!($fil == "." || $fil == "..")) {
		$vFil = explode("_",$fil); //<--- ***
		if ($vFil[1] == "small") {
			echo "<li><a href='index.php?dir=$dir&amp;img=$fil'><img src='$dir/$fil' alt=''></a></li>";
		}
		closedir($kat);
	}
}

Jag tror att problemet uppstår vid ***. Du försöker dela upp strängen "test.jpg" i delen före '_' och delen efter '_'. Eftersom du saknar ett '_' så returnerar explode en array med 'test.jpg'. (Enligt min tolkning av definitionen explode() ) Rimligen ligger då denna sträng i $vFil[0]. $vFil[1] innehåller då ingenting.

Medlem sedan maj 2001797 inlägg
#5

Tack för svaren hörni! Men det verkar berott på något så töntigt som att denna rad hade hamnat fel:

closedir($kat);

Den ska nog ligga sist...

251 ms totalt · 4 externa anrop · v20260731065814-full.6fe65c25
124 ms — deklarationer (db)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)