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! Fragen zu Laravel, YII oder anderen PHP-Frameworks.

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.084
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.722
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.722
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.722
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.722
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

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
Affilinator - Affilinet XML Produktlisten Skript

Die Affilinator Affilinet XML Edition ist ein vollautomatisches Skript zum einlesen und darstellen der Affili.net (Partnerprogramm Netzwerk) Produktlisten und Produktdaten. Im Grunde gibt der Webmaster seine Affilinet PartnerID ein und hat dann unmittelb

27.08.2018 freefrank@ | Kategorie: PHP/ Partnerprogramme
 Alle PHP Scripte anzeigen

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