PDA

View Full Version : [PHP] Notifica di visita da un ip


zava78
23-01-2007, 15:25
Salve a tutti!
Premetto che sono un profano e non so scrivere una riga di php purtroppo...
mi chiedevo se qualcuno di voi è a conoscienza di uno script che faccia una cosa del genere:

Mi mandi una mail quando un determinato IP visita un mio sito.

es :
81.xxx.xxx.xxx che so essere Marco visita il mio sito
72.xxx.xxx.xxx che so essere gianni con visita il mio sito

mi piacerebbe ricevere una mail (per sessione, non per pagina hehe) ad ogni loro visita.

ovviamente conosco a priori gli IP statici

ho già un ottimo script di statistiche, Phpstats, ma avrei propio bisogno di una cosa come quella descritta.

Grazie anticipatamente a chi vorrà rispondere od aiutami

andbin
23-01-2007, 15:33
Premetto che sono un profano e non so scrivere una riga di php purtroppo...
mi chiedevo se qualcuno di voi è a conoscienza di uno script che faccia una cosa del genere:

Mi mandi una mail quando un determinato IP visita un mio sito.

es :
81.xxx.xxx.xxx che so essere Marco visita il mio sito
72.xxx.xxx.xxx che so essere gianni con visita il mio sito

mi piacerebbe ricevere una mail (per sessione, non per pagina hehe) ad ogni loro visita.Non so dirti se esistono script già fatti ... comunque posso spiegarti cosa usare per farlo tu.

L'IP del client lo prendi dalla variabile $_SERVER['REMOTE_ADDR'], le sessioni le gestisci usando la funzione session_start() e la variabile $_SESSION e le email le spedisci usando la funzione mail() (vedi un mio esempio in <questo> (http://www.hwupgrade.it/forum/showthread.php?t=1381561) thread).

zava78
23-01-2007, 15:48
Grazie mille, gentilissimo per la risposta rapida.

Se fosse in asp, non sarebbe un grosso problema scrivere il tutto...
purtroppo non ho mai scritto una riga di php e non sono un programmatore...

ho buttato un occhio, per scrivere la mail non credo sia un problema...
credo che basti renderla una funcion ed aggiungere un paio di parametri, nella fattispece l' ip

per il resto dovrei inizializzare la variabile di sessione (in asp) si da cos' e controllarne l' esistenza.
se l' ip fa parte dell' array che io conosco mi deve mandare la mail chiamando la funcion...

zava78
23-01-2007, 16:57
allora, qualcosa ho conscluso


<?php

session_start();//Apro la sessione
session_register(ip);
$ip=$_SERVER['REMOTE_ADDR'];//Prendiamo il numero IP del visitatore

$today = date("G:i:s D M Y");
$conosciuti = array('cc','81.174.XX.XX');
$nomi = array('vuoto', 'Zeta');
$chiave = array_search($ip, $conosciuti);
$nome = $nomi[$chiave];

if ($nome<>"vuoto"){
$a="[email protected]";
$oggetto="Visitatore Amico ".$nome;
$messaggio="Ciao! Qualcuno della ".$nome. " ha visitato il sito alle " . $today ;
$intestazioni= "From: [email protected] \r \n";
$intestazioni .= "Reply-To: [email protected] \r \n";
$intestazioni .= "X-Mailer: PHP/" . phpversion();
mail($a, $oggetto, $messaggio, $intestazioni);
}
?>


hem...
riusciresti a darmi una dritta sulla sessione?
non vorrei che mi arrivasse una mail per ogni pagina!

andbin
23-01-2007, 17:13
riusciresti a darmi una dritta sulla sessione?
non vorrei che mi arrivasse una mail per ogni pagina!Così infatti ti arriva di sicuro una mail per ogni richiesta di pagina. ;)

Invece di usare session_register() dovresti usare la variabile $_SESSION.

session_start();
if (!isset ($_SESSION['entrato']))
{
$_SESSION['entrato'] = 1;

// ... fai l'invio ...
}
Non ho controllato per bene il resto. La gestione dell'array non mi sembra il massimo. Poi negli header devi mettere \r\n senza spazi in mezzo.