• Das Erstellen neuer Accounts wurde ausgesetzt. Bei berechtigtem Interesse bitte Kontaktaufnahme über die üblichen Wege. Beste Grüße der Admin

PHP-Seite in der Zelle von einer Tabelle laden ???

(_H.A.W.K_)

New member
Hi
Ich hab eine Seite, die aus 2 Zeilen/Zellen besteht. In der oberen Zelle befindet sich eine Menüleiste mit Links. In der Zelle darunter soll dann, nachdem man auf einen Link geklickt hat, die Seite geladen werden. iFrame kommt schon mal nicht in Frage, da das nur mit dem IE funzt. Ich hab da mal was von "include" gelesen, vielleicht kann man damit etwas anfangen.
Dazu muss ich noch sagen, dass ich mich 0 (!) mit PHP auskenne.
Hoffe ihr wisst was ich meine und könnt mir helfen.

cya
 
Also, die Links schreibst du so:
<a href="index.php?go=home">home</a>

In die Zelle, wo die Sache rein soll schreibst du das hier:
<?include"$go.html";?>

Die Datei mit der Tabelle nennst du index.php und stellst in das selbe Verzeichnis wie die Index eine Datei mit dem Namen home.html. Jetzt wird beim Aufruf von index.php?go=home die Datei home.html in die index.php geladen.


Übrigens ist der Thread im falschen Forum -> Serverseitiges.
 
also erstmal iframes gehen nicht nur im IE.
mit include kannst du andere dateien einbinden.
PHP:
include("seite.php")
in dieser seite musst natürlich passender Html-code stehen also nicht das Grundgerüst sondern nur was dort in diese Tabellezeile rein soll...
bei den Links kannst du dann einen parameter übergeben mit hilfe dem du dann bestimmen kannst welche seite eingebunden werden soll. bsp:
Code:
<a href="index.php?id=0">Verweistext</a>
im php-skript kannst du dann folgender massen darauf zugreifen:
PHP:
$_GET['id']
du könntest dir dann beispielsweise ein Array zusammen basteln:
PHP:
<?php
$sitemap=array();
$sitemap[0]="links.php";
$sitemap[0]="kontakt.php";

/* und an der passenden stelle folgende zeile */
include($sitemap[$_GET['id']]);
?>
is alles ungetestet
@mods sollte man wohl verschieben
 
Hi
Danke Julien, das hört sich schon ma nach einer sehr einfachen Lösung an :)
Werde das gleich ma ausprobieren.

@kasimir83
Weißt du zufällig in welchen Browsern iFrames funktionieren ???
Oder muss man da erst wieder ein Script von 2 Seiten Länge in die Seite einfügen, damit die iFrames auch im Netscape funzen :)

cya
 
@marc
Als ich meinen vorherigen Beitrag noch geschrieben hab, hast du deinen gerade gepostet, darum hab ich das vorher noch nicht gesehen.
<?php
$sitemap=array();
$sitemap[0]="links.php";
$sitemap[0]="kontakt.php";

/* und an der passenden stelle folgende zeile */
include($sitemap[$_GET['id']]);
?>
Müsste das von der Logik her nicht "$sitemap[1]="kontakt.php";" heißen ???

Ach ja, ich möchte dich nochmal auf diese Zeile hinweisen:
Dazu muss ich noch sagen, dass ich mich 0 (!) mit PHP auskenne.
:D
 
Hi
Hab das zwar jetzt so hinbekommen, dass die PHP Seite bei Klick auf einen Link in der unteren Zelle geladen wird, jedoch fehlt jetzt bei der PHP Seite in der Zelle der Hintergrund und das Stylesheet vom Linkmenü wird auf die Scripte in der Zelle übertragen.
 
(_H.A.W.K_) schrieb:
Müsste das von der Logik her nicht "$sitemap[1]="kontakt.php";" heißen ???
das hast du richtig erkannt.

du musst jezt halt die Pfade für das Stylesheet anpassen denn es ist jetzt eine Seite und nicht wie beim iframe 2. darum werden die styles auch überall angewandt.
 
Also, die Links schreibst du so:
<a href="index.php?go=home">home</a>

In die Zelle, wo die Sache rein soll schreibst du das hier:
<?include"$go.html";?>

Kann ich so leider nicht stehen lassen.

Erstens werden GET-Variablen über $_GET angesprochen, denn vernünftige Menschen haben register_globals=off.

Zweitens heißt es include() und verwenden tun wir eh nur require().

Und schlimmstens sind obige Zeilen der älteste PHP-programmierfehler. Ein fremder kann damit seinen Code auf Deinem Server ausführen lassen.
 
wenn wir schon dabei sind, was hälst du von meiner Version? (hab noch nicht so viel Erfahrung mit php)
 
.marc schrieb:
wenn wir schon dabei sind, was hälst du von meiner Version? (hab noch nicht so viel Erfahrung mit php)
von der idee her nicht schlecht, nur nicht so sicher. besser:
PHP:
$id = (isset($_GET['id']))? (int)$_GET['id']: -1;
if (isset($sitemap[$id])) {
  require_once($sitemap[$id]); 
} else {
  require_once("404.php"); 
}
 
Original geschrieben von kutiku
Und schlimmstens sind obige Zeilen der älteste PHP-programmierfehler. Ein fremder kann damit seinen Code auf Deinem Server ausführen lassen.

Ich sehe ein, was du meinst, dass man nämlich mit index.php?go=file:///c:/usw eine beliebige Datei einfügen kann. Aber was willst du da für nen Code ausführen? Etwa den hier?

PHP:
<?
$festplatte = getHarddiskfromServer;
format($festplatte);
?>
 
Nein den der auf http://www.meinedomain.tld/boese.txt liegt.
Standardmäßig können Inhalte über Netz eingebunden werden.

Und mit boese.txt kann ich mir alle Deine Sourcefiles per Mail schicken lassen, und sehe da irgendwo bestimmt ein Mysql Passwort.
 
Hmm okay, seh ich ein. Aber trotzdem, soo schlimm find ich das nicht. Und für jemanden, der keine Ahnung von PHP hat, ist diese Methode sicher leichter zu durchschauen. Aber ich rate auch zur Marc/Rasputin-Methode.
 
nur mal so ein Gedankengang, könnte nicht auch etwas in der Art Schaden anrichten?
index.php?id=99&sitemap[99]=meineSeite.php

man müsste natürlich wissen wie das Array heisst...
andererseits wenn register_globals auf off sind dann müsste das nichts machen oder? und sowieso zu dem Zeitpunkt gibt es das Array ja noch gar nicht :confused:
 
.marc schrieb:
nur mal so ein Gedankengang, könnte nicht auch etwas in der Art Schaden anrichten?
index.php?id=99&sitemap[99]=meineSeite.php
theoretisch schon, aber wie du gesagt hast, nur wenn register_globals = on ist. wenn du vor "$sitemap=array();" noch "unset($sitemap);" schreibst, ist auch dieses problem vom tisch.
 
Probiert's doch aus.

Obiges wird auch theoretisch bei keiner Einstellung Schaden anrichten.

Dein Script hat ja irgendwo bevor es ein Element aus $sitemap included
$sitemap = array() .

Falls vorher $sitemap was war ist es jetzt ein leeres Array.
 
Hi
Heißt das jetzt dass die Methode von Julien unsicher ist und dadurch jeder meine MySQL Passwörter rausfinden kann ???
Oder was ?
 
Zurück
Oben