• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Variable herrausholen

Status
Für weitere Antworten geschlossen.
wie rufst du denn diese funktion auf ? So wie in einem unserer Post´s oben ?

Deswegen wollte ich den ganzen Source und nicht nur die funktion, woher soll ich denn bitte wissen, wie du die funktion aufrufst und noch etwas herr Schlauschiss ... ich habe mir die mühe gemacht obwohl ich ja angeblich deines erachtens nach zu faul bin und habe eine seite zurück geklickt und jetzt halt dich fest ! der von dir gepostete quelltext am anfang weicht von dem der neu gepostet wurde ab ! durch simple "return"

Es geht in der Programmierung immer zu kleinigkeiten manchmal ist es nur ein Buchstabe welcher den Programmfluss beeinflusst entweder hörste auf rumzumaulen und machst das was verlangt wird um dir zu helfen oder du läst es ( bezug vorheriger post von mir )

bzw. deine login funktion ist absolut unsicher !!!

Haste schon mal über SQL Injection nachgedacht ? Das würde dir die db zerlegen ...

Und weil ich so verdammt nett bin und du ja auch meine vorderungen erfüllt hast poste ich dir mal eine login funktion die du guten gewissens verweden kannst !

btw. deine funktion darf in deinem status gar kein array ausgeben ( sry kann gar kein array ausgeben )

############################

inc.php

PHP:
<?php

    @session_start();    

    @mysql_connect("HOST","USER","PASS");
    @mysql_select_db("DB");
    
    function check_string($string) {
                
        // erlaubte zeichen a-z,A-Z,0-9,-,_
                
        if((preg_match('/^[a-zA-Z0-9\-\_]+$/',$string))) return true;
                
        return false;
            
    }
    
    
    function login($benutzername,$kennwort,$modus=1,$cookie_gelesen=1) {
    
        // ############# Konfiguration start #############
    
        // ### Cookies ###
    
        // Name des Cookies
        $conf['cookie_name'] = "login_cookie";
    
        // Ablaufzeit des Cookies (1 Monat)
        $conf['cookie_zeit'] = time()+3600*24*7*4;
    
        // Inhalt des Cookies (Wird im spaeterem Verlauf festgelegt)
        $conf['cookie_inhalt'] = "";
    
        // ### Sonstiges ### 
    
        // Modus ( 1 = Session und Cookie setzen / 2 = Session ohne Cookie setzen )
        $conf['modus'] = $modus;
        
// CookieSet ( 1 = Benutzername und Kennwort sind nicht aus einem Cookie entnommen / <1 = Benutzername und Kennwort sind einem Cookie entnommen somit ist das Kennwort schon verschluesselt )
        $conf['cookie_gelesen'] = $cookie_gelesen;
        
        // ### Variablen ###
        
        // Benutzername
        $vars['benutzername'] = htmlspecialchars(trim($benutzername));
        
        // Kennwort
        $vars['kennwort'] = htmlspecialchars(trim($kennwort));
        
        // ############# Konfiguration ende #############
        
// Ist der Benutzername oder das Kennwort "leer" oder sind ungueltige Zeichen im String dann gib ein false wert zurueck 
if(strlen($vars['benutzername']) == 0 OR strlen($vars['kennwort']) == 0 OR !check_string($vars['benutzername']) OR !check_string($vars['kennwort'])) {
            
            return false;
            
        }else {
            
            // Ist das Kennwort NICHT aus einem Cookie dann muss es mit md5 verschluesselt bzw. verhasht werden            
            if($conf['cookie_gelesen'] == 1) {
                
                $vars['kennwort'] = md5($vars['kennwort']);    
                
            }
            
            // SQL Abfrage ob benutzername und kennwort gleich den in der Datenbank sind            
$sql = @mysql_query("SELECT benutzer_id FROM tbl_benutzer WHERE benutzername = '".$vars['benutzername']."' AND kennwort = '".$vars['kennwort']."' ");
            
            // Ist die Abfrage erfolgreich dann check den Modus            
            if(@mysql_num_rows($sql) == 1) {
            
                
                if($conf['modus'] == 1) {
                
                    // Cookie Inhalt wird aus benutzername@kennwort zusammengebaut                    
                    $conf['cookie_inhalt'] = $vars['benutzername']."@".$vars['kennwort'];
                    
                    // Cookie wird gesetzt                    
                    @setcookie($conf['cookie_name'],$conf['cookie_inhalt'],$conf['cookie_zeit']);
                        
                    // Session für den login wird gesetzt                    
                    $_SESSION['success'] = true;
                        
                    return true;
                    
                }else {
                
                    // Session für den login wird gesetzt                    
                    $_SESSION['success'] = true;
                        
                    return true;    
                    
                }    
                    
            }else { 
            
                // SQL Abfrage hat nicht geklappt                    
                return false; 
            
            }
            
        }
        
    }
index.php

PHP:
<?php
    
    // Pruefen ob der Browser Cookies akzeptiert
    if(isset($_COOKIE['browser_check'])) {
        $browser_check = true;
    }elseif($_GET['check'] != 1) {
        
        @setcookie("browser_check","set",time()+3600);
        header("Location: index.php?check=1");
                
                    
    }
            
    include("inc.php");
    
    // Wenn $_GET['logout'] gesetzt ist dann loesche $_SESSION['success']
    if(isset($_GET['logout'])) {
        
        // Wenn $_COOKIE['login_cookie'] gesetzt ist dann loesche Cookie
        if(isset($_COOKIE['login_cookie'])) @setcookie("login_cookie",0,time()-3600);
        
        // Loesche SESSION['success']
        unset($_SESSION['success']);
        
        //Leite weiter zur index.php
        header("Location: index.php");
        
    }
    
    // Wenn $_COOKIE['login_cookie'] gesetzt ist dann ueberpruefe den Inhalt und fuehre ggf. den auto login aus
    if(isset($_COOKIE['login_cookie']) AND !isset($_POST['sender']) AND !isset($_GET['logout'])) {
        
        // Hole den Inhalt aus dem Cookie
        $cookie_inhalt = $_COOKIE['login_cookie'];
        
        // Trenne benutzername und kennwort anhand des Trennzeichens @
        $cookie_inhalt = explode("@",$cookie_inhalt);
        
        // Gehe mit Cookiedaten in die login funktion
        login($cookie_inhalt[0],$cookie_inhalt[1],1,2);
        
    }
        
    // Wenn Sumbit gepostet wurde    
     if(isset($_POST['sender'])) {
     
         // Wenn Cookie setzen "aktiv"
         if($_POST['co'] == 'on') {
                 
             if(login($_POST['username'],$_POST['password']) == false) {
                 
                 echo "Sry da hat was nicht geklappt";
                 
             }
                     
         }else {
                 
             if(login($_POST['username'],$_POST['password'],2,1) == false) {
                 
                 echo "Sry da hat was nicht geklappt";
                 
             }
                 
         }
             
     }
    
     

?>


<html>
<head>
    <title>test</title>
</head>

<body bgcolor="#FFFFFF" topmargin="0" leftmargin="0" rightmargin="0" bottommargin="0" >
<?php 

if(isset($_SESSION['success'])) {
        
    echo "drin<br><a href='index.php?logout=true'>Logout</a>";

    
}else {
    
?>

<form target="_self" method="post" name="main">
<?php if(!isset($browser_check)) echo "Ihr Browser akzeptiert keine Cookies, daher wird dieses Feld deaktiviert<br><br>"; ?>
User : <input type="text" name="username"><br>
Pass : <input type="text" name="password"><br>
Cookie (ja/nein) : <input type="checkbox" name="co" <?php if(!isset($browser_check)) echo "disabled";?>><br>
<input type="submit" name="sender">

</form>

<?php } ?>

</body>
</html>
So far ... Sven
 
Naja also ich habe nicht gesagt das ihr mir was neues geben müsst, aber danke dann werde ich mich mal durch deine sachen durcharbeiten und benutzen. Aber danke dir ^^ ich werde deine Sache verwenden. Darf ich dann hier auch nachfragen wenn ich Fragen zu deinem COde habe ?
 
Gut danke also meine Fragen sind. was das @ soll bei z.b.

@mysql_connect

und was das macht:

htmlspecialchars(trim
 
Ich wollte nix mehr sagen .. aber du kennst das Manual, ne?
Boah ey ... Junge Junge .. soviel Desinteresse an Eigenleistung habe ich ja selten in meiner zweifelhaften Forenkarriere gesehen .. meine Fresse.
 
Danke dir Sven :)

Edit: Noch was, was bedeutet das @ bei z.b. setcookie ???
 
Zuletzt bearbeitet:
dann rufst du die funktion login auf, nachdem du irgendwas ausgegeben hast !

login() sollte nach dem includen der inc ganz oben stehen ! bevor du anfängst html ausgaben oder sonstiges zu machen also im prinzip so ...

PHP:
<?php

include("inc.php");
if(isset($_POST['sender'])) {
 login("user","pass");
}

?>

<html> ....


Niemals vorher einen header senden ! er setzt zwar den cookie aber es würde zum fehler kommen deswegen in deinem falle z.B. ein @ davor welches die fehler unterdrückt ...
 
:grin: ich habe es hinbekommen, jetzt wollte ich euch Fragen wie ich das teste ob die Cookies gehen.

Hier die Soucres

function
Code:
  function login($user,$pass,$modus=1,$cookies=1) {                               
                     $cookie['name'] = "login";      
                     $cookie['time'] = time()+3600*24*7*4;  
                     $cookie['value'] = "";   
                     $cookie['modus'] = $modus;    
                     $cookie['read'] = $cookies;   
                     
                     $vars['user'] = htmlspecialchars(trim($user));    
                     $vars['pass'] = htmlspecialchars(trim($pass));
                                                                                                                                                                                                             
                 if($cookie['read'] == 1) $vars['pass'] = md5($vars['pass']);  
                   
                  $result=query("SELECT * FROM ".PREFIX."_users WHERE user='".$vars['user']."' AND pass='".$vars['pass']."'");  
          
                   if(mysql_num_rows($result) == 1) 
                     {                           
                     if($cookie['modus'] == 1) 
                       {                                                 
                       $cookie['value']=$vars['user']."@".$vars['pass'];                                                                             
                       @setcookie($cookie['name'],$cookie['value'],$cookie['time']);
                                                                                
                       $_SESSION['success'] = true;                        
                       return true;                                         
                       }
                       else 
                       {                                               
                       $_SESSION['success'] = true;                      
                       return true;                                          
                       }                        
                     }
                     else 
                     {                                       
                     return false;                                   
                     }                                
                   }

login.php

Code:
$save=$_REQUEST['save'];
   
   include('functions.php');
   
   if($_REQUEST['site'] == "logout")
     {
     if(isset($_COOKIE['login'])) setcookie("login",0,time()-3600); 
     unset($_SESSION['success']);
     }
     else
     {          
     if(isset($_COOKIE['cookies'])) $cookies = 1; else @setcookie("cookies",1,time()+3600);                                                             
                     
      if(isset($save))      
        {
        if($_POST['user'] != "" AND $_POST['pass'] != "")
           {                     
           if(login($_POST['user'],$_POST['pass'],1,2) == false)
             {
             $error[2] = "<br><font size=\"1\" color=\"red\">» Daten fehlerhaft</font>";
             
             eval ("\$login = \"".template("login")."\";");
             echo $login;  
             }
             else
             {
             echo "jawoll";
             }    
           }    
           else
           {
           if($_POST['user'] == "") $error[0] = "<br><font size=\"1\" color=\"red\">» ausfüllen</font>";
           if($_POST['pass'] == "") $error[1] = "<br><font size=\"1\" color=\"red\">» ausfüllen</font>";
                                   
           eval ("\$login = \"".template("login")."\";");
           echo $login;                
           }                          
        }
        else
        {
           if(isset($_COOKIE['login'])) 
             {           
          $cookie = $_COOKIE['login'];              
          $cookie = explode("@",$cookie);               
          login($cookie[0],$cookie[1],1,2);
          echo "cool";
          }
          else
          {
          eval ("\$login = \"".template("login")."\";");
          echo $login;         
          } 
              
      }                         
    }
 
Also so langsam reicht es mir auch !!!!!!

Ich habe dir hier eine ganze Login funktion INKLUSIVE "index.php" in welcher eine Prüfung drin ist ob der User Cookies setzen kann ...

Also lies dir das doch mal richtig durch solangsam habe ich wirklich das gefühl, das du keinerlei interesse daran hast SELBST zuarbeiten !

PHP:
// Pruefen ob der Browser Cookies akzeptiert
    if(isset($_COOKIE['browser_check'])) {
        $browser_check = true;
    }elseif($_GET['check'] != 1) {
        
        @setcookie("browser_check","set",time()+3600);
        header("Location: index.php?check=1");
                
                    
    }

so far
 
Ja schon klar ich wollte nur wissen ob da auch kein Fehler bei drinne is, weil ich es ein bisschen umgebaut habe.
 
wirste merken wenn es nicht geht oder ?

Deine Frage ist völlig trivial ... ist das dein script oder meins ??? ( das umgebaute )

wenn du es testest und es nicht läuft, dann kannste fragen ob was falsch ist aber bevor du keine konkreten angaben zu irgendwelchen fehlern machen kannst werde ich mir das script nicht angucken ... ein wenig arbeiten musst du auch das behalte ich mir jetzt einfach mal vor !

so far
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben