2 Classes, beide hebben ze elkaar nodig?

Gestart doorMiel15 reacties83 weergaven

16 berichten · pagina 1 van 2

Miel

Lid · Topicstarter

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Ik heb 2 classes die elkaar zeg maar "nodig hebben".
Wie weet hier een fix voor?
Hier de scriptjes.
classes/base.class.php
Even codes weg voor load ofzo.
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
De instantie van base meegeven als parameter naar je member-object.

regel 22 vervangen door
$this->member = new member(&$this);

regel 7 vervangen door:
private $base;

regel 9 vervangen door
public function __construct($base)

regel 14 vervangen door
$this->base = $base;

Verder overal $base-> vervangen door $this->base.
Volgens mij zou t dan wel moeten werken.

Ik zou trouwens ook een instantie van je databaseobject ($mysql) meegeven, anders zit je met $this->base->mysql->query(), das ook niet echt heerlijk om telkens uit te typen. emo
0
Miel

Lid · Topicstarter

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Oké, bedankt.

En voor de mysql variabele dit?
$this->member = new member(&$this,$mysql);

Wat niet werkt bij mijbloos

Ik heb het al, hartstikke bedankt.
Wat was ik btw dom om mn database gegevens in het script te laten staan.
Mja, ik ben altijd eigenwijs, en ga s avonds of s nachts scripten.
0
Miel

Lid · Topicstarter

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Sorry voor dubbel post, maar toch nog een vraag.
Als ik dit ($this->mysql->query("query")) door mysql_num_rows gooi krijg ik een error, en als ik gewoon mysql_query gebruik niet, hoe ka ik dit oplossen?
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Door uit te zoeken welke error je krijgt.

Zet je classes eens in dit topic, zo kan ik ook niet echt zien waar je fout zit hea.
0
Miel

Lid · Topicstarter

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Het was al gelukt, maar de edit functie werkt hiero niet meer.
Verder heb ik nu het bekende header al ready send probleem, hoe kan ik dit het netst oplossen? Lijkt me niet handig om ini_set(output_buffering, 1); bovenaan een class te zetten.
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Door éérst je cookies weg te sturen en daarna pas de content e.d.
Je moet iig niet gaan klooien met output buffering en andere gare functies; je moet problemen oplossen, niet omzeilen.
0
Miel

Lid · Topicstarter

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Klopt, maar hoe ga ik ze eerst wegsturen..yummieWant eerst komt mijn layout naar voren, en ik zou niet weten hou ik dit om kan wisselen.
Want in een variabele zetten lijkt me geen optie..yummie
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Hoe heb je het nu dan?
0
Miel

Lid · Topicstarter

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Eerst include ik de layout (ja, ik weet het, ik kan beter ene template parser gebruiker..yummie) en dan komen de cookies.yummie
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Waarom komen die dan pas?
Doe het gewoon zo:
include alle classes die je nodig hebt
set alle cookies
stuur je layout + content enzo weg
0
Miel

Lid · Topicstarter

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Maar ik heb het zo:
/index.php

[COLOR= #0000BB]<?php[/COLOR]
[URL="http://www.php.net/include_once"]include_once[/URL] [COLOR= #DD0000]includes/base.inc.php[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$base[/COLOR][COLOR= #007700]->[/COLOR]layout[COLOR= #007700]->[/COLOR]top[COLOR= #007700]();[/COLOR]

[URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SERVER[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]REQUEST_METHOD[/COLOR][COLOR= #007700]] ==[/COLOR] [COLOR= #DD0000]POST[/COLOR][COLOR= #007700])
{[/COLOR]
    
    [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$base[/COLOR][COLOR= #007700]->[/COLOR]member[COLOR= #007700]->[/COLOR]inloggen[COLOR= #007700]([/COLOR][COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]gebruikersnaam[/COLOR][COLOR= #007700]],[/COLOR] [COLOR= #0000BB]$_POST[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]wachtwoord[/COLOR][COLOR= #007700]]))
    {[/COLOR]
        
        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]Je bent succesvol ingelogd.[/COLOR][COLOR= #007700];
        
    }[/COLOR]
    
    [URL="http://www.php.net/else"]else[/URL]
    [COLOR= #007700]{[/COLOR]
        
        [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #DD0000]Sorry, er is wat fout gegaan.[/COLOR][COLOR= #007700];
        
    }
    
}[/COLOR]
?>
<form action="" method="post">
    <input type="input" name="gebruikersnaam" />
    <input type="password" name="wachtwoord" />
    <input type="submit" name="submit" value="Inloggen" />
</form>
[COLOR= #0000BB]<?php
$base[/COLOR][COLOR= #007700]->[/COLOR]layout[COLOR= #007700]->[/COLOR]bottom[COLOR= #007700]();[/COLOR]
?>


De layout class is vanzelf sprekend lijkt me, de inlog functie in de member class stuurt de cookies.
Dus dan kan dat niet lijkt me..?
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Wat ik zou doen is in de functie inloggen() een sessie starten (geen cookie), en dan bij elk bezoek een nieuwe cookie maken in je __construct() van member.
0
Miel

Lid · Topicstarter

Berichten
4.462
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Even testen..yummieThx iig.

Hij zo hoort het inderdaad te werken.. Maar hij maakt geen cookies aan op deze manier:

[COLOR= #0000BB]<?php[/COLOR]
        [COLOR= #FF8000]//Kijken of de sessions bestaan.[/COLOR]
        [URL="http://www.php.net/if"]if[/URL][COLOR= #007700]([/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]lidid[/COLOR][COLOR= #007700]]) &&[/COLOR] [URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]hash[/COLOR][COLOR= #007700]]) &&[/COLOR] [URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]lidrang[/COLOR][COLOR= #007700]]))
        {[/COLOR]
        
            [COLOR= #FF8000]//Cookies aanmaken en vullen.[/COLOR]
            [URL="http://www.php.net/setcookie"]setcookie[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]lidid[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]lidid[/COLOR][COLOR= #007700]],[/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]() +[/COLOR] [COLOR= #0000BB]900[/COLOR] [COLOR= #007700]*[/COLOR] [COLOR= #0000BB]86400[/COLOR][COLOR= #007700]);[/COLOR]
            [URL="http://www.php.net/setcookie"]setcookie[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]hash[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]hash[/COLOR][COLOR= #007700]],[/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]() +[/COLOR] [COLOR= #0000BB]900[/COLOR] [COLOR= #007700]*[/COLOR] [COLOR= #0000BB]86400[/COLOR][COLOR= #007700]);[/COLOR]
            [URL="http://www.php.net/setcookie"]setcookie[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000]lidrang[/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$_SESSION[/COLOR][COLOR= #007700][[/COLOR][COLOR= #DD0000]lidrang[/COLOR][COLOR= #007700]],[/COLOR] [URL="http://www.php.net/time"]time[/URL][COLOR= #007700]() +[/COLOR] [COLOR= #0000BB]900[/COLOR] [COLOR= #007700]*[/COLOR] [COLOR= #0000BB]86400[/COLOR][COLOR= #007700]);
        
        }[/COLOR]
?>


Maar deze manier is toch juist?confusedOp
0
Berichten
35.796
Reputatie
1
Punten
0,00
Lid sinds
Laatst gezien
Blijkbaar niet. pompom
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren