Mr. Happiness Login Script

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

  • #16
    Original geschrieben von wahsaga
    zuerst mal die funktionen rauswerfen, die in der ersten meldung als disabled drinstehen - aber ob es dann noch tut, was es soll, ist fraglich.

    alternativ besser den hoster bitten, die benötigten funktionen freizuschalten - oder zu einem anderen wechseln, wenn er nicht will.
    Hmm welche Funktionen treffen den hier zu? Wen ich nach den Begriffen über google suche würde ich nun glatt behaupten keine aber eine muss ja mindestens verletzt werden aufgrund der Warnung.

    Den Hoster bitten wird leider nix bringen haben schon andere vor mir probiert.
    Da ich Free-Space von denen nutze ist ein Wechsel auch schwierig.
    Kostenlose Hoster mit PHP & Mysql gibt es ja nicht grad wie Sand am Meer.

    Es geht aber auch irgendwie bei tripod, zumindest wurde es in folgendes Links bzgl. Login (Session Übergabe) geschafft.

    link1 , link2

    gruss,
    Pilla

    Kommentar


    • #17
      nimm mal ini_set() raus.

      Kommentar


      • #18
        Original geschrieben von penizillin
        nimm mal ini_set() raus.
        Oh! Entschuldigung natürlich die steht ja auch in der Fehlermeldung um das zu begreifen hab ich bis jetzt gebraucht

        Bleibt also:

        Warning: session_start(): Cannot send session cookie - headers already
        sent by (output started at /data/members/free/tripod/de/t/i/p/tippgeil/htdocs/login.php:2)
        in /data/members/free/tripod/de/t/i/p/tippgeil/htdocs/login.php on line 3

        Warning: session_start(): Cannot send session cache limiter - headers
        already sent (output started at /data/members/free/tripod/de/t/i/p/tippgeil/htdocs/login.php:2) in /data/members/free/tripod/de/t/i/p/tippgeil/htdocs/login.php on line 3

        In line 3 steht halt session_start();

        Dort habe ich mal überall den Leerschritt der dahinter steht entfernt und nun gibt es keinerlei Warnungen mehr.
        Allerdings behält er weiterhin die Session ID in der Datenbank (schreibt sie beim ausloggen also nicht auf den wert Null). Schreibt aber bei erneuten einloggen eine neue SessionID hinein.

        gruss,
        Pilla
        Zuletzt geändert von Pilla; 11.02.2005, 05:07.

        Kommentar


        • #19
          mach doch

          PHP-Code:
          or die(mysql_error()) 
          bei den DB-Operationen rein, dann bekommst du eventuell die Fehlermeldungen.

          Kommentar


          • #20
            Hmmm also so hab ich das derzeit und bekomme dabei keine Fehlermeldungen:

            PHP-Code:
            <? 
            function connect() 

                $con= mysql_connect('xxx','xxx','xxx') or die(mysql_error()); 
                 mysql_select_db('xxxdb',$con) or die(mysql_error()); 


            function check_user($name, $pass) 

                $sql="SELECT UserId 
                FROM users 
                WHERE UserName='".$name."' AND UserPass=MD5('".$pass."') 
                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) 

                $sql="UPDATE users 
                SET UserSession='".session_id()."' 
                WHERE UserId=".$userid; 
                 mysql_query($sql) or die(mysql_error()); 


            function logged_in() 

                $sql="SELECT UserId 
                FROM users 
                WHERE UserSession='".session_id()."' 
                LIMIT 1"; 
                $result= mysql_query($sql) or die(mysql_error()); 
                  return ( mysql_num_rows($result)==1); 


            function logout() 

                $sql="UPDATE users 
                SET UserSession=NULL 
                WHERE UserSession='".session_id()."'"; 
                 mysql_query($sql) or die(mysql_error()); 


            connect(); 
            ?>

            Kommentar


            • #21
              ist denn error_reporting(E_ALL) noch drin, oder hast du zusammen mit ini_set schon entfernt?

              Kommentar


              • #22
                Naja, wie willst du auch ne Fehlermeldung bekommen? Du führst ja nur die Connect Function aus.

                Alles andere wird ja nicht ausgeführt, sondern nur auf Syntaktische Richtigkeit überprüft.

                Kommentar


                • #23
                  Original geschrieben von Schnoop
                  Naja, wie willst du auch ne Fehlermeldung bekommen? Du führst ja nur die Connect Function aus.

                  Alles andere wird ja nicht ausgeführt, sondern nur auf Syntaktische Richtigkeit überprüft.
                  Na, ich würde zuerst den Thread komplett lesen, bevor ich sowas unterstelle

                  Original geschrieben von Pilla
                  Allerdings behält er weiterhin die Session ID in der Datenbank (schreibt sie beim ausloggen also nicht auf den wert Null). Schreibt aber bei erneuten einloggen eine neue SessionID hinein.

                  Kommentar


                  • #24
                    Oka, wer lesen kann ich klar im Vorteil

                    Sorry

                    Kommentar


                    • #25
                      Original geschrieben von asp2php
                      ist denn error_reporting(E_ALL) noch drin, oder hast du zusammen mit ini_set schon entfernt?

                      Die hab ich noch drinne in den drei anderen Dateien. Also wie folgt:

                      PHP-Code:
                      <?php error_reporting(E_ALL); ?>
                      <? 
                      session_start();
                      include 'sessionhelpers.inc.php'; 
                      echo 'Sie sind '; 
                      if (!logged_in()) 
                          echo 'nicht ';
                      echo 'eingeloggt.<p />'; 
                      logout();
                      echo 'Sie sind '; 
                      if (!logged_in()) 
                          echo 'nicht '; 
                      echo 'eingeloggt.<p />'; 
                      echo '<a href="login.php">Einloggen</a>'; 
                      ?>

                      Ich habe aber irgendwie den Eindruck das er nach dem einloggen die SessionID nicht mehr übergibt er sie somit auch nicht austragen(bzw. auf null setzen) kann. Werde dazu gleich mal nach dem login eine weitere Seite einbauen und schauen ob er die anzeigt damit kommt man dem Problem ja sicher näher.
                      Zusätzlich werd ich das ganze mal auf meinem Laptop starten evtl. liegt es ja an meiner Heimkiste!?!
                      Würde es ja auch lokal testen damit man weiss ob es am provider liegt aber dazu müsste ich mir erstmal anschauen wie das lokal überhaupt funktioniert.

                      Hab mir in den letzten paar Stunden auch mal sämtliche Threads zu dem Script durchgelesen scheinbar bin ich mal wieder der einzig dumme bei dem es nicht geht obwohl da bzgl. Provider auch andere tripod user bei waren.
                      Typisch für mich in den letzten Wochen

                      Kommentar


                      • #26
                        der Browser akzeptiert Cookie? wenn nicht, muß du SID überall dran hängen. Etwa
                        PHP-Code:
                        <form action="bla.php?<?php echo SID?>" ...
                        <!-- oder bei Link -->
                        <a href="bla.php?<?php echo SID?>" ...

                        Kommentar


                        • #27
                          1.Auf dem laptop geht es auch nicht.
                          2. Ich hab mal die login.php wie folgt verändert:

                          PHP-Code:
                          <?php error_reporting(E_ALL); ?>
                          <? 
                          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()) 
                           {
                              include("tippabgabe4-10.php"); 
                           }

                          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="testsession.php?<?php echo SID?>">Testsession</a>';  
                          echo '<p /><a href="logged_in.php">Check</a>'; 
                          ?>
                          Hierbei wird mir der inlude Teil korrekt angezeigt nach dem einloggen. Wenn ich dann auf den link Testsession klicke kommt die Meldung "Bitte loggen Sie sich ein!" .

                          Hier noch der code von der testsession.php:
                          PHP-Code:
                          <?php error_reporting(E_ALL); ?>
                          <? 
                          session_start();
                          include 'sessionhelpers.inc.php'; 
                           if (logged_in()) 
                           {
                              include("tippabgabe4-10.php"); 
                           }
                          if (!logged_in()) 

                          echo '<a href="login.php">Bitte loggen Sie sich ein!</a>'; 
                          ?>
                          Er übernimmt die SessionID also nur einmal beim einloggen und bei allem was danach aufgerufen wird nicht mehr.
                          Zuletzt geändert von Pilla; 12.02.2005, 04:06.

                          Kommentar


                          • #28
                            So liegt offensichtlich an meinem IE das er die Session nicht übergibt im NS geht es und im IE eines Freundes auch. Damit hat sich das Problem hier erledigt.

                            Vielen Dank an alle die sich die Mühe gemacht haben mir zu antworten

                            gruss,
                            Pilla
                            Zuletzt geändert von Pilla; 12.02.2005, 04:09.

                            Kommentar

                            Lädt...
                            X