Anzeige
Tutorialbeschreibung

HOMEPAGE aus DATENBANK (Teil 1)

HOMEPAGE aus DATENBANK (Teil 1)

Dieses Tutorial wird umfassender als alle bisherigen von mir, insbesondere deshalb, weil es ein (geradezu) uferloses Thema betrifft.

Aber es wurde gewünscht, im Anschluss an mein Tutorial über die Suchmaschine in einer Homepage.

Dabei tauchte sinngemäß die Frage auf, „was tun mit einer Suchmaschine“, deren erste Voraussetzung eine Hp ist, mit deren Erstellung (Content aus der Datenbank) der eine oder andere nichts anzufangen weiß.


Also los:

Allgemeines:

Zunächst sollten wir uns (ganz allgemein) darüber Klarheit verschaffen, was dazu alles erforderlich ist:

1. Eine Seite in *.php, die in der Lage ist, die Datenbankinhalte aufzunehmen
2. ein AdministrationsControlPanel (in der Folge kurz: ACP genannt), das sowohl die Anlegung einer ‚neuen Seite’, die Änderung einer bestehenden Seite, als auch die Löschung von einzelnen Seiten gestattet.
3. Implementierung eines online HTML-Editors zur Formatierung der Hp-Inhalte.


Diese grobe Darstellung soll zunächst einen Überblick verschaffen, was überhaupt notwendig ist, um eine Hp mit Datenbankunterstützung zu realisieren.
Das bedeutet natürlich bei weitem nicht, dass damit nur annähernd alle Details dieses Projekts berücksichtigt wurden, aber ein Einstieg muss immer eine vergröberte Darstellung sein, um dann im Detail nicht den Überblick zu verlieren.

Was allerdings hier bewusst weggelassen wird, ist die Designmöglichkeit, nur so viel: auch hier kann per Datenbank das Design editierbar gemacht werden, wenn man mit Stylesheets arbeitet und die entsprechende ‚css-Datei’  keine *.css ist, sondern eine *.php! Um das zu realisieren müssen wir im head der Seite nur folgenden Code einfügen:

<LINK href="styles.php" type="text/css" rel="stylesheet">

Sie werden bald wissen, wie das geht, wenn Sie eine Hp mit Db-Unterstützung erstellen können!

Besonderes:

Zunächst erstellen wir einmal eine Tabelle, die die Hp aufnehmen kann, wir nennen sie, der Einfachheit halber, hp und die Datei, die diese Tabelle erstellt, install_site.php:


<? include 'includes/connect.php';
$sql = "CREATE TABLE `hp`(
`ID` INT AUTO_INCREMENT PRIMARY KEY,
`site` varchar(255) NOT NULL default '',
`linktext` varchar(255) NOT NULL default '',
`content` text NOT NULL default '');";
if(mysql_query($sql))
{
echo("<b>Die Tabelle hp wurde erstellt </b>");
}
else
{
echo("Konnte die Tabelle hp nicht anlegen. Grund: ".mysql_error()." ");
}
?>

Die connect.php fehlt hier bewusst, um Wiederholungen zu vermeiden, zumal wir eine solche im Tutorial ‚Schreiben mit PHP Teil 2’ finden!

Auffällig ist an diesem Code, das Snippet mysql_error(), wozu das? Ganz einfach: Der Parser, sagt nicht immer freiwillig, wo das Problem liegt und von der Mitteilung, dass etwas nicht klappte hat man herzlich wenig, dafür dieses Snippet; es sagt uns normalerweise, warum die SQL-Query nicht ausgeführt werden konnte.

Nun zu den Spalten im Einzelnen:

ID > wir werden sie im ACP noch brauchen – fortlaufende Zahl, die mit Autoinkrement  erstellt wird
site > Das ‚Kürzel’ mit dem die jeweilige Hp identifiziert wird, z.B.: team, contact … damit wir unsere verschiedenen Homepageinhalte aufrufen können. Z.B.: http://www.meinurl.de/index.php?site=team (… damit würde aus der Datenbank der Inhalt aufgerufen, die wir in der Tabelle in der Spalte ‚content’ dem Team zugeordnet haben)
content > der Inhalt unserer Homepageseite, dort steht alles, was einzelnen Zeilen zugeordnet ist, die anhand der Spalte site identifiziert werden.
linktext > ein nicht notwendiges, aber nützliches Gimmick für das ACP! … dort wollen wir ja unsere Seite auch leicht identifizieren können, wenn wir z.B. editieren wollen. Also z.B. heißt die Seite: index.php?site=school1, so kann es sein, dass wir uns leichter tun, wenn wir ein anderes (z.B.: eindeutigeres) Identifizierungsmerkmal finden, um sofort zu wissen, welche Seite wir meinen, also in Linktext steht etwa:

Unser Schulgebäude – index.php?site=school1

Schon wissen wir, dass school1, die Seite in der Hp ist, die sich mit dem Schulgebäude befasst school2 könnte dann z.B.: im Linktext unsere Lehrer heißen; natürlich muss (wie gesagt) Linktext nicht sein, man könnte natürlich in unseren site-titles eindeutige Bezeichnungen wählen, werden Sie vielleicht sagen z.B.: site=schoolbuilding oder site=teacher.

Aber manchmal ist das nicht so einfach, noch dazu, wo man den site-title kurz halten sollte und nur rudimentäre Unterscheidungen verwenden sollte. Vergessen Sie nicht, oft sind beim Link mehrere Parameter nach dem ‚?’ erforderlich, also z.B.: http://www.ihrurl.de/index.php?site=school1&ID=7& … Dann ist es gut, wenn die Identifikationskürzel so kurz wie möglich sind. Natürlich je kürzer diese Kürzel sind, desto weniger aussagekräftig sind sie und daher die Spalte linktext.
Jetzt zum ‚Herzstück’ der Hp: die index.php!

Ich mache hier ein W3-Standardkonformes Beispiel, in dem valides HTML verwendet wird, daher bitte in der Spalte content, wenn Sie Tests machen nur html-Tags verwenden, die innerhalb des <body>…</body> sein dürfen und daher keine ‚Verdopplungen’ des head oder des body enthalten dürfen!

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
  <head>
    <title>Hp aus der Datenbank</title>
    <meta http-equiv="content-type" content="text/html; charset=iso-8859-1">
  </head>
  <body style=“font-face:Verdana;color:red;font-size:10pt;margin-left:190;margin-right:190“ link=“black“ alink=“black vlink=“black“ “>
<?php
include’connect.php’;
$site=(addslashes($_GET[‘site’]));
$result = mysql_query("SELECT * FROM hp WHERE site=’”.$site.”’") or die(mysql_error());
$row = mysql_fetch_array( $result );
echo $row[‘content’];
?>   
  </body>
</html>

Nun steht dem ersten Test nichts mehr im Wege, wenn auch nur über den phpmyadmin, also noch ohne unser Frontend (ACP) zur Bearbeitung:

Um diesen Test durchzuführen, machen wir 2 Datenbankeinträge, nachdem wir install_site.php ausgeführt haben!

1.

In die Spalte linktext schreiben wir: Test1
In die Spalte site schreiben wir: test1
In die Spalte content schreiben wir folgendes:
<center><h3>Ich bin die Testseite 1</h3></center><br /><br />Damit ist unsere Homepage zumindest über den phpmyadmin beschickbar! <br /><br />Im 2. Teil werden wir uns damit beschäftigen, wie das ACP aufzubauen ist und wozu ein Online-HTML-Editor dient. <br /><br />Tutorial bei psd-tutorials.de<br /><br />Liebe Grüße<br />Euer webmastersworld

Aufrufen können wir diese Seite im Browser mit:

http://www.ihredomain.de/index.php?site=test1


Für die 2. Seite machen wir in der Datenbank (nächste Zeile der Tabelle hp) folgendes:
2.

In die Spalte linktext schreiben wir: Test2
In die Spalte site schreiben wir: test2
In die Spalte content schreiben wir folgendes:
<center><h3>Ich bin die Testseite 2</h3></center><br /><br />Damit ist unsere Homepage zumindest über den phpmyadmin beschickbar! <br /><br />Im 2. Teil werden wir uns damit beschäftigen, wie das ACP aufzubauen ist und wozu ein Online-HTML-Editor dient. <br /><br />Tutorial bei psd-tutorials.de<br /><br />Liebe Grüße<br />Euer webmastersworld

Aufrufen können wir diese Seite im Browser mit:

http://www.ihredomain.de/index.php?site=test2


Wenn Sie jetzt also die Seite wechseln wollen, dann ändern Sie im Browser nur nach dem Wort test die Zahl 1 und 2 schon erhalten sie 2 verschiedene Seiteninhalte, obwohl Sie nur eine index.php verwenden!

ZUSATZ: Der Vollständigkeit halber (obwohl es oben eher klar wurde), ist darauf hingewiesen, dass die links zu diesen Seiten auch so geschrieben werden müssen, wie in den Browser eingegeben: index.php?site=test1 und index.php?site=test2!

Daher finden wir in der index.php auch die Zeile $site=(addslashes($_GET[‘site’]));

Die Variable site wird also an den Browser übergeben und von dort mit $_GET abgeholt. Wozu dann das ‚addslashes’? > um SQL-Injections zu vermeiden! Diese Funktion addslashes() bewahrt Sie vor bösen Überraschungen, die Angriffe über die Adresszeile des Browsers gemacht werden könnten, wenn klar wird, dass Sie mit $_GET arbeiten!


Kommentare
Achtung: Du kannst den Inhalt erst nach dem Login kommentieren.
Portrait von Furby-1
  • 28.02.2010 - 21:51

super tutorial...verständlich erklärt

Portrait von MeCHanU
  • 22.02.2010 - 15:27

echt super tutorial :)

Portrait von alejeune
  • 21.11.2009 - 17:08

tolles tut! und gleich teil 2 lesen.

Portrait von Kouki
  • 03.10.2008 - 20:32

super tut, finde es sehr verständlich

Portrait von whitetip
  • 10.06.2008 - 08:43

geiles tut

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 07.05.2008 - 11:10

Also ich finde das Tutorial eigentlich ganz gut.
Uradar, anstatt nur zu motzen, solltest du vielleicht anmerken was ausführlicher behandelt werden könnte.

Portrait von Uradar
  • 29.03.2008 - 11:54

Leider nicht so ausführlich und prickelnd beschrieben.

Portrait von lippl
  • 24.12.2007 - 10:58

gut verständlich sogar for mich;)

Portrait von breakdown
  • 15.12.2007 - 18:22

richtig ausfuehrlich. so verstehen das auch anfaenger

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 11.11.2007 - 17:46

Super für Anfänger.

Kleiner Tipp beim arbeiten mit $get Variablen:

Es besteht auch die Möglichkeit, die includes bzw. die Namen der include Dateien, in ein Array zu schreiben und und zu prüfen ob sich die einzuladende Datei in diesem befindet, wenn ein inlcude aufgerufen werden soll.

Portrait von coolfussel
  • 24.07.2007 - 07:40

Wirklich nicht schlecht gemacht! Nur fällts einem a bisserl schwer am Ball zu bleiben. Und leider nicht wirklich was für Anfänger. Trotzdem weiter so!!!

Portrait von pikemon
  • 05.06.2007 - 12:22

nicht schlecht aber ich meine auch nicht wirklich was fuer anfänger. MFG

Portrait von Liebling373
  • 10.05.2007 - 11:24

Nicht schlecht gemacht! Hut ab nur weiter so, immer fleißig bleiben!

Portrait von afr0kalypse
  • 23.04.2007 - 10:16

schönes tut. leider für anfänger nicht wirklich geeignet, wie ich finde.

Portrait von gilla
  • 23.04.2007 - 04:06

Gutes Tutorial,
da gut umschrieben und mit vielen Details gefüllt.
Sehr gut weil endlich mal der Code beschrieben wird und man nicht nur kopieren und hinnehmen soll.

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 08.04.2007 - 18:29

Dankeschön. Leider nicht so ausführlich und prickelnd beschrieben.

Portrait von Rata
  • 06.04.2007 - 21:17

Na, bin mal auf Teil 2 gespannt ;)


Lieber Gruß
Rata

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 06.04.2007 - 16:21

Da ist es ja. :)

Danke für das erstellen des Tutorials.
Sehr interessant.

Greetz

Alternative Portrait
-versteckt-(Autor hat Seite verlassen)
  • 06.04.2007 - 12:58

cooles tut - danke! ;o)
und frohes osterfest!

x
×
×