yubb.de-Logo
Tutorials
yubb@yubb
yubbService
Inside yubb

Login mit MySQL und Sessions



Als erstes muss eine MySQL-Tabelle bestehen. Die kann wie folgt aussehen:

Code:
CREATE TABLE login (
Name varchar(20) NOT NULL default '',
Passwort varchar(20) NOT NULL default ''
) TYPE=MyISAM;


Erklärung:

zu CREATE TABLE login | | Die Tabelle "login" wird erstellt

zu Name varchar(20) NOT NULL default '', | | Ein Feld mit dem Namen "Name" wird erstellt mit der Maximal-Größe 20

zu Passwort varchar(20) NOT NULL default ' | | Ein Feld mit dem Namen "Passwort" wird erstellt mit der Maximal-Größe 20


Dann fügt ihr euren Namen und euer Passwort mit INSERT ein:

Code:
INSERT INTO 'login' ('Name', 'Passwort') VALUES ('Admin', 'Pass');


Erklärung:

zu VALUES ('Admin', 'Pass'); | | Hier kann als erstes der Name (hier "Admin") und dann das Passwort eingetragen werden.


login.php: Dann wird das Formular zur Abfrage erstellt:

Code:

<form method="POST" action="check.php">
<div align="center">
<center>
<table border="0">
<tr>
<td width="50%">
<p align="right">Login-Name:</td>
<td width="50%"><input type="text" name="name" size="20"></td>
</tr>
<tr>
<td width="50%">
<p align="right">Login-Pass:</td>
<td width="50%"><input type="text" name="pass" size="20"></td>
</tr>
</table>
</center>
</div>
<p align="center"><input type="submit" value="Einloggen" name="submit"></p>
</form>


Erklärung:

zu <...action="check.php"> | | Hier kann auch z.B. login2.php stehen, je nachdem wie du die Datei nennen willst. (Als Endung muss .php stehen !)


check.php: So jetzt kommt der knifflige Teil (Erklärung im Code):

PHP-Datei:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
session_start
(); 
$sid session_id(); 
$db_host "localhost"// MySQL-Host
$db_user "";  // MySQL-Benutzername
$db_password ""// MySQL-Passwort
$db "";  // MySQL-Datenbank

mysql_connect($db_host$db_user$db_password) or die ("Es konnte keine Verbindung zur MySql hergestellt werden."); 
mysql_select_db($db) or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden."); 
$password $_POST['pass']; 
$user $_POST['name']; 
$query "SELECT * FROM login WHERE Passwort = '$password' AND Name='$user'"
$result mysql_query($query) or die(mysql_error()); 
while(
$row mysql_fetch_array($result)){
  
$checkuser $row['Name']; 
  
$checkpassword $row['Passwort'];} 
  echo
"<title>Ihr Titel für das Login-Formular</title>"
  if(
$user == $checkuser && $password ==  $checkpassword) { 
    
session_register("user","pass"); 
    echo 
"Du wurdest erfolgreich eingeloggt und deine Daten in der Session gespeichert!!"
    echo 
"Hier gehts weiter zur nächsten <a href='seite.php?sid=".$sid."'>Seite</a>";
  } else { 
    echo 
"Deine Daten sind falsch, bitte gehe zurück und verbessere diese!";
  }
?>




seite.php: Hier wirst du hingeleitet, wenn die Eingabe im Formular übereinstimmt mit der in der Datenbank:

PHP-Datei:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
session_start
(); 
session_register("user","password","sid"); 
$db_host "localhost"// MySQL-Host
$db_user "";  // MySQL-Benutzername
$db_password ""// MySQL-Passwort
$db "";  // MySQL-Datenbank
mysql_connect($db_host$db_user$db_password) or die ("Es konnte keine Verbindung zur MySql hergestellt werden."); 
mysql_select_db($db) or die ("Es konnte keine Verbindung zur Datenbank hergestellt werden."); 
$password $HTTP_SESSION_VARS['pass']; 
$user $HTTP_SESSION_VARS['user']; 
$query "SELECT * FROM login WHERE Passwort='$password' AND Name='$user'"
$result mysql_query($query); 
if(
mysql_fetch_array($result)){ 
  echo 
"HIER IST GESCHÜTZTER BEREICH !!!"
} else {
echo 
"Du hast keinen Zutritt!";
}
?>


So das war es auch schon ;). Ich hoffe, es konnte euch helfen.
Viel Spaß damit !



Das ganze kann auf LLCoolDannY.de.vu nachgelesen werden.(Unter Tutorials)

Geschrieben von LLCoolDannY am 18.06.2004 (14907x gelesen)
weiterempfehlen weiterempfehlen   Druckversion Druckversion   kommentieren kommentieren

Spährlich durchkommentiert, eher veraltetes Sessionhandling...



Naja naja... Das kann man besser
Geschrieben von Phil Marx
Tja das waren meine Anfänge
Geschrieben von LLCoolDannY
Das Script war absolut verbuggt, ich habe es verbessert, es sollte nun funktionieren.
Geschrieben von Phil Marx
kann mir da einer ein Logout Skript schreiben???
Geschrieben von pamali
Für einen Logout musst du nur eine Datei aufrufen, die session_destroy() aufruft:

<?
session_destroy();
echo 'Du bist nun ausgeloggt!';
?>
Geschrieben von Phil Marx
MySQL meldet: Dokumentation
#1064 - You have an error in your SQL syntax. Check the manual that corresponds to your MySQL server version for the right syntax to use near ''login' ('Name', 'Passwort') VALUES ('Admin', 'Pass')' at line

ich bin noch ein ziemlicher noob in sachen php mySQL und daher kommt diese meldung kann mir jemand bitte helfen
Geschrieben von ich
Bei mir kommt der fehler!

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /www/htdocs/pireli/check.php:1) in /www/htdocs/pireli/check.php on line 2
Geschrieben von Pireli
@Pireli

Der Code mit "session_start()" MUSS absolut ganz vorne am Anfang der Datei stehen. Es darf nix vorher ausgegeben werden.
Geschrieben von Phil Marx
bekomme nach dem login folgende fehler meldungen

Warning: session_start(): open(C:\Programme\Apache Group\Apache2\htdocs\session\sess_18d3ed1a1425853c43d342ad703e111f, O_RDWR) failed: No such file or directory (2) in C:\Programme\Apache Group\Apache2\htdocs\passwort2\check.php on line 2

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at C:\Programme\Apache Group\Apache2\htdocs\passwort2\check.php:2) in C:\Programme\Apache Group\Apache2\htdocs\passwort2\check.php on line 2

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at C:\Programme\Apache Group\Apache2\htdocs\passwort2\check.php:2) in C:\Programme\Apache Group\Apache2\htdocs\passwort2\check.php on line 2
Du wurdest erfolgreich eingeloggt und deine Daten in der Session gespeichert!!Hier gehts weiter zur nächsten Seite
Warning: Unknown(): open(C:\Programme\Apache Group\Apache2\htdocs\session\sess_18d3ed1a1425853c43d342ad703e111f, O_RDWR) failed: No such file or directory (2) in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (C:\Programme\Apache Group\Apache2\htdocs\session) in Unknown on line 0
Geschrieben von hmmm
ihr luschn diese fehlermeldungen liegen nicht an der datei sondern an eurem webspace holt euch einen von funpic.de

(meine empfehlung dadurch ist mein fehler mit denen wo ihr habt auch behoben worden)


mgf draciel
Geschrieben von newbie in proggeer
@newbie in proggeer

Du bist ein Lutscher, was du vorschlägst ist wohl kaum die Lösung..

@all: Die php.ini muss dafür angepasst werden, auch wenn das eher Pfusch ist.
Ihr müsst aufpassen, dass ihr vor dem Anlegen der Session nicht schon irgendwas ausgebt oder included was HTML oder Javascript oder sonstwas ausgibt
Geschrieben von blubb