Login Tutorial

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Login Tutorial

    //huhu z'samme!

    //Also erstmal große lob für mrhappiness! ich habe an dem code nichts verändert, bis auf die datenbank verbindung! aber das login script will nicht

    Und zwar wenn ich mich einloggen will, gibt er nichts aus!!! also er liest wieder das fomular aus als ob er keine verbindung zur db aufnehmen würde!!<br> hat jemand ne idee woran das liegen könnt?<br>viele grüße

  • #2
    Re: Login Tutorial

    http://www.php-resource.de/forum/sho...threadid=47906
    I don't believe in rebirth. Actually, I never did in my whole lives.

    Kommentar


    • #3
      login.php :
      PHP-Code:
      <? 
      session_start(); 
      include 'sessionhelpers.inc.php'; 
      if (isset($_POST['login'])) 

          $userid=check_user($_POST['username'], $_POST['userpass']); 
          if ($userid!=false) 
              login($userid); 
          else 
              echo 'Ihre Anmeldedaten waren nicht korrekt!'; 

      if (!logged_in()) 
          echo '<form method="post" action="login.php">
       <label>Benutzername:</label><input name="username" type="text"><br> 

       <label>Passwort: </label><input name="userpass" type="password" id="userpass"><br> 

              <input name="login" type="submit" id="login" value="Einloggen"> 

          </form>'; 
      else 
          echo '<a href="logout.php">Ausloggen</a>'; 
      echo '<p /><a href="logged_in.php">Check</a>'; 
      ?>
      also er führt die 2 if anweisung(leeres formular) wieder aus wenn ich meine daten abschicke!
      Zuletzt geändert von asp2php; 10.02.2005, 15:23.

      Kommentar


      • #4
        Kleiner Tipp: Zeilenumbruch, sonst bekommst du keine Hilfe ... !
        Bevor ich nicht in einem angemessenen Alter bin, werde ich keine Witze mehr über schmalle machen!
        - Zitat Berni

        Kommentar


        • #5
          ?

          Kommentar


          • #6
            wahsagas Link willst du nicht richtig lesen?

            Da steht was von nicht erwünschtem Scrollen nach rechts und, nicht unbedingt weniger wichtig, von mysql_error
            Ich denke, also bin ich. - Einige sind trotzdem...

            Kommentar


            • #7
              ach du liebe zeit! sry...

              naja zu der fehlermeldung da git er das aus:

              //Warning: session_start():
              Cannot send session cookie -
              headers already sent by (output started at /homepages/4/********/htdocs/login.php:9) in /homepages/4/********/htdocs/login.php on line 11

              Warning: session_start():
              Cannot send session cache limiter
              - headers already sent (output started at /homepages/4/*******/htdocs/login.php:9) in /homepages/4/*******/htdocs/login.php on line 11

              Kommentar


              • #8
                hmm..komisch jetzt geht es aufeinmal :S

                Kommentar


                • #9
                  Hi All,

                  von mir auch erst mal ein großes lob an mrhappiness!

                  Ich benutze dieses Script in einer modifizierten Version (coockies und so.)seit einem jahr u.

                  Nun meine frage:
                  Wie kann ich heraus finden wer alles eingeloggt ist ?

                  Die UserSession bleibt ja leider gespeichert wenn man die Seite verlässt ohne sich aus zu loggen!

                  Hier ist der Code den ich benutzte:


                  PHP-Code:
                  <?
                  // sessionhelpers.inc.php

                  function check_user($name, $pass, $cook, $ftabel)
                  {
                  if ($cook == "Y") $upass = $pass;
                  if ($cook == "N") $upass = MD5($pass);

                      $sql="SELECT UserId
                      FROM ".$ftabel."_users
                      WHERE UserName='".$name."' AND UserPass='".$upass."'
                      LIMIT 1";

                      $result= mysql_query($sql) or die(mysql_error());
                      if ( mysql_num_rows($result)==1)
                      {
                          $user=mysql_fetch_assoc($result);
                          return $user['UserId'];
                              }
                      else
                          return false;
                  }

                  function login($userid, $ftabel)
                  {
                      $sql="UPDATE ".$ftabel."_users
                      SET UserSession='".session_id()."'
                      WHERE UserId=".$userid;
                       mysql_query($sql);
                  }

                  function logged_in($ftabel)
                  {

                      $sql="SELECT UserId
                      FROM ".$ftabel."_users
                      WHERE UserSession='".session_id()."'
                      LIMIT 1";
                      $result= mysql_query($sql);
                  return ( mysql_num_rows($result)==1);
                  }

                  function logout($ftabel)
                  {
                      $sql="UPDATE ".$ftabel."_users
                      SET UserSession=NULL
                      WHERE UserSession='".session_id()."'";
                       mysql_query($sql);

                  setcookie("wert17f20f88","0",Time()+62208000);
                  setcookie("wert27f20f88","0",Time()+62208000);

                  }
                  ?>
                  PHP-Code:
                  <?
                  // Checkuser.php

                  if (!logged_in($tabel)){

                  // Nicht Eingeloggt
                  }else{
                  //Eingeloggt

                  $sql="SELECT UserId, UserName, UserMail, UserGroup
                      FROM ".$tabel."_users
                      WHERE UserSession='".session_id()."'
                      LIMIT 1";
                      $result= mysql_query($sql) OR die(mysql_error());
                  if(mysql_num_rows($result))
                  { while($row = mysql_fetch_assoc($result)){

                  $cuserid = $row['UserId'];
                  $cusername = $row['UserName'];
                  $cusermail = $row['UserMail'];
                  $cusergroup = $row['UserGroup'];
                  }
                  }

                  }
                  ?>
                  Zuletzt geändert von HSFighter; 10.02.2005, 14:22.

                  Kommentar


                  • #10
                    Eine weitere Spalte, da bei jedem Seitenaufruf die aktuelle Zeit reinschreiben und beim Rausfinden der eingeloggten User die Datensätze anzeigen, wo die Zeit in der Datenbank höchstens 5 Minuten (oder so) kleiner ist als die Aktuelle

                    Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                    bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                    Wie man Fragen richtig stellt

                    Kommentar


                    • #11
                      Jo, thx :-)

                      Darüber habe ich auch schon nachgedacht.

                      Nun mein Probelm:

                      Was ist wenn der User die Seite offen lässt und nur mal für ne stunde weg ist.
                      wir haben ein Forum auf unserer HP da wird der User so lange angezeigt bis er die Seite verlässt auch wenn er 1 stunde drauf ist ohne was zu machen.

                      Wenn er sich dann nicht ausloggt sondern nur das Fenster schließt,
                      ist der User aus der Useronlineliste sofort verschwunden und nicht erst nach 5 min.


                      Ganau das habe ich mit dem Script vor!

                      MfG Andi

                      Kommentar


                      • #12
                        Original geschrieben von HSFighter
                        Was ist wenn der User die Seite offen lässt und nur mal für ne stunde weg ist.
                        wir haben ein Forum auf unserer HP da wird der User so lange angezeigt bis er die Seite verlässt auch wenn er 1 stunde drauf ist ohne was zu machen.
                        wenn der User ne Flatrate hat, kannst du nen unsichbaren iFrame mit JavaScript laden, der dann immer mal wieder deine DB updated! ISDN-User die das Fenster offen lassen, wenn sie sich ausloggen, werden darüber nicht glücklich sein *auf sich zeigt*, dann gibt's nämlich ständig nen "Seite nicht gefunden"-Fehler...

                        Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                        bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                        Wie man Fragen richtig stellt

                        Kommentar


                        • #13
                          problem

                          hallo! das einloggen klappt ohne weiteres,
                          wenn ich nun checken will ob ich überhaupt eingeloggt
                          bin, also auf der logged_in seite... gibt er mir immer
                          an das ich net eingeloggt bin!!!

                          //logges_in.php
                          PHP-Code:
                          <? 
                          session_start(); 
                          include '../sessionhelpers.inc.php'; 
                          if (!logged_in($userid)) 
                          {
                          echo 'nicht '; 
                          echo 'eingeloggt.'; 
                          echo '<a href="login.php">Start</a>';
                          }
                          else
                          {
                          echo 'eingeloggt';
                          }
                          ?>


                          und das ist die funkton in der ini

                          //session helpers
                          PHP-Code:
                          function logged_in() 

                              
                          $sql="SELECT UserId 
                              FROM users 
                              WHERE UserSession='"
                          .session_id()."' 
                              LIMIT 1"

                              
                          $resultmysql_query($sql); 
                                return ( 
                          mysql_num_rows($result)==1); 

                          ich will eine geschützete seite aufrufen, !! hilfe

                          Kommentar


                          • #14
                            Warum lässt du die UserID mit in die Funktion laden?

                            Die brauchst du gar nicht!

                            Probiere mal das aus:

                            PHP-Code:
                            <? 
                            session_start(); 
                            include '../sessionhelpers.inc.php'; 
                            if (!logged_in())
                            {

                            echo 'nicht '; 
                            echo 'eingeloggt.'; 
                            echo '<a href="login.php">Start</a>';
                            }
                            else
                            {
                            echo 'eingeloggt';
                            }
                            ?>
                            MfG Andi

                            Kommentar


                            • #15
                              Noch mal was in Eigender Sache:
                              Erst mal danke für die Vorschläge.
                              Ich habe mir den 1. Vorschlag für die UserOnlineAnzeige
                              von "ghostgambler" verwirklicht.

                              Sobald man eingelogt ist wird immer ein Timestamp Eingetragen sobald man sich durch die HP Klickt.
                              PHP-Code:
                              // checkuser.php

                              if (!logged_in($tabel)){
                              //Nicht eingeloggt
                              }else{
                              // User Online Timestamp Festlegen

                              $czeit time();

                              $sql="UPDATE
                                        "
                              .$tabel."_users
                                    SET
                                        UserOnline = '
                              $czeit'
                                    WHERE
                                      UserSession='"
                              .session_id()."'
                                    LIMIT 1"
                              ;

                              $result mysql_query($sql) OR die("Query: <pre>".$sql."</pre>\n".
                              "Antwort: ".mysql_error());

                              Um die Online User aus zu lesen verwende ich diesen Code:
                              PHP-Code:
                              $sql="SELECT
                                      UserName
                                    FROM
                                      "
                              .$tabel."_users
                                    WHERE
                                      UserOnline > " 
                              . (time() - 300) . "";
                                     
                                  
                              $resultmysql_query($sql) OR die(mysql_error());
                              if(
                              mysql_num_rows($result))
                              { while(
                              $row mysql_fetch_assoc($result)){

                              $username $row['UserName'];

                              echo 
                              ''.$username.'<br>';

                              }

                              Wenn gerade einer von meinen Leuten Online ist,
                              dann könnt ihr euch das ergebniss hier anschauen:
                              http://www.belclan.de

                              MfG Andi
                              Zuletzt geändert von HSFighter; 15.02.2005, 13:26.

                              Kommentar

                              Lädt...
                              X