ich will meine Startseite(also nur index.php) für euch zur Verfügung stellen!
Oben(unter dem Header) ist eine Leiste, wo immer Items lang "laufen", welche sich beim überfahren der Maus vergrößern. Diese Items kann man in der Datenbank bearbeiten.
Dann hat es noch eine Navigationsleiste.
Die Leiste kann man auch über die Datenbank bearbeiten.
Also man kann immer wieder neue Menüpunkte ganz simpel hinzufügen.
Zu den Menüpunkten:
Rechte Tabelle
Rechte | Für welchen User |
---|---|
1 | Gast(nicht eingeloggt) |
2 | Eingeloggter User |
3 | Admin, GM |
Die Seiten werden per iframe immer reloaded, daher ist rfi & lfi nicht möglich ;D
Script:
index.php
nitem.php
style.css
DB
PHP Code:
<?php
$host = "localhost";//IP vom Server
$user = "root"; //User
$pass = ""; //PW
$sqlServ = mysql_connect($host, $user, $pass) OR die("Die Verbindung zur Datenbank ist fehlgeschlagen!");
?>
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Unbenanntes Dokument</title>
<link href="/style.css" rel="stylesheet" type="text/css">
</head>
<body>
<!-- Header -->
<div align="center">
<iframe src="nitem.php" align="Center" height="200" width="100%" scrolling="no" frameborder="0"></iframe>
</div>
<!-- end Header -->
<div class="sidebar1" align="left">
<ul class="nav">
<?php
if(empty($_SESSION["user"]))
{
$naviquery = mysql_query('SELECT * FROM hp.navi WHERE rechte = 1 order by pos ASC');
}
else
{
$user = mysql_fetch_array(mysql_query('SELECT * FROM account.account WHERE username="'.$_SESSION[$session_prefix."user"].'"'));
if($user["admin"]==0) $naviquery = mysql_query('SELECT * FROM navi_'.$language.' WHERE rechte = 1 OR rechte = 2 order by pos ASC');
else if($user["admin"]==1) $naviquery = mysql_query('SELECT * FROM navi WHERE rechte = 1 OR rechte = 2 OR rechte = 3 order by pos ASC');
}
while($nav_item = mysql_fetch_array($naviquery))
{
echo'<li><a href="'.$nav_item["link"].'" target="Content">'.$nav_item["text"].'</a></li>';
}
echo'</div>';
?>
</ul>
<!-- end .sidebar1 --></div>
<div class="content" align="center">
<iframe src="Hauptseite.txt" height="100%" width="100%" frameborder="0" id="Content" name="Content" scrolling="no"> </iframe>
<!-- end .content --></div>
<div class="footer">
<div align="right">
<!-- Made by 0x4D617276 -->
Public Homepage Script for Metin2 Server </div>
<!-- end .footer --></div>
<!-- end .container --></div>
</body>
</html>
nitem.php
PHP Code:
<?php
$host = "localhost";//IP vom Server
$user = "root"; //User
$pass = ""; //PW
$sqlServ = mysql_connect($host, $user, $pass) OR die("Die Verbindung zur Datenbank ist fehlgeschlagen!");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Unbenanntes Dokument</title>
</head>
<body>
<div class="container">
<div class="header"><a href="#"><img src="" alt="Hier Logo einfügen" name="Insert_logo" width="100%" height="90" id="Insert_logo" style="background: #C6D580; display:block;" /></a></div>
<div align="left">
<marquee dir="rtl" scrollamount="5" id="marqueee">
<?php
$naviquerys = mysql_query('SELECT * FROM hp.newitems');
while($nav_items = mysql_fetch_array($naviquerys))
{
echo'<a href="'.$nav_items["link"].'" target="Content"><div align="center"><img src="'.$nav_items["bildlink"].'" width="64" height="64" title="'.$nav_items["beschreibung"].'" onMouseOver="this.width=128;this.height=128" onMouseOut="this.width=64;this.height=64" /></div><div align="center"><p>'.$nav_items["text"].'</p></div></a>';
}
?>
</marquee></div></div>
</body>
</html>
style.css
PHP Code:
@charset "utf-8";
body {
font: 100%/1.4 Verdana, Arial, Helvetica, sans-serif;
background: #42413C;
margin: 0;
padding: 0;
color: #000;
}
/* ~~ Element-/Tag-Selektoren ~~ */
ul, ol, dl { /* Aufgrund von Abweichungen zwischen verschiedenen Browsern empfiehlt es sich, die Auffüllung und den Rand in Listen auf 0 einzustellen. Zu Konsistenzzwecken können Sie die gewünschten Werte entweder hier oder in den enthaltenen Listenelementen (LI, DT, DD) eingeben. Beachten Sie, dass die hier eingegebenen Werte hierarchisch auf die .nav-Liste angewendet werden, sofern Sie keinen spezifischeren Selektor festlegen. */
padding: 0;
margin: 0;
}
h1, h2, h3, h4, h5, h6, p {
margin-top: 0; /* Durch Verschieben des oberen Rands wird das Problem behoben, dass Ränder aus dem zugehörigen div-Tag geraten können. Der übrig gebliebene untere Rand hält ihn getrennt von allen folgenden Elementen. */
padding-right: 15px;
padding-left: 15px; /* Durch Hinzufügen der Auffüllung zu den Seiten der Elemente innerhalb der div-Tags anstelle der div-Tags selbst entfallen jegliche Box-Modell-Berechnungen. Alternativ kann auch ein verschachteltes div-Tag mit seitlicher Auffüllung verwendet werden. */
}
a img { /* Dieser Selektor entfernt den standardmäßigen blauen Rahmen, der in einigen Browsern um ein Bild angezeigt wird, wenn es von einem Hyperlink umschlossen ist. */
border: none;
}
/* ~~ Die Reihenfolge der Stildefinitionen für die Hyperlinks der Site, einschließlich der Gruppe der Selektoren zum Erzeugen des Hover-Effekts, muss erhalten bleiben. ~~ */
a:link {
color: #42413C;
text-decoration: underline; /* Sofern Ihre Hyperlinks nicht besonders hervorgehoben werden sollen, empfiehlt es sich, zur schnellen visuellen Erkennung Unterstreichungen zu verwenden. */
}
a:visited {
color: #6E6C64;
text-decoration: underline;
}
a:hover, a:active, a:focus { /* Durch diese Gruppe von Selektoren wird bei Verwendung der Tastatur der gleiche Hover-Effekt wie beim Verwenden der Maus erzielt. */
text-decoration: none;
}
/* ~~ Dieser Container mit fester Breite umschließt die anderen div-Tags. ~~ */
.container {
width: 960px;
background: #FFF;
margin: 0 auto; /* Der mit der Breite gekoppelte automatische Wert an den Seiten zentriert das Layout. */
}
/* ~~ Für die Kopfzeile wird keine Breite angegeben. Sie erstreckt sich über die gesamte Breite des Layouts. Sie enthält einen Bild-Platzhalter, der durch Ihr eigenes, mit Hyperlink versehenes Logo ersetzt werden sollte. ~~ */
.header {
background: #ADB96E;
}
/* ~~ Dies sind die Spalten für das Layout. ~~
1) Eine Auffüllung wird nur oben und/oder unten in den div-Tags positioniert. Die Elemente innerhalb dieser div-Tags verfügen über eine seitliche Auffüllung. Dadurch müssen Sie keine Box-Modell-Berechnungen durchführen. Zu beachten: Wenn Sie dem div-Tag eine seitliche Auffüllung oder einen Rahmen hinzufügen, werden diese zu der festgelegten Breite addiert und ergeben die *gesamte* Breite. Sie können auch die Auffüllung für das Element im div-Tag entfernen und ein zweites div-Tag ohne Breite und mit der gewünschten Auffüllung im ersten div-Tag einfügen. Sie können auch die Auffüllung für das Element im div-Tag entfernen und ein zweites div-Tag ohne Breite und mit der gewünschten Auffüllung im ersten div-Tag einfügen.
2) Für die Spalten wurde kein Rand angegeben, da es sich um fließende Spalten handelt. Wenn Sie unbedingt einen Rand hinzufügen möchten, platzieren Sie ihn nicht auf der Seite in Flussrichtung (z. B. ein rechter Rand in einem div-Tag, das so festgelegt ist, dass das Element nach rechts fließt). In vielen Fällen kann stattdessen eine Auffüllung verwendet werden. Bei div-Tags, bei denen diese Regel gebrochen werden muss, sollten Sie der Regel des div-Tags eine display:inline-Deklaration hinzufügen, um das Problem zu umgehen, dass in einigen Versionen von Internet Explorer der Rand doppelt angezeigt wird.
3) Da Klassen in einem Dokument mehrmals verwendet werden können (und zudem auf ein Element mehrere Klassen angewendet werden können), wurden den Spalten Klassennamen statt IDs zugewiesen. Beispielsweise können zwei div-Tags für eine Seitenleiste bei Bedarf gestapelt werden. Diese div-Tags können problemlos in IDs geändert werden, solange Sie sie nur einmal pro Dokument verwenden.
4) Wenn Sie die Navigation auf der rechten statt auf der linken Seite platzieren möchten, lassen Sie diese Spalten einfach in die andere Richtung fließen (alle nach rechts anstatt alle nach links). Die Spalten werden dann in umgekehrter Reihenfolge dargestellt. Die div-Tags in der HTML-Quelle müssen nicht verschoben werden.
*/
.sidebar1 {
float: left;
width: 200px;
background: #EADCAE;
padding-bottom: 10px;
height: 1080px;
}
.content {
padding: 10px 0;
width: 760px;
float: left;
}
/* ~~ Dieser gruppierte Selektor gibt die Listen im .content-Bereich an. ~~ */
.content ul, .content ol {
padding: 0 15px 15px 40px; /* Diese Auffüllung setzt die rechte Auffüllung in der obigen Regel für Überschriften und Absätze fort. Die Auffüllung wurde unten für den Abstand zwischen anderen Elementen in den Listen und links für den Einzug platziert. Sie können die Werte nach Bedarf ändern. */
}
/* ~~ Stile für die Navigationslisten (können entfernt werden, wenn Sie ein vordefiniertes Ausklappmenü wie Spry verwenden) ~~ */
ul.nav {
list-style: none; /* Hiermit wird die Listenmarkierung entfernt. */
border-top: 1px solid #666; /* Hiermit wird der obere Rand für die Hyperlinks erstellt. Alle anderen werden mit einem unteren Rand im LI-Element platziert. */
margin-bottom: 15px; /* Hiermit wird der Abstand zwischen den Navigationselementen und den Inhalten unten erstellt. */
}
ul.nav li {
border-bottom: 1px solid #666; /* Hiermit wird die Trennung der Schaltflächen erstellt. */
}
ul.nav a, ul.nav a:visited { /* Durch Gruppieren dieser Selektoren wird sichergestellt, dass die Hyperlinks auch nach dem Aufrufen die Form einer Schaltfläche beibehalten. */
padding: 5px 5px 5px 15px;
display: block; /* Hiermit werden die Blockeigenschaften für den Hyperlink angegeben, sodass das gesamte umschließende LI-Element aufgefüllt wird. Hiermit wird angegeben, dass der gesamte Bereich auf einen Mausklick reagiert. */
width: 180px; /*Mit dieser Breite reagiert die gesamte Schaltfläche in IE6 auf Mausklicks. Kann entfernt werden, wenn IE6 nicht unterstützt werden muss. Berechnen Sie die exakte Breite durch Subtrahieren der Auffüllung für diesen Hyperlink von der Breite des Containers für die Randleiste. */
text-decoration: none;
background: #C6D580;
}
ul.nav a:hover, ul.nav a:active, ul.nav a:focus { /* Hiermit wird der Hintergrund und die Textfarbe bei der Navigation mit der Maus und der Tastatur geändert. */
background: #ADB96E;
color: #FFF;
}
/* ~~ Fußzeile ~~ */
.footer {
padding: 10px 0;
background: #CCC49F;
position: relative;/* Hiermit erhält IE6 die Eigenschaft hasLayout, damit die clear-Anweisung korrekt ausgeführt wird. */
clear: both; /* Diese clear-Eigenschaft bewirkt, dass .container das Ende der fließenden Spalten erkennt und ihren Inhalt aufnimmt. */
}
/* ~~ Verschiedene float/clear-Klassen ~~ */
.fltrt { /* Mit dieser Klasse können Sie ein Element auf der Seite nach rechts fließen lassen. Das fließende Element muss vor dem Element stehen, neben dem es auf der Seite erscheinen soll. */
float: right;
margin-left: 8px;
}
.fltlft { /* Mit dieser Klasse können Sie ein Element auf der Seite nach links fließen lassen. Das fließende Element muss vor dem Element stehen, neben dem es auf der Seite erscheinen soll. */
float: left;
margin-right: 8px;
}
.clearfloat { /* Diese Klasse kann in einem <br />-Tag oder leeren div-Tag als letztes Element nach dem letzten fließenden div-Tag (im #container) platziert werden, wenn #footer entfernt oder aus dem #container herausgenommen wird. */
clear:both;
height:0;
font-size: 1px;
line-height: 0px;
}
DB
PHP Code:
/*
Navicat MySQL Data Transfer
Source Server : Localhost
Source Server Version : 50145
Source Host : localhost:3306
Source Database : hp
Target Server Type : MYSQL
Target Server Version : 50145
File Encoding : 65001
Date: 2011-04-10 21:00:28
*/
SET FOREIGN_KEY_CHECKS=0;
-- ----------------------------
-- Table structure for `navi`
-- ----------------------------
DROP TABLE IF EXISTS `navi`;
CREATE TABLE `navi` (
`pos` int(2) NOT NULL,
`rechte` int(1) NOT NULL,
`title` char(50) NOT NULL,
`link` char(50) NOT NULL,
`text` char(50) NOT NULL,
PRIMARY KEY (`pos`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of navi
-- ----------------------------
INSERT INTO `navi` VALUES ('1', '1', 'Test', '../index.php', 'Test');
-- ----------------------------
-- Table structure for `newitems`
-- ----------------------------
DROP TABLE IF EXISTS `newitems`;
CREATE TABLE `newitems` (
`bildlink` char(50) NOT NULL,
`link` char(50) NOT NULL,
`text` char(50) NOT NULL,
`beschreibung` char(200) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
-- ----------------------------
-- Records of newitems
-- ----------------------------
INSERT INTO `newitems` VALUES ('http://localhost/images/adminContentBoxBack.png', 'http://localhost/images/adminContentBoxBack.png', 'Testitem', 'Dies ist ein Testitem');
PS: style.css wurde von Adobe Dreamweaver generiert, hp.sql mit Navicat ^^
Sorry im Moment keine Demo Page vorhanden :/
MfG
0x4D17276