• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

PW abfrage

Toni_91

Neues Mitglied
Hi,
ich würde mir gerne für meine Homepage eine MySQL Datenbank einrichten. Leider habe ich überhaupt keine ahnung davon.
Ich stelle mir das so vor: (gilt alles nur für eine Besimmte seite nicht für die komplette HP)
1.Jeder bekommt einen eigenen Benutzername und ein eigenes Passwort.
2.Man soll sich nicht selber anmelden können. Also nur ich darf neue Benutzer hinzufügen.
3.Nach eingabe des Passwortes soll man auf eine andere html seite weitergeleitet werden.
4.Manche Benutzer auf eine andere seite wie die anderen. (Lieblingsnutzer bekommen dann die bessere seite)

Mein Filehoster hat eine MySQL Datenbank.
Ist das so möglich, wenn ja wie?
 
Werbung:
Du bist noch sehr am Anfang und scheinst nicht im geringsten eine Vorstellung von alledem zu haben :D

zu 1: Ist kein Problem. Musste halt ne entsprechende Tabelle in der Datenbank anlegen
zu 2: Wenn du kein Registrierungsformular erstellst, kann sich auch niemand anmelden
zu 3: Ist kein Problem
zu 4: Kannst du auch in der Tabelle festlegen


Ich schlage dir vor, dich einmal komplett hier durchzuschlagen: #php/QuakeNet Tutorial - Einführung
 
Alles klar!

gut und präzise anfrage...

Also:

Zu erst solltest du eine Ahnung bekommen... Keine Angst das ist einfacher als es aussieht.
PHP-Einfach.de - MySQL Einführung <<Hier bekommst du eine Ahnung..

Hier >> PHP-Einfach.de - Tutorial - Loginscript mit MySQL und Sessions
bekommst du einen script.

Aber nun zum schwierigen Teil.. nähmlich, dass nur du benutzer anlegen darfst.

Wie stellst du dir das vor? Es könnte so ausehen:

1. Der Benutz kann sich zwar registrieren, aber hat erst Zutritt auf den Member-bereich, wenn du ihn zugelassen hast

2. Du legst die Benutzer alle einzeln an
- per mysql-direkt
- per Formular, auf das nur du kommst
- per e-mail (kenn ich mich nicht aus)

3. Der Benutz muss gewisse passwörter oder andere angaben kennen, um sich anmelden zu können ( ein abgemachtes passwort, einen namen vom lehrer etc.)

sag mir was du willst, ich probier einen script zu schreiben :D:D:D

nun zu deinem nächsten Punkt, der bestimmten seite für die andern benutzer...
willst du nur einen anderen style oder eine andere seite mit anderem text??

es würde gehn beides ist möglich!

gruß emc991:?::?:
 
Zuletzt bearbeitet:
Werbung:
Also ich wäre für den 2. punkt:
Ich lege die Benutzer über ein Formular an auf das nur ich zugreifen kann.

Die "beliebteren Benutzer" sollen alles einer html seite gezeigt bekommen und die anderen nur einen Teil davon. (Ich kann auch 2html seiten machen, wäre kein problem).
 
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. :p

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:D:
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
 
Zuletzt bearbeitet:
Werbung:
Uups... war schon lange nicht mehr drinne...

Ja damals hatte ich noch Zeit für so was...

Greez emc991
 
Zurück
Oben