[HTML] CSS Menü

Das kannst Du am besten mit Server Side Includes machen, dabei schreibst Du den entsprechenden HTML-Schnipsel (also ohne Header usw.,) in eine extra Datei und setzt dann in den Seiten, wo Du diesen Schnipsel einbauen willst, ein <!--#include virtual="/includes/navigation.inc" -->

Funktioniert aber nicht lokal, sondern nur mit einem Webserver (einem, der das kann).

Siehe auch http://de.selfhtml.org/servercgi/server/ssi.htm

Alternativ kannst Du das natürlich auch mit PHP machen (mit require ('datei.txt'); würde man dann was einfügen), aber die ganze Seite auf PHP umzubauen (und sich damit Stunden Arbeit zu machen) nur weil man das Menü nicht immer einfügen (und sich damit einige Minuten einsparen) will ist natürlich bekloppt. Das wäre dann sinnvoll, wenn man aus anderen Gründen eh auf PHP setzt.
 
Zuletzt bearbeitet:
Da eine Seite sowieso immer gleich aufgebaut sein sollte, würde ich dir raten, einfach ein Muster zu erstellen und jede Unterseite dann so im Inhalt zu ändern wie du es möchtest...

Beispiel gefällig?

PHP:
<html>
<head>
<meta http-equiv="Content-Language" content="de">
<meta http-equiv="Content-Type" content="text/html/css; charset=iso-8859-1">
<title>Home</title>
<link rel="stylesheet" type="text/css" href="style/style.css">
</head>
<body>	  
                   <div class="content">
                         <div class="Bild">
                          </div>
                           <div align="left">
                             <div class="leftbox">
                               <div align="center">
                                 <br>
                                 <a href="Hauptseite.html">Home</a><br>
                                 <a href="DeinLink1.htm">PCs</a>
                                 <a href="DeinLink2.htm">Impressum</a>
                               </div>
                             </div>
                            </div>
                            <div align="center">
                              <div class="midbox">
                               DEIN Inhalt (für jede Seite unterschiedlich)
                             </div>
                             <div align="right">
                              <div class="rightbox">
                               <div align="center">
                                Inhalt  
                               </div>
                             </div>
                            </div>
                             <div class="downbox">
                              <div align="center">     
                              Inhalt
                              </div>
                             </div>
                          </div>
                   </div>                  
</body>

P.S.: Wenn du was aus dem Code übernehmen willst... Da ist alles getestet und ohne Fehler;)

mfg

elite.bl4ze
 
Ich habe einen eigenen Apache2.

in sites-available habe im entsprechenden Directory gesetzt:
Options Includes
AddHandler server-parsed .html

Und einen Symlink von include.load auf den mods-enabled folder gesetzt.

Ich kann jetzt z.B. das Datum anzeigen lassen aber wenn ich mache:
<!--#include virtual="/var/www/test/main/test.html" -->

Dann kommt nur error processing. Rechte sind ok aber von welcher Ordnerebene geht da Apache aus?

Ich möchte nicht auf jeder Seite das Menü wiederholen da das bei 50 Seiten einfach zu mühselig ist.

Edit: Hat sich erledigt, der Pfad war main/test.html
 
Zuletzt bearbeitet:
Da eine Seite sowieso immer gleich aufgebaut sein sollte, würde ich dir raten, einfach ein Muster zu erstellen und jede Unterseite dann so im Inhalt zu ändern wie du es möchtest...
...

Du willst doch nicht allen Ernstes immer auf jeder Seite alles so mit drin haben und damit quasi immer die komplette Seite inkl. Menü, Kopf etc. immer mitladen in einer Datei die sich nur im Text unterscheidet?

Ich würde da ja raten sich mal etwas PHP anzugucken und auc hggf. drübe rnachzudenken den Inhalt aus ner Datenbank zu holen. Muss nicht zwingend, ist aber noch etwas schöner um Inhalt vom Layout zu trennen.

Beispiele dafür gibts genug im Netz. Ne recht nette und gut verständliche Anleitung wie man so was machen kann findet sich hier: http://tut.php-q.net/

Dmait hat man dann ein paar Grundlagen und kann das Ganze nach den eigenen Wünschen umstricken und verbessern. Ist aber für "die Basics" nicht schlecht.

Für CSS gibts dazu ein paar nette Sachen auf css4you.de. Da dürfte sich auch schon was finden lassen.
 
Zuletzt bearbeitet:
Also am einfachsten geht das mit dem php include, und da muss man nicht die ganze Seite auf php umsetzen.

da reicht dann sowas <?php include('navigation.php')?> das is alles und das menü packst dann in die menüleiste.php
 
Jo genau das wird auch in den von mir verlinkten Seiten beschrieben. Ist halt erst mal die einfachste Lösung. Und dann Inhalt dann dynamisch nachladen/erzeugen. Klingt schwerer als es ist und gerade für kleinere Seiten kann man da doch schon rel. schnell Erfolge erziehlen.

Ich würde auf jeden Fall, wie auch bisher in allen anderen Webprogrammierungs Threads, dazu raten Abstand von Frames und Tabellen fürs Layout zu nehmen. Sich sofort vernünftiges CSS anzueignen und auch direkt ein Bisschen PHP und MySQL dabei zu machen. Für eine kleine Seite muss man da gar nicht so viel können. Und man muss ja nicht sofort mit Loginsystemen oder was auch immer arbeiten.

Hier findet sich z.B. die Beschreibung eines einfachen Seitenaufbaus: http://tut.php-quake.net/de/layout.html, wenn ich auch dazu raten würde, dass man sich durchaus mal die PHP Grundlagen durchliest, zumindest wenn man noch nie programmiert hat und nix mit Variablen, Schleifen usw. anfangen kann.
 
Zuletzt bearbeitet:
Also das haut jetzt hin mit SSI include.

Kennt jemand eine einfache Möglichkeit um auf einer Seite Comments hinzuzufügen wie bei Blogs?

Und bei CSS hätte ich noch ein Problem:

HTML:
<div id="Layer1" style="position: absolute; z-index:1; width:170px; height:20px; left:705px; top: 245px; color:#999">menu by www.cssplay.co.uk</div>

Diese Zeile will ich über ein Bild legen, was auch funktioniert. Aber wenn man die Größe des Browserfensters ändert dann verschiebt sich der Text.

Die anderen Layer sind in der Position auch nicht fest vorgegeben, nur in ihrer Breite. Gibts dann nur die Möglichkeit alle Layer am linken Rad auszurichten oder?
 
Also das haut jetzt hin mit SSI include.

Kennt jemand eine einfache Möglichkeit um auf einer Seite Comments hinzuzufügen wie bei Blogs?

Und bei CSS hätte ich noch ein Problem:

HTML:
<div id="Layer1" style="position: absolute; z-index:1; width:170px; height:20px; left:705px; top: 245px; color:#999">menu by www.cssplay.co.uk</div>

Diese Zeile will ich über ein Bild legen, was auch funktioniert. Aber wenn man die Größe des Browserfensters ändert dann verschiebt sich der Text.

Die anderen Layer sind in der Position auch nicht fest vorgegeben, nur in ihrer Breite. Gibts dann nur die Möglichkeit alle Layer am linken Rad auszurichten oder?

1) ein klein wenig php + mysql und das haut hin...
2) das sich das verschiebt ist klar, da die angabe "left" sich auf den linken rand des browserfensters bezieht, auf die schnelle wärs vielleicht einfach das bild in einen div zu legen, diesen auszurichten und in diesen div noch einen div mit deinem text mit hineinzupacken oder einfach nur ein div und das bild per css als background: url('blablaurl') top left no-repeat; dann musst du natürlich auch width und height explezit angeben, je nach größe des bildes eben...

Die anderen Layer sind in der Position auch nicht fest vorgegeben, nur in ihrer Breite. Gibts dann nur die Möglichkeit alle Layer am linken Rad auszurichten oder?

vielleicht solltest du alle divs in einen "container"-div packen, dann tust du dir schon etwas einfacher, da sich positionsangaben dann auf diesen eltern-div beziehen...
 
Apache2 hat anscheinend Probleme gleichzeitig ssi und php zu verarbeiten in nur einer Dateiendung also habe ich jetzt alles in PHP gemacht aber die Dateien enden noch mit .html. Hat man da einen Vorteil wenn die mit .php5 enden? Lieber wäre mir .html.

Das einzige was mir auffällt das Dreamweaver nur korrekt anzeigt wenn man eine php Endung hat aber da könnte ich zum editieren immer noch vorher umbenennen.

Nach php muss ich ja sowieso alles parsen lassen, da alles in einem File steht oder?

Kennt noch jemand ein simples Guestbook mit php/mysql so wie auf Blogs?
.
EDIT :
.

Hier wäre ein Guestbook
http://www.coderemix.com/tutorials/basic-php-mysql-guestbook-tutorial

mysql habe ich auch installiert aber mit der Userverwaltung blicke ich noch nicht so ganz durch wie man das einstellt.

Warning: mysql_query() [function.mysql-query]: Access denied for user 'www-data'@'localhost' (using password: NO) in /var/www/test/main/guestdisp.php on line 3

Ausserdem habe ich gelesen das man www-data dazu nicht benützen sollte.
.
EDIT :
.

Ich hab das jetzt schon etwas abgeändert und Grundsätzlich funktioniert es auch aber wenn man nach dem abschicken die F5 im Browser drückt, schickt der den Kommentar nochmal ab. Deswegen möchte ich vorher mit SQL SELECT prüfen ob der Kommentar schon drin steht und dann nicht abschicken.

PHP:
<?php


if(isset($_POST['process']) and $_POST['process']==1)
{
    $name = trim($_POST['name']);
    $comments = trim($_POST['comments']);


if($name !='' and $comments !='')
{

	
	$query = 'SELECT * FROM guestbook WHERE 
	name = "'.$name.'",
	comments = "'.$comments.'"';

	
	$result = mysql_query($query);

	if(!$result)
	{


			$query = 'INSERT INTO guestbook SET
			name = "'.$name.'",
			comments = "'.$comments.'",
			datetimecreated = NOW()';



 			if(mysql_query($query))
    				{
        			echo '<p style="color:#00F;">Danke f&uuml;r deinen Eintrag!</p>';
    				}
    				else
    				{
        			echo '<p style="color:#C00;">Sorry, dein Eintrag konnte nicht &uuml;bertragen werden!</p>';
    				}
	
	}
	else
	{
	echo '<p style="color:#C00;">Eintrag schon vorhanden!</p>';
	}



}
else
{
echo '<p style="color:#C00;">Gib bitte Name und Kommentar an!</p>';
}



}
?>

Der betreffende Teil der nicht geht ist:

PHP:
$query = 'SELECT * FROM guestbook WHERE 
	name = "'.$name.'",
	comments = "'.$comments.'"';

	
	$result = mysql_query($query);

	if(!$result)

Geht vermutlich nicht weil er nur liefert ob die SQL Abfrage erfolgreich ist. Ich möchte aber wissen ob der eine row liefert oder nicht.
 
Zuletzt bearbeitet:
Danke, den mysql_fetch_row hatte ich schonmal drin aber das ging nicht weil ich kein AND drin hatte.

So gehts:

PHP:
$result = mysql_query($query);
	$row = mysql_fetch_row($result);
	if(!$row)

Jetzt müsste ich nur noch rausfinden wo ich die Berechtigungen für die Datenbank einstelle.

Den User kann man ja angeben mit:
PHP:
$connection=mysql_connect('localhost',user','password') or die(mysql_error());
 
phpMyAdmin hat ne Userverwaltung mit drin. Wird das einfachste sein. ;)

Gruß,
Max
 
Werd ich aber nicht installieren den phpmyadmin ;D

Habe hier noch eine extra passwort geschützte Datei wo ich Einträge (eine ganze row) löschen möchte aber irgendwie löscht der da nichts. Die ID wird aber mit echo korrekt angezeigt.

PHP:
<?php
    $id = trim($_POST['id']);
    $query = 'DELETE FROM guestbook WHERE 
	id="'.$id.'"';
	$result = mysql_query($query);

	if($result)
	{
	echo($id." gel&ouml;scht");
	}
	else
	{
	echo("Fehler beim l&ouml;schen");
	}
?>
.
EDIT :
.

Das mit den Usern ist hier gut beschrieben:
http://www.internist-schmidt-lohfelden.de/ReadMe/Anlegen neuer Benutzer unter MySQL.htm

Jetzt brauch ich nur noch die Löschoption und es ist fertig :)
 
Hm, ansich sieht die SQL-Abfrage OK aus. Aber lass mal die Anführungszeichen weg (ist ja ein Integer-Wert). Vielleicht klappts dann...

Gruß,
Max
 
Zurück
Oben Unten