120 messaggi dal 25 settembre 2006
Ciao Moreno,

scusami ma proprio non riesco a capire perchè, avendo tutti i riferimenti apparentemente "OK" non riesco a farlo funzionare. Ti riepilogo il tutto.
Ho bisogno di far cliccare su un link che se collegato ad un'immagine deve redirigere l'utente ad un certo indirizzo. se non c'e collegamento deve andare ad una pagina di istruzioni.
se l'utente viene reindirizzato, lo script deve registrare il click nella pagina Clicks e deve inviare una notifica a me ed all'utente

Quello che ho:
- Tabella Clicks con campo "link_pp" dove ho un indirizzo http://...;
- Tabella PrimaPagina con campo "link" dove ho lo stesso indirizzo ed il campo NomeFoto dove ho l'immagine se il link deve reindirizzare l'utente;
- Lo script dove l'utente fa il click nella mia home;
- La pagina redirect_pp.asp che dovrebbe registrare il click nella tabella e mandare notifica del click a me ed alla variabile PPmail presente nella tabella Clicks;
- Lo script della home che è il seguente:

<%
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_pp=<%=Server.URLEncode(Link)%>"><img src="<%=(NomeFoto)%>" 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="redirect_pp.asp?link_pp=<%=Server.URLEncode(Link)%>"><img src="<%=(NomeFoto)%>" border="0" /></a><strong>
<%End If %>
</strong></div></td>
<td width="180" background="Images/P02_01.jpg" class="Cellette"><div align="center" class="Cella_Foto">
<div align="center">
-----------------------------------------------------------------------
e la pagina redirect_pp.asp che è la seguente:

<%@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" -->


<%
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 = " & pp
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(url) > 0 then



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

'* voce da modificare con il proprio indirizzo email

invioA = "clicks@easytouritalia.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 url
else
response.write "Nessun indirizzo disponibile"
end if

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

</head>

<body>
</body></html>

GuidoC
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Guido,
ci sono degli errori, vediamo come risolverli.

In questa linea:
<a href="redirect_pp.asp?link_pp=<%=Server.URLEncode(Link)%>"><img src="<%=(NomeFoto)%>" border="0" /></a>

La variabile Link non esiste, e quindi il parametro link_pp= resterà senza valore. Immagino che tu intendessi leggerlo dal recordset rsPrimaPagina. Così dovrebbe andare.
<a href="redirect_pp.asp?link_pp=<%=Server.URLEncode(rsPrimapagina.Fields.Item("Link").Value)%>"><img src="<%=(NomeFoto)%>" border="0" /></a>

Oppure, in maniera più concisa:
<a href="redirect_pp.asp?link_pp=<%=Server.URLEncode(rsPrimapagina("Link"))%>"><img src="<%=(NomeFoto)%>" border="0" /></a>

Verifica sempre quale risultato produce la tua pagina ASP. Dopo averla aperta nel browser, vai a visualizzare il suo codice HTML. E' estremamente importante perché ti fa rendere conto subito di eventuali errori.

Lo stesso problema lo trovi anche dentro la pagina redirect_pp.asp, in questa riga.
if len(url) > 0 then

La variabile url non esiste, o per lo meno io non la vedo nel codice che hai postato. Dovresti valorizzarla un po' più in alto.
url = rs("url")


Ad ogni modo, anche sistemando questa cosa, la pagina redirect_pp.asp non può funzionare perché continua a voler leggere il parametro id.
id = request.queryString("id")
if len(id) > 0 and isNumeric(id) then

Queste righe vanno sostituite perché tu devi decuperare il valore di link_pp, in questo modo:
pp = request.queryString("link_pp")

if Len(pp)>0 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_url = '" & Replace(pp, "'", "''") & "'"
set rs = conn.execute(sql)

E poi ci sono altre cose da valutare, tipo: è sempre vero che link_pp si trova all'interno della tabella clicks? Se non c'è, il click non verrà conteggiato.

ciao,
Moreno
Modificato da BrightSoul il 09 novembre 2013 18.27 -

Enjoy learning and just keep making
120 messaggi dal 25 settembre 2006
Ciao Moreno, ora mi dà

Microsoft VBScript compilation error '800a03ea'

Syntax error

/redirect_pp.asp, line 100

else
^

GuidoC
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao,
non so, forse l'else non ha un if corrispondente. Se vuoi posta il codice completo ma usa il servizio PasteBin così questa discussione resta compatta.

ciao

Enjoy learning and just keep making
120 messaggi dal 25 settembre 2006
suppongo di dover creare l'account e poi come faccio a dire che lo script è per te?

GuidoC
11.886 messaggi dal 09 febbraio 2002
Contributi
Non c'è bisogno di registrarsi, basta incollare il codice e poi verrai reindirizzato alla pagina che contiene il tuo codice. Copi l'URL dalla barra degli indirizzi del browser e lo posti qui.

Enjoy learning and just keep making
120 messaggi dal 25 settembre 2006
http://pastebin.com/xWmmwJRY

in questo momento non mi propone l'immagine di prima pagina e non manda la notifica

GuidoC
11.886 messaggi dal 09 febbraio 2002
Contributi
ciao Guido,

ho sbagliato io, nel codice che hai postato vedo che la variabile Link viene valorizzata e dunque è giusto come avevi fatto tu. Alla riga 3490 riporta il codice com'era:
<a href="redirect_pp.asp?link_pp=<%= Link %>"><img src="<%= NomeFoto %>" border="0" /></a><strong>


GuidoC ha scritto:

in questo momento non mi propone l'immagine di prima pagina

Ok, intendi dire che il percorso non è quello giusto? Vai a guardare il codice HTML generato dalla tua pagina e controlla cosa c'è dentro l'attributo src dell'immagine. E' vuoto? C'è un percorso sbagliato?

GuidoC ha scritto:

non manda la notifica

Posta anche il codice di redirect_pp.asp ma prima prova ad apportare le modifiche di cui abbiamo parlato.

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.