login  Naam:   Wachtwoord: 
Registreer je!
 Forum

Geen Static toch aanroepen?

Offline lasdesigner - 02/06/2006 22:25 (laatste wijziging 02/06/2006 22:50)
Avatar van lasdesignerPHP beginner Hallo,

Ik ben bezig met een nieuwssysteem, en ik wil hierbij kijken of de persoon is ingelogd of niet (om nieuws toe te voegen etc)

Ik heb nu dit:
  1. <?php
  2. class AdminEnMod extends Nieuws {
  3. private $adminofmod = false;
  4.  
  5. public function __construct($gebruikersnaam, $wachtwoord) {
  6. $query = "SELECT rank FROM users WHERE gebruikersnaam = '$gebruikersnaam' AND wachtwoord = '$wachtwoord'";
  7. $data = DBM::getRecord($query);
  8.  
  9. if($data != null) {
  10. if($data['rank'] > 1) {
  11. $this->adminofmod = true;
  12. return true;
  13. } else {
  14. return false;
  15. }
  16. } else {
  17. return false;
  18. }
  19. }
  20. ?>


Maar nu wil ik dus kijken of $adminofmod true is of false. Ik deed dat zo:
  1. <?php
  2. $a = new AdminEnMod('tessdft', 'testf');
  3. if($a->$adminofmod != true) {
  4. ?>

Dit zou dus een fout moeten weergeven maar hij geeft als volgt weer:

Fatal error: Cannot access empty property in E:\wamp\www\****\website\nieuws.php on line 6


WAt doe ik fout?

15 antwoorden

Gesponsorde links
Offline marten - 02/06/2006 22:28 (laatste wijziging 02/06/2006 22:32)
Avatar van marten Beheerder variabelen buiten quotes

if($data != null) { zou ik vervangen voor if($data) {

Maak van private $adminofmod eens public $adminofmod
Denk namelijk dat de variabele niet kan worde gebruikt buiten de class omdat het een private is
Offline Lemon - 02/06/2006 22:32
Avatar van Lemon PHP expert public function __construct($gebruikersnaam, $wachtwoord) {

is dit lijn 6?

Zonee, welke is dan wel lijn 6?
Offline lasdesigner - 02/06/2006 22:35
Avatar van lasdesigner PHP beginner Natuurlijk marten, dat lijkt me ook! Stom, ik test het nu. MAar nee, nog steeds dezelfde fout. Nee, dit is de lijn 6 die zij bedoelen:

if($a->$adminofmod != true) {
Offline kokx - 02/06/2006 22:37
Avatar van kokx Onbekend lol, Dat moet natuurlijk dit zijn:
if($a->adminofmod != true) {
Zonder de $
Offline lasdesigner - 02/06/2006 22:38
Avatar van lasdesigner PHP beginner aleen nu werkt die niet,

ik heb dan dit als hele code:
  1. <?php
  2. include('classes/DBM.class.php');
  3. include('classes/settings.inc.php');
  4. include('classes/nieuws.class.php');
  5. $a = new AdminEnMod('tessdft', 'testf');
  6. if($a->adminofmod != true) {
  7. if($a->VerwijderReactie(2) != false) {
  8. echo "verwijderd";
  9. } else {
  10. echo "FOUT";
  11. }
  12. } else {
  13. echo "Andere Fout";
  14. }
  15. ?>


En hij zegt verwijderd, terwijl dit niet kan, want ik heb verkeerde inlognamen weergegeven.
Offline marten - 02/06/2006 22:39
Avatar van marten Beheerder damn 

dat ik die over het hoofd zag 

lasdesigner installeerd zend studio eens dan vult ie zelf dit soort dingen aan 
Offline Rens - 02/06/2006 22:39
Avatar van Rens Gouden medaille

Crew algemeen
  1. if($a->adminofmod != true) {

Maak daar dan == van, ipv !=?
Offline kokx - 02/06/2006 22:41 (laatste wijziging 02/06/2006 22:42)
Avatar van kokx Onbekend Bij vergelijkingen met true of false moet je altijd === of !== gebruiken.

@marten: Niet iedereen heeft zin om software te cracken. Of om een grote som geld te betalen.
Offline Rens - 02/06/2006 22:42
Avatar van Rens Gouden medaille

Crew algemeen
Dat moet helemaal niet.
Dat mag, maar het moet niet.
== werkt net zo goed.
Offline marten - 02/06/2006 22:44
Avatar van marten Beheerder
Citaat:
@marten: Niet iedereen heeft zin om software te cracken. Of om een grote som geld te betalen.


Ik heb het niet over cracken of geld betalen. heb zelf de trial geprobeerd en ben er erg over te spreken Maar dat offtopic ontopic weer
Offline lasdesigner - 02/06/2006 22:45 (laatste wijziging 02/06/2006 22:49)
Avatar van lasdesigner PHP beginner Huh als ik er == true van maak doet hij het wel. Maar dan heeft mijn hele constructor geen zin. Of tenminste hij werkt niet. Want hij hoort automatisch op false te staan.. Maar ik log me nu is goed in, kijken of die het dan wel doet.

edit Vaag dan doet hij het goed!
Offline Rens - 02/06/2006 22:50
Avatar van Rens Gouden medaille

Crew algemeen
Komt gewoon omdat jij checkt of het false is, en als het false is hoort het niet te mogen...
En als het true is wel.
Offline Simon - 02/06/2006 22:51
Avatar van Simon PHP expert @rens: bij mijn weten moeten booleans gecontroleerd worden met === of !==, dit even terzijde 
Offline Rens - 02/06/2006 22:54
Avatar van Rens Gouden medaille

Crew algemeen
Dit moet niet.
Met == werkt het ook.
Probeer het anders gewoon uit?
Offline lasdesigner - 02/06/2006 22:58
Avatar van lasdesigner PHP beginner zonder === werkt het prima !
Gesponsorde links
Dit onderwerp is gesloten.
Actieve forumberichten
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.217s