Skräp i gästboken - Skydd?

Elektronik- och mekanikrelaterad mjukvara/litteratur. (T.ex schema-CAD, simulering, böcker, manualer mm. OS-problem hör inte hit!)
Användarvisningsbild
JimmyAndersson
Inlägg: 26571
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

v-g:
"Kan nämna att medan jag kodade om för denna kontroll han c:a 10st inlägg komma från basshunters kompisar, men sen var det tvärnit"

Det var likadant med mina gästböcker. Första tiden kom det många inlägg, även från jag inte känner, sedan var det stopp. Samma sak med sambons gästbok. Det kan iofs bero på att man varit slarvig med att uppdatera sidan.... :eh:

Att lägga till ett tecken i början av inlägget låter som det absolut enklaste. Perl är väldigt smidigt när det gäller att plocka ut tecken ur en text.

Får se om jag kommer ihåg nu.. :)

if ($text !~ /\@/)
{
inlägget är spam...
}

Men det kollar ju bara om det finns ett snabel-a, hur var det nu man bara kollade första tecknet i strängen?
Ska fråga farbror Google, men om ni vet så får ni gärna berätta. :)
v-g
EF Sponsor
Inlägg: 7875
Blev medlem: 25 november 2005, 23:47:53
Ort: Kramforce

Inlägg av v-g »

I asp left(strängen,1) ger första tecknet iaf :)
Användarvisningsbild
JimmyAndersson
Inlägg: 26571
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Det är samma som i basic alltså. :D
Användarvisningsbild
JimmyAndersson
Inlägg: 26571
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Jag blir snurrig på detta.

Jag testade med substr för att plocka ut första tecknet. Såhär:

if (substr($field{'comment'}, 0, 1) !~ /V/) { &post_prb ("Du skrev inget V"); }

Det märkliga är att om man skriver ett V så skriver den ut

"Don't spam my guestbook!" Vilket den *enbart* ska göra om det skrivs något i ett dolt inmatningsfält, allt enligt den här raden:

if ($field{'s_p_a_m'} !~ "") { &logga_ip &post_prb ("Don't spam my guestbook!"); }


Så hur hänger detta ihop? Varför blir det som om jag hade fyllt i något i s_p_a_m-fältet?

Prova själva här.
(Länk till min testgästbok.)



För övrigt så har jag kommit på att den här tråden borde vara i mjukvarudelen av forumet. :oops:
Användarvisningsbild
007sweden
Inlägg: 3500
Blev medlem: 3 mars 2005, 20:18:12
Skype: oo7sweden

Inlägg av 007sweden »

kanske pga den lilla missen att du själv fyllt i den redan.

Kod: Markera allt

<input type="hidden" name="fct" value="post">
value="post" då kommer ju value vara just post och inte tom...
Användarvisningsbild
JimmyAndersson
Inlägg: 26571
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

*host* :oops:

:jimmyhacker:


:lol:


edit: Nähepp, så var det inte. Trodde du kopierat koden från min sida. :D

Jag hade skrivit såhär:

<input type="hidden" name="s_p_a_m" size="1">

Size="1" behövs egentligen inte, men den har bara blivit kvar där.


edit 2:
Kan tillägga att den dolda inmatningsrutan och tillhörande perl-kod fungerar i mina riktiga gästböcker. Så det är inget sånt som är fel. Den felaktiga spam-varningen kommer bara när jag har koden för V-kollen och man skriver ett V.
Användarvisningsbild
007sweden
Inlägg: 3500
Blev medlem: 3 mars 2005, 20:18:12
Skype: oo7sweden

Inlägg av 007sweden »

:oops:
Men den kommer från din sida också...
Kanske fel hidden då. :roll:
äsh, då blev ju det hela mer mystiskt, prova sätt en value="" istället då.

Edit: postade innan din senaste edit...
Edit2: vad tjänar V kollen för syfte?
Användarvisningsbild
JimmyAndersson
Inlägg: 26571
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

"Men den kommer från din sida också... "

Hm? på vilken sida finns den koden? (den som du skrev i förra inlägget alltså.)

Tyvärr hjälpte det inte med value=""

edit: Såg din edit först nu. :)
Användarvisningsbild
JimmyAndersson
Inlägg: 26571
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

V-kollen är en snabbfusklösning för att se om det räcker för att slippa spam.
Men egentligen behöver jag någon bättre lösning.

Man ska alltså skriva in ett V först i inlägget för att godkännas som människa. V-tecknet ska sedan inte visas i själva inlägget.
Användarvisningsbild
007sweden
Inlägg: 3500
Blev medlem: 3 mars 2005, 20:18:12
Skype: oo7sweden

Inlägg av 007sweden »

Hur ser den exakta delen kod ut där de 2 kollerna förekommer?
Användarvisningsbild
JimmyAndersson
Inlägg: 26571
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Såhär:

Kod: Markera allt

if ($field{'comment'} eq "") { &post_prb ("Du har inte skrivit n&aring;got..."); }

if (substr($field{'comment'}, 0, 1) !~ /V/) { &post_prb ("Du skrev inget V"); }

if ($field{'email'} ne "")
{
if ($field{'email'} !~ /.+\@.+\....?$/) { &post_prb ("Du har skrivit en epost-adress som inte finns!"); }
}

if ($field{'s_p_a_m'} !~ "") { &logga_ip &post_prb ("Don't spam my guestbook!"); }
Användarvisningsbild
007sweden
Inlägg: 3500
Blev medlem: 3 mars 2005, 20:18:12
Skype: oo7sweden

Inlägg av 007sweden »

Nu har jag aldrig sett det där språket förut, men då det ändå är ett språk så..

det första jag tänker på är, är ne och !~ samma sak? not equal. skulle du inte kunna använda ne där istället för !~ ?
Användarvisningsbild
JimmyAndersson
Inlägg: 26571
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

ne och !~ är såvitt jag vet samma sak, dvs "Not equal". Helst kör jag med !~ eftersom det är lättast att se.

Ändrade raden med ne så att det står !~ istället.

Öppnade gästboken och skrev in ett V som meddelande.
Då kom det istället upp "Du har skrivit en epost-adress som inte finns!"

Hmm?
Det är uppbarligen något tokigt någonstans. Funderar på om raden med V-kollen verkligen är rätt. Är inte helt 100% säker på att man skriver in substr i if-kollen på det viset.

edit: Som sagt, utan raden med V-kollen så fungerar det fint och har gjort så i något år nu.
Användarvisningsbild
007sweden
Inlägg: 3500
Blev medlem: 3 mars 2005, 20:18:12
Skype: oo7sweden

Inlägg av 007sweden »

ser du sambandet? testa kör med ne på båda!
Användarvisningsbild
JimmyAndersson
Inlägg: 26571
Blev medlem: 6 augusti 2005, 21:23:33
Ort: Oskarshamn (En bit utanför)
Kontakt:

Inlägg av JimmyAndersson »

Aha! Där sa du något! :)

Provade och då fick jag istället: "Du skrev inget V".

Men det var nära. :) Frågan är bara varför man inte kan använda ne när raden med V-kollen finns med...


edit: Måste sova nu. Men jag återkommer i morgon. :)
Skriv svar