eigene PHP Seite: Links in index.php anzeigen lassen

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
grizzlibaer
Mitglied
Beiträge: 446
Registriert: 04.08.2004 23:17

eigene PHP Seite: Links in index.php anzeigen lassen

Beitrag von grizzlibaer »

Hi,

ich versuche gerade eine sehr einfache PHP-Seite zu erstellen.
Link: http://www.linuxthilo.de/
Da ich in PHP überhaupt nicht fit bin (extremnewbie :oops: ) habe ich eine Frage.

Aufbau der Seite:
header.inc.php
index.php
footer.inc.php
ein ordner für Bilder: bilder
versch. Ordner für die einzelnen Links

Was muß ich machen wenn ich einen Link aus der header.inc.php anklicke und dieser in der index.php angezeigt werden soll? - wie zb der Disclaimer, der jetzt noch in einem neuen Fenster geöffnet wird.

header.inc.php:

Code: Alles auswählen

<html>
<head>
<title>linuxthilo</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<link rel="stylesheet" href="linux.css" type="text/css">
</head>
<body>
<table width="75%" border="0" cellspacing="0" cellpadding="0">
<tr height="120"><td valign="top" width="250" height="120"><img src="bilder/suselogo.gif" width="120" height="85" alt=""></td><td valign="top" height="120"></td><td height="120">&nbsp;</td></tr>
<tr><td valign="top" width="250">
<!-- Beginn Menue -->
<table border="0" cellpadding="0" cellspacing="0" width="150">
<tr><td colspan="2"><img src="bilder/spacer.gif" width="1" height="5" alt=""></td></tr>
<tr><td valign="top" width="50"></td><td>Link</td></tr>
<tr><td colspan="2"><img src="bilder/spacer.gif" width="1" height="5" alt=""></td></tr>
<tr><td valign="top" width="50"></td><td>Link</td></tr>
<tr><td colspan="2"><img src="bilder/spacer.gif" width="1" height="5" alt=""></td></tr>
<tr><td width="50"></td><td>Link</td></tr>
<tr><td colspan="2"><img src="bilder/spacer.gif" width="1" height="5" alt=""></td></tr>
<tr><td valign="top" width="50"></td><td>Link</td></tr>
<tr><td colspan="2"><img src="bilder/spacer.gif" width="1" height="5" alt=""></td></tr>
<tr><td valign="top" width="50"></td><td>Link</td></tr>
<tr><td colspan="2"><img src="bilder/spacer.gif" width="1" height="5" alt=""></td></tr>
<tr><td valign="top" width="50"></td><td><a href="allgemeines/disclaimer.php" title="Haftungsausschluss">Haftungsausschluss</a></td>	</tr>
</table>
<!-- Ende Menue -->
</td>
<td valign="top">
index.php:

Code: Alles auswählen

<?php
//Ersten Teil des Standardlayouts nachladen
include("header.inc.php");
//Hier können dann die Inhalte platziert werden
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td>Diese Tips und Tricks wurden von mir getestet, auf meinem System gab es keine Probleme. <br>
Ich &uuml;bernehme keinerlei Haftung f&uuml;r auftretene Probleme oder Sch&auml;den.<br>
Benutzung auf eigene Gefahr!<br>
<p>Viele dieser Tips sind zusammengesucht und unterliegen daher nicht meinem alleinigen Copyright und d&uuml;rfen ohne Nachfrage kostenlos weitergegeben werden, allerdings nicht kommerziell genutzt werden. Eine Quellenangabe bei Weitergabe ist ausdr&uuml;cklich erw&uuml;nscht.<br></p>
<p>Wenn jemand Fehler findet, w&uuml;rde ich mich &uuml;ber eine <a href="mailto:webmaster@linuxthilo.de?subject=Bugreport%20-%20www.linuxthilo.de">Nachricht </a>freuen :-))<br></p>
</td></tr>
</table>
<?php
//Zweiter Teil des Standardlayouts
include("footer.inc.php");
?>
footer.inc.php:

Code: Alles auswählen

<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr height="25"><td height="25"></td></tr>
<tr><td><a href="allgemeines/disclaimer.php" title="Haftungsausschluss/Disclaimer">Haftungsausschluss/Disclaimer</a></td></tr>
</table></body></html>
Wäre supernett wenn mir da jemand helfen könnte, und bitte auch so erklären das ich es verstehe :oops:

gruß
grizzli
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

@grizzlie: Diese Konzept ist ganz easy.....

Wenn du dir diesen Thread zu Gemüte führst inklusive der externen Links, solltest du es eigentlich verstehen können.......

-> http://www.phpbb.de/viewtopic.php?t=67359
Benutzeravatar
grizzlibaer
Mitglied
Beiträge: 446
Registriert: 04.08.2004 23:17

Beitrag von grizzlibaer »

ok,

ich bin ehrlich. So richtig was anfangen konnt ich nichts damit. Ich hab ne Lernschwäche bzw. meine Aufnahmefähigkeit bei solchen Codes ist sehr eingeschränkt. Hört sich vielleicht völlig bescheuert an ist aber so. Also sorry wenn ich dann 100mal Nachfrage :oops: - Ich bin aber sehr bemüht alles zu verstehen und zu probieren :)

ABER *stolzguck* - ich hab es erstmal soweit hinbekommen das ich tatsächlich diese disclaimerseite in die index laden kann :D (nach Stundenlangem suchen im Inet :-?

Jetzt gibts nur noch ein Problem: Der Text der auf der Indexseite steht wird unten angefügt :(

Das habe ich hinzugefügt:

config.php:

Code: Alles auswählen

<?php
//config.php

$dateien = array(); //Erstellt einen neuen Array $dateien
$dateien ['disclaimer'] = "allgemeines/disclaimer.php";
?>
index.php:

Code: Alles auswählen

<?php
//Ersten Teil des Standardlayouts nachladen
include("header.inc.php");
include("config.php");

if(isset($_GET['section']) AND isset($dateien[$_GET['section']]))

 { 
//Ist eine $_GET Variable vorhanden wird PHP angewiesen 
//zu prüfen ob die Datei existiert und diese dann zu laden 

if(!file_exists($dateien[$_GET['section']])) echo "Die Datei ist nicht vorhanden.";

include $dateien[$_GET['section']]; 
 } 
else
{ 
}

//Hier können dann die Inhalte platziert werden
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td>Diese Tips und Tricks wurden von mir getestet, ........
Wie bekomme ich das weg? Kann man das so verwenden (es ist sooo schön einfach :D ) oder gibts Probleme?

gruß
grizzli
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

grizzlibaer hat geschrieben: index.php:

Code: Alles auswählen

<?php
//Ersten Teil des Standardlayouts nachladen
include("header.inc.php");
include("config.php");

if(isset($_GET['section']) AND isset($dateien[$_GET['section']]))

 { 
//Ist eine $_GET Variable vorhanden wird PHP angewiesen 
//zu prüfen ob die Datei existiert und diese dann zu laden 

if(!file_exists($dateien[$_GET['section']])) echo "Die Datei ist nicht vorhanden.";

include $dateien[$_GET['section']]; 
 } 
else
{ 
}

//Hier können dann die Inhalte platziert werden
?>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td>Diese Tips und Tricks wurden von mir getestet, ........
Wie bekomme ich das weg? Kann man das so verwenden (es ist sooo schön einfach :D ) oder gibts Probleme?

gruß
grizzli
Du solltest das so aufbauen das die index.php sowohl in der ersten Zeile den Header includiert und in der letzen Zeile den Footer.....

Was dazwischen ist der Variableinhalt.....

Ich muss diesen Code sehr kritisieren, da Du dir somit ein nicht unerhebliches Sicherheitsloch öffnest file_exists überprüft lediglich die Existenz einer File.... Was aber wenn ich eine File in einer höheren Ebene so übergebe... Im schlimmsten Fall würdest dann den Code sehen....

Und wenn ich den Code sehe kann ich damit möglicherweise die erheblichen Schaden zufügen.....

Wenn du schon auf diese Art deine Seite einbinden willst dann solltest du zumindest nach / oder ../../ prüfen....

Da der Parameter im Klartext gespeichert ist weiss ich z.B. hier genau welche File es ist.....

P.S.: Nicht alles was Du im Netz findest solltest du verwenden, es gibt hier sehr viel schlüpfrige Sachen
Benutzeravatar
grizzlibaer
Mitglied
Beiträge: 446
Registriert: 04.08.2004 23:17

Beitrag von grizzlibaer »

Danke Dir,
ich habs jetzt geschafft das ich die URLS so aufrufen kann wie ich möchte. Nämlich alle in der index.php. Und ich muß sagen ich bin echt froh es geschafft zu haben.

Wenn mir das jemand besser Programmieren kann dann wäre es toll wenn er mir das machen könnte. Auf der Seite sieht man im moment wie es aussehen soll ....

Es sind im Prinzip nur Textseite. Später kommen vielleicht mal Downloads hinzu. Also keine Einlogggeschichten oder vertrauliche Sachen. Daher wüßte ich nicht wie man mir schaden könnte? Könntest Du mir das genauer erklären?

gruß
grizzli
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

grizzlibaer hat geschrieben: Es sind im Prinzip nur Textseite. Später kommen vielleicht mal Downloads hinzu. Also keine Einlogggeschichten oder vertrauliche Sachen. Daher wüßte ich nicht wie man mir schaden könnte? Könntest Du mir das genauer erklären?

gruß
grizzli
Was könnte ich denn alles machen wenn ich Scripte aus höheren Ebenen ausführen....Und durch einen Zufall im klartext sehe...

Kann mir das alles ableiten und zu meinem Vorteil nutzen....
Benutzeravatar
MrMind
Mitglied
Beiträge: 464
Registriert: 29.11.2003 17:14
Wohnort: Darmstadt/Odw
Kontaktdaten:

Beitrag von MrMind »

Naja in der Regel sollte eine Angabe wie ./Order/Datei.php ausreichen. um eine derartige Überprüfung zu umgehen.

Die GET Methode ist leider eine schlechte Methode Seiten aufzurufen.

es gibt auch noch die Methode realpath die in diesem Fall weiterhelfen sollte.

Wenn ich falsch liege, dann bitte korrigieren ;)


Mfg
MrMind
Selbst ist der Coder
Coder unter Linux
Benutzeravatar
Blutgerinsel
Mitglied
Beiträge: 1801
Registriert: 19.07.2004 18:53
Wohnort: Landkreis Ulm
Kontaktdaten:

Beitrag von Blutgerinsel »

MrMind hat geschrieben:Naja in der Regel sollte eine Angabe wie ./Order/Datei.php ausreichen. um eine derartige Überprüfung zu umgehen.

Die GET Methode ist leider eine schlechte Methode Seiten aufzurufen.

es gibt auch noch die Methode realpath die in diesem Fall weiterhelfen sollte.

Wenn ich falsch liege, dann bitte korrigieren ;)


Mfg
MrMind
Die Methode habe ich noch nicht verwendet......
Aber generell jetzt zu sagen GET ist schlimm kann man auch nicht.....

Weiterhin ist auch die Einsatzsituation davon abhängig.....

Wenn ich eigene Scripte mache und diese ins bestehende Layout einfüge muss ich ja schließlich auch wissen welches Script muss ich includen damit der Wert weiterverarbeitet wird.....

Da ich Seiten eh nicht namentlich benenne, sondern einen Hashwert aus bestimmten Wertigkeiten generiere und als Parameter anhänge reicht das vollkommen....Stimmt nichts überein wird eben Default geladen...

Das ist jetzt grob mein Schutz meine Scripte werden nicht via Namen referenziert sondern via Key speziell für das Script....Da die Seiten alle statisch sind.....

Aber wie gesagt ist noch im Aufbau.....
Als möglich Methode das Prinzip nicht zu durchschauen werde ich diese Parameter noch mit der User IP verechnen bzw. Key hieraus generieren.....

Das hat dann zur Folge das wenn ich den Link aus der Adresszeile Jemandem anderen schicke, dass der Parameter nichts bringt da diese IP + Script ID != der vorgerigen ist des ersten Users.....

Das ganze funktioniert natürlich nur solange beide User nicht über einen Proxy kommen........

Bei den Scripten die nicht verlinkt werden setze ich eine Konstante und frage diese ab...Dabei wird der HTTP-Referer verwendet...Bedeutet HTTP-Referer vorhanden kommt nicht von meiner Seite dann ist es verboten...... Wurde HTTP-Referer nicht übergeben erfolgt die Anzeige....
Antworten

Zurück zu „Coding & Technik“