Also gut dan mal los...
Erst mal sorry, dass du so lange warten musstest. Aber ich hatte gestern kein bock mehr erlich gesagt...
So nun zu deinem problem:
Wenn du meinem ersten Rat gefolgt bist dann hast du jetzt Ahnugn über php und mysql. Ich mache es aber trotzdem, weil man nie sicher sein kann, dass jeder das tut, was er tun sollte.
Zu erst solltest du dir einen Server zulegen, der mysql und php unterstützt. Ich könnte ohost empfehlen.
ohost.de 2500 mb webspace mit ftp / mysql kostenlos.
Du brauchst eine Datenbakn, wo du einen Tabelle machst, der ich jetzt mal den Namen "member" gebe. kann man nacher ja noch ändern. Dann solltest du 5 Spalten machen:
- id
- name
- passwort
- status (deine lieblingsuder bekommen hier eine "1" standart "0")
- admin (hier machst du am besten "1" rein. damit du admin rechte hast)
Was du eintragen musst ist hoffentlich klar!
Dann hier einen code für den login:
HTML:
<form action="login2.php" method="post">
Dein Username:
<input type="text" size="24" name="username"><br><br>
Dein Passwort:
<input type="password" size="24" name="passwort"><br>
<input type="submit" value="Login">
</form>
Natürlich kannst du drüber unt drunter noch ein bisschen Style einfügen. grundsätzlich muss diese Datei weder *.php sein, noch einen bestimmten namen haben. Außer du nutzt diese datei als Startseite. Dann sollte sie "index.php" heißen und direkt auf dem Server sein (nicht in unterordner).
Die "login2.php" sollte so ausehen:
PHP:
<?php
session_start();
?>
<?php
$verbindung = mysql_connect("localhost", "BenutzerName" , "DeinPasswort")
or die("Die Verbindung zum mysql-Server ist fehlgeschlagen. Versuchen Sie es nochmal!!");
mysql_select_db("datenbankname") or die ("Die Datenbank konnte nicht verbunden werden!");
//Eine Verbindung zum Mysql-server wird hier gemacht.
$username = $_POST["username"];
$passwort = $_POST["passwort"];
//Den eingegebenen Namen und das Passwort werden hier abgefragt
$abfrage = "SELECT name, passwort FROM member WHERE username LIKE '$username' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
//Hier werden die Daten von der MYSQL-Datenbank geladen. Nur name und passwort!
if($row->passwort == $passwort)
{
//Hier wird das passwort überprüft!
$_SESSION["username"] = $username;
echo "Du bist erfolgreich eingeloggt.";
Header("Location: weiterleitung.php");
}
else
{
//wenn name oder passwort nicht stimmen kommt das hier!
echo "Dein Name oder dein Passwort stimmen nicht.";
}
?>
Zu erst wird die mysql-datenbank verbunden, dann wird das eingegebene passwort mit dem im mysql eingetragenen passwort überprüft.
mit
PHP:
Header("Location: weiterleitung.php");
wird man weietrgeleitet. das geht nicht, wenn du einen aufwendigen head style über dem code hast.
Nun bist du eingeloggt oder nicht. Also haben wir schon 2 probleme gelöst.
nun zu den geschützten seiten.
Bei den Seiten, die der normale User nutzen darf ist es einfach:
PHP:
<?php
session_start();
?>
<?php
if(!isset($_SESSION["username"]))
{
echo "Bitte erst <a href=\"login.html\">einloggen";
exit;
}
?>
Hier wird nur überprüft, ob der user sich eingeloggt hat, bzw. ob $_SESSION['username] existiert.
Bei den Seiten, auf die nur du darfst machst du diesen code rein:
;ugl;ugl
PHP:
<?php
session_start();
$verbindung = mysql_connect("localhost", "BenutzerName" , "DeinPasswort")
or die("Die Verbindung zum mysql-Server ist fehlgeschlagen. Versuchen Sie es nochmal!!");
mysql_select_db("datenbankname") or die ("Die Datenbank konnte nicht verbunden werden!");
?>
<?php
if(!isset($_SESSION["username"]))
{
echo "Sie sind nicht eingeloggt!";
exit;
}
$nname = $_SESSION["username"]
$abfrage = "SELECT name, admin FROM member WHERE username LIKE '$nname' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
if($row->admin!="1")
{
echo "Du bist nicht der Admin";
exit;
}
//Seiteninhalt
?>
So und nun zu deinen Lieblingsusern
:
Also ich würde dass so machen:
PHP:
<?php
$verbindung = mysql_connect("localhost", "BenutzerName" , "DeinPasswort")
or die("Die Verbindung zum mysql-Server ist fehlgeschlagen. Versuchen Sie es nochmal!!");
mysql_select_db("datenbankname") or die ("Die Datenbank konnte nicht verbunden werden!");
if(!isset($_SESSION["username"]))
{
echo "Sie sind nicht eingeloggt!";
exit;
}
$nname = $_SESSION["username"]
$abfrage = "SELECT name, status FROM member WHERE username LIKE '$nname' LIMIT 1";
$ergebnis = mysql_query($abfrage);
$row = mysql_fetch_object($ergebnis);
if($row->status!="1")
{
echo "Du bist kein Lieblingsmember. Hier haben nur lieblingsmember zutritt!";
exit;
}
//Seiteninhalt
?>
Das registrierungsformular auf das nur du kommst kann man so machen.
Übrigens würde ich das nicht empfehlen, da dieleute dir das passwort anvertrauen müssen, was nicht jeder macht...
Also gut der code: (nicht vergessen, dass nur du das machen darfst also den obigen code vorher einfügen und als php speichern!)
HTML:
<form action="reg.php" method="post">
Der Username:<br>
<input type="text" size="24" name="username"><br><br>
Das Passwort:<br>
<input type="password" size="24" name="passwort"><br>
Passwort wiederholen:<br>
<input type="password" size="24" name="passwort2"><br>
<input type="submit" value="Eintragen">
</form>
nun zum reg.php:
PHP:
<?php
$verbindung = mysql_connect("localhost", "Benutzername" , "Passwort")
or die("Die Verbindung geht nicht //emc991");
mysql_select_db("datenbankname") or die ("Datenbank konnte nicht ausgewählt werden");
$username = $_POST["username"];
$passwort = $_POST["passwort"];
$passwort2 = $_POST["passwort2"];
if($passwort != $passwort2 OR $username == "" OR $passwort == "")
{
echo "Sie haben einen Fehler gemacht.";
exit;
}
$result = mysql_query("SELECT id FROM member WHERE username LIKE '$username'");
$menge = mysql_num_rows($result);
if($menge == 0)
{
$eintrag = "INSERT INTO member (name, passwort) VALUES ('$username', '$passwort')";
$eintragen = mysql_query($eintrag);
if($eintragen == true)
{
echo "Benutzername <b>$username</b> wurde erstellt.";
}
else
{
echo "Fehler beim Speichern des Benutzernames.";
}
}
else
{
echo "Benutzername schon vorhanden.";
}
?>
Nun aus Zeit und Laune grünen (siehe, was ich schon alles geschrieben habe) habe ich diesen script nicht erklärt..
Falls es noch Probleme geben sollte einfach pN...
PS: falls jemand fehler im script findet bitte schnell verbessern bzw. richtig posten danke!
gruß emc991