login  Naam:   Wachtwoord: 
Registreer je!
 Forum

ledensysteem van Sasser

Offline Bbart - 14/01/2005 23:08 (laatste wijziging 14/01/2005 23:24)
Avatar van BbartNieuw lid eej, vraagje ik gebruik het leden systeem van sasser maar als ik alles geuploadt heb en de db heb ingevoerg krijg ik de volgende fout.

Parse error: parse error, unexpected T_OBJECT_OPERATOR, expecting ',' or ';' in /usr/local/psa/home/vhosts/groepclub.nl/httpdocs/login.php on line 4

wat is er fout alles is toch goed zie onder.

  1. <?php
  2. include ("config.php");
  3. function password($username, $passgecodeerd)
  4. { global $level, $rij->id;
  5. $pass_uit_database = "";
  6. $level = "";
  7. $rij->id ="";
  8. $sql = "SELECT * FROM members WHERE nickname = '".$username."'";
  9. $resultaat = mysql_query($sql) or die(mysql_error());
  10. if ($row = mysql_fetch_object($resultaat))
  11. { $pass_uit_database = md5($row->password);
  12. if($passgecodeerd == $pass_uit_database)
  13. { $level=$row->level;
  14. $jeid=$row->id;
  15. return $level;
  16. return $jeid;
  17. return TRUE;
  18. } else {
  19. return FALSE;
  20. }
  21. } else {
  22. return FALSE;
  23. }
  24. }
  25. ?>

7 antwoorden

Gesponsorde links
Offline Thomas - 14/01/2005 23:25
Avatar van Thomas Moderator Het lijkt mij dat je een heel object globaal moet maken, en niet enkel een object-variabele... maar waarom zou je dit uberhaupt doen ? In die functie worden de variabelen toch weer leeg gemaakt... De functie is dus een beetje puin...
Offline Bbart - 14/01/2005 23:26
Avatar van Bbart Nieuw lid dus het beste is lijn 4 eruit halen??
Offline Thomas - 14/01/2005 23:30
Avatar van Thomas Moderator Sleep het script naar je prullenbak en begin opnieuw .
Offline Button - 15/01/2005 08:58 (laatste wijziging 15/01/2005 08:59)
Avatar van Button PHP ver gevorderde
  1. <? global $level, $rij->id; ?>


ik weet niet zeker dat je twee elementen in één keer kunt globaal maken...

probeer anders die lijn gewoon te veranderen door:

  1. <?
  2. global $level;
  3. global $rij->id;
  4. ?>
Offline Bbart - 15/01/2005 11:40
Avatar van Bbart Nieuw lid nee doet ie ook niet want krijg gelijk andere foutmelding:s
Offline Tuinstoel - 15/01/2005 11:42
Avatar van Tuinstoel PHP expert global $level, $rij->id;
$pass_uit_database = "";
$level = "";
$rij->id ="";

Waarom vraag je ze dan op als je ze dan toch defineert?
Offline Thomas - 15/01/2005 13:29
Avatar van Thomas 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:

  1. return $level;
  2. return $jeid;
  3. 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.

  1. <?php
  2. function password($username, $passgecodeerd) {
  3. $ret = array(); // return-variabele
  4. $sql = "SELECT password, level, id FROM members WHERE nickname = '".$username."'";
  5. $res = mysql_query($sql) or die(mysql_error());
  6. if(mysql_num_rows($res) > 0) {
  7. $obj = mysql_fetch_object($res);
  8. if($passgecodeerd == md5($obj->password)) {
  9. $ret['level'] = $obj->level;
  10. $ret['id'] = $obj->id;
  11. }
  12. }
  13. /*
  14.   retourneert een leeg array als de gegevens niet klopten,
  15.   en anders een associatief array (met keys "level" en "id")
  16.   als het username/geencrypte wachtwoord klopten
  17.   */
  18. return $ret;
  19. }
  20. ?>
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.22s