2 Logins, erbitte Feedback

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

  • #16
    So hab es jetzt also nochmal überarbeitet, bin mir aber nicht ganz sicher ob das mit den Headern so okay ist. Wäre um ein letztes Feedback dankbar:

    PHP-Code:
    <?php
       
    //error_reporting(E_ALL);
       
       
    if($_SERVER['HTTPS'] != "on")  // Https erzwingen
        

       
    header ('Location: [url]https://[/url]'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 
        } 

       require_once(
    'config.php'); // Datenbank Daten laden
        
    session_start();
        
        
    mysql_connect(HOST,USER,PASS) && mysql_select_db(DB);
       
    $result mysql_query('SELECT Name, Password, cookie FROM users WHERE ID = 1') OR die(mysql_error());
       
    $row mysql_fetch_assoc($result);
        
       
    $currentip explode('.'$_SERVER['REMOTE_ADDR']); // Ersten 3 IP segmente exploden 
       
    $aolip $currentip[0].$currentip[1].$currentip[2];
        
       
    mysql_free_result($result);
            
       if(!empty(
    $_SESSION['login']) && $_SESSION['login'] <= ($row['cookie'] + 10)) //Sessiondauer begrenzen
       
    {
       
           if(
    $_SESSION['data'] == sha1($_SERVER['HTTP_USER_AGENT'].$aolip)) //Abgleich von gespeicherten IPsegmenten und Browser
            
    {
            
    $_SESSION['login'] = time(); // Neu setzen der Zeit um Sessiondauer zu begrenzen
          
    }
          
       } 
       else 
       {
       
        
    $userpass $_POST['userpass'];
        
    $username $_POST['username'];
                                    
            if (
    $username == $row['Name'] && sha1($userpass) == $row['Password'])
          {
                    
              
    $atm time();
                
    $_SESSION['login'] = $atm;
                
    $_SESSION['data'] = sha1($_SERVER['HTTP_USER_AGENT'].$aolip); //IPsegmente und Borwser speichern
                        
                
    mysql_query("UPDATE users SET cookie = '".$atm."' WHERE id=1;"); //Zeit der Sessionerstellung in DB speichern
                
                
    unset($username$userpass$aolip);
               
    header ('Location: [url]https://[/url]'.$_SERVER['HTTP_HOST'].$_SERVER['REQUEST_URI']); 
               
    //Header setzen und exit um Reload zu verhindern
               
    exit;
                    
          }
          else
          {
    ?>
            Bitte loggen sie sich ein:<br><br>
            <form action="<?php echo $_SERVER['REQUEST_URI'?>" method="post">
                <input type="text" name="username" /><br>
                <input type="password" name="userpass" /><br>
                <input type="submit" />                                
            </form>
    <?php       
            
    die;         
                    
          }
            
        }
      
    ?> 
    Hier geht es weiter
    LG,
    Fabian

    Kommentar


    • #17
      PHP-Code:
      $atm time(); 
      ist überflüssig denn du könntest ja einfach
      PHP-Code:
      mysql_query("UPDATE users SET cookie = '".time()."' WHERE id=1;"); 
      Und wenn cookie nur die Zeit enthält warum definierst du das Feld nicht als Integer ? Dann brauchst du keine ' und '

      Gruss

      tobi
      Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

      [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
      Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

      Kommentar


      • #18
        Hallo, danke für deine Antwort.
        Und wenn cookie nur die Zeit enthält warum definierst du das Feld nicht als Integer ? Dann brauchst du keine ' und '
        Ehm, sorry, wo genau? Ich sehe es nicht...
        Lasse ich hier:
        PHP-Code:
          if(!empty($_SESSION['login']) && $_SESSION['login'] <= ($row['cookie'] + 10)) //Sessiondauer begrenzen 
        Das 'und' weg, und $_SESSION['login'] ist leer, dann wäre die Bedingung doch immer erfüllt oder?

        Kommentar


        • #19
          Ehm, sorry, wo genau? Ich sehe es nicht...
          Entweder beim Anlegen der MySql Tabelle oder mit dem alter_table Statement

          Gruss

          tobi
          Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

          [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
          Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

          Kommentar


          • #20
            Ja das habe ich verstanden, ich meine das 'und'. Wo kann ich das dann weg lassen?

            LG,
            Fabian

            Kommentar


            • #21
              PHP-Code:
              Wo kann ich das dann weg lassen
              Dort wo du im SQL Statement einen Timestamp (Integer) als String behandelst vielleicht.

              Gruss

              tobi
              Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

              [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
              Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

              Kommentar


              • #22
                Argh ich hab verzweifelt nach einem ->UND<- , also '&&' oder so gesucht und nicht nach den ->'<- .
                Jetzt gehts natürlich.
                Dankeschön!

                Kommentar


                • #23
                  Sorry dann habe ich zu ungenau geschrieben. Dachte das wäre klar

                  Gruss und frohe Ostern

                  tobi
                  Gutes Tutorial | PHP Manual | MySql Manual | PHP FAQ | Apache | Suchfunktion für eigene Seiten

                  [color=red]"An error does not become truth by reason of multiplied propagation, nor does truth become error because nobody sees it."[/color]
                  Mohandas Karamchand Gandhi (Mahatma Gandhi) (Source)

                  Kommentar

                  Lädt...
                  X