| Vorheriges Thema anzeigen :: Nächstes Thema anzeigen |
| Autor |
Nachricht |
PhP0Kid Profi-Benutzer
Anmeldedatum: 05.01.2007 Beiträge: 414 Wohnort: Ellwangen (nahe Aalen) Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)
|
Verfasst am: 09.01.2007, 18:30 Titel: [PHP] Loginscript |
|
|
So, ich würd mal gern eure Konzepte / Grundstrukturen eines Php-Loginsscriptes wissen.
Wie gestaltet ihr Sicherheit? Wie verschachtelt ihr eure Seite? Funktioniert das Loginscript mit mehreren Seiten? Cookies oder nur Sessions?
Hier mein Konzept:
| Code: |
session_start();
if(!isset($_SESSION['loggedin'])){
//Wenn man nicht eingeloggt ist
if(!isset($_POST['login'])){
//Wenn man das Formular noch nicht bestätigt hat, Formular ausgeben
[FORMULAR]
}
else{
//Formular auswerten,einloggen und weiterleiten
}
}
else{
//Nach beliebigen anderen Abfragen INTERN
}
|
Natürlich hab ich schon andere Systeme ausprobiert, aber dieses scheint mir ganz nett. Ich nutze nur Sessions, da es eig. nur eine Faulheit für User ist, automatisch neu einzuloggen. Das finde ich, macht das ganze unsicherer. Wer mir das Gegenteil beweisen kann, fände ich klasse =)
Desweiteren liegt das Ganze innerhalb einer Datei. Im Formular steht einfach action="<php>". Das finde ich wiederum sehr hilfreich, dann macht es das Loginsystem kleiner, als es sonst sein würde. Mein einziger Nachteil: Nach Ausfüllen des Formulars, wird es ausgewertet und es muss eine Session gesetzt werden, dass der User nicht reloaded und so das Formular erneut abschickt. Wäre bei nem Loginscript nicht schlimm, aber bei ner Mail doof. Nen Header kann man da wegen des HTML ja schon nicht mehr senden. Vllt. fällt mir da mal was besseres ein =) Aber erst mal kommt mein Forum xD
lg _________________ http://www.Julian-Stier.de | T-REx 2.2
Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008
Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009 |
|
| Nach oben |
|
 |
synapsis Administrator

Anmeldedatum: 15.10.2006 Beiträge: 390 Wohnort: Nahe München Programmiersprachen: C/C++, VB, (Java), PHP, JS, AJAX, Python Compiler: gcc, MS VS2005 SE
|
Verfasst am: 14.01.2007, 13:35 Titel: |
|
|
Ich kann dir da leider nicht wirklich helfen, da ich noch nicht so lange mit PHP arbeite, aber von der Struktur und dem Prinzip sieht das eigentlich gar nicht schlecht aus. Vielleicht findest du ja hier etwas. Oder du schaust einfach, wie es z.B. in einem phpbb-Forum gemacht wird.  _________________ Pssst... Syncom.org Relaunch im Herbst 2008... bitte weitersagen  |
|
| Nach oben |
|
 |
chriZ Neuer Benutzer

Anmeldedatum: 08.01.2007 Beiträge: 9 Wohnort: Brb :: CB Programmiersprachen: xHTML, CSS, PHP, MySQL
|
Verfasst am: 16.02.2007, 20:38 Titel: |
|
|
Am besten ist, du arbeitest mit einer Datenbank + Sessions zusammen. In der Datenbank hinterlegst du dein Name + Passwort + evtl. Userrechte.
Beim Login Script über ein Formular wird der Name + Passwort per POST abgeglichen, wenn diese Daten mit der DB übereinstimmt, werden diese in einer Session gespeichert!
Beim ausloggen wird die Session gelöscht. Du kannst auch noch die Zeit per "time()" integrieren und wird bei jedem Seitenaufruf aktualisiert. Wenn der User eine Zeitlang inaktiv ist, wirst du automatisch ausgeloggt.
Desweiteren ist es ratsam in jeder Seite eine Art "checkuser" zu integrieren, diese ist notwendig um unbefugte auzusperren. In der "checkuser" ist eine Abfrage per if, die fragt ob eine Session mit Namen + Passwort + evtl Rechte besteht.
Mfg chriZ _________________ chriZ : Design |
|
| Nach oben |
|
 |
PhP0Kid Profi-Benutzer
Anmeldedatum: 05.01.2007 Beiträge: 414 Wohnort: Ellwangen (nahe Aalen) Programmiersprachen: PHP, CSS, (X)HTML, SQL, JavaScript, C++ (nach Erfahrung von links nach rechts)
|
Verfasst am: 17.02.2007, 11:17 Titel: |
|
|
Genau so mache ich das, nur dass ich bei neueren Projekten auch manchmal Cookies mit einbaue (verlängert den Code, weil man alles doppelt abfragen muss - nicht jeder hat Cookies)
Naja, letztendlich mach ichs auch so, dass eine Variable $_SESSION['loggedin'] und/oder $_COOKIE['loggedin'] sowie "user_name" da sein muss, sonst kommt man gleich zum login
Das war nur mal Grundprinzip bzw Aufbau eines Logins von mir. Wie geht ihr im Konzept vor? Macht ihr ein Formular und schickt es zu einer neuen Seite?
Erzählt mal
Freut mich, dass es eine Antwort gab *g*
lg _________________ http://www.Julian-Stier.de | T-REx 2.2
Fertiges ( 16.7.08 ):
* Julian-Stier.de, Blog - Juli/August 2008
Aktuelles ( 16.7.08 ):
* T-REx 2.3.0 - release 2008/2009
* GlobalIndustry - release 2008/2009 |
|
| Nach oben |
|
 |
thorn Fortgeschrittener Benutzer

Anmeldedatum: 23.09.2007 Beiträge: 53 Wohnort: Niederried b.K. (CH) Programmiersprachen: PHP, MySQL, (X)HTML, CSS, JS, C, VB
|
Verfasst am: 01.10.2007, 23:45 Titel: |
|
|
Ich arbeite mittlerweile nur noch mit Sessions... ohne wäre es kaum möglich...
Bei den relevanten Daten frage ich beispielsweise einfach nach einer $_SESSION['UserID'] ob jene existiert, wenn ja, ist der Benutzer eingeloggt, wenn nicht, dann halt eben nicht...
| Code: |
if(isset($_SESSION['UserID']))
$loginsql = "SELECT * FROM users WHERE id = ".$_SESSION['UserID'];
elseif(isset($_POST['loginuser']) && !empty($_POST['loginuser']) && isset($_POST['loginpw']) && !empty($_POST['loginpw']))
$loginsql = "SELECT * FROM users WHERE user = '".$_POST['loginuser']."' AND pw = PASSWORD('".$_POST['loginpw']."')";
if(isset($loginsql)) {
$userdata = mysql_fetch_assoc(mysql_query($loginsql));
$_SESSION['UserID'] = $userdata['id'];
} |
Mal so in kürze geschrieben... hat sich bislang immer bewährt
$userdata beinhaltet auch gleich die Benutzerdaten
Sollte auf der Seite die SID in der URL mitgegeben werden, wäre vorzugsweise die IP-Adresse in der Session zu speichern und zu vergleichen, damit nicht plötzlich ein anderer Rechner auf den selben Benutzer zugreift...
Das ganze kann auch mit einem Cookie erweitert werden... |
|
| Nach oben |
|
 |
|
|
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst deine Beiträge in diesem Forum nicht bearbeiten. Du kannst deine Beiträge in diesem Forum nicht löschen. Du kannst an Umfragen in diesem Forum nicht mitmachen. Du kannst Anhänge in diesem Forum nicht anhängen. Du kannst Dateien in diesem Forum nicht herunterladen.
|
|