Homepage » Tutorials » PHP & MySQL » Cookies en veel voorkomende fouten
Cookies en veel voorkomende fouten
| Info | ||||
| Door: | LegendaryDC | Moeilijkheidsgraad: | ![]() |
|
| Geplaatst op: | 24-03-2005 | Reacties: | 7(Bekijken) | |
| Views: | 6218 (gem. 3.1152 per week) | Log in om zelf te reageren | ||
| Waardering: | ||||
Cookies zijn handig, inderdaad. Het zijn die dingetjes er voor zorgen dat je niet altijd je usersname en wachtwoord moet invoeren bij het bezoeken van een forum of site.
We zullen er maar direct invliegen.
//cookies schrijven//
Hieronder een vorbeeld van een cookie
| # | Code |
1 | setcookie("naamvande cookie", “waarde van cookie”, tijd ); |
Een cookie bestaat voornamelijk uit drie delen, de naam van de cookie, de waarde van de cookie en de tijd hoe lang het op de pc van de bevoegde moet staan.
Hieronder een voorbeeld van een cookie dat je echt kan gebruiken:
| # | Code |
1 | setcookie("nickname", “Legendary”, time()+3600); |
Dus de cookie met de naam ‘nickname’, en met de waarde ‘Legendary’, blijft 3600 seconden dus één uur op je pc staan.
//cookie oproepen//
Nu staat de cookie op de PC van de bezoeker maar wat daarna?
Daarna kan je de cookie oproepen door de functie:
| # | Code |
1 | $_COOKIE[“naamvancookie”] |
Als ik dan bijvoorbeeld dit doe:
| # | Code |
1 | echo($_COOKIE[“nickname”]); |
Geeft hij netjes ‘Legendary’ weer. Dat komt omdat ik al een cookie heb wegeschreven met de naam ‘nickname’ en de waarde ‘Legendary’.
//cookies verwijderen//
Je kan ook cookies verwijderen. Hiervoor bestaat geen speciale functie dus zullen we een klein trucje moet uitvoeren:
| # | Code |
1 | setcookie("nickname", “Legendary”, time()-3600); |
Zoals je ziet schrijf je eigelijk een cookie weg in het ‘verleden’. Hiermee verwijder je een bestaande cookie moest die er al op staan.
//een veel voorkomende fout//
Een veel voorkomende foutmelding die je krijgt als je cookies schrijft is deze:
Cannot add header information - headers already sent by
(output started at …..
Dit komt omdat je output wegschrijft voor je setcookie() .
Een output is een regel tekst die je wegschrijft naar de browser zoals dit
| # | Code |
1 | echo(“Hello World”); |
Als je dit doet VOOR je setcookie() krijg je problemen
Er zijn twee oplossingen, je zet je setcookie() helemaal vanboven je code. Of je gebruikt de functies ob_start(); en ob_end_flush();
Je moet dus helemaal boven in je code, op de allereerste regel dit zetten
| # | Code |
1 | <?php |
En helemaal onderaan op de laatste regel dit:
| # | Code |
1 | <?php |
Deze twee regeltjes php zorgen er voor dat al je output even word opgeslagen en pas op het einde van de code word weergegeven. Zo kan er dus onmogelijk output geweest zijn voor je setcookie()
| 7 reacties | |
| LegendaryDC | |
![]() Nieuwsposter |
als je een onbeperkt cookie wilt gebruiken dan moet je gewoon geen tijd instellen dus bv setcookie("naamvande cookie", “waarde van cookie” ); |
| Zain | |
![]() Regular |
juh, ik moet zo te zien tijd instellen :P hoelang koekje moet blijven bestaan.. nuja, zelfde als echte koekjes : onbeperkte zijn liever :) |
| Blizt | |
![]() Webmaster |
Een onbeperkt koekje nick? :P |
| Zain | |
![]() Regular |
hmm, en een onbeperkt koekje? |
| LegendaryDC | |
![]() Nieuwsposter |
ik heb de voorbeelden gehaald uit een code ik geschreven heb om er zeker van te zijn dat hij werkt. dus normaal kunnen hier geen problemen optreden. geef anders de foutmelding eens weer en maak je gebruik van de twee onderstende functies? |
| rogier.slag | |
![]() Moderator |
dit werkt gewoon anders. Stel je vraag desnoods op het forum, mocht je ergens niet uitkomen |
| Michielvsb | |
![]() Regular |
Ik heb alles gedaan wat je gezegd hebt en krijg veel fouten. Kun je eens een voledig werkende cookie schrijven? |
Om te reageren moet je ingelogd zijn.
Nog niet geregistreerd? Doe dat dan nu!
Check je domein...
Websitemaken wordt gehost door Nucleus.be





