Cookie waarschuwing review
Ik heb vreselijk zitten zweten, maar heb nu een leuk en klein script gemaakt die een cookie melding geeft. Ik wil graag jullie meningen over het script. het is te vinden op Pastebin
Alvast bedankt
Gewijzigd op 29/12/2012 11:07:40 door Koen Hollander
Verder vind ik je includes enigszins opmerkelijk.
c_c_include.php (het echte cookie bericht)
- include 'c_c_global.php';
c_c_global.php
- include 'c_c_config.php';
- include 'c_c_lang_'. $basic['lang'] .'.php';
c_c_lang_nl.php
- include 'c_c_config.php';
c_c_config wordt dus twee keer geinclude.
Verder, in c_c_config wordt gechecked of c_c_include bestaat, waarom? Volgens mij is dat de hele basis waarin ook de belangrijkste functionaliteit wordt uitgevoerd. Als dat bestand dus niet bestaat wordt c_c_config ook niet geinclude. Die test is dus overbodig.
In c_c_global roep je session_start() aan. Alleen, je gebruikt nergens sessies. Die aanroep is dus overbodig.
Ook belangrijk wat mij betreft, je geeft de gebruiker de keuze om de cookie te accepteren.... dat is dus geen keuze. Wat als hij het niet wil?
Erwin H op 29/12/2012 13:08:14:
Ook belangrijk wat mij betreft, je geeft de gebruiker de keuze om de cookie te accepteren.... dat is dus geen keuze. Wat als hij het niet wil?
Dat zie ik, helaas, op veel meer sites. Het is regelmatig 'alles of niets'. :(
In http://www.phphulp.nl/php/forum/topic/cookie-waarschuwing-maken/87897/1/ staan diverse links waar ik eerder een keuze uit zou maken dan jouw code gebruiken.
Nee hoor die foutmelding bestaat niet.
@Obelix en Idefix
Er staat: Als je door gaat accepteer je dat er cookies worden gebruikt. De site kan absoluut niet draaien zonder cookies. Ik heb een sessie, is dus een cookie. Die begint meteen al. Dan zullen ze de site dus moeten afsluiten als ze die niet accepteren.
Erwin H op 29/12/2012 13:08:14:
Ik heb namelijk het idee dat je een 'header already sent' foutmelding krijgt
Koen Hollander op 29/12/2012 13:48:55:
@Erwin
Nee hoor die foutmelding bestaat niet.
Nee hoor die foutmelding bestaat niet.
Die foutmelding bestaat wel degelijk. Zoek maar eens met Google
Denk dat je bedoelt dat jij de foutmelding, met deze code, niet krijgt. ;-)
Koen Hollander op 29/12/2012 13:48:55:
@Obelix en Idefix
Er staat: Als je door gaat accepteer je dat er cookies worden gebruikt. De site kan absoluut niet draaien zonder cookies. Ik heb een sessie, is dus een cookie. Die begint meteen al. Dan zullen ze de site dus moeten afsluiten als ze die niet accepteren.
Er staat: Als je door gaat accepteer je dat er cookies worden gebruikt. De site kan absoluut niet draaien zonder cookies. Ik heb een sessie, is dus een cookie. Die begint meteen al. Dan zullen ze de site dus moeten afsluiten als ze die niet accepteren.
Heb het idee dat je niet begrijpt wat ik (en ook Erwin) bedoel.
Erwin H op 29/12/2012 13:08:14:
Ook belangrijk wat mij betreft, je geeft de gebruiker de keuze om de cookie te accepteren.... dat is dus geen keuze. Wat als hij het niet wil?
Mensen hebben de keuze uit jouw site niet bezoeken of als ze willen bezoeken moeten ze cookies accepteren. Vind dat niet erg vriendelijk.
Schrijf eens wat nettere code, Koen.
@Obelix en Idefix, dat bedoel ik indd. Had het verkeerd geformuleerd.
Maar als jullie een cijfer moesten geven, schaal. 1-10. Wat zal het dan zijn?
Quote:
@Raoul, ik doe het altijd een beetje snel
Dan moet je het maar wat langzamer doen, dit is niet te lezen en daardoor maak je het aanpassen en later onderhoud van dit script moeilijker, waardoor je dat beetje tijd die je nu gewonnen hebt nooit meer terug gaat krijgen.
Quote:
Maar als jullie een cijfer moesten geven, schaal. 1-10. Wat zal het dan zijn?
Qua code: 3 - De logica zit niet goed en de netheid is ver te zoeken
Qua bericht: 1 - Hoe wil je dit bericht gaan weergeven? Je kan hem niet op je pagina zetten, want dan heb je al meteen cookies gebruikt. Dus je moet hem op een splash pagina zetten, gevolg dat mensen al wegstappen omdat ze een splash pagina krijgen en als 2e dat je de header location moet veranderen.
Vervolgens kunnen de gebruikers niks anders dan niet naar de site gaan als ze geen cookies willen, je gaat daardoor een groot deel van je bezoekers missen.
Koen Hollander op 29/12/2012 13:48:55:
@Erwin
Nee hoor die foutmelding bestaat niet.
Nee hoor die foutmelding bestaat niet.
Of is dat omdat je error reporting uit hebt staan?
Laat ik het anders uitleggen. Ik heb het zelf niet getest overigens, want geen zin om het te downloaden in te installeren. Mocht iemand dat wel hebben gedaan en de volgende analyse kunnen weerleggen, prima.
Dit is je code:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Eerste aanroep:
Het cookie bestaat niet, het form wordt dus getoond.
Er is geen POST actie, het cookie wordt dus niet geplaatst.
Als gebruiker klik ik op de button, het form wordt dan naar zichzelf gepost.
Tweede aanroep:
Het cookie bestaat nog steeds niet, het form wordt dus getoond. Als gebruiker denk ik nu 'Hmm, wat gaat er mis".
Nu is er echter wel een POST actie geweest, je script wil dus een cookie plaatsen en wil een redirect uitvoeren.
Voor zowel het plaatsen van het cookie, als voor de redirect moeten er headers verstuurd worden en dat kan niet, want er is al output verstuurd.
Nogmaals, niet getest, maar volgens mij zou bovenstaande gebeuren. Ik vraag me dus echt af of jij het wel hebt getest en wat er gebeurt.
Bij mij werkt hij gewoon uitstekend, na 1 klik op de knop gaat dat balkje meteen weg en komt hij ok niet meer terug. Ik zie ook geen foutmeldingen in het script.
Koen, tijd om je code te herschrijven naar een een iets logischere en nettere code?
Bedankt voor al jullie eerlijke reacties. Ik zal ze bekijken, gaan inspringen en hem zo net mogelijk maken. Nogmaal bedankt
Ik weet niet hoe het met jullie zit maar ik lap die hele coockie wetgeving aan mijn laars :-) Er is geen haan die hiernaar kraait, en voor gebruikers is het alleen maar storend.
Dylan PHP op 31/12/2012 14:59:13:
Ik weet niet hoe het met jullie zit maar ik lap die hele coockie wetgeving aan mijn laars :-) Er is geen haan die hiernaar kraait, en voor gebruikers is het alleen maar storend.
Cool, ga nu maar mijn auto wassen