Indlæg i gæstebogen uden indhold.. :S

Tags:    php

Hejsa alle udviklere..

Jeg har siddet og lavet en gæstebog og prøver på at gøre, så man blandt andet ikke kan poste tomme indlæg og har til det formål både brugt Javascript og PHP.

Javascript koden bruger jeg, når folk trykker submit og PHP koden bruger jeg på den siden, hvor data bliver sat i databasen. Den kontrollerer at mine input felter ikke er tomme og alligevel, så er der nogen der poster uden at indsætte tegn.

Javascript koden:
Fold kodeboks ind/udKode 


PHP koden:
Fold kodeboks ind/udKode 


Function TagwallSec:

Bruges til at fjerne blandt andet html tags. PHP på min webserver har "magic_quotes_gpc On",
"magic_quotes_runtime Off" & "magic_quotes_sybase Off", men jeg bruger den nedenstående function, så jeg kan poste brugerens input igen uden HTML kode, hvis der er fejl i deres input. Men når jeg kigger på mine input i databasen, så har ' & " ikke nogen slashes..?

Fold kodeboks ind/udKode 



Er der nogen, der har forslag til hvordan man kan gøre gæstebogen mere sikker? Her tænker jeg blandt andet på SQL injections, tomme indlæg og angreb generelt.

Hvor godt er Captcha? Og vil det hjælpe på sikkerheden i forhold til programmer, som indsætter data automatisk..?

I kan se eksempel på gæstebogen på:

Min gæstebog

Håber virkelig der er nogen, der kan hjælpe, da jeg har kæmpet med det et par dage nu.. :S

Med venlig hilsen

Sol



1 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 3 karma
Sorter efter stemmer Sorter efter dato
tilføj alle variable til sql query gennem funktionen mysql_real_escape_string, prøv et bruge funktionerner
strlen og trim til at finde ud af om en streng er tom sådan her:
if(strlen(trim($var))==0){
--tom streng--
}
Captcha vil altid hjælpe sikkerheden da det så kun er programmer der kan afkode dem der kan poste. Spørgsmålet er om det er værd attilføje deres ubrugervenlighed i forhold til bare en gang i mellem at gå alle nye posts igennem og slette dem der er klare spams.

kan ikke lige se hvorfor du ville have at & skulle have en slash.

I stedet for først at spilde tid på at gøre dataene klar til at blive indsat i din database bør du først checke om alle dataer er korrekte.

Test om alle dataer er korrekte i stedet for kun at teste om noget data er korrekt såfremt noget andet var det, dette ville give din kode færre indrykninger, og samtidig kan du så fortælle alle de fejl en bruger må have lavet i stedet for at brugeren skal sende formen 1 gang for hver fejl der er lavet få at få den næste fejl.




t