login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Fouten als cookie niet bestaat. (Opgelost)

Offline Ultimatum - 28/10/2007 22:51
Avatar van UltimatumPHP expert Ik heb een functie om te kijken of je bent ingelogd of niet, en die roep ik zo aan:
  1. <?php
  2. if($login->checkLogin($_COOKIE['id'], $_COOKIE['ip'], $_COOKIE['hash']) === true) {
  3. ?>

Dit werkt goed als de cookies bestaan, maar bestaan ze niet dan krijg ik een hoop errors, best logisch. Ik roep een cookie aan die niet bestaat.

Ik zou met isset etc.. kunnen kijken of de cookie al bestaat, maar dat doe ik ook al in de functie zelf. Hoe moet ik dit nou oplossen dan? Dit is de functie zelf (Best simpel, maar ga nog uitbreiden met levels etc.., wil eerst dit goed werkend hebben)
  1. <?php
  2. public function checkLogin($id, $ip, $hash) {
  3.  
  4. if(isset($id) && isset($ip) && isset($hash) && (strlen($ip) >= 8 && strlen($ip) <= 15 && $ip == $this->ip()) && strlen($hash) == 40) {
  5.  
  6. return true;
  7.  
  8. } else {
  9.  
  10. return false;
  11.  
  12. }
  13. }
  14. ?>


Kan ik dit op een manier oplossen of gewoon zo laten en bij het opleveren error_reporting(E_ALL) veranderen naar error_reporting(0)?

9 antwoorden

Gesponsorde links
Offline vinTage - 28/10/2007 23:29 (laatste wijziging 28/10/2007 23:29)
Avatar van vinTage Nieuw lid Ik ben dus niet bekend met classes, maar ik wil toch een gooi doen, als hij echt nergens op slaat, dan delete een admin het wel 

in je index roep je die class aan en in de class declareer je eerst de cookie variablen

privat ding1 = $_COOKIE['iets']
privat ding2 = $_COOKIE['ietsAnders']
ect

en adh van die variablen check je de rest ?


edit: die errors onderdrukken is imo niet de oplossing 
Offline Ultimatum - 28/10/2007 23:35 (laatste wijziging 29/10/2007 00:15)
Avatar van Ultimatum PHP expert Even kijken of ik je goed begijp . De cookies niet meegeven als parameter in de functies, maar dan gewoon als variable in de class. En aan de hand daarvan kijken of cookie wel of niet bestaat. Hmm.., dat zou best eens kunnen. Maar ik denk dat ik dan dezelfde error krijg . Ik zal morgen even kijken , iig bedankt voor je hulp 

Ik heb niet helemaal Vintages advies opgevolgd maar ik heb het nu een beetje veranderd . In plaats van dat de cookie dmv een variable van de functie werd meegegeven doe ik het nu rechtstreeks in de functie. Is dit de enige oplossing die in mijn geval goed zou zijn of kan het nog makkelijker? Hij doet het wel goed btw 

Dit is wat ik nu dan heb:
  1. <?php
  2. public function checkLogin($group = 'all') {
  3.  
  4. if(isset($_COOKIE['id']) && isset($_COOKIE['ip']) && isset($_COOKIE['hash']) && (strlen($_COOKIE['ip']) >= 8 && strlen($_COOKIE['ip']) <= 15 && $_COOKIE['ip'] == $this->ip()) && strlen($_COOKIE['hash']) == 40) {
  5.  
  6. if($group == 'all') {
  7.  
  8. return true;
  9.  
  10. } else {
  11.  
  12. $id = $this->splitCookie($_COOKIE['id']);
  13.  
  14. if($group == $id[0]) {
  15.  
  16. return true;
  17.  
  18. } else {
  19.  
  20. return false;
  21.  
  22. }
  23. }
  24. } else {
  25.  
  26. return false;
  27.  
  28. }
  29. }
  30. ?>
Offline vinTage - 29/10/2007 00:18 (laatste wijziging 29/10/2007 00:19)
Avatar van vinTage Nieuw lid Dat lijkt wel een beetje op wat ik zei, alleen declareer je de variablen niet vooraf (ook weet ik niet of dat wel goed was, want ik had ook al aangegeven dat ik een schapezak ben met classes )
Offline Wim - 29/10/2007 03:57
Avatar van Wim Crew algemeen een @'tje ervoor laat geen errors zien  
Offline Ultimatum - 29/10/2007 06:45
Avatar van Ultimatum PHP expert @Vintage, dat gaf hetzelfde probleem. Ik verschoof alleen de foutregel en het bestand op.
@wimmarien, dus gewoon hoe ik het had maar dan @ voor de $_COOKIE zetten?
Offline Wim - 29/10/2007 12:46
Avatar van Wim Crew algemeen als je een minder goede -maar werkende- oplossing wil...

Kan je trouwens ook je error's eens geven?
Offline Ultimatum - 29/10/2007 14:01
Avatar van Ultimatum PHP expert Dit zijn de errors die ik krijg:
Citaat:
Notice: Undefined index: id in D:Program Filesxampphtdocslibraryfunction.menu.php on line 19

Notice: Undefined index: ip in D:Program Filesxampphtdocslibraryfunction.menu.php on line 19

Notice: Undefined index: hash in D:Program Filesxampphtdocslibraryfunction.menu.php on line 19

Notice: Undefined index: id in D:Program Filesxampphtdocslibraryfunction.menu.php on line 15

Notice: Undefined index: ip in D:Program Filesxampphtdocslibraryfunction.menu.php on line 15

Notice: Undefined index: hash in D:Program Filesxampphtdocslibraryfunction.menu.php on line 15


En op regel 15 en 19 staan dan die functies.
Offline Wim - 29/10/2007 14:40
Avatar van Wim Crew algemeen gooi er maar een @'tje voor
Offline Ultimatum - 29/10/2007 15:39
Avatar van Ultimatum PHP expert Hmm.., dan doe ik dat wel 
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.27s