Include mit Root-Link

_Alex_

Mitglied
Hallo zusammen

Hab ein kleines "Tool" geschrieben und zusammenkopiert, dass aus einem Ordner automatisch ein Bild anzeigt.

Code:
<?php
    $ordner_von_den_bilder = 'logos_2' ;
    if (is_dir($ordner_von_den_bilder) == false) {
        echo 'Der Ordner: '.$ordner_von_den_bilder. ' ist kein Verzeichnis.' ;
    
	} else {
        if (file_exists($ordner_von_den_bilder) == false) {
            echo 'Den Ordner: '.$ordner_von_den_bilder. ' gibt es nicht!';
        
		} else {
            $array = array();
            if ($handle = opendir($ordner_von_den_bilder)) {
                while (false !== ($file = readdir($handle))) {
                    if ($file != "." && $file != ".." && 
                    ((strpos($file, '.gif') == true) OR 
                    (strpos($file, '.jpg') == true))) {
                        $array[] = $file;
                    }
                }
                closedir($handle);
            }
            $anzahl_in_array = count($array);
            $anzahl_bilder = ($anzahl_in_array-1);
            if ($anzahl_in_array == 0) {
                echo 'Es gibt in den Ordner: '. 
                $ordner_von_den_bilder. ' keine Bilder';
            
			} else {
                $zufall_key = rand(0, $anzahl_bilder);
				echo '<a href="'.'sponsoren.html"/>';
				echo '<img'.' src="/test/logos_2/'.$zufall_key.'.jpg"'.' class="sponsor_logos"/>' ;
				echo '</a>';
            }
        }
    }
?>

Diese Datei liegt im Ordner test/sponsoren/logos.php
Das funktioniert soweit =)

Nun das eigentliche Problem: Wenn ich nun in der index.php-Datei auf der Startseite diese "logos.php"-Datei include, erscheint nur der definierte Output "Der Ordner Logos_2 ist kein Verzeichnis". Problem dabei ist halt die Verlinkung auf den Ordner, wo die Logos drin sind.

Kann ich diesen Ordner auch irgendwie vom Root-Verzeichnis aus verlinken? Also bei
$ordner_von_den_bilder = 'logos_2' ;

Habe natürlich schon /test/logos_2 etc. probiert, funktioniert aber nicht. Bin für jede Hilfe dankbar.
 
Poste doch bitte mal die Ordner-Struktur. Ich würde gern helfen, aber versteh nicht ganz, was wo liegt. Kann auch gern ein Screenshot sein. Oder als Text-Ausgabe vom Kommandozeilen-Befehl dir. Also z.B.

Code:
dir /s /b C:\www\htdocs
 
Hallo saftmeister.

Die Ordnerstruktur sieht folgendermassen aus:

Homepage (Root) (hier befindet sich die Datei index.php, in der ich sponsoren2.php include)
> Test (hier befindet sich der Ordner logos_2 und die Datei sponsoren2.php)
>> logos_2 (hier befinden sich die Logos der Sponsoren)

Wenns funktioniert, noch als Bild:
im73-1-c4ca.jpg


Was macht welches File?
sponsoren2.php liest automatisch aus dem Ordner logos_2 ein Logo aus. Funktioniert soweit.
In der index.php include ich dieses file sponsoren2.php. Allerdings findet es dann den Ordner nicht, da im Root-Verzeichnis ja kein ordner Namens "Logos_2" ist.

Alles klar? :)

Grüsse
 
Das übliche Problem. Ich habe da vor einiger Zeit mal was zu verschachtelten includes geschrieben. Ist zwar nicht ganz dein Problem, aber deine Lösung müsste etwa ähnlich aussehen

PHP verschachtelte include

dirname(__FILE__) gibt dir den absoluten Pfad bis zur aktuellen Datei an

Also für dich dann so:
PHP:
//Logo-Pfad in sponsoren2.php auslesen
$logos_2_absolute_path = dirname(__FILE__).'/logos_2';
 
Hallo Yaslaw

Danke für die Antwort und Hilfe. Wo muss ich dieses $logos_2_absolute_path einfügen?

Grüsse

Hier nochmal der Code zu "sponsoren2.php" im ordner home/test/sponsoren2.php

Code:
<?php
    $ordner_von_den_bilder = 'logos_2' ;


    if (is_dir($ordner_von_den_bilder) == false) {
        echo 'Der Ordner: '.$ordner_von_den_bilder. ' ist kein Verzeichnis.' ;
    } else {

        if (file_exists($ordner_von_den_bilder) == false) {
            echo 'Den Ordner: '.$ordner_von_den_bilder. ' gibt es nicht!';
        } else {
            $array = array();

            if ($handle = opendir($ordner_von_den_bilder)) {

                while (false !== ($file = readdir($handle))) {

                    if ($file != "." && $file != ".." && 
                    ((strpos($file, '.gif') == true) OR 
                    (strpos($file, '.jpg') == true))) {

                        $array[] = $file;
                    }
                }

                closedir($handle);
            }

            $anzahl_in_array = count($array);
            $anzahl_bilder = ($anzahl_in_array-1);

            if ($anzahl_in_array == 0) {
                echo 'Es gibt in den Ordner: '. 
                $ordner_von_den_bilder. ' keine Bilder';
            } else {
                

                $zufall_key = rand(0, $anzahl_bilder);
				
				echo '<a href="'.'sponsoren.html"/>';
				echo '<img'.' src="/sponsoren/logos_2/'.$zufall_key.'.jpg"'.' class="sponsor_logos"/>' ;
				echo '</a>';
            }
        }
    }
?>

Und natürich das Include im Index.php:
Code:
	<?php
	include "test/sponsoren2.php";	?>
 
Yeah hat geklappt =)

Ein fettes dankeschön.

Für alle nachfolgenden:

Einfügen in sponsoren2.php, oben:

Code:
 $ordner_von_den_bilder = dirname(__FILE__).'/logos_2' ;
  if (is_dir($ordner_von_den_bilder) == false) {
etc.

Grüsse
 
Zurück