Ok kan se du kontroller på serversiden.. Men Jeg ville nok også bare bruge captcha(et forringet billede med bogstaver og tal) og så lave et felt hvor man så skal gentage det der står på billedet.
Eftersom spam robotter ikke køre javascript kan man ikke bruge den javascript validering der er i tråden til noget ... hvis man skulle bruge den kunne man:
function wload(){ document.getElementsByName("jsok")[0].setAttribute("value","hemmeligtord"); } </script>
</head><body>
<form>
<input type="hidden" name="jsok" value="afvis">
</form>
</body></html>
og så validere via php post håndteringen om $_POST['jsok']=="hemmeligtord"; ellers så fejl med at javascript skal være aktiveret... aktiver javascript og opdater siden ...
- men det er som sagt simpel validering ... Nielle's slog bare fejl da alle kan poste når javascript var deaktiveret og det er det hos spam robotter normalt ... - Denne er så modsat så javascript kræves for at php godkender submit delen ...
13/09-2006 20:28:39 , Fordi det ikke virker ... I den du kastede der kan man ikke poste med javascript (return:false;) ... Og derudover hvis du lavede det så man ikke kunne måle på et felt som i 13/09-2006 20:21:19 på dem serverside kode så kan man ikke se om folk havde javascript aktiveret (javascript aktiveret = 99,?% sikkert ikke en spambot)...
... Hvis du så laver det om så man kun kan submitte hvis man regner et felt rigtigt ud som i Nielle's eksempel så er løsningen også hullet ... et felt der sættes til en specifik værdi via. js er måden at lave den simple js validering ...
Hmm, analyserede lidt for hurtigt det virker ikke fordi: function submitform() { document.gbform.action = '<? echo $PHP_SELF; ?>'; document.gbform.submit(); // Når du starter submit afsendes formularen så formularen bliver submittet ... return false; // denne her har ingen formål }
... Du lavede samme fejl som Nielle, uden javascript så kan alle poste - og spambotter kører uden javascript...
- ved at lave den dims med action løses problemet også ... så apocalyptica_apo har ret, vi kan godt lave den simplere ... (så vi undgår det input felt ... to sekunder ...)
mclemens >> Nej flot mester, men da jeg testede det i min browser så nåede den at submitte før den blev ændret af javascriptet, så derfor. And next time mind your own code.
1. den i 13/09-2006 18:14:00 (mest effektiv) 2. den jeg lavede i 13/09-2006 20:21:19 3. den apocalyptica_apo lavede i 13/09-2006 20:28:39
... dog bør script sektionen nok se sådan her ud: <SCRIPT language="JavaScript"> function submitform() { document.gbform.setAttribute('action','<? echo $PHP_SELF; ?>'); return true; } </SCRIPT>
... Jeg fangede ikke den med action ændringen ...
- Hvis du vælger apocalyptica_apo's anbefaler jeg at du har en fil der hedder nospam.php hvor du har et link til gæstebogen med en tekst om at javascript var krævet og det skal aktiveres (af hensyn til dem der ikke har javascript aktiveret)
[ And next time mind your own code. ] Javel - jeg syntes bare at du kastede svaret så hurtigt selvom den jeg havde lavet i 13/09-2006 20:21:19 burde have løst problemet ... Det var alt ... Undskyld at jeg kommenterer kodninger på et åbent forum ... du kommenterede jo også min til dels med at [ Hvorfor ikke.. ... og resten af kildekoden]
... Hvis ordene Hvorfor ikke.. betyder at jeg skal blande mig uden om så beklager jeg ...
Jeg har lavet den der fil nospam.php med teksten Javascript skal være aktiveret for at skrive i gæstebogen. Er det ok eller skal der stå mere i den fil? Og den popper også op hvis js er slået fra..
[ men da jeg testede det i min browser så nåede den at submitte før den blev ændret af javascriptet, så derfor. ] Jeg formoder at rettelsen til apocalyptica_apo's kode i 21:01:43 løser den del med for hurtig submit inden ... men jeg checker lige op på den ...
mclemens >> du gør det mere komplekst end det behøver at være. Hvorfor submitte noget der er i princippet det samme som en andens løsning og derefter insistere hvilken løsning man skal bruge.
[ Hvorfor submitte noget der er i princippet det samme som en andens løsning og derefter insistere hvilken løsning man skal bruge. ] Den må du hellere forklare... Kan ikke se at 13/09-2006 20:21:19 er magen til noget af det tidligere - så det med "i princippet det samme" forstår jeg ikke...
Desuden mclemens >> "Hvorfor ikke" var en strø tanke. "Men har ikke lige testet" hvorfor tester du ikke din kode først? I stedet for, skal man måske til at lave en lang tråd fordi man ikke har testet sin kode.. cskott >> jeg håber det holder ellers du nok nødtil at lave captcha eller lign.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.