Login klappt nicht

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

  • Login klappt nicht

    Hi,
    nach der Eingabe der richtigen Benutzerdaten lande ich wieder auf der login-seite. Ich seh den Fehler einfach nicht, hat jemand einen Tip?

    php:


    logintest
    <?php
    session_start();
    include "db-connect.php";
    function check_user($identnr, $pwd)
    {
    $sql="SELECT userID FROM users WHERE identnr='".$identnr."' AND pwd=MD5('".$pwd."') 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);
    }
    function logout()
    {
    $sql="UPDATE users
    SET usersession=NULL
    WHERE UserSession='".session_id()."'";
    mysql_query($sql);
    }
    if (isset($_POST['login']))
    {
    $userid=check_user($_POST['identnr'], $_POST['pwd']);
    if ($userid!=false) {
    login($userid);
    $_SESSION['loggedIn'] = $userid;
    }
    else {header("Location:login.php");};
    }
    if (!isset($_SESSION['loggedIn'])) {header("Location: login.php"); }
    else {header("Location:inhalt/index.html");}
    ?>

    login.php

    <a href="anmelden.html">Hier können Sie sich neu registrieren</a>
    <?
    session_start();
    include 'logintest.php';
    if (isset($HTTP_POST_VARS['login']))
    {
    $userid=check_user($HTTP_POST_VARS['identnr'], $HTTP_POST_VARS['pwd']);
    if ($userid!=false)
    login($userid);
    else
    echo 'Ihre Anmeldedaten waren nicht korrekt!';
    }
    if (!login())

    echo '<form method="post" action="login.php">
    <label>ID-Nummer.:</label><input name="identnr" type="text"><br>
    <label>Passwort: </label><input name="pwd" type="password" id="pwd"><br>
    <input name="login" type="submit" id="login" value="Login">
    </form>';
    else
    echo '<a href="logout.php"><img src=inhalt/Content/Buttons/Logout.gif border="0"></a>';
    ?>
    Zuletzt geändert von jbo; 19.12.2003, 18:39.

  • #2
    Re: Login klappt nicht

    PHP-Code:
    ntnr."' AND pwd=MD5('".$pwd."') LIMIT 1"
    würde ich als
    PHP-Code:
    ntnr."' AND pwd='".MD5($pwd)."' LIMIT 1"
    schreiben.

    nimmst du bitte die php-tags? danke.
    laß dir doch mal den inhalt von $sql ausgeben, ich tippe mal, da steht nur mist drin ...
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      bekomme keine Ausgabe
      PHP:
      $sql="UPDATE users
      SET usersession=NULL
      WHERE UserSession='".session_id()."'";
      mysql_query($sql);
      echo $sql;

      Kommentar


      • #4
        danke, hab den Fehler gefunden

        Kommentar


        • #5
          Original geschrieben von jbo
          bekomme keine Ausgabe
          das kann ja wohl nicht sein. notfalls mußt du mal die() benutzen ...
          hast du mal das geändert, was ich geschrieben hatte?
          EDIT:
          wo war er?
          Die Zeit hat ihre Kinder längst gefressen

          Kommentar


          • #6
            ich habe einfach das script von mr. hapiness übernommen, der login klappt.
            ich hab auf jeder seite an 1. stelle den code für die sid eingegeben und trotzdem lassen sich die Seiten normal aufrufen. im moment raff ich nix mehr

            Kommentar


            • #7
              prüfst du auch auf jeder der zu schützenden seiten ab, ob der user überhaupt eingeloggt ist?
              INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


              Kommentar


              • #8
                nach den beiden scripten sollte er meiner meinung nach checken, ob der user eingeloggt ist, im Moment komm ich nicht weiter

                PHP-Code:
                <?
                session_start(); 
                include 'sessionhelpers.inc.php'; 
                ?>
                steht auf jeder seite

                PHP-Code:
                <? 
                function connect() 

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


                function check_user($identnr, $pwd) 

                    $sql="SELECT UserId 
                    FROM users 
                    WHERE identnr='".$identnr."' AND pwd=MD5('".$pwd."') 
                    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); 


                function logged_in()                           // Damit wird doch geprüft, ob der user eingeloggt ist, oder?

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


                function logout() 

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


                connect(); 
                ?>
                EDIT:
                [php]-tags by Abraxax
                Zuletzt geändert von Abraxax; 19.12.2003, 22:34.

                Kommentar


                • #9
                  benütze bitte die [php ]-tags!

                  und dann hast du nur die datei mit den fkts includet. mehr auch nicht.

                  das solltest du noch in die datei schreiben.
                  PHP-Code:
                  if (!logged_in())
                    die(
                  'nicht eingeloggt'); 
                  INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                  Kommentar


                  • #10
                    Hab ich in der login.php drin

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

                        $userid=check_user($HTTP_POST_VARS['identnr'], $HTTP_POST_VARS['pwd']); 
                        if ($userid!=false) 
                            login($userid); 
                          else 
                            echo 'Ihre Anmeldedaten waren nicht korrekt!'; 

                    if (!logged_in()) 
                        echo '<form method="post" action="login.php"> 
                            <label>ID-Nummer.:</label><input name="identnr" type="text"><br> 
                            <label>Passwort: </label><input name="pwd" type="password" id="pwd"><br> 
                            <input name="login" type="submit" id="login" value="Einloggen"> 
                        </form>'; 
                    else 
                        echo '<a href="logout.php">Ausloggen</a><p>'; 

                    ?>

                    Kommentar


                    • #11
                      Original geschrieben von jbo
                      Hab ich in der login.php drin
                      und in den zu schützenden dateien aber nicht! und genau da muss das auch rein, was ich eben gepostet habe.

                      wie soll denn sonst geprüft werden, oder der user angemeldet ist?
                      INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                      Kommentar


                      • #12
                        logisch, habs geschnallt.

                        Nur mit der Fehlermeldung kann ich nichts anfangen:
                        Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)

                        neue user kann ich eintragen,
                        Zuletzt geändert von jbo; 19.12.2003, 23:08.

                        Kommentar


                        • #13
                          Original geschrieben von jbo
                          logisch, habs geschnallt.
                          dann ists ja gut...

                          Original geschrieben von jbo
                          Nur mit der Fehlermeldung kann ich nichts anfangen:
                          Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
                          check mal deine php.ini und check auch mal ob mysql läuft.

                          ansosnten bei den installationsfragen posten...

                          (das hat ncihts mehr mit dem login-script zu tun)
                          INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                          Kommentar


                          • #14
                            Original geschrieben von jbo
                            neue user kann ich eintragen,


                            hast du evtl. noch anderen db-zugangsdateen irgendwo bei dir eingetragen?
                            INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                            Kommentar


                            • #15
                              Die Zugangsdaten sind gleich, der fehler muss wo anders liegen.
                              Beim registrieren verwende ich die Datei send.php und er trägt die user sauber und ohne fehlermeldung ein,
                              PHP-Code:
                              <?
                              mysql_connect ("xxxx", "xxxx", "xxxx");
                              mysql_select_db ("xxxx") OR die("Verbindung zur Datenbank fehlgeschlagen");
                              $sql="INSERT INTO users (xxx) VALUES ('xxx)";
                              if(!$sql=mysql_query($sql)) {
                              echo mysql_error();
                              } else {
                              echo "Ihre Registrierungsdaten wurden per mail zugesandt.";
                              include 'formmail.php';
                              }
                              hab alles nach dem tut von mr. happiness erstellt. Warum ist hier der db-aufruf anders?
                              Zuletzt geändert von jbo; 19.12.2003, 23:30.

                              Kommentar

                              Lädt...
                              X