[PHP] errore 404 e invio mai path pagina con link interrotto

antonio50

Nuovo Utente
15 Ott 2018
1
0
1
Buongiorno,
ho un sito dinamico con php/mysql su piattaforma windows.
Nel body delle pagine (circa 200) c'è del testo con link ad altre pagine del sito
Per gestire i link interrotti uso il file web.config con il seguente codice:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<httpErrors existingResponse="Replace" errorMode="Custom">
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" prefixLanguageFilePath="" path="http://www.miosito.it/errore404.php" responseMode="Redirect" />
</httpErrors>
</system.webServer>
</configuration>
Al click su un link interrotto, l'utente viene rediretto alla pagina errore404.php
Problema:
Vorrei che dalla pagina errore404.php, quando è caricata nel browser, mi venisse inviata una email del alla pagina che contiene il link interrotto.
Per conoscere l'indirizzo di provenenza, in condizioni "normali", basterebbe usare $_SERVER["HTTP_REFERER"] e inviarne il valore a un indirizzo email prefissato.
Purtroppo al caricamento della pagina errore404.php il risultato di $_SERVER["HTTP_REFERER"] è una stringa vuota.
Domando:
Quello che intendo fare (leggere/conoscere la pagina che contiene il link interrotto), è fattibile?
E se è fattibile come è possibile fare quello che ho descritto?
 

macus_adi

Utente Attivo
5 Dic 2017
1.328
90
48
IT/SW
La gestione delle pagine 404 conviene sempre farla da codice e non da web.config o htaccess, spesso ci si perdono pezzi per strada...
$_SERVER["REQUEST_URI"]
Restituisce l'url richiesto in questo caso la pagina 404 quindi non va bene, a meno che nell'url rimanga la richiesta, quindi non andrebbe bene....
La cosa che farei personalmente è un hooks/middleware (ossia una risorsa in ascolto su tutta l'applicazione) tale da registrare ogni richiesta e/o azione, eliminando dal web.config la gestione dell'errore.
Altra cosa degna di nota sarebbe la gestione delle URL attraverso un file di route capace di gestire le richieste.
Con queste due modifiche ti assicuri non solo la gestione completa degli headers ma anche la gestione dei 404 forzati.

Tornando al tuo problema, se non fai un redirect ma cambi solo la risposta lasciando l'url errato puoi eseguire quello che @LinuxOhYeah ti ha suggerito (cosa che non fai), altrimenti devi modificare un pò di logica di routing.
 
Discussioni simili
Autore Titolo Forum Risposte Data
M Determinare errore 404 da php PHP 3
S Errore PHP - Notice: Undefined index ... PHP 14
E Errore di lettura php in html PHP 8
A php metodo post jquery non da mai errore jQuery 4
M errore dopo passaggio Php 7.2 PHP 6
L form multipla php sql,errore in inserimento MySQL 0
M Errore JavaScript per php [objeto HTMLParagraphElement] PHP 0
F [PHP]Errore registrazione PHP 8
MarcoGrazia [PHP] Download di file con errore all'interno. PHP 1
M [PHP] WS-Security errore PHP 0
M [PHP] Errore di percorso, file not found PHP 3
ANDREA20 errore php PHP 1
N [PHP] ERRORE: SyntaxError: Unexpected token N in JSON at position 1 PHP 0
Tommy03 Errore invio email con PHP PHP 1
Shyson [PHP] Errore inspiegabile PHP 1
A index.php errore PHP 3
M Errore pagina php 'Cannot detect primary key' PHP 8
Tommy03 [PHP] Errore query selezione avg PHP 0
L [PHP] Errore 410 Gone... PHP 1
A [PHP] Errore select dati da db PHP 0
C [RISOLTO][PHP] Errore di sintassi PHP 8
A [PHP] ERRORE QUANDO CAMBIO SLUG NEL CMS e REWRITE PHP 6
Y [PHP] Errore di login dopo aver inserito Codice AdSense PHP 0
C [PHP] Errore "Fatal error: Call to undefined function getTotalUsers()" PHP 2
C [PHP] non trovo l'errore? PHP 3
S [PHP] errore funzione sleep PHP 5
L [PHP] Errore UPDATE su tabella DB PHP 22
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
L [PHP] upload con errore PHP 2
T [PHP] errore unexpected T_LNUMBER che non so interpretare PHP 6
F Form mail php errore invio PHP 5
Matilde1 PHP: errore connessione database PHP 12
M PHP: errore connessione a MySQL PHP 5
E [PHP] Errore Class 'JText' not found Content Management System (CMS) 2
fabry1986 [PHP] Errore nome utente scompare dopo logout PHP 14
A Errore PHP: Call to a member function on null PHP 5
C PHP errore Fatal Error: Allowed Memory Size of ... Bytes Exhausted PHP 7
C [PHP] PDO prepared statement - select query errore PHP 7
ANDREA20 [PHP] Errore $this->db_connection = new PDO PHP 0
S [PHP] Errore visualizzazione pagina web PHP 1
M [PHP] errore in semplie form inserimento dati PHP 7
A [RISOLTO]Errore caricamento file php PHP 21
ANDREA20 [PHP] Errore riga PHP 0
L [PHP] JTable Errore PHP 0
V [PHP] Non riesco a trovare errore PHP 25
M [PHP] Errore nell' assegnazione della variabile $this->id su una funzione PHP 1
Fuego2806 [PHP] Errore 500 Internal Server Error - sito Joomla! Joomla 10
M [PHP] Errore in ciclo foreach PHP 1
asevenx [PHP] Errore tasto submit per invio dati non funziona PHP 5
enzonero Errore di analisi php line 1 PHP 11

Discussioni simili