tutorials.de Buch-Aktion 05/2012
Seite 1 von 2 12 LetzteLetzte
ERLEDIGT
NEIN
ANTWORTEN
16
ZUGRIFFE
1658
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von NoFate
    NoFate NoFate ist offline Mitglied Bronze
    Registriert seit
    Apr 2002
    Ort
    Exil Bielefelder in Berlin (ARMINIA IST WIEDER DA)
    Beiträge
    45
    Hi Community,

    Ich hab da 'ne Datenbank in der meine User mit username, password und rank gespeichert sind. Diese Daten sollen nun ausgelesen und in einem Cookie gespeichert werden. Der Code zum auslesen ist mir bekannt, also bin net ganz dumm .

    Das Problem ist nun folgendes:
    Jeder User darf nur die für ihn erlaubten Informationen bekommen. Es gibt insgesamt drei Ranks und jeder User hat 'ne eigene ID (is ja logisch). Diese Informationen (Rank & ID) müssen also im Cookie gespeichert werden und auf jeder Unterseite in Variablen geschrieben werden, da diese wiederum für die Datenbankabfragen relevant sind.
    Sollte nun ein User versuchen, auf eine Unterseite zu gelangen, die nicht für ihne bestimmt ist, dann sollte er automatisch zur Loginseite geführt werden.
    Es soll unbedingt 'ne Lösung mit Cookies sein!

    Kennt irgendjemand ein verständliches (Online-)Tutorial oder hat gar ein Script, das sich abwandeln ließe?

    Danke schon mal im Voraus für Eure Postings!

    Best Regards
    NoFate

    Achja, bitte keine Tipps alá "kauf Dir mal nen PHP-Buch" oder ähnliches
    Danke
     
    internetkonzept.de » Das Journal rund um Webstandards und Netzkultur

  2. #2
    SpAder SpAder ist offline Mitglied Silber
    Registriert seit
    May 2002
    Ort
    das off
    Beiträge
    58
    also du machst ein loginformular in der $login_user und $login_password an eine login.php übergeben werden.
    diese sieht so aus:

    PHP-Code:
    <?
    // Hier Verbindung zum Mysql-Server einfügen *g*
    //

    // die Logindaten einlesen
    $login_user $_GET['login_user'];
    $login_password $_GET['login_password'];

    // Prüfen ob Benutzername und Password übereinstimmen
    $query "SELECT * FROM members WHERE (nick like '$login_user') AND (password = '$login_password')";
            
    $result mysql_query ($query) or die("Zugriffstabelle konnte nicht geprüft werden: " mysql_error());
            if (
    mysql_num_rows ($result) > 0
                {    
                    
    // wenn ja cookie "$eingeloggt" setzen
                    
    setcookie("eingeloggt""true"); 
                    
                    
    // abfrage des Accesslevels des users
                      
    $query "select id, access from members where (nick like '$login_user')";
                      
    $result mysql_query($query) or die (mysql_error());
                      
    $id_access mysql_fetch_array($result);
                    
    $user_id $id_access[0];
                     
    $user_access =  intval($id_access[1]);
                    
    // cookie "$user_id" mit der Id des Users setzen
                    
    setcookie("user_id"$user_id); 
                    
    // cookie "$user_access" mit dem accesslevel des users setzen
                    
    setcookie("user_access"$user_access);
                    include(
    "site_top.php");
                    echo 
    "erfolgreich eingeloggt,<br>\n<a href='admin.php'>zur geschützten site</a>\n";    
            }
            else
                {
                      echo 
    "Login fehlgeschlagen";
            }
    ?>
    Auf deiner Navigationsseite setzt du das hier ganz oben hin um die Variablen aus den Cookies auszulesen:
    PHP-Code:
    $eingeloggt $HTTP_COOKIE_VARS['eingeloggt'];
    $user_id $HTTP_COOKIE_VARS['user_id'];
    $user_access $HTTP_COOKIE_VARS['user_access']; 
    Mit diesen Variablen kannst jetzt ja leicht vor jede Site ne If-schleife in der der nötige access level geprüft wird setzen
    Geändert von SpAder (23.05.02 um 16:04 Uhr)
     
    42 Badewannen bitte!

  3. #3
    Avatar von NoFate
    NoFate NoFate ist offline Mitglied Bronze
    Registriert seit
    Apr 2002
    Ort
    Exil Bielefelder in Berlin (ARMINIA IST WIEDER DA)
    Beiträge
    45
    Coooolio und vielen Dank!

    Es ****t! *freu*

    Aber eins quält mich. In den Nukeseiten (lacht bitte nicht) steht oft folgende Syntax:
    PHP-Code:
    if(!isset($var) { exit(); } 
    Was bedeutet das? Hat das was mit den im Cookie gespeicherten Variablen zu tun?

    Wie immer vielen Dank!

    Und an die Macher dieser Page, die mir Gott weiß warum bis vor kurzem nicht bekannt war:
    Cool und weiter so!
     
    internetkonzept.de » Das Journal rund um Webstandards und Netzkultur

  4. #4
    SpAder SpAder ist offline Mitglied Silber
    Registriert seit
    May 2002
    Ort
    das off
    Beiträge
    58
    if(!isset($var) { exit(); }

    also das bedeutet ja dass wenn die Variable $var NICHT gesetzt ist die funktion exit() aufgerufen wird mit der das script ja beendet wird;

    aber wo hast du das her? Nukeseiten?
     
    42 Badewannen bitte!

  5. #5
    Avatar von NoFate
    NoFate NoFate ist offline Mitglied Bronze
    Registriert seit
    Apr 2002
    Ort
    Exil Bielefelder in Berlin (ARMINIA IST WIEDER DA)
    Beiträge
    45
    Yup, die habe ich aus nem nuke 4 script. Steht auf jeder Site in der ersten zeile.
     
    internetkonzept.de » Das Journal rund um Webstandards und Netzkultur

  6. #6
    SpAder SpAder ist offline Mitglied Silber
    Registriert seit
    May 2002
    Ort
    das off
    Beiträge
    58
    tut jetzt nimmer viel zur sache, denn was es macht dürfte ja klar sein, aber ich hab echt keine ahnung was Nuke 4 ist *g*
     
    42 Badewannen bitte!

  7. #7
    Registriert seit
    Apr 2002
    Ort
    Poing
    Beiträge
    197
    Original geschrieben von SpAder
    tut jetzt nimmer viel zur sache, denn was es macht dürfte ja klar sein, aber ich hab echt keine ahnung was Nuke 4 ist *g*
    Ich denk mal eine Seite über dat Portal PHP Nuke, kennst du das. Hab einen Link dazu auf meiner Page
     

  8. #8
    Koose Koose ist offline Mitglied
    Registriert seit
    May 2002
    Beiträge
    16
    Hi NoFate!

    Du könntest das ganze noch auf ein Cookie reduzieren. Technisch bringt es zwar nichts, aber manche Leute müssen jedes Cookie bestätigen und das würde sich dann auf ein mal reduzieren.

    Ersmal musst du mit folgendem Script alles in ein Cookie verpacken:

    PHP-Code:
    //compact schreibt alle drei Variablen in ein Array
    $arr=compact("eingeloggt","user_id","user_access");

    //implode trennt die Teile des Arrays mit einem zeichen (hier &)
    $str=implode("&",$arr);

    setcookie("cook"$str""""""0); 
    Und mit diesem bekommst du wieder die ursprünglichen Variablen:

    PHP-Code:
    //Die & werden wieder raus genommen
    $arr=explode("&",$cook);

    //Das Array wird wieder in drei Teile geteillt (hier c_0 bis c_1) ACHTUNG! Zählt immer ab 0
    foreach ($arr as $k=>$elem){
    ${
    "c_$k"} = $elem;
    }

    //Schließlich bekommen sie wieder die alten Namen
    $eingeloggt=$c_0;
    $user_id=$c_1;
    $user_access=$c_2
    Ich hoffe es ****t einwandfrei.

    MFG
    Koose
     

  9. #9
    Avatar von NoFate
    NoFate NoFate ist offline Mitglied Bronze
    Registriert seit
    Apr 2002
    Ort
    Exil Bielefelder in Berlin (ARMINIA IST WIEDER DA)
    Beiträge
    45
    Danke!

    Endlich mal 'ne Community, wo man nicht gleich über Anfänger herfällt *g*

    Eine Frage hab ich aber noch:
    Wie krieg ich das hin, dass das (der?) Cookie sich beim schließen der Site selbst löscht?
     
    internetkonzept.de » Das Journal rund um Webstandards und Netzkultur

  10. #10
    SpAder SpAder ist offline Mitglied Silber
    Registriert seit
    May 2002
    Ort
    das off
    Beiträge
    58
    hey brain, fette idee Koose
    aber ich setz die variablen noch für einiges anderes auf meiner site ein da geh ich das risiko ein dass jemand 3 mal bestätigen muss *g*
     
    42 Badewannen bitte!

  11. #11
    Koose Koose ist offline Mitglied
    Registriert seit
    May 2002
    Beiträge
    16
    Hi NoFate!

    Jeder war mal ****, sogar ich

    Ein Cookie setzt sich ja aus mehreren Teilen zusammen sie man alle mit dem setcookie-Befehl bestimmen kann. Der komplette Behfehl heißt:
    PHP-Code:
    setcookie("NAME","WERT","VERFALLSZEIT","PFAD","DOMAIN","SICHERHEIT"
    NAME: Der Name des Cookies
    WERT: Was halt drinnen steht
    VERFALLSZEIT: Zeit wann das Cookie wieder weg ist. Am besten "time()+ XX" reinschreiben. time() bedeutet die jetzige Zeit und XX sind die Sekunden wie lange es ab jetzt da ist. Du kannst auch einfach nur eine Zahl hinschreiben, das sind dann aber die Sekunden seit 0:00 Uhr am 1.1.1970. Also mach lieber time().
    PFAD: Der des Servers für den das Cookie gilt (bei members.tripod.de/ich ist es das ich)
    DOMAIN: Die Domain des Servers (also members.tripod.de)
    SICHERHEIT: Ob es nur über eine SSL Verbindung geschickt werden darf oder nicht (1 oder 0)

    NAME und WERT müssen gesetzt sein, die anderen nicht. Bei PFAD und DOMAIN ist es dann der Server von dem das Cookie geschickt wird, bei SICHERHEIT ist es automatisch 0 (also nicht sicher).

    So und wenn du jetzt ZEIT leer läst, dann gilt das Cookie nur bis zum schließen des Browsers und ist dann futsch.

    Also läst du es am besten weg dann past alles

    MFG
    Koose

    P.S.: Ich weiß ich schreib zu viel aber mir ist langweilig.



    @SpAder



    (Noch ein P.S. weil du es geschrieben hast während ich das hier geschrieben hab.)

    Naja bei einer Privaten HP ist das ja kein Prob aber ich kenn einen SHOP da schreibt er 12 sachen in das Cookie und am Anfang hatten sies noch in einzellne gesteckt (keine Angst, war vor der Veröffentlichung). Da sag ich nur: Ade lieber Kunde.
    Geändert von Koose (23.05.02 um 21:09 Uhr)
     

  12. #12
    SpAder SpAder ist offline Mitglied Silber
    Registriert seit
    May 2002
    Ort
    das off
    Beiträge
    58
    @ Koose
    hm yo doch das is echt n beispiel wo mans so machen sollte
    (wer cookies einzeln bestätigt hats normalerweise eh ned verdient meine sites zu sehen )




    und wemmer grad schon dabei sind alles zum thema cookies zu erklären, dann hab ich ja glatt vergessen zu posten wie man den logout macht auch wenns ned wirklcih kompliziert ist (mich allerdings als ichs gelernt habe doch in mittlere verzweiflung stürtzte, weil ich nicht auf die idee mit negativem timewert kam und nach einem befehl uzm löschen von cookies gesucht habe *g*)

    hier also meine logout.php:
    PHP-Code:
    setcookie("eingeloggt""true"time()-3600); 
    setcookie("user_id"$user_idtime()-3600); 
    setcookie("user_access"$user_accesstime()-3600); 
    einfach die cookies mit nem negativen timewert versehen.
     
    42 Badewannen bitte!

  13. #13
    Registriert seit
    Jan 2002
    Ort
    Betelgeuse
    Beiträge
    709
    noch mal zu dem text weiter oben.

    wenn sie es benutzen würde es so:
    PHP-Code:
    if(!isset($var)) { exit(); } 
    anstatt
    PHP-Code:
    if(!isset($var) { exit(); } 
    heißen.
     
    been there, done that, lived it, left it

  14. #14
    Registriert seit
    Apr 2002
    Ort
    Poing
    Beiträge
    197
    Original geschrieben von brÅinstorm
    noch mal zu dem text weiter oben.

    wenn sie es benutzen würde es so:
    PHP-Code:
    if(!isset($var)) { exit(); } 
    anstatt
    PHP-Code:
    if(!isset($var) { exit(); } 
    heißen.
    Ich hasse solche Fehler, ich mach sie auch ständig
     

  15. #15
    Avatar von NoFate
    NoFate NoFate ist offline Mitglied Bronze
    Registriert seit
    Apr 2002
    Ort
    Exil Bielefelder in Berlin (ARMINIA IST WIEDER DA)
    Beiträge
    45
    Hi,

    hehe hab ich auch schon bemerkt *g*

    Bei mir passiert das auch ständig mit falschen oder vertippten Tabellennamen in der SQL-Abfrage. Und dann Stunden nach Fehlern Suchn! Geil!
     
    internetkonzept.de » Das Journal rund um Webstandards und Netzkultur

Ähnliche Themen

  1. login mit session und cookie
    Von lape im Forum PHP
    Antworten: 2
    Letzter Beitrag: 10.08.06, 14:36
  2. Antworten: 1
    Letzter Beitrag: 29.01.05, 12:11
  3. Antworten: 12
    Letzter Beitrag: 12.09.04, 12:30
  4. Login Cookie für Wbb speichern!
    Von i-mehl im Forum PHP
    Antworten: 26
    Letzter Beitrag: 08.03.04, 16:24
  5. Problem bei Login/Cookie
    Von [pG]Flo im Forum PHP
    Antworten: 4
    Letzter Beitrag: 19.06.02, 19:23