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

Variable herrausholen

Status
Für weitere Antworten geschlossen.

meGa

Neues Mitglied
Servus Jungs,

ich habe eine Function wo er testen soll ob es den User in der mySQL gibt, die sieht so aus:

Code:
      function login($user, $pass) {
                     $result=query("SELECT * FROM ".PREFIX."_users WHERE user='".$user."'");
                     $rows=mysql_num_rows($result);
                                          
                     if($rows = 0) 
                       { 
                       $error = "<br><font size=\"1\" color=\"red\">» User nicht gefunden</font>";                      
                       }
                       else
                       {
                       while ($row = mysql_fetch_object($result)) 
                             {                            
                         if(md5($row->pass) == $pass) 
                           {                            
                           echo "super";
                           }
                           else
                           {
                           $error = "<br><font size=\"1\" color=\"red\">» Passwort ist falsch</font>";                           
                           } 
                          }
                        }                                                       
                     }

Meine Frage ist jetzt ich brauche die varibale $error um sie im Template dastellen zukönnen, wie mache ich das ?
 
PHP:
<?php
echo $error;
?>

oder wenn dus auf einer separaten seite haben willst:

PHP:
<?php
$error = $_GET['error'];
//blablabla
echo $_GET['error'];
?>
 
ich habe deine Frage nicht ganz verstanden...

Es gibt mehrere Möglichkeiten, XRaySolos ist wahrscheinlich die einfachste. hier noch 2 weitere möglichkeiten
PHP:
print($error);
Wenn du die ausgabe formatieren möchtest benutze
PHP:
$format = "\n%s\n";
print_f($format,$error);
Mehr infos zu der formatierten ausgabe bei print_f findest du hier
http://de.php.net/manual/de/function.printf.php
 
Ich habe die function. Rufe sie so auf:

Code:
$user=$_POST['user'];
       $pass=$_POST['pass'];
       
       login($user, $pass);

echo $error geht nicht.
 
Du erstellst die Variable in der Funktion lässt sie aber nicht zurückgeben!

Alternative Möglichkeit:
PHP:
function checkSth($user, $password)
{
    $sql = 'SELECT ...';
    // ..

    if(ALL_RIGHT)
    {
        return true;
    }
 
    $error = '...'; 
    $_SESSION['errorMessage'] = $error; 

    return false;
}

if(checkSth('peter', 'geheim')
{
    // redirect to secured sites
    exit();
}

// redirect to login form
header('Location: login.php');

Datei login.php
PHP:
if(array_key_exists('errorMessage', $_SESSION)
{
    echo '<strong>Warning</strong>: An error occured while trying to log in: <br />' . $_SESSION['errorMessage'];
}

// print the login form

So als Ansatz, wie es gehen könnte.
Grüße, Ben.
 
Hallo,

du returnst ja nichts ...da musste dann Gobals nehmen das würde dann wiefolgt aussehen ...

PHP:
<?php
 
function login($user, $pass) {

    $result=query("SELECT * FROM ".PREFIX."_users WHERE user='".$user."'");
                                         
    if(mysql_num_rows($result) == 0) { 
         
$GLOBALS['error'] = "<br><font size=\"1\" color=\"red\">» User nicht gefunden</font>"; 
    
    }else {
        
        while($row = mysql_fetch_object($result)) {                            
                         
            if(md5($row->pass) == $pass) {                            
                           
                echo "super";
                
            }else {
                
$GLOBALS['error'] = "<br><font size=\"1\" color=\"red\">» Passwort ist falsch</font>"; 
            
            } 
           }
    }                                                       
}

?>
Dann kannste mit

PHP:
<?php

echo $GLOBALS['error'];

?>
den Fehler ausgeben ...

sollte so gehen...

Gruss Sven
 
So kannst du es natürlich auch machen ( würde sogar effizienter sein )

PHP:
<?php
 
function login($user, $pass) {

    $result=query("SELECT * FROM ".PREFIX."_users WHERE user='".$user."'");
                                         
    if(mysql_num_rows($result) == 0) { 
         
        return false;                     
    
    }else {
        
        while($row = mysql_fetch_object($result)) {                            
                         
            if(md5($row->pass) == $pass) {                            
                           
                return true;
                
            }else {
                
                return false;                         
            
            } 
           }
    }                                                       
}



if(login("user","pass")) {
    
    echo "Hey";
    
}else {
    
    echo "Fehler";
    
}

?>
 
wo ist das problem ???

PHP:
<?php
 
function login($user, $pass) {

    $result=query("SELECT * FROM ".PREFIX."_users WHERE user='".$user."'");
                                         
    if(mysql_num_rows($result) == 0) { 
         
        $error = "Fehler";
                
        return $error;                         
    
    }else {
        
        while($row = mysql_fetch_object($result)) {                            
                         
            if(md5($row->pass) == $pass) {                            
                           
                $nachricht = "Hey";
                
                return $nachricht;
                
            }else {
                
                $error = "Fehler";
                
                return $error;                         
            
            } 
           }
    }                                                       
}

echo login("User","Pass");

?>
 
meGa schrieb:
Ja aber ich will wissen wie ich die $error übergebe
Also .. falls du es noch nicht gemerkt hast. Es gibt noch eine andere Möglichkeit, als die vom Onkel.
Aber hey .. du musst meine Hilfe auch nicht annehmen.

Wenigstens ein "nö, wegen xyz will ich das so nicht machen" wäre drin gewesen, oder? Nunja. Pech gehabt.
</EOT>.
 
-.- wasn hier los ? Konkurenz Kampf zwischen Mitgliedern weil einer den Source des anderen nicht haben will ?

Ich habe ihm 3 Möglichkeiten gezeigt und du eine ist doch okay .. was er daraus macht ist doch seine Sache .. ein Danke wäre am ende für beide angebracht finde ich ...

Gruss Sven
 
habe es aber er gibt array aus wo mache ich denn ein array verstehe es nicht ? wie kann ich den array ausgeben ?
 
meGa schrieb:
habe es aber er gibt array aus wo mache ich denn ein array verstehe es nicht ? wie kann ich den array ausgeben ?
ehrliche Frage ... was verstehst du an meiner bitte den aktuellen Quelltext der dir ein Array "ausgibt" zu posten , nicht ?

Entweder postest du hier den aktuellen Source aus dem dieses "Array" hervorgeht und bekommst eventuell maßgeschneiderte hilfe oder aber du lässt es sein und kannst sehen wie weit du alleine ( ich betone ALLEINE http://de.wikipedia.org/wiki/Einsamkeit ) mit deinem Source weiter kommst ...

Es stehen in diesem Thema jetzt ca. 4 qualitative möglichkeiten die du ausschöpfen könntest ! Woher soll ich bitte WISSEN was du bißher an deinem Quelltext geändert hast. Vllt. hast du ja eine Änderung vorgenommen ( z.B. ein Array instanziert )

also ...

PHP:
if($post == 'source') {
   hilfe("vom onkel");
}else {
   die();
}
so far
 
Hätte ich das etwas verändert hätte ich ihn neu gepostet. Laos alle für die zu faul sind eine seite zurück zugehen

Code:
 function login($user, $pass) {                               
                     $result=query("SELECT * FROM ".PREFIX."_users WHERE user='".$user."'");
                     $rows=mysql_num_rows($result);
                                                               
                     if($rows = 0) 
                       { 
                       $error = "<br><font size=\"1\" color=\"red\">» User nicht gefunden</font>";      
                       return $error;                                                                    
                       }
                       else
                       {
                       while ($row = mysql_fetch_object($result)) 
                             {                                                                    
                         if(md5($row->pass) == $pass) 
                           {        
                           
                           }
                           else
                           {
                           $error = "<br><font size=\"1\" color=\"red\">» Passwort ist falsch</font>";                                   
                           return $error;                                                                         
                           } 
                          }
                        }                                                          
                     }
 
Status
Für weitere Antworten geschlossen.
Zurück
Oben