einfach nur einloggen

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • einfach nur einloggen

    hi,

    ich möcht' folgendes machen:
    ich hab eine website, auf der eine login-box mit user und passwort zu sehen ist! alle gelinkten pages sollen IMMER verfügbar sein, ob der user nun eingelogged ist oder nicht!
    das einloggen wird erst später benötigt, als variable um entscheidungen zu treffen.
    mein problem:
    WIE kann ich am EINFACHSTEN eine login/passwort-box, (wenn user eingelogged ist) eine begrüssung, sowie ein logout-button & eine eindeutige SessionID vergeben?? (am EINFACHSTEN (evtl. scriptbeispiel?!))

    herzlichen dank schonmal dafür im voraus!!

    grüsse
    martin

  • #2
    also, wenn irgendwann in die Eingabebox was eingibt und abschickt, wird die Navigation wohl neu geladen (?). Egal, als nächster Schritt kommt die Kontrolle, ob User und Passwort stimmen ->

    if ($username=="Test" && $password=="Hallo") {
    session_start();
    session_register($sessID);
    session_register($fl_session);
    $fl_session = true;
    $session_id = session_id();
    }
    else {
    if (session_is_registered ($fl_session)) {
    $session_id = session_id();
    hier dann die Daten von User holen,
    um namentlich zu begrüßen etc.
    }

    und weiter im Text kannst du dann entscheiden:

    if ($session_id) {
    hier dann die Aktion mit Logout+ Name etc.
    }
    else {
    hier übliche Login-Box
    }

    ich hoffe, es stimmt so halbwegs
    falls nicht, sag Bescheid, was nicht klappt.

    Comment


    • #3
      Original geschrieben von BrainBug
      also, wenn irgendwann in die Eingabebox was eingibt und abschickt, wird die Navigation wohl neu geladen (?). Egal, als nächster Schritt kommt die Kontrolle, ob User und Passwort stimmen ->

      if ($username=="Test" && $password=="Hallo") {
      session_start();
      session_register($sessID);
      session_register($fl_session);
      $fl_session = true;
      $session_id = session_id();
      }
      else {
      if (session_is_registered ($fl_session)) {
      $session_id = session_id();
      hier dann die Daten von User holen,
      um namentlich zu begrüßen etc.
      }

      und weiter im Text kannst du dann entscheiden:

      if ($session_id) {
      hier dann die Aktion mit Logout+ Name etc.
      }
      else {
      hier übliche Login-Box
      }

      ich hoffe, es stimmt so halbwegs
      falls nicht, sag Bescheid, was nicht klappt.
      phatt, danke dir -- wie sieht das ganze jetzt aber aus, wenn ich aus der datenbank lese (mysql) ??
      (anstatt fester user=test und password==Xyz) ..

      wäre supi, wenn du mir hier noch 'n hinweis geben könntest

      )

      trotzdem danke!! werde es ausprobieren!

      lg
      martin

      Comment


      • #4
        if ($username!="" && $password!="") {
        $check=mysql_query("select * from table_user where username=$username and password=$password");
        $anz=mysql_num_rows($check);
        if ($anz>0) {
        session_start();
        session_register($sessID);
        session_register($fl_session);
        $fl_session = true;
        $session_id = session_id();
        $userheisstwie=mysql_result($check,0,"nachname");
        }
        }

        if (session_is_registered ($fl_session)) {
        $session_id = session_id();
        hier dann die Daten von User holen,
        um namentlich zu begrüßen etc.
        }
        else {
        hier übliche Login-Box
        }

        Comment


        • #5
          supi, danke dir,
          have to check it out!!

          greetz
          martin

          Comment


          • #6
            Hi BrainBug,

            kannst du mir sagen, woher die $sessID kommt??
            Ich bekomm beim betätigen des Submit-Buttons folgende mySQL-Fehlermeldungen:


            Warning: Cannot send session cookie - headers already sent by (output started at c:/apachehttp/ballbilla/zoidberg/index.php:16) in c:/apachehttp/ballbilla/zoidberg/index.php on line 132

            Warning: Cannot send session cache limiter - headers already sent (output started at c:/apachehttp/ballbilla/zoidberg/index.php:16) in c:/apachehttp/ballbilla/zoidberg/index.php on line 132

            Warning: open(/tmp\sess_023357fb82425bd683cd8e089cf38d5e, O_RDWR) failed: m (2) in c:/apachehttp/ballbilla/zoidberg/index.php on line 132


            please answer ASAP. ...

            greetz
            martin

            Comment


            • #7
              Hi,

              wohl Futurama-Fan

              so, zu deinem Problem:

              du darfst nicht den PHP-Code mitten in ein Folgeskript reinplatzieren sondern gaaaanz oben, bevor zumindest die erste Ausgabe erfolg -> da ist nämlich der PHP-Header schon gesendet und dann ist's zu spät für ein Cookie.

              ach, und die sessID erzeugt PHP von selbst (Session-Management) und schreibt dafür ein temporäres File weg -> letzte Fehlermeldung -> muß schreiben dürfen!

              Comment


              • #8
                zoidberg rulez
                *hmmm*, wie kann ich das lösen (letzte fehlermeldung), ich bekomme die nämlich immer noch .. mein php-file sieht jetzt so aus:


                <?
                session_start(); // sofort sessionID erhalten, auch wenn user noch nicht eingelogged!!

                // set form values if they are filled!
                if ($GLOBALS["HTTP_POST_VARS"]["username"] != "") {
                $usr = $GLOBALS["HTTP_POST_VARS"]["username"];
                }
                if ($GLOBALS["HTTP_POST_VARS"]["password"] != "") {
                $pwd = $GLOBALS["HTTP_POST_VARS"]["password"];
                }

                if ($usr!="" && $pwd!="") {
                mysql_close();
                mysql_connect (localhost,root,test);
                mysql_select_db (test) or die ("datenbank nicht erreichbar");
                $check=mysql_query("select * from users where username='$usr' and password='$pwd'");
                $anz=mysql_num_rows($check);
                if ($anz>0) {
                echo "login on<p>";
                session_destroy();
                session_start();
                session_register($sessID);
                session_register($user_registered);
                session_register($username);
                session_register($password);
                $session_id = session_id();
                $user_registered = true;
                $username = $usr;
                $password = $pwd;
                }
                }

                das ist alles, leider bekomme ich immer noch


                Warning: open(/tmp\sess_0d815634bc5a3bedf921a704f9261bac, O_RDWR) failed: m (2) in c:/apachehttp/ballbilla/zoidberg/index.php on line 2


                danke & gruss
                martin

                Comment


                • #9
                  also, entweder es gibt das Verzeichnis /tmp auf deinem Rechner/Server nicht oder du hast keine Schreibrechte (sehr ungewöhnlich eigentlich).

                  Was ich noch komisch finde ist der Backslash vor dem Session-Filename, aber sonst weiß ich momentan auch keinen Rat

                  okay, bis dann und teste mal schön weiter. Für heute bin ich raus...

                  Comment


                  • #10
                    hey, hab dasselbe problem mit demr verzeichnis, bei mir gibts das, hab nen win98-rechner da kann man glaube garkeine schreibrechte einstellen :-/

                    Comment


                    • #11
                      Original geschrieben von phil-bl
                      hey, hab dasselbe problem mit demr verzeichnis, bei mir gibts das, hab nen win98-rechner da kann man glaube garkeine schreibrechte einstellen :-/
                      doch, das ist gar kein problem (bei mir tut das jetzt auch) - bevor du die session registriert (session_register(), trage ganz oben in deinem skript folgendes (z. B.) ein:

                      session_save_path("c:/tmp/");

                      dann müsste das funktionieren, bei mir tut das, hab zwar Win2K aber das sollte eigentlich keine rolle spielen?!

                      grüsse
                      martin

                      Comment


                      • #12
                        cool, danke !!!
                        ich probiers gleich aus ...


                        Super funktioniert einwandfrei !!!! danke dir !!!

                        [Editiert von phil-bl am 31-03-2001 um 20:06]

                        Comment

                        Working...
                        X