Announcement

Collapse
No announcement yet.

Problem mit session und mysql abfrage

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

  • Problem mit session und mysql abfrage

    Ich bekomme es einfach nicht hin das die daten richtig ausgelesen und in die session eingetragen werden.

    hier mal mein code:

    PHP Code:
    if(isset($_POST['submit'])){
     
         
    $err = array();
         
    if(!
    $_POST['e-mail'] || !$_POST['user_pass']){
    $err[] = '<div id="fail" class="info_div"><span class="ico_cancel">All the fields must be filled!</span></div>';
    }
    if(!
    count($err))
        {
            
    $_POST['e-mail'] = mysql_real_escape_string($_POST['e-mail']);
            
    $_POST['user_pass'] = mysql_real_escape_string(md5($_POST['user_pass']));
            
    $_POST['rememberMe'] = (int)$_POST['rememberMe'];
            
    $user mysql_fetch_assoc(mysql_query("SELECT * FROM member.users WHERE e-mail='{$_POST['e-mail']}' AND password='{$_POST['user_pass']}'")) or die(mysql_error());
        if(
    $user['username']){
        
    $_SESSION['usr'] = $user['username'];
        
    $_SESSION['id'] = $user['id'];
        
    $_SESSION['rememberMe'] = $_POST['rememberMe'];
                
        
    // Store some data in the session
                
        
    setcookie('admin_p',$_POST['rememberMe']);
        
    $err[] = '<div id="success" class="info_div"><span class="ico_success">Login Success!</span></div>';    
    }
    else 
    $err[] = '<div id="fail" class="info_div"><span class="ico_cancel">Incorrect username or password!</span></div>';

    }

    if(
    $err)
    $_SESSION['msg']['login-err'] = implode('<br />',$err);

    header("Location: login.php");
        exit;    

    vielleeicht könnt ihr mir ja helfen ... auf jeden kommt aus der abfrage nix raus.
    Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

    Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

  • #2
    Nutze die Möglichkeiten der Fehleranalyse mit mysql_error usw.
    Christian

    Comment


    • #3
      Hallo,
      Originally posted by chucky View Post
      PHP Code:
      ...mysql_query("SELECT * FROM member.users WHERE e-mail='... 
      ... auf jeden kommt aus der abfrage nix raus.
      Ist ja auch kein wunder . Hinter dem WHERE steht ein Ausdruck: "e-mail". Der Server interpretiert das als "e minus mail" was im Zshg. mit einer Zuweisung einfach syntaktisch falsch ist. Auch wird es die Felder e und mail nicht geben. Wenn du also einen Operator in einem Feldnamen verwendest, dann muss dieser Feldname immer mit ` maskiert werden, damit er als solcher erkannt wird.

      Gruß Falk
      Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

      Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

      Comment


      • #4
        oh mein gott bin ich blind -.- hätte mir auch selber auf fallen müssen.

        hab jetzt den operator "ausgetauscht" und ddie variablen angepasst ... läuft ohne probleme.

        Danke Falk
        Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

        Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

        Comment


        • #5
          Originally posted by chucky View Post
          oh mein gott bin ich blind -.- hätte mir auch selber auf fallen müssen.

          hab jetzt den operator "ausgetauscht" und ddie variablen angepasst ... läuft ohne probleme.

          Danke Falk
          hab jetzt aber ein neues problem (neuer code):

          PHP Code:
          if(isset($_POST['submit'])){
           
               
          $err = array();
               
          if(!
          $_POST['user_mail'] || !$_POST['user_pass']){
          $err[] = '<div id="fail" class="info_div"><span class="ico_cancel">All the fields must be filled!</span></div>';
          }
          if(!
          count($err))
              {
                  
          $_POST['user_mail'] = mysql_real_escape_string($_POST['user_mail']);
                  
          $_POST['user_pass'] = mysql_real_escape_string(md5($_POST['user_pass']));
                  
          $_POST['rememberMe'] = (int)$_POST['rememberMe'];
                  
          $user mysql_fetch_assoc(mysql_query("SELECT * FROM member.users WHERE user_mail='{$_POST['user_mail']}' AND password='{$_POST['user_pass']}'")) or die(mysql_error());
              
              if(
          $user['username']){
               if(
          $user['access_level'] > 0){
                  
          $_SESSION['usr'] = $user['username'];
                  
          $_SESSION['id'] = $user['id'];
                  
          $_SESSION['lvl'] = $user['access_level'];
                  
          $_SESSION['rememberMe'] = $_POST['rememberMe'];
                      
                  
          // Store some data in the session
                      
                  
          setcookie('admin_p',$_POST['rememberMe']);
                  
          $err[] = '<div id="success" class="info_div"><span class="ico_success">Login Success!</span></div>';
                  }
                  else{
                  
          $err[] = '<div id="fail" class="info_div"><span class="ico_cancel">You`re not allowed to access this page!</span></div>';
                  }    
              }
              else{
               
          $err[] = '<div id="fail" class="info_div"><span class="ico_cancel">Incorrect username or password!</span></div>';
               }
              } 
          jetzt bekomme ich wenn ich das passwort eingebe keine fehlermeldung mehr, sondern nur eine seite ohne quelltext ... warum? (white screen)
          Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

          Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

          Comment


          • #6
            Also in dem Code den du gepostet hast, sehe ich nirgendwo eine Ausgabe...
            Wenn du denkst du hast alle Bugs gefunden, dann ist das ein Bug in deiner Denksoftware.

            Quellcode ohne ein Mindestmaß an Formatierung sehe ich mir nicht an! Ich leiste keinen Privatsupport per Mail oder PN!

            Comment


            • #7
              falsch ausgedrückt ... wenn ich das passwort falsch eingebe bekomme ich den whitescreen ...
              jedoch wenn die benutzerdaten richtig sind funktioniert die ausgabe und wenn die rechte nicht vorhanden sind (access_level) funktioniert die ausgabe auch ... nur wenn die benutzerdaten falsch sind funktioniert es nicht.

              PHP Code:
              <div id="login" class="section">
                          <?php
                                      
                                      
              if($_SESSION['msg']['login-err'])
                                      {
                                          echo 
              ''.$_SESSION['msg']['login-err'].'';
                                          unset(
              $_SESSION['msg']['login-err']);
                                      }
                                  
              ?> 
                          <form name="loginform" id="loginform" action="" method="post">
                          
                          <label><strong>E-Mail</strong></label><input type="text" name="user_mail" id="e-mail"  size="28" class="input"/>
                          <br />
                          <label><strong>Password</strong></label><input type="password" name="user_pass" id="user_pass"  size="28" class="input"/>
                          <br />
                          <strong>Remember Me</strong><input type="checkbox" id="rememberMe" class="input noborder" /> 
                          
                          <br />
                      
                          <input id="save" class="loginbutton" type="submit" name="submit" class="submit" value="Login" />
                          
                          </form>
                          <?php echo $_SESSION['usr'] ? $_SESSION['usr'] : 'Guest'; if($_SESSION['id']) echo '&nbsp;<a href="?logoff">Log off</a>';?>
                          <a href="#" id="passwordrecoverylink">Forgot your username or password?</a>
                      </div>
              Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

              Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

              Comment


              • #8
                Denke, mysql_query(

                liefert keine Rows zurück. Daher kann
                mysql_fetch_assoc diese
                auch nicht durchlaufen und ruft 'die' auf, was einem exit entspricht

                Christian

                Comment


                • #9
                  danke du hattest recht ohne die funktioniert es...
                  das sind so blödigkeits fehler -.-
                  greez
                  Wenn das Leben ein Script wäre würde ich den Source Code ändern und das Leben in vollen zügen genießen.

                  Das Leben ist wie Gentoo ... das Grundsystem bekommst du vorgegeben und den rest musst du dir selbst einrichten!!!

                  Comment

                  Working...
                  X