Wie kann man das machen???
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
angezeigt code
anzugeben code
array
beispiel
check
code
datei
datum
eingegebenen daten
externe datei
fehler
header
http
internen bereich
kleinen beispiel
login
null
parameter
session
system
-
ICh habe bald ne login-prozedur und wie kann ich das machen das eine Seite nur angezeigt wird wenn man eingeloggt ist???
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
Ganz einfach.
Du prüfst ab ob die Session existiert.
Oder mit was das Login-Script auch arbeitet. -
Ich habe eine Externe Datei die überprüft ob $_SESSION[\'id\'] existiert. Diese wird bei mir im loginskript gesetzt.
Und dann include ich diese Datei in mein Skript.
Die Datei sieht so aus:
session_start(); if(!isset($_SESSION[\'id\'])) { echo \"<script language=\\\"Javascript\\\">\"; echo \'alert(\"Du bist nicht berechtigt auf die Adminplattform zuzugreifen\");\'; echo \"</script>\"; die(); }
-
Also ich hab\' schon viele Login\'s geschrieben, und mit PHP ist die bewährteste Variante die, mit den Sessions...
Schon richtig, das Login-Skript wertet erst einmal die eingegebenen Daten aus...
Ich demonstriere mal an einem kleinen Beispiel (mit Logout):
Verwendete Dateien:
login.html
check.php
intern.php
logout.php
Skript\'s:
login.html
In dieser Datei ist der User aufgefordert, die Login-Daten anzugeben...
<!DOCTYPE HTML PUBLIC \'-//W3C//DTD HTML 4.01 Transitional//EN\'> <html> <head> <title> Login </title> </head> <body> <h2> Login: </h2> <br> <br> <form name=\'f-login\' method=\'POST\' action=\'check.php\'> <b> Username: </b> <br> <input type=\'text\' name=\'user\'> <br> <b> Passwort: </b> <br> <input type=\'password\' name=\'pass\'> <br> <input type=\'submit\' name=\'submit\' value=\'Login!\'> </form> </body> </html>
check.php
Hier werden die von User angegebenen Userdaten geprüft...
Hast du das \'the_users\'-System verstanden?
Stattdessen könnte man auch die User aus einer Datenbank holen.
Hast du das System verstanden, wie der Username kontrolliert wird, ob es ihn schon gibt?
Ich hoffe doch, denn das ist schon leicht zu verstehen...
Das gleiche mit dem Passwort.
<?php $the_users = array(); //Das User-Array wird erstellt # $the_users[\'username\'] = \'passwort\'; $the_users[\'admin\'] = \'adminpw\'; //Usernamen... $the_users[\'user1\'] = \'11111\'; //...und... $the_users[\'user2\'] = \'abcd-ef\'; //...Passwörter... $the_users[\'user3\'] = \'xyz321\'; //...werden zugeteilt! # Eingegebene Userdaten werden übergeben $user = htmlspecialchars(@$_POST[\'user\']); $pass = htmlspecialchars(@$_POST[\'pass\']); # Prüfungen if ($user != \'\' and $pass != \'\') { //Wurden die Daten angegeben? if (isset($the_users[$user])) { //Existiert der Username? if ($the_users[$user] == $pass) { //Stimmt das Passwort? session_start(); //Session wird gestartet... # Userdaten in die Session übergeben $_SESSION[\'user\'] = $user; $_SESSION[\'user\'] = $pass; # Der Auth-Parameter wird später noch gebraucht $_SESSION[\'auth\'] = true; # In den Internen-Bereich katapultieren header(\'Location: intern.php\'); } else { echo \'Fehler!\'; } } else { echo \'Fehler!\'; } } else { echo \'Fehler!\'; } ?>
intern.php
Hier wird zuerst geprüft, ob man eingeloggt ist (dafür ist der Auth-Parameter (siehe check.php)).
Dann erst wird die Seite, oder ein Fehler angezeigt...
<?php session_start(); //Session starten # Prüfen: eingeloggt? if ($_SESSION[\'auth\'] == true) { # Ja, eingeloggt! echo \'Hallo und herzlich willkommen im internen Bereich...<br><br><a href=\\\'logout.php\\\'>Logout</a>\'; } else { echo \'Fehler!\'; } ?>
logout.php
Hier wird einfach nur die Session beendet und es wird auf die Login-Seite zurückgrführt...
<?php session_start(); @$_SESSION[\'auth\'] = false; @$_SESSION[\'user\'] = NULL; @$_SESSION[\'pass\'] = NULL; session_destroy(); header(\'Location: login.html\'); ?>
Hoffe, das war verständlich...
Das selbe Beispiel gibt\'s auf meiner Lima-HP...
Der Link dazu: http://php-helper.lima-city.de/beispiele/login_1
Es wurde dort der selbe Code verwendet, also sollten Usernamen und Passwörter klar sein...
Ich kann nur hoffen, ich konnte helfen!
Bei unverständlichkeiten: w/me
Oder E-Mail: tom@55zwei.de
-
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage