webmaster resource
+ Webmaster Forum von Webmaster-Resource.de » Webcoding » PHP (Moderatoren: Christian Felken, » тнє $υι¢ι∂є « ™)
|-+ PHP-Loginbereich programmieren...
Username:
Password:

Seiten: [1]
Topic Tools  
Read 16. August 2007, 10:57:14 #0
maxwell

PHP-Loginbereich programmieren...

Hallo @ all,

also ich bin zumindest was Php betrifft ein Neuling. Jedoch bringe ich teilweise sehr fortgeschrittene Kenntnisse in python, c, c++ und vb mit, was sich auf das reine Kontextverständnis von php positiv auswirkt.

Nun zu meiner Frage:

Ich möchte einen Login-Bereich programmieren der einen Registrierungsprozess (mit eMail-Benachrichtigung & Berechtigungscode) beinhaltet. Ich habe die auf der hp aufgeführten Tutorials zu diesem Thema bereits durchgearbeitet. Auch habe ich mich der Suche im forum bemüht!  Grinsend

Ich verstehe nur nicht wie:

1. ich weitere Seiten (nachgelagerte Seiten) schütze, respektive nach erfolgtem Login diese verlinke?,
2. muss die Session jedesmal erneut aus der MySQL-DB abgefragt werden? (Wenn "Ja" - preformance-lastig?),
3. ist die Session "Global" vergeben?
4. ich meinen Bereich so schütze, dass nachgelagerte (geschützte Seiten) nicht über die Adresszeile aufgerufen werden können?,
5. kann man die Session auch auf ein Timeout begrenzen?

Für etwaige Hilfe wäre ich sehr Dankbar, sodass ich schnell auf eigenen Füßen stehen kann.
Viele Grüße an alle,
Chris
Offline  
Read 16. August 2007, 13:39:47 #1
» тнє $υι¢ι∂є « ™

Re: PHP-Loginbereich programmieren...

moin wir haben dafür auch schon ein tut!


http://www.webmaster-resource.de/tricks/php/webseite-mit-http-authentifizierung-schuetzen.php


mfg epix


Offline  
Read 16. August 2007, 14:36:53 #2
sf-design

Re: PHP-Loginbereich programmieren...

Naja, wie man sowas macht ist nicht leicht zu erklären, das bringt einfach die Zeit mit sich.
Am Anfang wird man noch mehrere Sachen umständlich lösen, die man später besser hinbekommt.

Deshalb kann ich dir jetzt auch nur ein paar Tipps geben.
Zuerst zur Registrierung: Dazu machst du einfach ein Formular für die Benutzerdaten. Wenn dieses dann abgeschickt wird, schreibst du diese Daten in die Datenbank, lässt den Benutzer aber erstmal unberechtigt.
Dann sendest du eine Email (dazu findest du hier auch Tutorials), in der du einen Zufallscode generierst und den auch zum Vergleich in der Datenbank abspeicherst.
Wenn der Benutzer dann auf den Link in der Email klickt und der Code richtig ist wird er freigeschaltet.
Beim Login selbst musst du dann einfach die Benutzerangaben überprüfen und dann die Session (meiner Meinung nach besser als Cookies) erstellen.
Für alle geschützen Dokumente erstellst du dir dann einfach eine Funktion, die überprüft, ob die Session-Daten gültig sind und bei Erfolg die Seite anzeigt, sonst kommt eine Fehlermeldung.
Die Session selbst kannst du dann auf jeder Seite abrufen. Über einen Timeout brauchst du dir auch keine Gedanken machen, da Sessions je nach Server schon nach einiger Zeit automatisch verfallen.


Offline  
Read 16. August 2007, 14:54:26 #3
maxwell

Re: PHP-Loginbereich programmieren...

Hallo @ all,

erstmal Danke für die Hilfe!

Zitat
Beim Login selbst musst du dann einfach die Benutzerangaben überprüfen und dann die Session (meiner Meinung nach besser als Cookies) erstellen.

OK- das Überprüfen der Angaben ist relativ einfach (Basistutorial)! Jedoch wie erstelle ich die Session? Mit Session_start()? Und wohin scheibe ich die Sessiondaten? In eine Textdatei? - oder in die Datenbank? 

Zitat
Für alle geschützen Dokumente erstellst du dir dann einfach eine Funktion, die überprüft, ob die Session-Daten gültig sind und bei Erfolg die Seite anzeigt, sonst kommt eine Fehlermeldung.
Die Session selbst kannst du dann auf jeder Seite abrufen.

Woher die Session abrufen?

Gibt es vielleicht ein genauer auskommentiertes Beispiel für mein Vorhaben - wo wirklich nur das nötigste enthalten ist?

@moderator

Das ist leider nicht das was ich suche! ;-)
Ich schau es mit aber dennoch an - kann ja net schaden!

Viele Grüße
Chris


Offline  
Read 16. August 2007, 15:14:05 #4
sf-design

Re: PHP-Loginbereich programmieren...

Sessions werden auf dem Server abgespeichert und lassen sich jederzeit abrufen, sofern die Funktion session_start() in den jeweiligen Dokumenten ausgeführt wird.
Sie sind also sogesehen global und nicht auf eine aktuelle Seite beschränkt.

Ein auskommentiertes Beispiel, dass einen gesamten Loginbereich beeinhaltet, kenne ich nicht, da ich mir das sowieso alles selbst erstellt habe und nur die einzelnen Grundlagen zusammengesucht habe.
Zu solchen Themen müsste man wenn schon einen Workshop machen, da es zu einem vernünftigen System einfach ein langer Weg ist und das nicht einfach mal so gemacht ist.

Deshalb bleibt wohl auch dir nichts anderes übrig, als dich selbst man ran zu wagen, so lernt man solche Sachen auch viel besser und man muss ja nicht direkt alles perfekt machen Zwinkernd


Offline  
Read 14. Oktober 2007, 21:22:39 #5
neuling

Re: PHP-Loginbereich programmieren...

mal ne frage wie kann ich herausfinden wie lange vom server die session gespeichert wird und wie kann ich da eine zeit angeben wann sie verfällt weil ich habe bei meiner Registrierungssseite nicht den Umstand gemacht und einen zufallscoode generieren zu lassen sondern habe pw und usernam in einer session abgespeichert und die per e-mail mitgeschickt sobald der Registrierte dem Link folgt wird der Ihnhalt genau mit dem auf meier Datenbank abegespeicherten pw und username verglichen

mich würde interisieren wie man die session lebdauer beeinflussen kann.ich habe leider keinen zukriff auf die php.ini datei
Offline  
Read 08. Dezember 2007, 22:53:39 #6
Daniel

Re: PHP-Loginbereich programmieren...

mal ne frage wie kann ich herausfinden wie lange vom server die session gespeichert wird und wie kann ich da eine zeit angeben wann sie verfällt weil ich habe bei meiner Registrierungssseite nicht den Umstand gemacht und einen zufallscoode generieren zu lassen sondern habe pw und usernam in einer session abgespeichert und die per e-mail mitgeschickt sobald der Registrierte dem Link folgt wird der Ihnhalt genau mit dem auf meier Datenbank abegespeicherten pw und username verglichen

mich würde interisieren wie man die session lebdauer beeinflussen kann.ich habe leider keinen zukriff auf die php.ini datei

Code:
<?php

/* setzen der Cacheverwaltung auf 'private' */

session_cache_limiter('private');
$cache_limiter session_cache_limiter();

/* setzen der Cache-Verfallszeit auf 30 Minuten */
session_cache_expire(30);
$cache_expire session_cache_expire();

/* starten der Session */

session_start();
?>



Offline  
Read 08. Dezember 2007, 23:07:51 #7
Daniel

Re: PHP-Loginbereich programmieren...

Zitat
1. ich weitere Seiten (nachgelagerte Seiten) schütze, respektive nach erfolgtem Login diese verlinke?,
jede Seite die geschützt werden soll muss so beginnen:
Code:
<?php
session_start
();
if(!
$_SESSION['user_id']) die('zugriff verweigert');
?>


Zitat
2. muss die Session jedesmal erneut aus der MySQL-DB abgefragt werden? (Wenn "Ja" - preformance-lastig?),
Die Session-Vars werden auf der Festplatte des Webserver (in den meisten Fällen) abgelegt. Kann man performance-technisch vernachlässigen, solange man keine dicken Dateien in die Vars packt.

Zitat
3. ist die Session "Global" vergeben?
Ja, sie gilt für jedes PHP-Document welches deinem Serverpfad folgt
also
Code:
http://deineseite.de/erstesession.php         -  anlegen von $_SESSION['startwert']
http://deineseite.de/ein/pfad/zweitesessionseite.php         $_SESSION['startwert'] ist hier bekannt
Zitat
4. ich meinen Bereich so schütze, dass nachgelagerte (geschützte Seiten) nicht über die Adresszeile aufgerufen werden können?,
Siehe Punkt 1.)

Zitat
5. kann man die Session auch auf ein Timeout begrenzen?
Auch das geht, nur etwas umständlich:
1. Dokument, anlegen der Session
Code:
<?php
session_start
();
$_SESSION[startzeit] = time();
$_SESSION[maxtime] = 360// Zeit in Sekunden die die Session gültig sein soll
?>

2. Dokument, abfragen der Werte
Code:
<?php
session_start
();
if(
$_SESSION[startzeit] < time() - $_SESSION[maxtime]) session_destroy();
?>



Viel Spass beim Basteln

Daniel
« Letzte Änderung: 08. Dezember 2007, 23:13:54 von Daniel »

Offline  
Seiten: [1]
Gehe zu: