Moderator |
|
Los, daarvan: die functie is gewoon troep. Eerst zeg je met global "Hey, ik heb een variabele van buiten mijn functie nodig en deze moet ik binnen de functie van waarde kunnen veranderen / de waarde van deze globale variabelen heb ik nodig" en vervolgens gooi je ze leeg...
Verder heb je $pass_uit_database helemaal niet nodig en $rij wordt verder helemaal niet gebruikt !!!
Verder weet ik helemaal niet wat het effect is van:
return $level;
return $jeid;
return TRUE;
return $level; return $jeid; return TRUE;
Wat wordt er nou geretourneerd ? $level ? TRUE ?
Functies hebben maar één return-waarde. Deze return-waarde kan wel uit meerdere onderdelen bestaan (het is bijvoorbeeld een object of een array).
Vergelijk de volgende functie eens met bovenstaande brol - ze zouden precies hetzelfde moeten doen.
<?php
function password($username, $passgecodeerd) {
$ret = array(); // return-variabele
$sql = "SELECT password, level, id FROM members WHERE nickname = '".$username."'";
$res = mysql_query($sql) or die(mysql_error());
if(mysql_num_rows($res) > 0) {
$obj = mysql_fetch_object($res);
if($passgecodeerd == md5($obj->password)) {
$ret['level'] = $obj->level;
$ret['id'] = $obj->id;
}
}
/*
retourneert een leeg array als de gegevens niet klopten,
en anders een associatief array (met keys "level" en "id")
als het username/geencrypte wachtwoord klopten
*/
return $ret;
}
?>
<?php function password($username, $passgecodeerd) { $ret = array(); // return-variabele $sql = "SELECT password, level, id FROM members WHERE nickname = '".$username."'"; if($passgecodeerd == md5($obj->password)) { $ret['level'] = $obj->level; $ret['id'] = $obj->id; } } /* retourneert een leeg array als de gegevens niet klopten, en anders een associatief array (met keys "level" en "id") als het username/geencrypte wachtwoord klopten */ return $ret; } ?>
|