- Home
- Categorie
- Coding e Sistemistica
- Altri linguaggi per il web
- [ASP] Convalida form anti-spam da Javascript a VBScript
-
[ASP] Convalida form anti-spam da Javascript a VBScript
Ciao a tutti è possibile convertire questo codice in VBscript?
<%@LANGUAGE = JScript%>
<%
var commenti = Request.Form("commenti");
var valida = /http/;
if (!valida.test(commenti)) Response.Write("invio ok");
Response.Redirect("testasp/httpko.asp");
%>Poreste aiutarmi? Grazie Andrea
-
<% Dim commenti commenti = Request.Form("commenti") Dim valida valida = /http/ if Instr(commenti, valida, 1)>0 Then Response.Write("invio ok") Response.Redirect("testasp/httpko.asp") %>
-
Ciao Legolas, grazie per l'aiuto
ho provato lo script e mi restituisce questo errore:
Errore di run-time di Microsoft VBScript error '800a000d'
Tipo non corrispondente: '[string: "prova"]'
/invio-codice.asp, line 6
-
Devi controllare che nel commento non ci siano link?
[HTML] if (!valida.test(commenti))[/HTML]
Questa è un'espressione regolare in javascript che dice: "se http non è presente nel testo commenti allora invio ok".Puoi fare una espressione regolare in vbscript oppure controllare (più banalmente ma meno efficaciemente) che sia presente http nel testo così:
if instr(commenti,"http")<>0 then response.write("Invio KO") else response.write("Invio OK") end if
Ammesso sia quello che devi fare...
-
@FuSioNmAn said:
Devi controllare che nel commento non ci siano link?
[HTML] if (!valida.test(commenti))[/HTML]
Questa è un'espressione regolare in javascript che dice: "se http non è presente nel testo commenti allora invio ok".Puoi fare una espressione regolare in vbscript oppure controllare (più banalmente ma meno efficaciemente) che sia presente http nel testo così:
if instr(commenti,"http")<>0 then response.write("Invio KO") else response.write("Invio OK") end if
Ammesso sia quello che devi fare...
Ciao Fusionman, devo eliminare il problema spam, ma perchè sarebbe meno efficace la soluzione che proponi?
l'ho provata e funziona.
Ha qualche limitazione?Ciao e grazie per l'aiuto Andrea
-
Perchè con quella becchi solo se è presente http
Se inseriscono www. qualcosa (quindi senza http) non viene filtrato.
Per questo dicevo che con le espressioni regolari è un'altra cosa.
Bisogna costruire una stringa che tenga presente tutti i casi che decidi
-
Hai ragione, però il form che viene preso di mira non è nè un blog nè un forum, è il solito robots che puntualmente mi invia messaggi da questo form senza nessun risultato, credo che capiscono se si tratta di invi con html abilitato e quindi inseriscono anche http, e non capiscono che rompono è basta.
Tengo nei preferiti questa discussione così se dovessero cambiare strategia torno a disturbarvi.
Grazie dell'aiuto Andrea.
-
Ciao a tutti, per il momento ho risolto il problema spam, ma ho bisogno di un altro aiuto,
ho il seguente script che mi estrae i dati in ordine dall'ultima decrescente, è complicato fare in modo che l'ordine sia casuale?
<% Response.Buffer = True lineIndex = 0 Set connect = Server.CreateObject("ADODB.Connection") ' Prepare to connect to database connect.Open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath ("messaggi.adb") ClassTopic = Trim(session("k")) whereclause = "WHERE " whereclause = whereclause &"Classifieds.ClassTopic = '" & ClassTopic & "'" query = "SELECT * FROM classifieds "& whereclause &"And ClassExpire > Date()" & "ORDER BY ClassPosted DESC" set recordset = Server.CreateObject("ADODB.Recordset") recordset.CursorType = 2 ' adOpenStatic recordset.Open query, connect %> <!-- fine --> <table width="100%"><tr><td> <!-- intestazione annunci --> <div> <% i=0 Do While Not recordset.EOF NoResults = False if i=2 then exit do %> <table width="98%" cellpadding="0" cellspacing="0" border="0" style="font-size: 10pt"> <tr><td> <a href="ads_display.asp?Key_m=<%=recordset("ClassTopic")%>"> <b><%=recordset("ClassAdTitle")%></b></a><br> <b>rif. n° <%=recordset("ClassID")%> dal <%=recordset("ClassPosted")%> al <%=recordset("ClassExpire")%></b> <%=left(recordset("ClassDescription"),100)%>...<br><br></td></tr> </table> <% i=i+1 recordset.MoveNext Loop %> <%recordset.close%> </div><!-- intestazione anuunci#--></td></tr> </table>
il k lo passo io.
Grazie spero possiate aiutarmi.
Ciao Andrea