Dynamischer PHP Include

PHP - alles Rund um die Programmierung von PHP und MySQL

Ist die geniale Programmiersprache, da sowohl für Einsteiger geeignet wie auch für Profis.

Moderator: lauras

Beiträge bitte im neuen Forum

Dynamischer PHP Include

Beitragvon NiGHTCORE » Donnerstag 19. Januar 2012, 00:12

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:
Code: Alles auswählen
<?php
   $name = sprintf('./%s.php', $_GET['id']);
      if(file_exists($name)) {
         include "$name";
      }
      else
      {
         $name = sprintf('./%s.php', $_GET['id']);
            if(file_exists($name))
            {
               include "$name";
            }
            else
            {
               include "site/start.php";
            }   
      }
?>

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
NiGHTCORE
HTML-Suchnase
 
Beiträge: 5
Registriert: Donnerstag 19. Januar 2012, 00:00

Re: Dynamischer PHP Include

Beitragvon drPHIP132 » Donnerstag 19. Januar 2012, 06:49

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

eigentlich heißt es include ("Dateiname.endung");
also mir gehts um die klammern
Benutzeravatar
drPHIP132
HTML-Acrobat
 
Beiträge: 744
Registriert: Samstag 15. Januar 2011, 19:10
Wohnort: Sachsen, Erzgebirge

Re: Dynamischer PHP Include

Beitragvon Basiii » Donnerstag 19. Januar 2012, 11:01

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

Code: Alles auswählen

<?php
  if
(file_exists($name))
  {
     include "$name";
  }
  else
  
{
     print "Datei existiert nicht!";
  }
?>


?? Oder geht es dir noch um etwas anderes?

Code: Alles auswählen

  include 
" DATEI ";
 


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.
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57

Re: Dynamischer PHP Include

Beitragvon drPHIP132 » Donnerstag 19. Januar 2012, 12:23

NiGHTCORE hat geschrieben:wenn zb. die Datei xyz.php nicht existiert der fehlertext: Fehler - Datei existiert nicht erscheint.



wie wäre es mit

include("404.php"),

?
Benutzeravatar
drPHIP132
HTML-Acrobat
 
Beiträge: 744
Registriert: Samstag 15. Januar 2011, 19:10
Wohnort: Sachsen, Erzgebirge

Re: Dynamischer PHP Include

Beitragvon NiGHTCORE » Freitag 20. Januar 2012, 00:12

drPHIP132 hat geschrieben: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.

Basiii hat geschrieben:Huhu, ich verstehe leider dein Problem nicht ganz, eine Fehlermeldung wenn die angegebene Datei nicht existiert?

Code: Alles auswählen

<?php
  
if(file_exists($name))
  {
     include 
"$name";
  }
  else
  {
     print 
"Datei existiert nicht!";
  }
?>


?? Oder geht es dir noch um etwas anderes?

Code: Alles auswählen

  
include " DATEI ";
  


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.


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

drPHIP132 hat geschrieben:
NiGHTCORE hat geschrieben:wenn zb. die Datei xyz.php nicht existiert der fehlertext: Fehler - Datei existiert nicht erscheint.



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:
NiGHTCORE
HTML-Suchnase
 
Beiträge: 5
Registriert: Donnerstag 19. Januar 2012, 00:00

Re: Dynamischer PHP Include

Beitragvon Basiii » Freitag 20. Januar 2012, 12:25

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:

Code: Alles auswählen

<?php

  $handler 
= opendir(__DIR__);
  while(false !== ($file = readdir($handler)))
  {
    if(is_dir($file))
      print "<p>$file ist ein Verzeichnis!</p>";
    else
    {
      
$zerlegung explode('.'$file);
      print 
"<p>$file ist eine ."$zerlegung[count($zerlegung) - 1] ." Datei</p>";
    }
  }

?>
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57

Re: Dynamischer PHP Include

Beitragvon NiGHTCORE » Freitag 20. Januar 2012, 20:15

Basiii hat geschrieben: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:

Code: Alles auswählen

<?php

  $handler 
opendir(__DIR__);
  while(
false !== ($file readdir($handler)))
  {
    if(
is_dir($file))
      print 
"<p>$file ist ein Verzeichnis!</p>";
    else
    {
      
$zerlegung explode('.'$file);
      print 
"<p>$file ist eine ."$zerlegung[count($zerlegung) - 1] ." Datei</p>";
    }
  }

?>

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.
NiGHTCORE
HTML-Suchnase
 
Beiträge: 5
Registriert: Donnerstag 19. Januar 2012, 00:00

Re: Dynamischer PHP Include

Beitragvon drPHIP132 » Freitag 20. Januar 2012, 20:32

hier ein vereifnachtes anschauungsbeispiel.

Code: Alles auswählen
<! -- navigation -->
<nav>
<a href="index.php?page=blog">Blog</a>
<a href="index.php?page=news">News</a>
<!-- und so weiter -->
</nav>
<!-- Ende navigation -->

<?php
if($_GET['page'] != "")
{
//variable bitte auf schadcode filtern
    $file = $_GET['page'] . ".php";
    // eventuelles verzeichniss in pfad mit einbinden

    if( file_exists($file) )
    {
        include($file);
    }
    else
    
{
        include("404.php"):
    }
}
?>



Hoffe ich konnte dir helfen,
gruß phip
Benutzeravatar
drPHIP132
HTML-Acrobat
 
Beiträge: 744
Registriert: Samstag 15. Januar 2011, 19:10
Wohnort: Sachsen, Erzgebirge

Re: Dynamischer PHP Include

Beitragvon NiGHTCORE » Freitag 20. Januar 2012, 21:23

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?
Code: Alles auswählen
<?php
   $page = $_GET['page'];
   $pages = array('page1', 'page2', 'page3');
   if (!empty($page)) {
      if(in_array($page,$pages)) {
         $page .= '.php';
         include($page);
      }
      else {
      echo 'Page not found. Return to
      <a href="index.php">index</a>';
      }
   }
   else {
      include('page1.php');
   }
?>
NiGHTCORE
HTML-Suchnase
 
Beiträge: 5
Registriert: Donnerstag 19. Januar 2012, 00:00

Re: Dynamischer PHP Include

Beitragvon Basiii » Freitag 20. Januar 2012, 21:39

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.

NiGHTCORE hat geschrieben: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).
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57

Re: Dynamischer PHP Include

Beitragvon NiGHTCORE » Freitag 20. Januar 2012, 22:58

Basiii hat geschrieben: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.

NiGHTCORE hat geschrieben: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).

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 :)
Code: Alles auswählen
<?php
    if($_GET['id'] != '') {
        $page = $_GET['id'];
    } elseif($_SERVER['QUERY_STRING'] != '') {
        $page = $_SERVER['QUERY_STRING'];
    } else {
        $page = 'site/start';
    }
    $path = "$page.php";
     
    if(file_exists($path)) {
        include $path;
    } else {
        echo '<center><strong><h1>ERROR - 404</h1></strong>Diese Datei/Verzeichniss existiert nicht!<br />Bitte Informiere den Webmaster dar&uuml;ber!</center>';
    }
?>
NiGHTCORE
HTML-Suchnase
 
Beiträge: 5
Registriert: Donnerstag 19. Januar 2012, 00:00

Re: Dynamischer PHP Include

Beitragvon Basiii » Freitag 20. Januar 2012, 23:12

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?
Benutzeravatar
Basiii
HTML-Acrobat
 
Beiträge: 1139
Registriert: Dienstag 12. Januar 2010, 13:57


Beiträge bitte im neuen Forum

Zurück zu PHP

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 2 Gäste

cron