- Ad -
php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > PHP Developer Forum
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 

 


PHP Developer Forum Hier habt ihr die Möglichkeit, eure Skriptprobleme mit anderen Anwendern zu diskutieren. Seid so fair und beantwortet auch Fragen von anderen Anwendern. Dieses Forum ist sowohl für ANFÄNGER als auch für PHP-Profis! Post your PHP questions here!

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 30-03-2008, 11:48
maciwa
 Newbie
Links : Onlinestatus : maciwa ist offline
Registriert seit: Mar 2008
Beiträge: 6
maciwa ist zur Zeit noch ein unbeschriebenes Blatt
maciwa eine Nachricht über ICQ schicken
Question include in include - erbitte Hilfe!

Hallo zusammen,

ich stehe vor einem kleinen Problem und benötige dringend die Hilfe von Spezialisten. Gleich vorweg: Den nachfolgenden Code habe ich irgendwann wann mal aus einem Tutorial geklaut .

Folgenes:
Ich habe eine index.php, welche im content Bereich diesen php Code enthält:

PHP-Code:
//In welchem Ordner liegen die Content-Dateien?
$ContentFolder './content/';

//Welche Dateien dürfen gelesen werden?
$suffix = array('htm','html','inc','php');

//Welche Datei (im Content-Ordner) soll ausgegeben werden wenn keine Seite explizit angegeben wurde?
$std_site 'main';

//Welche Datei (im Content-Ordner) soll ausgegeben werden wenn die gewünschte Seite nicht existiert?
$err404file '';

//Welcher Text soll ausgegeben werden, wenn die gewünschte Seite nicht existiert?
$lang['file_not_found'] = '<b>Error 404:</b> Die Seite wurde nicht gefunden!';


#
# MAIN-CODE
#

function ausgabe($site) {
    global 
$suffix$ContentFolder;
    
$includet false;
    foreach(
$suffix as $one)
    if (
file_exists($ContentFolder.$site.'.'.$one)) {
        
readfile($ContentFolder.$site.'.'.$one);
        
$includet true;
    }
    return 
$includet;
}


if (
$ContentFolder[strlen($ContentFolder)]!='/'$ContentFolder.='/';




if (!
$_GET['site']) $_GET['site']=$std_site;
$site str_replace('../'''$_GET['site']);

if (!
ausgabe($_GET['site'])) {
    echo 
$lang['file_not_found'];
    
ausgabe($err404file);
}

?> 
So, bisher gab es damit auch keinerlei Probleme. Ich hab einfach die verschiedenen Dateien im content Ordner erstellt und sie wurden normal im Mainbereich der index.php ausgegeben. Nun hab ich aber ein Newssystem installiert. Die news.php von diesem möchte ich nun auf der main.php includen. Diese main.php wiederum include ich mittels des php scripts (siehe oben) auf meiner index.php.
Problem: Wenn ich dies tue, wird der include Befehl der main.php nicht beachtet, sprich: Es passiert nichts!

Folgendes steht in der main.php:
PHP-Code:
<?php
include("../../webnews/include_this/news.php");
?>
Der Pfad ist nicht falsch, denn wenn ich die main.php alleine aufrufe, führt der include Befehl die Aktion ganz normal durch .

Was ist nun wo falsch?

Ich bedanke mich bereits vorweg und hoffe, dass ihr mir helfen könnt.

Kevin
Mit Zitat antworten
  #2 (permalink)  
Alt 30-03-2008, 12:25
Shurakai
 Master
Links : Onlinestatus : Shurakai ist offline
Registriert seit: May 2004
Ort: Bergisch Gladbach
Beiträge: 3.090
Shurakai ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Hi,

in deiner Funktion ausgabe() wird nichts includet, sondern per readfile die datei ausgelesen. Da wird kein PHP-Code bei ausgewertet. Du müsstest also schon mit include auch wirklich arbeiten.
Mit Zitat antworten
  #3 (permalink)  
Alt 30-03-2008, 15:20
DerSchonWieder
 Newbie
Links : Onlinestatus : DerSchonWieder ist offline
Registriert seit: Feb 2008
Beiträge: 74
DerSchonWieder ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Oder einfach nocheinmal eval()´n.
Mit Zitat antworten
  #4 (permalink)  
Alt 30-03-2008, 15:30
maciwa
 Newbie
Links : Onlinestatus : maciwa ist offline
Registriert seit: Mar 2008
Beiträge: 6
maciwa ist zur Zeit noch ein unbeschriebenes Blatt
maciwa eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von Shurakai
Hi,

in deiner Funktion ausgabe() wird nichts includet, sondern per readfile die datei ausgelesen. Da wird kein PHP-Code bei ausgewertet. Du müsstest also schon mit include auch wirklich arbeiten.
Ja, aber wenn ich z.B. nur normal mit "case" arbeite, wird zwar das Newsscript auf der main.php ausgegeben. Doch wenn ich dann auf ein Kommentar o.ä. klicke, kommt eine Fehlermeldung (Datei nicht gefunden).

Ach verdammt, mich verwirrt das alles .

Zitat:
Original geschrieben von DerSchonWieder
Oder einfach nocheinmal eval()´n.
Könnte du das bitte genauer erläutern? *g*
Mit Zitat antworten
  #5 (permalink)  
Alt 30-03-2008, 15:36
TheFish511
 Newbie
Links : Onlinestatus : TheFish511 ist offline
Registriert seit: Feb 2008
Beiträge: 76
TheFish511 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

eval()
Mit Zitat antworten
  #6 (permalink)  
Alt 30-03-2008, 15:48
maciwa
 Newbie
Links : Onlinestatus : maciwa ist offline
Registriert seit: Mar 2008
Beiträge: 6
maciwa ist zur Zeit noch ein unbeschriebenes Blatt
maciwa eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von TheFish511
eval()
Für mich als absoluten Laien in dieser Sache ist das dort erklärte nicht mehr als kryptischer Wirrwar .

Ich würde euch wirklich sehr dankbar sein, wenn ihr mir eure Vorschläge irgendwie praktisch am Code zeigen könntet.
Mit Zitat antworten
  #7 (permalink)  
Alt 30-03-2008, 16:06
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
wenn ihr mir eure Vorschläge irgendwie praktisch am Code zeigen könntet
also eval ist evil. das sollte man imho nur im absoluten notfall einsatzen. halt dich lieber an das, was shurakai gesagt hat. ansosten:
PHP-Code:
$bla 'blubb';
$str 'echo $bla;';
eval (
$str); 
gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #8 (permalink)  
Alt 30-03-2008, 16:15
maciwa
 Newbie
Links : Onlinestatus : maciwa ist offline
Registriert seit: Mar 2008
Beiträge: 6
maciwa ist zur Zeit noch ein unbeschriebenes Blatt
maciwa eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von Kropff
[B]also eval ist evil. das sollte man imho nur im absoluten notfall einsatzen. halt dich lieber an das, was shurakai gesagt hat. ansosten:
Ja, also du meinst normal includen? So hier:

PHP-Code:
<?php
    
if(isset($_GET['section'])) {
        switch(
$_GET['section']) {
        
/*Neumaschinen*/
            
case "news":
                include 
"content/news.php";
                break;

                                            
            default:  
// Wenn eine ungültige Section angegeben wurde
                    // sollen diese Seite gezeigt werden
                
include "news.php";
                break;
        }     
    } else {
        
// wenn section nicht angegeben wurde
        // sollen diese Seite angezeigt werden.
        
include "news.php";
    }
?>
So funktioniert es. Doch nur Augenscheinlich. Denn wenn ich z.B. eine Kategorie wähle oder die Kommentare anzeigen lassen will, geht alles schief.

Geändert von maciwa (03-04-2008 um 23:03 Uhr)
Mit Zitat antworten
  #9 (permalink)  
Alt 30-03-2008, 16:29
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
Kropff befindet sich auf einem aufstrebenden Ast
Standard

dann schau dir mal GENAU deine get-parameter an. die sollten schon einen einheitlichen namen haben, also "section".

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #10 (permalink)  
Alt 30-03-2008, 16:36
maciwa
 Newbie
Links : Onlinestatus : maciwa ist offline
Registriert seit: Mar 2008
Beiträge: 6
maciwa ist zur Zeit noch ein unbeschriebenes Blatt
maciwa eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von Kropff
dann schau dir mal GENAU deine get-parameter an. die sollten schon einen einheitlichen namen haben, also "section".

gruß
peter
Also müsste ich jetzt in dem Newsscript nach allen [GET] Parametern suchen und diese dann durch "section" ersetzen? Puh..
Mit Zitat antworten
  #11 (permalink)  
Alt 30-03-2008, 16:45
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
Kropff befindet sich auf einem aufstrebenden Ast
Standard

Zitat:
Original geschrieben von maciwa
Also müsste ich jetzt in dem Newsscript nach allen [GET] Parametern suchen und diese dann durch "section" ersetzen? Puh..
oder section durch site. sollte aber einheitlich sein. wenn du einen guten editor hast, kannst du das auch einfach mit "suchen & ersetzen" machen.

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
  #12 (permalink)  
Alt 30-03-2008, 16:52
maciwa
 Newbie
Links : Onlinestatus : maciwa ist offline
Registriert seit: Mar 2008
Beiträge: 6
maciwa ist zur Zeit noch ein unbeschriebenes Blatt
maciwa eine Nachricht über ICQ schicken
Standard

Zitat:
Original geschrieben von Kropff
oder section durch site. sollte aber einheitlich sein. wenn du einen guten editor hast, kannst du das auch einfach mit "suchen & ersetzen" machen.

gruß
peter
Ach jetzt weiß ich was du meinst. Nein, die anderen links spielen bei meinem Problem keine Rolle. Es geht erst mal nur um Newssystem, welches durch klicken auf den Newsbutton im Content Bereich includet wird. Wenn ich dann dort aber auf Kommentare oder auf den Newstitel klicke, erscheint die Fehlermeldung.
Mit Zitat antworten
  #13 (permalink)  
Alt 30-03-2008, 16:58
Kropff
  Administrator
Links : Onlinestatus : Kropff ist offline
Registriert seit: Mar 2002
Ort: Köln
Beiträge: 11.308
Kropff befindet sich auf einem aufstrebenden Ast
Standard

und du kannst keine fehlermeldungen lesen?
Zitat:
Warning: main(news.php) [function.main]: failed to open stream: No such file or directory in /var/www/web35/html/test_toschisworld/index.php on line 37
entweder ist der pfad falsch oder die datei existiert nicht. außerdem sollte obige meldung eigentlich nur einmal auftauchen. du scheinst das aber zweimal zu probieren.

gruß
peter
__________________
Nukular, das Wort ist N-u-k-u-l-a-r (Homer Simpson)
Meine Seite
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

MariaDB 5.5 veröffentlicht
MariaDB 5.5 veröffentlichtDie freie MySQL-Alternative MariaDB wurde in der stabilen Version 5.5.23 veröffentlicht und soll einige Verbesserungen gegenüber Oracles Communityversion von MySQL mitbringen.

16.04.2012 | Berni

Deutsche Yii Framework Community
Deutsche Yii Framework CommunitySeit dem 19.03.2012 gibt es für die Yii PHP Framework Community ein deutsches Zuhause.

20.03.2012 | dhcomputer

 

Aktuelle PHP Scripte

EM 2012 Tipp-Spiel ansehen EM 2012 Tipp-Spiel

Online Tipp-Spiel zur Fussball Europameisterschaft 2012, basierend auf php-Script mit hinterlegter mySql-Datenbank

27.05.2012 tippimnetz | Kategorie: PHP/ Spiele
Advanced Login ansehen Advanced Login

Login-System und Kundenverwaltung, die sich spielend leicht in bestehende Webseiten einbauen lässt und einen enormen Funktionsumfang bietet. Ihre eigene Webseite muss mit Advanced Login nicht umständlich an ein fertiges System angepasst werden.

25.05.2012 Madden | Kategorie: PHP/ Kundenverwaltung
BROM CMS/BelCal 3 ansehen BROM CMS/BelCal 3

Spezielles CMS für Betreiber von Ferienwohnungen. Komplette Seitenerstellung online, Verwaltung mehrerer Objekte, Reservierungssystem mit sofortigem Abgleich im Belegungskalender und vieles mehr bietet dieses Content Management System.

25.05.2012 belcal2 | Kategorie: PHP/ CMS
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 11:07 Uhr.