Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » PHP » Include Problem

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
07.11.2007, 22:48 Uhr
xXx
Devil


index.php

PHP 4:
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
error_reporting(E_ALL);
/* ... */
if (!@include('page/'.$page.'.php')) { echo ('<h1>FEHLER 404</h1><br/>Die angegebene Seite konnte nicht geladen werden!'); }

page\archiv.php

PHP 4:
if (!include_once('../func/image_gallery.php')) {
    echo('Could not find include');
}
$gallery = new image_gallery('./images/archiv/', 'FAUST', 'cover');
echo($gallery->gallery());

func\image_gallery.php

PHP 4:
class image_gallery {
    private $image_path = './images/';
    private $desc_file = 'desc.txt';
    private $file_root = 'image';
    private $gallery_name = 'Gallery';
    
    
    public function __construct($path = './images/', $name = 'Gallery', $file_root = 'image') {
        $this->image_path = $path;
        if (!is_dir($path)) {
            throw new Exception('Fehler: Der angegebene Ordner "'.$path.'" konnte nicht gefunden werden');
        }
        $this->gallery_name = $name;    
        $this->file_root = $file_root;
    }
    
    public function gallery() {
        $result = '';
        $dir = opendir ($this->image_path);
        while (false !== ($file = readdir($dir)))
        {
            if (!is_dir($this->image_path.$file))
              {
                $name = $this->gallery_name;
                if (($num = stristr($file, $this->gallery_name) !== false) {
                    $name .= str_replace('_', ' ', $num);
                }
                $result .= '<div class="image">'."\n\t".'<a href="'.$this->image_path.'/'.$file.'" rel="lightbox['.$this->gallery_name.']"><img src="'.$this->image_path.'/'.$file.'" alt="'.$name.'"/></a>'."\n\t".'<h2>'.$name.'</h2>'."\n\t".'<p>{ -Description- "}</p>'."\n".'</div>'."\n";
              }
        }
        closedir($dir);
        return $result;
    }
}
Doch ich bekomme keinen Error-Report, sondern die Webseite wird einfach nicht zuende geladen. Hat jemand eine Idee was da falsch ist? Ich hab einfach ein Brett vorm Kopf

Dieser Post wurde am 07.11.2007 um 22:49 Uhr von xXx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
08.11.2007, 14:37 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


wie "nicht zu ende geladen"?
ansonsten:


PHP 4:
while (false !== ($file = readdir($dir)))



"FALSE", nich "false"! false ist (integer)0, FALSE ist ein define, das readdir ggf zurückliefert. denk mal daher kommt ne endlosschleife zustande.

Ich hoffe doch du prüfst "$page" wenn du das ggf vom user bekommst?
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
08.11.2007, 16:18 Uhr
xXx
Devil


Hmm nee daran hat es nicht gelegen :P
func/image_gallery.php

PHP 4:
<?php
class image_gallery {
    private $image_path = './images/';
    private $desc_file = 'desc.txt';
    private $file_root = 'image';
    private $gallery_name = 'Gallery';
    
    public function __construct($path = './images/', $name = 'Gallery', $file_root = 'image') {
        $this->image_path = $path;
        if (!is_dir($path)) {
            throw new Exception('FEHLER: Der angegebene Ordner "'.$path.'" konnte nicht gefunden werden!');
        }
        $this->gallery_name = $name;    
        $this->file_root = $file_root;
    }
    
    public function gallery() {
        $result = '';
        if (($dir = opendir ($this->image_path) == FALSE) {
            dir ('could not load file');
        }
        while (($file = readdir($dir)) !== FALSE )
        {
            if (!is_dir($this->image_path.$file))
              {
                $name = $this->gallery_name;
                if (($num = stristr($file, $this->gallery_name) !== false) {
                    $name .= str_replace('_', ' ', $num);
                }
                $result .= '<div class="image">'."\n\t".'<a href="'.$this->image_path.'/'.$file.'" rel="lightbox['.$this->gallery_name.']"><img src="'.$this->image_path.'/'.$file.'" alt="'.$name.'"/></a>'."\n\t".'<h2>'.$name.'</h2>'."\n\t".'<p>{ -Description- "}</p>'."\n".'</div>'."\n";
              }
        }
        closedir($dir);
        return $result;
    }
}
?>

ehm und
page/archiv.php

PHP 4:
<?php
    $part = strtolower(array_key_exists("part", $_GET) ? $_GET["part"] : 'xyz');
    if ($part == 'xyz') {
?>
        <h1>Archiv</h1>
<?php
        include_once('func/image_gallery.php');
        $gallery = new image_gallery('images/archiv/', 'XYZ', 'root');
        echo($gallery->gallery());
    else if ($part == 'artikel') {
    }
?>
... von daher sollte das ja eigtl. gehen ^^ index.php ist ansonsten so wie oben ...


Zitat:
Ich hoffe doch du prüfst "$page" wenn du das ggf vom user bekommst?


PHP 4:
if (strrchr($page, '\\') !== FALSE || strrchr($page, '/') !== FALSE) {
    $page = 'news';
    die ('access denied!');
}
Ehm hab ich jetzt mal eingebaut ... ich denke mal das sollte reichen Aber danke


Zitat:
Wie "nicht zu ende geladen"?
Na der Seitenquelltext (der den Browser erreicht) ist unvollständig, bzw. ab dem Bereich (content) der per PHP dazugeladen wird.

Dieser Post wurde am 08.11.2007 um 16:22 Uhr von xXx editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
08.11.2007, 18:33 Uhr
xXx
Devil


Keine eine Idee?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
09.11.2007, 14:57 Uhr
xXx
Devil


Ehm also hab es jetzt:

Zitat:
"FALSE", nich "false"! false ist (integer)0, FALSE ist ein define, das readdir ggf zurückliefert. denk mal daher kommt ne Endlosschleife zustande.
Hab nochmal drpber nachgedacht ... das stimmt so nicht :P Ob es nun false oder FALSE ist, ist in dem Fall egal, da ich ja operator !== nehme und nicht !=

index.php

PHP 4:
setlocale (LC_ALL, 'de_DE@euro', 'de_DE', 'de', 'ge');
error_reporting(E_ALL);
/* ... */
if (!@include('page/'.$page.'.php')) { echo ('<h1>FEHLER 404</h1><br/>Die angegebene Seite konnte nicht geladen werden!'); }




... Fällt euch was auf? Da ist ja ein @ vor include! War auch beabsichtigt. Hatte gedacht, das bezieht sich nur darauf, ob der die Datei einbinden konnte oder nicht. Ist aber nicht so ... es bezieht sich dann auch auf die Fehler, die in der Datei sind.

Dieser Post wurde am 09.11.2007 um 15:38 Uhr von FloSoft editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
09.11.2007, 15:38 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


darum benutz ich auch nie das @ sondern schalte wenn alles fertig ist error_reporting auf 0, bzw setze ein error-log
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ PHP ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: