ik heb een captcha-beveiliging gemaakt.
alleen wil ik nu dat je de captcha kunt herladen, voor als hij onduidelijk is ofzo, zonder de hele pagina te herladen. is hier een of andere functie voor? of iets anders waarmee dit kan?
Maar meestal is het toch zo dat php een afbeelding aanmaakt voor jouw, Met wat random cijfers/letters erin? Nou heb je een src naar een afbeelding, maar met allemaal leuke getalletjes (de date() ).. .Ik snap er het nut ook niet van eigenlijk..?
Ja die hebt ik gelezen hoor, wees maar niet bang. Maar ik snap 't niet, wat heeft die date er mee te maken om de src naar een afbeelding te hebben?
Ps. Ik had het in mijn vorige post ook over 'betere', dat bekent dat er dus al een voorgaande uitleg was, maar die in mijn ogen niet goed is (of althans, dat ik 'm niet snap).
'Lees eens wat'
Maar meestal is het toch zo dat php een afbeelding aanmaakt voor jouw, Met wat random cijfers/letters erin? Nou heb je een src naar een afbeelding, maar met allemaal leuke getalletjes (de date() ).. .Ik snap er het nut ook niet van eigenlijk..?
Maar meestal is het toch zo dat php een afbeelding aanmaakt voor jouw, Met wat random cijfers/letters erin? Nou heb je een src naar een afbeelding, maar met allemaal leuke getalletjes (de date() ).. .Ik snap er het nut ook niet van eigenlijk..?
Heeft iemand misschien een betere uitleg?
Wanneer je met een image tag verwijst naar image.php zal je browser een request sturen naar die pagina. Omdat image.php een CAPTCHA is zal deze zich voordoen als een afbeelding. Vele browsers zijn hierdoor geneigd om deze afbeelding lokaal op te slaan in de cache, op die manier gaat het laden van een website een pak sneller omdat al die afbeeldingen dan niet meer individueel moeten worden opgehaald.
Nu, omdat het uiteraard niet de bedoeling is dat die afbeelding wordt opgenomen in de cache van de browser moeten we dit tegengaan. Dit doen we door een unieke waarde mee te geven aan de URI van de afbeelding (een GET waarde in de querystring beïnvloedt je script niet en daar zal dus meestal voor gekozen worden). Wat voor betere unieke waarde te gebruiken dan de huidige timestamp plus nog eens die van microseconden? (voor wanneer je binnen minder dan een seconde zou herladen)
Het is eigenlijk heel simpel, ik hoop dat je het nu ook snapt.
Het er dus alleen maar voor zodat je browser 'denkt' dat het een compleet nieuwe afbeelding is. Zodat deze niet wordt opgeslagen. Het is me helemaal helder, bedankt man.
Maar dan is er nog 1 brandende vraag (voor mij dan ), waarom zou je dat willen? Het maakt toch niet uit als de afbeelding in de cache wordt opgeslagen? Of is dit om bepaalde bugs tegen te gaan? Dat als jij de pagina refreshed, dat niet gewoon dezelfde afbeelding blijft staan. Het is dus puur en alleen om tegen te gaan dat ie in je cache komt tegen die bug. Het maakt je script dus niet veiliger bedoel ik te zeggen..
(beetje onduidelijk wat ik nou zeg waarschijnlijk, maar dat heb je soms als je in 1 dag 3 boekverslagen en een poëzie iets hebt gemaakt voor school )
(...) Dat als jij de pagina refreshed, dat niet gewoon dezelfde afbeelding blijft staan. Het is dus puur en alleen om tegen te gaan dat ie in je cache komt tegen die bug. (...)
Ja, dat klopt. Alleen is het geen bug. Hoe moet die browser weten of het een captcha is? Hij krijgt van Apache een statuscode door: 304 Not Modified als je gewoon hetzelfde bestand aanroept.
Apache weet niet (of weet?) of dat bestand dynamisch is gemaakt, dus als jij iets van GET of POST mee stuurt geeft hij hem maar opnieuw. Dan neemt de browser aan dat het plaatje veranderd is en verandert hem in de pagina.