Dynamischer PHP Include

  • Schöne Nacht an die Nachschwärmer :)


    Zu aller erst bin ich neu im Forum und möchte mich für jede Hilfe die ich bekomme bedanken :)


    So nun zu meiner Frage.
    Ich möchte mir eine ganz kleine Webseite nur über mich erstellen dafür möchte ich kein CMS verwenden wäre sinnlos.
    Daher möchte ich mir ein Dynamisches PHP script bzw. Include in die Index einbinden das wäre mal mein jetziger Code den ich gebastelt habe:


    So nun meine Frage ist wie schaffe ich es einen Fehler Text ein zu binden wenn zb. die Datei xyz.php nicht existiert der fehlertext: Fehler - Datei existiert nicht erscheint.


    Zweitefrage wäre wie ich die unterordner im Script mit einbeziehe quasi link name: ?id=uebermich
    und in nem unterordner halt so: ?category=ordnername&id=dateiname


    ich hatte es schonmal geschaft fehler und unterverzeichnisse einzubeziehen aber nur mit Arrays und das will ich nicht... er soll mir jede php datei lesen nich die die ich vorgebe.


    Ich bin für jede Hilfe dankbar.


    LG. Core

  • Huhu, ich verstehe leider dein Problem nicht ganz, eine Fehlermeldung wenn die angegebene Datei nicht existiert?


    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br />  if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">file_exists</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$name</span><span class="syntaxkeyword">))<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">     include </span><span class="syntaxstring">"$name"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">  else<br />  </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">     print </span><span class="syntaxstring">"Datei existiert nicht!"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">?><br /></span></span>


    ?? Oder geht es dir noch um etwas anderes?


    PHP
    <span class="syntaxdefault"><br />  include </span><span class="syntaxstring">" DATEI "</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault"> </span>


    Ist übrigens auch richtig, wir schreiben schließlich auch echo ""; und print ""; statt echo(""); und print(""); obwohl es rein semantisch korrekter wäre die Klammern mit zu notieren.

  • Zitat von &quot;drPHIP132&quot;

    Willkommen. :)
    muss gleich in die Schule also habe ich keine zeit.


    eigentlich heißt es include ("Dateiname.endung");
    also mir gehts um die klammern


    Kapier ich nich was genau meinst du da jetz? Das mit die Klammern is zwar richtig wird aber mein problem nicht beheben.



    Stimmt auch print ist eine alternative aber wenn ich dies einfüge bekomme auf der index dann den print mit der nachricht datei existiert nich ist zwar richtig, aber der dann ist meine Index blank quasi ich bekomme den inhalt vom angegeben Print, was nicht wirklich mein problem löst sonder erhöht wenn die index blank ist.


    Zu deiner anderen Frage: Ja, ich möchte das das Script auch unterordnern miteinbezieht, quasi, er soll mir die datei /ordername/imprint.php auslesen jetz aber nicht so
    das ich den link so angeben muss: ?id=ordnernamer/imprint (so solls nich sein) sondern schön angegeben per Category zb. so: ?categord=ordnername&id=imprint
    alle anderen datein die in dem selben ordner liegen sollen so per link aufrufbar sein: ?id=dateiname


    Zitat von &quot;drPHIP132&quot;

    wie wäre es mit


    include("404.php"),


    ?


    Danke für den hinweis, das weiss ich, ist aber nicht gerade hilfreich wenn ich nicht weis wie ich das in den code mit einprogrammieren kann.


    @Topic:

  • Worin besteht das Problem einfach das gesamte Verzeichnis auszulesen und dann per is_dir zu prüfen ob ein Unterverzeichnis vorhanden ist und dieses dann auch einfach auszulesen?


    Ungefähr so:


    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br />  $handler </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> opendir</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__DIR__</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">  while</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">false </span><span class="syntaxkeyword">!==</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$file </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> readdir</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$handler</span><span class="syntaxkeyword">)))<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">    if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">is_dir</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$file</span><span class="syntaxkeyword">))<br /></span><span class="syntaxdefault">      print </span><span class="syntaxstring">"<p>$file ist ein Verzeichnis!</p>"</span><span class="syntaxkeyword">;<br />    else<br />    {<br />      </span><span class="syntaxdefault">$zerlegung </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'.'</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$file</span><span class="syntaxkeyword">);<br />      print </span><span class="syntaxstring">"<p>$file ist eine ."</span><span class="syntaxkeyword">. </span><span class="syntaxdefault">$zerlegung</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$zerlegung</span><span class="syntaxkeyword">) - </span><span class="syntaxdefault">1</span><span class="syntaxkeyword">] .</span><span class="syntaxstring">" Datei</p>"</span><span class="syntaxkeyword">;<br />    }<br /></span><span class="syntaxdefault">  </span><span class="syntaxkeyword">}<br /><br /></span><span class="syntaxdefault">?><br /></span></span>
  • Zitat von &quot;Basiii&quot;

    Worin besteht das Problem einfach das gesamte Verzeichnis auszulesen und dann per is_dir zu prüfen ob ein Unterverzeichnis vorhanden ist und dieses dann auch einfach auszulesen?


    Ungefähr so:


    PHP
    <span class="syntaxhtml"><br /><span class="syntaxdefault"><?php<br /><br />  $handler </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">opendir</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">__DIR__</span><span class="syntaxkeyword">);<br />  while(</span><span class="syntaxdefault">false </span><span class="syntaxkeyword">!== (</span><span class="syntaxdefault">$file </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">readdir</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$handler</span><span class="syntaxkeyword">)))<br />  {<br />    if(</span><span class="syntaxdefault">is_dir</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$file</span><span class="syntaxkeyword">))<br />      print </span><span class="syntaxstring">"<p>$file ist ein Verzeichnis!</p>"</span><span class="syntaxkeyword">;<br />    else<br />    {<br />      </span><span class="syntaxdefault">$zerlegung </span><span class="syntaxkeyword">= </span><span class="syntaxdefault">explode</span><span class="syntaxkeyword">(</span><span class="syntaxstring">'.'</span><span class="syntaxkeyword">, </span><span class="syntaxdefault">$file</span><span class="syntaxkeyword">);<br />      print </span><span class="syntaxstring">"<p>$file ist eine ."</span><span class="syntaxkeyword">. </span><span class="syntaxdefault">$zerlegung</span><span class="syntaxkeyword">[</span><span class="syntaxdefault">count</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$zerlegung</span><span class="syntaxkeyword">) - </span><span class="syntaxdefault">1</span><span class="syntaxkeyword">] .</span><span class="syntaxstring">" Datei</p>"</span><span class="syntaxkeyword">;<br />    }<br />  }<br /><br /></span><span class="syntaxdefault">?><br /></span></span>


    Naja das Problem ist eig nich ein verzeichnis auszulesen das problem liegt daran in den Include den ich oben gepostet habe nen Error einzubaun falls eine datei nicht existiert.

  • hier ein vereifnachtes anschauungsbeispiel.


    PHP
    <span class="syntaxhtml"><! -- navigation --><br /><nav><br /><a href="index.php?page=blog">Blog</a><br /><a href="index.php?page=news">News</a><br /><!-- und so weiter --><br /></nav><br /><!-- Ende navigation --><br /><br /><span class="syntaxdefault"><?php<br /></span><span class="syntaxkeyword">if(</span><span class="syntaxdefault">$_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'page'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">!=</span><span class="syntaxdefault"> </span><span class="syntaxstring">""</span><span class="syntaxkeyword">)<br />{<br /></span><span class="syntaxcomment">//variable bitte auf schadcode filtern<br /></span><span class="syntaxdefault">    $file </span><span class="syntaxkeyword">=</span><span class="syntaxdefault"> $_GET</span><span class="syntaxkeyword">[</span><span class="syntaxstring">'page'</span><span class="syntaxkeyword">]</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">.</span><span class="syntaxdefault"> </span><span class="syntaxstring">".php"</span><span class="syntaxkeyword">;<br /></span><span class="syntaxdefault">    </span><span class="syntaxcomment">// eventuelles verzeichniss in pfad mit einbinden<br /><br /></span><span class="syntaxdefault">    if</span><span class="syntaxkeyword">(</span><span class="syntaxdefault"> file_exists</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$file</span><span class="syntaxkeyword">)</span><span class="syntaxdefault"> </span><span class="syntaxkeyword">)<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        include</span><span class="syntaxkeyword">(</span><span class="syntaxdefault">$file</span><span class="syntaxkeyword">);<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br /></span><span class="syntaxdefault">    else<br />    </span><span class="syntaxkeyword">{<br /></span><span class="syntaxdefault">        include</span><span class="syntaxkeyword">(</span><span class="syntaxstring">"404.php"</span><span class="syntaxkeyword">):<br /></span><span class="syntaxdefault">    </span><span class="syntaxkeyword">}<br />}<br /></span><span class="syntaxdefault">?></span></span>



    Hoffe ich konnte dir helfen,
    gruß phip

  • Jaa jetz kommen wir wieder näher.. soweit kann ich das auch aber ich verliere dann den Standard inhalt.


    So hier hab ich was gefunden im netz hier ist ein "Falls datei nicht vorhanden error" + startseite quasi wenn dieses Script in die index eingebaut ist liesst das script als standard den inhalt von start.php, BLEIBT als seite aber auf der index.php


    Nur ist dies mit der Arry Funktion, die Arrys kriege ich iwie nicht weg ohne nen Syntex error kann mir da jemand was machn?

  • Für mich ist die Sache durch, hier solltest du anfangen. Deine Lösung dort beinhaltet alles was wir dir hier vorgeschlagen haben, bitte melde dich erst wieder wenn du überhaupt verstehst was du da programmierst oder wenn du Hilfe beim Verstehen brauchst.


    Zitat von &quot;NiGHTCORE&quot;

    Nur ist dies mit der Arry Funktion, die Arrys kriege ich iwie nicht weg ohne nen Syntex error kann mir da jemand was machn?


    Ohne den Code den du umgeschrieben hast oder eine Fehlermeldung können wir dir wohl schlecht helfen, siehe hier, Unterpunkt "Beitragserstellung" (hast du beim registrieren gelesen und bestätigt).

  • Zitat von &quot;Basiii&quot;

    Für mich ist die Sache durch, hier solltest du anfangen. Deine Lösung dort beinhaltet alles was wir dir hier vorgeschlagen haben, bitte melde dich erst wieder wenn du überhaupt verstehst was du da programmierst oder wenn du Hilfe beim Verstehen brauchst.



    Ohne den Code den du umgeschrieben hast oder eine Fehlermeldung können wir dir wohl schlecht helfen, siehe hier, Unterpunkt "Beitragserstellung" (hast du beim registrieren gelesen und bestätigt).


    Danke habe ich, ich denke schon das ich mein Problem erklären aber vieleicht konnten viele nicht verstehen was ich zu erklären versuchte, aber seis drum.
    Ich hab mir was völlig neues zusammen gebastelt was mein Problem gottseidank xD löst, dennoch danke an alle die versucht haben mir zu Helfen :)

  • Und worin unterscheidet sich deine Lösung jetzt von unseren Vorschlägen? Prüfen ob überhaupt was gesendet wird, wenn nein auf Index verweisen, wenn doch prüfen ob Datei existiert, wenn ja auf Datei verweisen, wenn nein auf 404 verweisen?

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!