Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    personalizzare pagina errore 404

    Ciao a tutti. Vorrei personalizzare la pagina di errore 404 e ci sono quasi riuscito (ho accesso al server). Ora il problema è che quando un utente vuole accedere ad una pagina che non esiste, vorrei che mi venga inviata una e-mail contenente la pagina cercata. Ossia se l'utente cerca www.nomesito.it/pagina.html vorrei che mi venga inviata tramite e-mail appunto www.nomesito.it/pagina.html

    in php per sapere cosa c'è dopo l'host nell'url si usa $_SERVER['request_uri'] (che mi dovrebbe restituire pagina.html ).
    Ciò però non accade. Un collega mi ha detto che è un problema di IIS (mi pare ci sia la versione 5)

    se non si può fare in php mi va bene anche un esempio in asp (però io di asp non conosco nulla... )

    che faccio?

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  2. #2
    ho risolto usando una pagina asp
    ma non è che ho sbagliato forum? :master:
    cmq continuo qui, eventualmente mi spostate in asp


    questo è lo script che uso:

    codice:
    <%
    Dim objMsg
    Dim strReferer
    Dim strPagina
    Dim strTo
    Dim strIp
    Dim strSubject
    Dim strBody
    
    strReferer = "eventuale referer: " & Request.ServerVariables("HTTP_REFERER") & vbNewLine
    strPagina = "pagina cercata: " & Request.ServerVariables("URL") & vbNewLine
    strIp = "IP utente: " & Request.ServerVariables("REMOTE_ADDR") & vbNewLine
    strTo = "webmaster@sitomio.com"
    strSubject = "Errore 404 - sitomio.com"
    strBody = "Un errore 404 Error si è verificato nel tuo sito" & vbNewLine & vbNewLine
    
    Set objMsg = Server.CreateObject("CDONTS.NewMail")
    
    objMsg.From = "webmaster@sitomio.com"
    objMsg.To = strTo
    objMsg.Subject = strSubject
    objMsg.Body = strBody & strPagina & strReferer & strIp
    objMsg.Send
    Set objMsg = Nothing
    %>
    mi arriva l'e-mail correttamente, però invece dell'url della pagina mi arriva il nome della pagina 404 (che ho chiamato 404_personal.asp)


    se clicco:
    www.sitomio.com/pagina.asp
    ho notato che nella barra degli indirizzi invece di visualizzare www.sitomio.com/pagina.asp mi scrive questo:
    codice:
    ttp://www.sitomio.com/404_personal.asp?404;ttp://www.sitomio.com/pagina.asp
    (ho tolto la h da http per evitare che mi modifichi l'url automaticamente)
    :master:

    dove sbaglio

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

  3. #3
    Utente di HTML.it L'avatar di heroes3
    Registrato dal
    Aug 2001
    Messaggi
    2,483
    è un po che smanetto perchè mi hai fatto venire il dubbio anche a me dove poteva essere il tuo errore

    a seguito di test ho appurato che il referer funziona se clicchi (quindi con l'interazione dell'utente) e non reindirizzandolo automaticamente quindi l'errore sta li nel HTTP_Referer che non legge la pagina di provenienza


  4. #4
    Originariamente inviato da heroes3
    è un po che smanetto perchè mi hai fatto venire il dubbio anche a me dove poteva essere il tuo errore

    a seguito di test ho appurato che il referer funziona se clicchi (quindi con l'interazione dell'utente) e non reindirizzandolo automaticamente quindi l'errore sta li nel HTTP_Referer che non legge la pagina di provenienza

    ciao. questa notte ho risolto usando php e javascript

    ecco il codice:

    Codice PHP:
    <?
    if(!isset($_GET['url'])){
    ?>
        <script language="JavaScript">
            var i = window.location.href;
            var k = document.referrer;
            var uri = i.replace("http://www.sitomio.com/","");
            var p = "http://www.sitomio.com/404_personal.php"+"?url="+uri+"&ref="+k;
            location.href=p;
        </script>
    <?
    } else {
    $url $_GET['url'];
    $ref $_GET['ref'];
    unset(
    $_GET);
    ?>
    <meta http-equiv="refresh" content="5;URL=http://www.******.com">
    <?
    // per ottenere l'url che ha generato l'errore

    $from "***********";

    $pagina "http://".$_SERVER['HTTP_HOST']."/".$url;
    $referer $ref;
    $ip $_SERVER['REMOTE_ADDR'];

    $to$from;
    $subject"Errore 404 - ********.com";
    $mailheaders"From: $from"
    $body .= "Un errore 404 Error si è verificato nel tuo sito:\n\n\n";
    $body .= "pagina richiesta: ".$url."\n\n";
    if(
    $referer != ""){
        
    $body .= "Referer: ".$referer."\n\n";
    }
    $body .= "Ip utente: ".$ip."\n\n";

    // ora invia la mail
    mail($to$subject$body$mailheaders);
    }
    ?>
    così facendo funziona. Però mi nella barra degli indirizzi non ho più la pagina digitata dall'utente (quella inesistente) ma la 404_personal.php

    secondo me è anche un problema di settaggi nel webserver iis (che io da 0 a 10 conosco 1)

    regalami un oggi da favola...e il domani bhe!?non mi importa se tu 6 con me! ©Ily

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.