PHP Script funktioniert nicht
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
argument
array
auslese
bearbeiten
code
datei
fehlermeldung
folgender code
funktion
gleichen namen
illegal offset
ordner
packen
type
-
Ich bastel schon seit einiger Zeit an einem Script rum, dass mir eine Ordnerstruktur auslesen und in ein Select packen soll. Das funktioniert auch ganz gut, allerdings nicht bei Subpages. Die Ordnerstruktur ist folgende:
-home.txt
-bla.txt
-seite.txt
-seite
--subpagevonseite.txt
-nochneseite.txt
In den txts sind die Seiteninhalte. Wenn ein Ordner mit dem gleichen Namen vorhanden ist, sind darin die Subpages.
So der Code ist folgender:
<?php echo 'Seite zum bearbeiten auswählen:<br> <form action="index.php?page=pages_edit&id='.$id.'" method="POST"> <select name="pages">'; $pageslist = array(); $subpages = array(array()); $dir = "../include/contents/"; $od = opendir($dir); while($rd=readdir($od)) { $pageslist[] = $rd; } foreach($pageslist as $pagenameb) { $pagename = explode(".", $pagenameb); $pagename_filetype = $pagename[1]; $pagename = $pagename[0]; if($pagename_filetype == "txt" AND is_dir("../include/contents/".$pagename."/") AND $pagenameb != "." AND $pagenameb != "..") { $dir = "../include/contents/".$pagename."/"; $od = opendir($dir); while($rd=readdir($od)) { $subpages[$pagename][] = $rd; } } } foreach($pageslist as $pagefilename) { if($pagefilename != "." AND $pagefilename != "..") { $pagefile = explode(".", $pagefilename); if($pagefile[1] == "txt") { echo '<option>'.$pagefile[0].'</option>'; } else { foreach($subpages[$pagefile] as $subpage) { echo '<option>--'.$subpage.'</option>'; } } } } echo '</select> <input type="submit" value="Bearbeiten"> </form>'; ?>
Fehlermeldungen sind 2 da:
Warning: Illegal offset type in ***************************** on line 44
Warning: Invalid argument supplied for foreach() in ***************************** on line 44 -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
druckertinte schrieb:
Fehlermeldungen sind 2 da:
Warning: Illegal offset type in ***************************** on line 44
Warning: Invalid argument supplied for foreach() in ***************************** on line 44
foreach($subpages[$pagefile] as $subpage)
sollte sein:
foreach($subpages[$pagefile[0]] as $subpage)
man könnte auch...
elseif (in_array($pagefile[0],$subpages )) { foreach($subpages[$pagefile[0]] as $subpage) { echo '<option>--'.$subpage.'</option>'; } }
Wäre es nicht allgemein etwas einfacher wenn Du das ganze in Funktionen aufteilst, auf die txt-Dateien verzichtest und stattdessen rekursiv durchsuchst ?sprich durch eine Suchfunktion die bei jedem Ordner sich selber wieder aufruft)
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage