Visualizzazione dei risultati da 1 a 6 su 6

Discussione: Redirect a tempo

  1. #1
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764

    Redirect a tempo

    Il mio problema è questo.

    Ho creato un sistema di news gestite tramite un database. Ogni news avrà uno specifico ID ed ogni news sarà leggibile in una pagina che sarà nella forma:
    notizia.asp?id=1
    notizia.asp?id=2
    ...

    Ho inserito nella pagina notizia.asp un link alla pagina segnala.asp, che contiene un modulo che permette all'utente di segnalare quella news ad un amico.
    Nel form della pagina di segnalazione ho messo
    codice:
    <input type="hidden" name="url" value="<%=Request.ServerVariables("HTTP_REFERER")%>">
    in modo che sia possibile prendere l'url della pagina della news e inserirla nel body dell'email.

    Una volta inviata la news, vorrei far tornare l'utente alla pagina della news che stava leggendo.

    La mail viene inviata con CDONTS, ecco il codice.
    codice:
    <%
    
    if len(Request.Form)>0 then
    
    Set objMail = Server.CreateObject("CDONTS.NewMail")
    
    strFrom = request("fromName") & "<" &_
    request("from") &">"
    
    strUrl = request("url")
    
    strTxt = request("Text") & VbcrLf & _
    "" & strUrl
    
    objMail.From = strFrom
    objMail.Body = strTxt
    objMail.To = Request("e-mail")
    objMail.Subject = "Ti segnalo questa notizia."
    objMail.Send
    set objMail = nothing
    
    
    Response.Redirect(strUrl)
    
    end if
    
    %>
    Con Response.Redirect(strUrl), l'utente viene reindirizzato alla pagina della news, ma questo avviene immediatamente.
    Vorrei che fosse possibile avere un reindirizzamento con un'attesa sulla pagina per un certo numero di secondi.

    Immagino di dover risolvere la cosa con un linguaggio lato client (Javascript). Esiste invece una soluzione in ASP?

    In alternativa vorrei mettere un link con scritto qualcosa tipo: "clicca qui per tornare alla news che stavi leggendo".
    Ho messo, al posto del Response.Redirect(strUrl), questa riga:
    codice:
    Clicca qui per tornare alla news che stavi leggendo.
    Funziona, ma ho questo problema: se entro nella pagina segnala.asp dalla news (es. da: notizia.asp?id=1), compilo e posto il modulo e poi clicco sul link, allora mi fa il redirect correttamente.
    Se, invece, appena arrivato nella pagina segnala.asp, voglio cliccare subito su "clicca qui per tornare alla news che stavi leggendo", il link è sbagliato: mi porta a www.miosito.it/segnala/ (segnala è la cartella dove si trova la pagina segnala.asp).

    Cosa sbaglio?

  2. #2
    Puoi impostare una condizione:

    If strUrl <> "" Then
    Response.Write "Clicca qui per tornare alla news che stavi leggendo"
    Else
    Response.Write "Clicca <a href=url>qui</a> per tornare alla news che stavi leggendo"
    End if

  3. #3
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    764
    Non ho capito il secondo caso della IF.
    Response.Write "Clicca <a href=url>qui</a> per tornare alla news che stavi leggendo".
    Chiaramente non devo mettere href= url, quindi, al posto di url cosa ci devo mettere?

    Nessuna idea, invece, sulla possibilità di fare in redirect "a tempo"?

  4. #4
    Al posto di url puoi mettere <a href=javascript:history.back()>Clicca per tornare indietro</a>.

    Praticamente ti esegue il comando Indietro del browser. Per quanto riguarda il redirect a tempo non so, penso che ti devi indirizzare su javascript.

    Ciao.

  5. #5
    Niente javascript!!

    Se non hai pretese particolari puoi usare puro HTML con un tag <meta /> ovviamente da posizionare nella <head>. La sintassi è la seguente:

    <meta http-equiv="Refresh" content=" <%= tempo %> ;URL=<%= strURL %>" />

    dove tempo è il num di secondi dopo il quale la pagina nuova viene caricata!!

    Per la storia dell'URL usare HTTP_REFERER è rischioso xkè se usi la richiesta diretta non funziona più.

    Secondo me la cosa più saggia è usare una QueryString anche per segnala.asp (x es. segnala.asp?id=X) ed andare ad estrarre i dati della news direttamente dal Database e di conseguenza anche l'URL (che sarà notizia.asp?id=X)
    La verita' è che... tu sei il debole, e io sono la tirannia degli uomini malvagi, ma ci sto provando ringo, ci sto provando con grandissima fatica a diventare il pastore..

  6. #6
    Nella pagina che inserisci una funzione javascript con tipo:

    <script>

    settimeout((document.location.href='indirizzo della news'),3000)
    </script>


    3000 è il tempo in millisecondi dopo il quale javascript esegue il redirect

    ciao
    jake

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.