Visualizzazione risultati 1 fino 28 di 28

Discussione: [not_found.php] Conoscere la pagina non trovata

  1. #1
    Guest

    Predefinito [not_found.php] Conoscere la pagina non trovata

    Ho letto in questo post di Gianluca che ora è attiva la pagina not_found.php
    Ho provato ad inserire solo un php_info(), per vedere se c'era la variabile relativa al referer, per poter poi lavorare con la pagina non trovata.
    Però questa variabile non c'è...

    Come posso fare per conoscere la pagina non trovata?
    Ultima modifica di tuttoeniente2 : 16-08-2006 alle ore 13.13.53

  2. #2
    Guest

    Predefinito

    La variabile per il referer è $HTTP_SERVER_VARS['HTTP_REFERER'].

    Quindi puoi provare ad usare
    Codice PHP:
    La pagina <? echo $HTTP_SERVER_VARS['HTTP_REFERER']; ?> non esiste.
    Prova in questo modo..

    Ciao!

  3. #3
    Guest

    Predefinito

    La variabile non esiste (è vuota), sia se richiamata tramite $_SERVER['HTTP_REFERER'] che tramite $HTTP_SERVER_VARS['HTTP_REFERER']
    Che altra variabile si potrebbe utilizzare?

  4. #4
    Ospite Guest

    Predefinito

    io ho provato con getenv('HTTP_REFERER') ma anche in questo caso è vuota... però so' che si può.... l'avevo letto da qualche parte .... forse proprio su questo forum

  5. #5
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    tuttoeniente2:

    Il referer è qualcosa che il browser può passare o meno (alcuni antivirus/firewall lo bloccano).

    Se richiami dalla barra degli indirizzi l'url: http://nome.altervista.org/script.php non avrai disponibile $HTTP_SERVER_VARS['HTTP_REFERER'], anche perchè di fatto non esiste, se invece piazzi il link errato in una pagina e ci clicchi sopra anche la pagina not_found.php avrà una variabile di referer, puoi testarlo tu stesso.
    Gianluca

  6. #6
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

  7. #7
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    io ho tentato varie cose per recuperare la pagina che ha dato l'errore, ma la cosa sembra essere impossibile al momento.

    In teoria dovrebbero apparire delle variabili REDIRECT_<qualcosa> (1.3) (2.0) contenti le informazioni, ma di esse non vi e' traccia.

    EDIT:
    Citazione Originalmente inviato da Gianluca
    se invece piazzi il link errato in una pagina e ci clicchi sopra anche la pagina not_found.php avrà una variabile di referer, puoi testarlo tu stesso.
    sono un po' di corsa, ma mi pare di aver testato e rilevato l'opposto.
    Ultima modifica di seneca : 17-08-2006 alle ore 00.34.49

  8. #8
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

  9. #9
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Lo visualizzo anch'io sia con IE che Firefox che Opera, il referer è comunque una variabile popolata in base a quanto il browser stesso invia, determinate configurazioni/filtri/software possono impedire la trasmissione del medesimo.
    Gianluca

  10. #10
    Ospite Guest

    Predefinito

    no un momento qua si fa confusione, una cosa è il referer che rappresenta l'url della pagina da cui si è cliccato un link errato verso il nostro sito, insomma da dove arriva l'utente che voleva la pagina inesistente

    a me interessava principalmente conoscere la pagina che è stata richiesta sul mio sito e che non è stata trovata, credevo si potesse trovare nel referer perchè credevo che ci fosse un redirect automatico alla pagina not_found a livello di client (invece è di server) e che quindi nel referer comparisse tale pagina

    quindi immagino che non esista una variabile che memorizza il nome della pagina che non esiste o no?

  11. #11
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    Citazione Originalmente inviato da xDestroyer
    no un momento qua si fa confusione, una cosa è il referer che rappresenta l'url della pagina da cui si è cliccato un link errato verso il nostro sito, insomma da dove arriva l'utente che voleva la pagina inesistente
    Il mio stesso problema :)

    Forse la soluzione e' qua:
    Citazione Originalmente inviato da documentazione Apache, link sopra
    At least REDIRECT_URL and REDIRECT_QUERY_STRING will be passed to the new URL (assuming it's a cgi-script or a cgi-include). The other variables will exist only if they existed prior to the error/problem. None of these will be set if your ErrorDocument is an external redirect (anything starting with a scheme name like http:, even if it refers to the same host as the server).
    se Altervista e' configurato con

    ErrorDocument 404 http://sito.altervista.org/not_found.php

    allora apache considera la pagina come esterna e non crea le variabili REDIRECT_* che contengono le informazioni che ci interessano

  12. #12
    Guest

    Predefinito

    Citazione Originalmente inviato da dreadnaut
    Il mio stesso problema :)
    [...]
    se Altervista e' configurato con

    ErrorDocument 404 http://sito.altervista.org/not_found.php

    allora apache considera la pagina come esterna e non crea le variabili REDIRECT_* che contengono le informazioni che ci interessano
    Mi sembra di avere capito che quindi non c'è scampo, perché a me interessava proprio quale pagina non è stata trovata, anche se la pagina di provenienza non è da buttare.

  13. #13
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    beh, lo scampo potrebbe esserci. Da quanto ho letto mi sembra che se la riga fosse

    ErrorDocument 404 /not_found.php

    o qualcosa del genere, senza http:// davanti, allora i parametri REDIRECT_ verrebbero passati e si riuscirebbe a capire qual'e' la pagina non trovata :)

  14. #14
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Il problema è chiaro, ma si può vedere se si riesce a mantenere quel dato ugualmente, non mi darei ancora per vinto.

    dreadnaut:

    se non ti crea problemi ti chiedo di lasciarmi online quel test
    Gianluca

  15. #15
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    wow, ci stai lavorando davanti ai miei occhi :) "missing_document" sembra una soluzione interessante !

  16. #16
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Sì, lo script può ora recuperare la pagina richiesta che non era stata trovata usando

    $_GET['missing_document']

    Non è una soluzione standard, ma documentandola nelle faq dovrebbe essere utilizzabile.
    Gianluca

  17. #17
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    é ottimo, anche se non standard: in questo modo si puó sia sapere la pagina che conteneva il link errato via referer (php) o referrer (javascript), sia sapere qual'era la pagina cercata con missing_document. Le stesse informazioni delle variabili REDIRECT_ :)

    grazie per la tempestivitá ! Lascio la pagina di test senza problemi, casomai servisse

  18. #18
    Guest

    Predefinito

    serviva anche a me sta cosa
    Funziona tutto perfettamente, basta fare un echo con la funzione ed il gioco è fatto!

  19. #19
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    Evidentemente è una funzionalità che serviva a più persone di quelle che ci si aspettasse...

    Ricordo che l'area "servizi" è sempre lì, fatevi sentire

    [edit]
    Adesso c'è anche $_GET['missing_host'], serve per avere informazione anche sull'eventuale sottodominio che la persona ha richiesto.
    Ultima modifica di Gianluca : 17-08-2006 alle ore 12.28.04
    Gianluca

  20. #20
    Guest

    Predefinito

    però se vorrei rendere $_GET['missing_document'] a link, mi da un sacco di errori
    Ecco come eseguo:
    Codice PHP:
    La pagina <? echo "<a href=\"hxxp://nomesito.altervista.org/$_GET['missing_document']\">$_GET['missing_document']</a> ?> non esiste!
    non mi funziona

  21. #21
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    un paio di { } attorno a $_GET[...] nella stringa potrebbero aiutare ;-)

    oppure concatena echo "<a href=\"blabla.org/" . $_GET[...] . "\">";

    o meglio
    Codice PHP:
    La pagina <a href="http://blabla.org/<?= $_GET[....] ?>"><?=$_GET[...]?></a> non é stata trovata

  22. #22
    L'avatar di Gianluca
    Gianluca non è connesso Amministratore
    Data registrazione
    15-02-2001
    Messaggi
    18,035

    Predefinito

    La pagina <a href="hxxp://nomesito.altervista.org/<?=$_GET['missing_document'] ?>"><?=$_GET['missing_document'] ?></a> non esiste!

    Hai provato una cosa simile?

    [edit]
    Stiamo postando in parallelo...
    Gianluca

  23. #23
    L'avatar di Leo91
    Leo91 non è connesso Altervistiano Junior
    Data registrazione
    28-03-2004
    Residenza
    alle tue spalle
    Messaggi
    728

  24. #24
    L'avatar di dreadnaut
    dreadnaut non è connesso Super Moderatore
    Data registrazione
    22-02-2004
    Messaggi
    6,269

    Predefinito

    io usero' probabilmente qualcosa del genere:

    Codice PHP:
    $missing = isset($_GET['missing_document']) ? $_GET['missing_document'] : "";
    $referer = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : "";

    if (
    $missing != "") {
    $messaggio = "Un link da\n - {$referer}\n ha cercato la pagina insistente\n - {$missing}\n";

    echo
    nl2br($messaggio);

    $f = fopen('log404.txt', 'a+');
    fwrite($f, $messaggio);
    fclose($f);
    }
    cosí da scoprire se e dove ci sono link sbagliati, dentro e fuori dal mio sito

    Citazione Originalmente inviato da Gianluca
    Stiamo postando in parallelo...
    preoccupante
    Ultima modifica di dreadnaut : 17-08-2006 alle ore 12.47.28

  25. #25
    Guest

    Predefinito

    ho provato la 3a sluzione postata da Leo91, che è uguale a quella di Gianluca
    grazie!

    ...byex!

  26. #26
    Guest

    Predefinito

    Ottimo, grazie mille a tutti!

  27. #27
    Ospite Guest

    Predefinito

    perfetto, una soluzione non standard ma che fa il suo dovere

  28. #28
    MomsAndDads non è connesso Neofita
    Data registrazione
    12-09-2003
    Messaggi
    5

    Predefinito

    Innanzitutto grazie Gianluca per le nuove funzionalità, quando le avevi attivate me l'ero perse (distratto!), le ho tuttavia appena scoperte e utilizzate con profitto.
    Ti chiedo solo, se possibile, di attivare le due variabili $_GET anche per la pagina access_denied.php, dalle prove che ho fatto risultano valorizzate solo per la not_found.php.
    Grazie ancora e ciao!

Regole di scrittura

  • Non puoi creare nuove discussioni
  • Non puoi rispondere ai messaggi
  • Non puoi inserire allegati.
  • Non puoi modificare i tuoi messaggi
  •