Seiten automatisch generieren

phelonius

Neuling
Thread Starter
Mitglied seit
28.03.2005
Beiträge
111
hallo, ich hab folgendes problem
ich lese die dateien in einem ordner aus und gib sie dann aus als hyperlinks
wenn in dem ordner aber andere ordner sind, komm ich beim klick darauf in den ordner, und auf keine webseite
kann man irgenwie automatisch seiten generieren lassen wenn man darauf klickt?
hab nämlich ech keine lust in jeden ordner eine seite zu pflanzen

falls wer was weiss, bitte posten, wäre sehr froh um hilfe

mfg
phelonius
 
Zuletzt bearbeitet:
Wenn Du diese Anzeige nicht sehen willst, registriere Dich und/oder logge Dich ein.
es wäre ja schon sehr sinnvoll zu wissen welche programmiersprache.

MfG
Alex
 
php
ich poste nachher mal den code
wenn wer anderes eine gesamtlösung in einer anderen sprache weiss, würd ich auch gern was anderes nehmen
mfg
phelonius
 
Moin,

Dafür brauchst du garkein Code, sondern einfach nur ein simplen htaccess Befehl in einer .htaccess Datei ...

Probiers mal mit "Options +Indexes"

;)

MfG TrOuble
 
Zuletzt bearbeitet:
TrOuble@LLM schrieb:
Moin,

Dafür brauchst du garkein Code, sondern einfach nur ein simplen htaccess Befehl in einer .htaccess Datei ...

Probiers mal mit "Options +Indexes"

;)

MfG TrOuble

hab grad nachgelesen und überall steht dass htaccess für passwortgeschütze bereiche ist, sowas brauch ich aber gar nicht

wo soll ich denn "options + indexes" probieren
mfg
ein noob namens phelonius
 
htaccess ist nicht nur für passwort geschützte bereiche htaccess ist da um apache und seine module zu steuern und konfigurieren.

leg einfach mal eine .htaccess datei an schreib Options +Indexes rein


MFG
Nascar
 
okay ich versuchs mal
danke schonmal im vorraus

Edith:
hier zuerst der php code:
PHP:
<?php
	$dir = "ftp://*******/Bilder";
	$dh = opendir($dir);
	while (false !== ($filename = readdir($dh))) {
		if ($filename!==strtok ($filename,".")) {
   		     echo "<tr><td><a href=\"ftp://*******/Bilder/$filename\">$filename</a></td></tr>";}
		
		else
		     echo "<tr><td><a href=\"ftp://*******/Bilder/$filename/\">$filename</a></td></tr>";
		}
?>

das mit der htaccess datei hab ich versucht, aber ich bekomm immer einen fehler 403 (zugriff verboten)
das mit der htaccess datei hab ich auch nicht ganz 100%ig verstanden
hat die datei keinen namen und heisst einfach '.htaccess', oder heisst die 'hans.htaccess' oder sowas? und muss die in jeden unterordner oder macht der dass automatisch?
danke im vorraus
phelonius
 
Zuletzt bearbeitet:
vieleicht kannste hiermit was anfangen:
PHP:
<?php
//Verzeichnis, das ausgelesen werden soll
$dir = './';
session_start();
$absoluteUrl = 'http://'. $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'];
//Prüfen ob closeAll gesetzt ist und auf 1, wenn ja, wird das komplette dir array gelöscht, und somit alle Verzeichnisse geschlossen
if(isset($_GET['closeAll']) && $_GET['closeAll'] == '1') {
    unset($_SESSION['dir']);
}
//Prüfen ob der index 'dir' in der session gesetzt ist, wenn nicht wird ein leeres array erzeugt
$_SESSION['dir'] = (isset($_SESSION['dir'])) ? $_SESSION['dir'] : array();

//Prüfen ob $_GET['dir'] gesetzt ist
if(isset($_GET['dir'])) {
    //Ist das Verzeichnis im Array schon vorhanden
    $key = array_search($_GET['dir'], $_SESSION['dir']);
    //Wenn das Verzeichnis bereits existiert, wird er aus dem Array gelöscht, andernfalls gesetzt
    if($key !== false) {
        unset($_SESSION['dir'][$key]);
    } else {
        $_SESSION['dir'][] = $_GET['dir'];
    }
    
    header("Location: http://". $_SERVER['HTTP_HOST'] . dirname($_SERVER['PHP_SELF']) .'/'. basename($_SERVER['PHP_SELF']) .'#'. $_GET['dir']);
}

function recDir($iterator)
{
    static $depth = 0;
    //Die aktuelle Tiefe um eins erhöhen
    $depth++;
    
    //Durchlaufen des Iterators
    foreach($iterator as $value) {
        //Einen Hash vom Pfad+Dateinamen erzeugen
        $hash = md5($iterator->getPathName());
    if(is_numeric($hash{0})) {
            $hash = "a". $hash;
    }
        //Ausgabe der/des Dateien/Verzeichnis
        if($iterator->isDir()) {
            echo str_repeat('---', $depth) .'<a href="'. $absoluteUrl .'?dir='. $hash .'" id="'. $hash .'">'. $value ."</a> (Verzeichnis)<br />\n";
        } else {
            echo str_repeat('---', $depth) .'<a href="'. $absoluteUrl .'?filename='. urlencode($iterator->getPathName()) .'" id="'. $hash .'">'. $value ."</a><br />\n";
        }
        //Wenn das Verzeichnis noch weitere Element hat, und der Hash in dem Array 'dir' ist, wird diese Funktion nochmals aufgerufen
        if($iterator->hasChildren() && in_array($hash, $_SESSION['dir'])) {
            recDir($iterator->getChildren());
        }
    }
    
    //Die aktuelle Tiefe um eins verringern
    $depth--;
}
echo '<style type="text/css">a { color: blue; text-decoration: none; } a:hover {color: orange; text-decoration: underline;}</style>';
echo '<a href="'. $absoluteUrl .'?closeAll=1">Alle Verzeichnise schließen</a><br /><br />';

$foo = new RecursiveDirectoryIterator($dir);
echo '  <div style="float: left; width: 25em;">';
recDir($foo);
echo "</div>";
//Falls der Dateiname eine Zeichenkette mit '..' enthält, wird diese durch ein / ersetzt um Zugriffe auf andere Dateien zu verhindern
$filename = (isset($_GET['filename'])) ? str_replace('..', '/', $_GET['filename']) : false;
$filename = ($filename{0} == '.') ? $filename : '.'. $filename;
if(($filename !== false) && file_exists($filename) && is_file($filename)) {
    echo $filename;
    ?>
    <form method="post">
        <textarea cols="100" rows="30"><?php echo htmlspecialchars(file_get_contents($filename)); ?></textarea>
    </form>
    <?php
}

//QUELLE: [url]www.speanet.info[/url]
?>
 
danke große hilfe, aber es geht noch nicht ganz
ich bekomm immer die fehlermeldung
'Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output startet at ....mike.php:9) in ....mike.php on line 12
und das gleiche noch einmal mit 'cannot send session cache limiter'

die ordner sehe ich alle soweit, nur haben sie immer den fehler 'undefined variable: absoluteUrl'

in zeile 9 beginnt das php (wegen mike.php:9) und in zeile 9 ist das session_start();
schreib morgen noch was
 
Hardwareluxx setzt keine externen Werbe- und Tracking-Cookies ein. Auf unserer Webseite finden Sie nur noch Cookies nach berechtigtem Interesse (Art. 6 Abs. 1 Satz 1 lit. f DSGVO) oder eigene funktionelle Cookies. Durch die Nutzung unserer Webseite erklären Sie sich damit einverstanden, dass wir diese Cookies setzen. Mehr Informationen und Möglichkeiten zur Einstellung unserer Cookies finden Sie in unserer Datenschutzerklärung.


Zurück
Oben Unten refresh