120 messaggi dal 25 settembre 2006
Ciao a tutti,

ho il seguente script che fa parte di una serie di 15 script.
da parte ho uno script che registra il click in una tabella e mi manda notifica del click. vorrei integrare il primo script col secondo ma assolutamente non so come fare. c'è qualcuno che mi può dare una mano?
1° script *****************
<div align="center" class="Cella_Foto"><strong>
<%
Dim rsPrimapagina__Param1
rsPrimapagina__Param1 = "ZF01"
%>
<strong>
<%
Dim rsPrimapagina
Dim rsPrimapagina_cmd
Dim rsPrimapagina_numRows

Set rsPrimapagina_cmd = Server.CreateObject ("ADODB.Command")
rsPrimapagina_cmd.ActiveConnection = MM_Regioni_STRING
rsPrimapagina_cmd.CommandText = "SELECT NomeFoto, Link FROM Primapagina WHERE dati='ok' and Posizione = '" + Replace(rsPrimapagina__Param1, "'", "''") + "'"
rsPrimapagina_cmd.Prepared = true
rsPrimapagina_cmd.Parameters.Append rsPrimapagina_cmd.CreateParameter("param1", 200, 1, 255, rsPrimapagina__Param1) ' adVarChar

Set rsPrimapagina = rsPrimapagina_cmd.Execute
rsPrimapagina_numRows = 0
%>
</strong>
<% If NOT rsPrimapagina.EOF Then %>
<a href="<%=(rsPrimapagina.Fields.Item("Link").Value)%>" target="_blank"><img src="<%=(rsPrimapagina.Fields.Item("NomeFoto").Value)%>" border="0" /></a>
<%Else %>
<%
NomeFoto = "../images/sagoma2.gif": Link = "http://www.miosito.com/a_off_p02.html"
If NOT rsPrimapagina.EOF Then
If rsPrimapagina.Fields.Item("NomeFoto").Value <> "" Then NomeFoto = rsPrimapagina.Fields.Item("NomeFoto").Value
If rsPrimapagina.Fields.Item("Link").Value <> "" Then Link = rsPrimapagina.Fields.Item("Link").Value
End If
%>
<a href="<%=(Link)%>"><img src="<%=(NomeFoto)%>" border="0" /></a><strong>
<%End If %>

</strong></strong></div>

2° script *****************

<%
if rsAnagrafica.Fields.Item("Web_w").Value <> "" AND Not IsNull(rsAnagrafica.Fields.Item("Web_w").Value) then
tmpURL = rsAnagrafica.Fields.Item("Web_w").Value
set connx = server.createObject("ADODB.Connection")
connx.open MM_Regioni_STRING
sqlx = "SELECT link_id FROM clicks WHERE link_url = '" & tmpURL & "'"
set rsx = connx.execute(sqlx)
if not rsx.eof then
response.write ("<a href=""redirect.asp?id=" & rsx("link_id") & """ target=""_blank""><strong>Web</strong></a>")
else
response.write("N.P.")
end if
rsx.close
set rsx = nothing
connx.close
set connx = nothing
else
response.write("N.P.")
end if
%>

GuidoC
11.886 messaggi dal 09 febbraio 2002
Contributi
Ciao Guido,
vediamo se ho ben capito: in questo momento stai conteggiando dei click usando una pagina redirect.asp che, dopo l'incremento del numero, reindirizza l'utente verso la pagina di destinazione.

Ora vorresti conteggiare anche i click sulle immagini presentate dal primo script. E' corretto questo?

Penso che tu debba modificare questa linea di codice:
<a href="<%=(Link)%>"><img src="<%=(NomeFoto)%>" border="0" /></a>

E renderla qualcosa tipo:
<a href="redirect.asp?link_url=<%=Server.URLEncode(Link)%>"><img src="<%=(NomeFoto)%>" border="0" /></a>

La pagina redirect.asp dovrà essere modificata affinché, in mancanza di un parametro link_id, possa leggere il parametro link_url. Dovrai quindi cercare nella tabella clicks la presenza di un record che ha un link_url identico a quello che ti è stato passato via querystring, e incrementare il contatore.
Se non dovessi trovare alcun record, puoi sempre inserirlo con il conteggio impostato ad 1.

Alla fine, rendirizza l'utente.

Comuqnue, valuta anche un qualche servizio di statistica tipo Google Analytics, ti dà anche tante informazioni in più oltre a conteggiare le visite di pagina.

ciao,
Moreno

Enjoy learning and just keep making
120 messaggi dal 25 settembre 2006
ciao Moreno,

quello che segue è quello che ho modificato e relativo allo script ma non accade nulla:

<%
rsPrimapagina__Param1 = "ZF02"
rsPrimapagina.Close()
rsPrimapagina.Source = "SELECT NomeFoto, Link FROM Primapagina WHERE dati='ok' and Posizione = '" + Replace(rsPrimapagina__Param1, "'", "''") + "'"
rsPrimapagina.Open()
%>
<% If NOT rsPrimapagina.EOF Then %>
<a href="<%=(rsPrimapagina.Fields.Item("Link").Value)%>" target="_blank"><img src="<%=(rsPrimapagina.Fields.Item("NomeFoto").Value)%>" border="0" /></a>
<%Else %>
<%
NomeFoto = "../images/sagoma2.gif": Link = "http://www.easytouritalia.com/a_off_p02.html"
If NOT rsPrimapagina.EOF Then
If rsPrimapagina.Fields.Item("NomeFoto").Value <> "" Then NomeFoto = rsPrimapagina.Fields.Item("NomeFoto").Value
If rsPrimapagina.Fields.Item("Link").Value <> "" Then Link = rsPrimapagina.Fields.Item("Link").Value
End If
%>
<a href="redirect_pp.asp?link_url=<%=Server.URLEncode(Link)%>"><img src="<%=(NomeFoto)%>" border="0" /></a>
<%End If %>
</strong></div></td>
<td width="180" background="Images/P02_01.jpg" class="Cellette"><div align="center" class="Cella_Foto">
<div align="center">

GuidoC
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Guido,
è giusto che quella parte di codice non faccia nulla di per sé, perché deve solo preparare il link in modo che punti alla pagina redirect_pp.asp.

Per esempio vedo che in questa condizione:
 If NOT rsPrimapagina.EOF Then

Il link continua a puntare a
<%=(rsPrimapagina.Fields.Item("Link").Value)%>


Se vuoi che anche questo click sia conteggiato, devi modificarlo proprio come hai modificato il link che si trova più in basso nel codice che hai postato.

Fatta questa modifica, esamina il codice HTML e verifica che i link che hai posto sulle immagini puntino effettivamente a redirect_pp.asp.

Dopodiché sarà il momento di verificare che anche redirect_pp.asp funzioni. Dovrà raccogliere il valore di link_url dalla querystring, conteggiare il click e reindirizzare l'utente.
Fai questi passaggi gradualmente. Ad esempio tralascia il conteggio del click e ridireziona subito l'utente, così non avrai l'impressione che "non accade nulla". Poi, quando ti sarai assicurato che questo meccanismo base funziona, potrai modificare redirect_pp.asp per fargli conteggiare anche il click, prima che la ridirezione avvenga.

ciao,
Moreno

Enjoy learning and just keep making
120 messaggi dal 25 settembre 2006
non succede ancora niente
<%
rsPrimapagina__Param1 = "ZF02"
rsPrimapagina.Close()
rsPrimapagina.Source = "SELECT NomeFoto, Link FROM Primapagina WHERE dati='ok' and Posizione = '" + Replace(rsPrimapagina__Param1, "'", "''") + "'"
rsPrimapagina.Open()
%>
<% If NOT rsPrimapagina.EOF Then %>
<a href="redirect_pp.asp?link_url=<%=Server.URLEncode(Link)%>"><img src="<%=(NomeFoto)%>" border="0" /></a>
<%Else %>
<%
NomeFoto = "../images/sagoma2.gif": Link = "http://www.easytouritalia.com/a_off_p02.html"
If NOT rsPrimapagina.EOF Then
If rsPrimapagina.Fields.Item("NomeFoto").Value <> "" Then NomeFoto = rsPrimapagina.Fields.Item("NomeFoto").Value
If rsPrimapagina.Fields.Item("Link").Value <> "" Then Link = rsPrimapagina.Fields.Item("Link").Value
End If
%>
<a href="redirect_pp.asp?link_url=<%=Server.URLEncode(Link)%>"><img src="<%=(NomeFoto)%>" border="0" /></a>
<%End If %>
</strong></div></td>
<td width="180" background="Images/P02_01.jpg" class="Cellette"><div align="center" class="Cella_Foto">
<div align="center">
Modificato da GuidoC il 06 novembre 2013 19.20 -

GuidoC
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Guido,

GuidoC ha scritto:

non succede ancora niente

Qualcosa deve pur succedere quando clicchi i link :) Il browser, sicuramente, ti fa navigare verso la pagina redirect_pp.asp?link_url=...

A quel punto cosa succede? Vedi una pagina bianca oppure un errore?

Per il momento prova a preparare una pagina redirect_pp.asp che abbia unicamente questo contenuto:
<% Response.Redirect Request.QueryString("link_url") %>


Deve ridirezionarti per forza. Adesso, poco alla volta, aggiungile il codice che serve a conteggiare il click.
Rimuovi le eventuali direttive On Error Resume Next che hai nel codice altrimenti se si verificano degli errori non li vedi.

ciao,
Moreno

Enjoy learning and just keep making
120 messaggi dal 25 settembre 2006
con la sola stringa <% Response.Redirect Request.QueryString("link_url") %> mi rimanda alla pagina a_off_p02.html

con il resto delle script fa la stessa cosa.

Quella che segue è la pagina di redirect:

<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><!-- Inserisci questo tag nell'intestazione <head> o appena prima del tag di chiusura </body> -->
<script type="text/javascript" src="https://apis.google.com/js/plusone.js">
{lang: 'it'}
</script>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Documento senza titolo</title>

<!--redirect.asp-->

<!--METADATA TYPE="typelib" UUID="CD000000-8B95-11D1-82DB-00C04FB1625D" NAME="CDO for Windows 2000 Library" -->

<!--METADATA TYPE="typelib" UUID="00000205-0000-0010-8000-00AA006D2EA4" NAME="ADODB Type Library" -->

<% Response.Redirect Request.QueryString("link_url") %>

<%
id = request.queryString("id")

if len(id) > 0 and isNumeric(id) then
set conn = server.createObject("ADODB.Connection")
conn.open "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.mapPath("\mdb-database\Easy.mdb")

sql = "SELECT link_url, link_id, link_name, link_sk, link_offerte, link_offerte2, link_offerteLM, link_mail, link_pp, comune, pr, PPmail FROM clicks WHERE link_id = " & id
set rs = conn.execute(sql)
if not rs.eof then
pp = rs("link_pp")
codice = rs("link_id")
nome = rs("link_name")
comune = rs("comune")
pr = rs("pr")
PPmail = rs("PPmail")
conn.execute("UPDATE clicks SET link_click = link_click + 1 WHERE link_id = " & id)
end if
rs.close
set rs = nothing

conn.close
set conn = nothing
end if

if len(pp) > 0 then



DIM corpoMessaggio, numeroCampi, invioA, invioDa, nomeDominio, indirizzoIp, modulo, browserSistemaOperativo

'* voce da modificare con il proprio indirizzo email

invioA = "clicks@miosito.com"
invioA = "PPmail"

'* voce da modificare con un indirizzo email che funga da mittente:
'* in caso di errore riceverete notifica a questo indirizzo un MAILER-DAEMON
'* dato che cdosys supporta questa notifica

invioDa = "info@miosito.com"

'------------fine modifiche necessarie------------------

nomeDominio = Request.ServerVariables("HTTP_HOST")
indirizzoIp = Request.ServerVariables("REMOTE_ADDR")
modulo = Request.ServerVariables("HTTP_REFERER")
browserSistemaOperativo = Request.ServerVariables("HTTP_USER_AGENT")

'*aggiungo il messaggio relativo alla url cliccata

corpoMessaggio = "URL cliccata: " & mail
corpoMessaggio = corpoMessaggio & " Struttura: " & codice & " - " & nome & " sita in " & comune & " (" & pr & ")"


'* creo gli oggetti cdosys sul server e li gestisco

DIM iMsg, Flds, iConf

Set iMsg = CreateObject("CDO.Message")
Set iConf = CreateObject("CDO.Configuration")
Set Flds = iConf.Fields

Flds(cdoSendUsingMethod) = cdoSendUsingPort
Flds(cdoSMTPServer) = "smtp.aruba.it"
Flds(cdoSMTPServerPort) = 25
Flds(cdoSMTPAuthenticate) = cdoAnonymous ' 0
Flds.Update

With iMsg
Set .Configuration = iConf
.To = invioA
.From = Request.Form("email")
.Sender = invioDa
.Subject = " Click di Redirect_PP!!! " & nomeDominio
.TextBody = " Questi i dati relativi al click di Redirect_PP " & modulo & " da utente con indirizzo IP " & indirizzoIp & " browser e sistema operativo " & browserSistemaOperativo & vbCrLf & corpoMessaggio & ""
.Send
End With

response.redirect pp
else
response.write "Nessun indirizzo disponibile"
end if

%>

</head>

<body>
</body></html>

GuidoC
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Guido,

mi rimanda alla pagina a_off_p02.html

Ok, questo va bene. La pagina reindirizza all'url che le è stato fornito mediante link_url, il parametro querystring.

Dovresti sposare il Response.Redirect come ultima istruzione. Cioè, prima conteggi il click e poi reindirizzi l'utente.

A proposito del conteggio, ovviamente non potrai riutilizzare lo script tale e quale ma dovrai fare delle modifiche.
id = request.queryString("id")

Ad esempio questa riga non va più bene perché adesso non forniamo alcun parametro id. Forniamo invece un parametro link_url, quindi dovrai leggere quello e cercarlo nella tabella clicks.
Se esiste, incrementi il contatore, ma se non esiste dovrai inserire un nuovo record nella tabella ed impostare il suo campo link_click ad uno.

Oppure, se non vuoi avvalerti della tabella click per questo genere di link, puoi crearne un'altra oppure limitarti ad inviare la mail.

Ma sei sicuro di voler inviare mail? Se il numero di click dovesse crescere saresti inondato di messaggi...

ciao,
Moreno.

Enjoy learning and just keep making

Torna al forum | Feed RSS

ASPItalia.com non è responsabile per il contenuto dei messaggi presenti su questo servizio, non avendo nessun controllo sui messaggi postati nei propri forum, che rappresentano l'espressione del pensiero degli autori.