PDA

View Full Version : problema con php


webmaster54
18-06-2009, 19:59
Buonasera a tutti, mi sono appena iscritto e vorrei porre una domanda in merito al php scripting (premetto che ne so davvero poco).
Sto lavorando ad una pagina di tipo 404 personalizzata, con invio automatico della mail al webmaster indicando il link errato o inesistente. Tutto funziona e la mail arriva regolarmente. Non mi indica, però, nel testo l'url completo che mi serve (per informazione, sono su server windows). Posto il codice (poche righe):

<?php
//ricavo l'indirizzo della pagina mancante e lo inserisco
//in una variabile
$pagina_mancante = "http://$HTTP_HOST$REQUEST_URI";

//Invio il messaggio d'errore all'indirizzo e-mail
$to= " [email protected] ";
$subject= "Errore 404 - Pagina non trovata";
$header= "From: [email protected] ";
$testo.= "Si è verificato un errore 404 sul tuo sito.\n\n\n";
$testo.= "La pagina mancante è: $pagina_mancante\n\n";
mail($to, $subject, $testo, $header);
?>

Il risultato, nella mail che arriva, è il seguente:

Si è verificato un errore 404 sul tuo sito.
La pagina mancante è: http://

In altro sito, dove lo script è stato provato, ha funzionato in modo completo. La mia domanda, a questo punto, è se sbaglio io nel determinare la variabile o nel richiamarla.

jackk87
18-06-2009, 20:20
Buonasera a tutti, mi sono appena iscritto e vorrei porre una domanda in merito al php scripting (premetto che ne so davvero poco).
Sto lavorando ad una pagina di tipo 404 personalizzata, con invio automatico della mail al webmaster indicando il link errato o inesistente. Tutto funziona e la mail arriva regolarmente. Non mi indica, però, nel testo l'url completo che mi serve (per informazione, sono su server windows). Posto il codice (poche righe):

<?php
//ricavo l'indirizzo della pagina mancante e lo inserisco
//in una variabile
$pagina_mancante = "http://$HTTP_HOST$REQUEST_URI";

//Invio il messaggio d'errore all'indirizzo e-mail
$to= " [email protected] ";
$subject= "Errore 404 - Pagina non trovata";
$header= "From: [email protected] ";
$testo.= "Si è verificato un errore 404 sul tuo sito.\n\n\n";
$testo.= "La pagina mancante è: $pagina_mancante\n\n";
mail($to, $subject, $testo, $header);
?>

Il risultato, nella mail che arriva, è il seguente:

Si è verificato un errore 404 sul tuo sito.
La pagina mancante è: http://

In altro sito, dove lo script è stato provato, ha funzionato in modo completo. La mia domanda, a questo punto, è se sbaglio io nel determinare la variabile o nel richiamarla.

Ciao è da molto che non uso il PHP però prova così:


//Invio il messaggio d'errore all'indirizzo e-mail
$to= " [email protected] ";
$subject= "Errore 404 - Pagina non trovata";
$header= "From: [email protected] ";
$testo.= "Si è verificato un errore 404 sul tuo sito.\n\n\n";
$testo.= "La pagina mancante è:" & $pagina_mancante & "\n\n";
mail($to, $subject, $testo, $header);
?>

webmaster54
18-06-2009, 21:34
Ciao, il testo della mail è:

Si è verificato un errore 404 sul tuo sito.
(poi visualizza un rettangolino nero con un punto bianco al centro che non si può incollare).

Ti posto il codice che ho modificato: (se non ho sbagliato a correggere)....
<?php
//ricavo l'indirizzo della pagina mancante e lo inserisco
//in una variabile
$pagina_mancante = "http://$HTTP_HOST$REQUEST_URI";

//Invio il messaggio d'errore all'indirizzo e-mail
$to= " [email protected] ";
$subject= "Errore 404 - Pagina non trovata";
$header= "From: [email protected] ";
$testo.= "Si è verificato un errore 404 sul tuo sito.\n\n\n";
$testo.= "La pagina mancante è:" & $pagina_mancante & "\n\n";
mail($to, $subject, $testo, $header);
?>

Non capisco che succede.....




||ElChE||88
18-06-2009, 21:37
$testo.= "La pagina mancante è:" & $pagina_mancante & "\n\n";
E ci credo che viene fuori una schifezza... stai calcolando il bitwise and tra delle stringhe...
L'operatore per concatenare stringhe è . non &.

webmaster54
18-06-2009, 21:46
Si è verificato un errore 404 sul tuo sito.


La pagina mancante è:http://

questo il testo della mail

<?php
//ricavo l'indirizzo della pagina mancante e lo inserisco
//in una variabile
$pagina_mancante = "http://$HTTP_HOST$REQUEST_URI";

//Invio il messaggio d'errore all'indirizzo e-mail
$to= " [email protected] ";
$subject= "Errore 404 - Pagina non trovata";
$header= "From: [email protected] ";
$testo.= "Si è verificato un errore 404 sul tuo sito.\n\n\n";
$testo.= "La pagina mancante è:" . $pagina_mancante . "\n\n";
mail($to, $subject, $testo, $header);
?>

questo il codice modificato... ho messo il "." al posto della "&"

||ElChE||88
18-06-2009, 21:58
Prova

$pagina_mancante = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER["REQUEST_URI"];

webmaster54
18-06-2009, 22:14
Si è verificato un errore 404 sul tuo sito.


La pagina mancante è:http://www.miosito.it

Un progresso c'è stato in quanto scrive il sito, però non l'url della pagina che ha dato l'errore "pippo.htm"........

<?php
//ricavo l'indirizzo della pagina mancante e lo inserisco
//in una variabile
$pagina_mancante = "http://" . $_SERVER["HTTP_HOST"] . $_SERVER ["REQUEST_URI"];
//Invio il messaggio d'errore all'indirizzo e-mail
$to= " [email protected] ";
$subject= "Errore 404 - Pagina non trovata";
$header= "From: [email protected] ";
$testo.= "Si è verificato un errore 404 sul tuo sito.\n\n\n";
$testo.= "La pagina mancante è:" . $pagina_mancante . "\n\n";
mail($to, $subject, $testo, $header);
?>