Pagina 1 di 2 12 UltimoUltimo
Visualizzazione risultati 1 fino 30 di 55

Discussione: problema script indirizzo ip

  1. #1
    Guest

    Predefinito problema script indirizzo ip

    allora ragazzi... vi spiego brevemente il mio problema, vorrei creare una pagina grazie alla quale con un script posso ricavare l'indirizzo ip del visitatore e trascriverlo su un file di testo... ho trovato alcuni script in giro per la rete ma ho sempre problemi a mettere il percorso esatto della directory in cui mettere il file .txt dove verranno scritte le informazioni.

    volevo sapere se sapevate qual è l'indirizzo esatto, (sul sito che ho trovato lo chiamava "indirizzo nascosto" e aveva tutti riferimenti strani tipo "/home/httpd/" eccetera)

    o meglio ancora se potete darmi direttamente uno script di questo genere...

    vi ringrazio in anticipo per la risposta

  2. #2
    Guest

    Predefinito

    Se vuoi crearlo nella stessa cartella dello script che lo crea, non devi specificare nessun percorso; altrimenti basta scrivere nomecartella/file.txt


    ciaoo!!

  3. #3
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Ti serve la variabile globale $_SERVER['REMOTE_ADDR'] e le funzioni per gestire i file
    PS: L'indirizzo IP è bene che rimanga nascosto ai semplici visitatori, per evitare hacking ai pc che hanno quell'IP. Conviene nasconderlo in database o file PHP.
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  4. #4
    Guest

    Predefinito

    mmm... allora... piano piano... non è che ci capisca molto in materia, cmq vi posto quello che avevo trovato
    Dunque....

    Per prima cosa vedi se sul tuo spazio web hai installato php ed è abilitato, altrimenti nn puoi far niente... almeno una versione 3

    Le pagina del tuo sito (o almeno quelle da monitorare) devono essere in php estensione .php , altrimenti non puoi utilizzare lo script.

    Lo script in oggetto deve essere incluso in ogni pagina del sito, o almeno in ogni pagina che vuoi monitorare.
    lo script lo trovi qui http://www.allwebfree.it/articolo_ph...rollo_sito.php (guarda la parte finale, in fondo dove c'è scritto (suggerita) ).
    Copia tutto quello scritto in celeste (compreso fra i tag <? ?> tag compresi) in una nuova pagina che chiamerai con un nome a tua scelta (es. controllo.php)
    adesso includi questa pagina in ogni tua pagina web , all'inizio della pagina (la prima riga, sopra il tag <html>) con questo codice:
    <?
    include("controllo.php");
    ?>
    <html>
    <head>
    ......
    </head
    <body>
    .....
    </body>
    </html>
    Mi raccomando che le tre righe dell'inclusione siano le prime tre righe della pagina, sopra
    non ci deve essere niente altrimenti le sessioni ti danno un errore a video.
    in teoria dovrebbe essere fatta.

    --------------------------
    Per funzionare lo script deve avere una directory apposita dove memorizzare il file .txt
    Crea una directory sul tuo spazio web e chiamala file_log , adesso devi variare i permessi di scrittura e di lettura (della nuova directory), attivali tutti che nn si sbaglia mai (in teoria lo puoi fare dal pannello di controllo del tuo spazio web, dovresti avere qualcosa tipo file manager )

    P.S. il file .txt viene creato in automatico dallo script. Quando lo cancelli (perchè occupa troppo spazio) lo script lo ricrea nuovamente in automatico partendo da zero.
    ---------------------------

    Lo script della pagina controllo.php è questo:
    <?
    session_start();
    if (!isset($_SESSION['ip'])) {
    $refe=$_SERVER['HTTP_REFERER'];
    $ip=$_SERVER['REMOTE_ADDR'];
    $_SESSION['ip']=$ip;
    $time=time();
    $date=date('d-m-y H:i:s',$time);
    $var=fopen("controllo_sito.txt","a+");
    fwrite($var, "Numero ip: ".$ip." provenienza:".$refe." Data e ora: ".$date."n");
    fclose($var);
    }
    ?>

    Il percorso del file .txt (al posto di "controllo_sito.txt" ) dovrebbe essere

    "/home/httpd/vhosts/tuosito.it/httpdocs/file_log/controllo_sito. txt"

    credo di nn essermi dimenticato nulla..

    fai due prove e se hai degli errori a video scrivimi che errori sono

    Ciao
    non so se possa andare bene questo... cmq se andasse bene, nella riga dello script "$var=fopen("controllo_sito.txt","a+");" al posto di "controllo_sito.php" mi chiede di mettere "/home/httpd/vhosts/tuosito.it/httpdocs/file_log/controllo_sito. txt" o una cosa del genere...

    come posso fare??

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

    Predefinito

    quello che cerchi di chiama path o percorso assoluto, e qua su AlterVista è /membri/<tuonick>/ (come specificato nelle faq tecniche, dagli una letta!).

    in compenso, per lo script in particolare, non è necessario, puoi usare quello relativo o nessun path in generale, se ti va bene salvare il file nella cartella stessa dove hai messo lo script

  6. #6
    Guest

    Predefinito

    allora... ho sostituito la riga... ed è venuto così
    Codice PHP:
    <?
    session_start
    ();
    if (!isset(
    $_SESSION['ip'])) {
    $refe=$_SERVER['HTTP_REFERER'];
    $ip=$_SERVER['REMOTE_ADDR'];
    $_SESSION['ip']=$ip;
    $time=time();
    $date=date('d-m-y H:i:s',$time);
    $var=fopen("/membri/trustlion.altervista.org/file_log/controllo_sito.txt","a+");
    fwrite($var, "Numero ip: ".$ip." provenienza:".$refe." Data e ora: ".$date."n");
    fclose($var);
    }
    ?>
    e nella pagina index.html ho inserito le tre righe di comando

    Codice PHP:
    <?
    include("controllo.php");
    ?>
    quindi come accedo alla pagina index.html, automaticamente mi si dovrebbe creare il file controllo_sito.txt nella cartella file_log giusto??

    invece non si crea... che ho sbagliato?
    Ultima modifica di dreadnaut : 25-10-2007 alle ore 20.48.35 Motivo: + tag [php]

  7. #7
    Ospite Guest

    Predefinito

    /membri/trustlion.altervista.org/file_log/controllo_sito.txt
    dovrebbe essere:
    /membri2/trustlion/file_log/controllo_sito.txt
    oppure
    /membri/trustlion/file_log/controllo_sito.txt

    O più semplicemente potresti utilizzare la path relativa:

    Codice PHP:

    $var
    =fopen("./file_log/controllo_sito.txt","a+");

    fwrite($var, "Numero ip: ".$ip." provenienza:".$refe." Data e ora: ".$date."\n");
    Ciao!

    P.S: newline = "\n" non "n" ;)

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

    Predefinito

    avevo scritto <tuo_nick>, non <tuo_sito>
    Codice:
    $var=fopen("/membri/trustlion/file_log/controllo_sito.txt","a+");

  9. #9
    Guest

    Predefinito

    le avventure di un povero s****to continuano... allora... ricapitoliamo...

    1) ho creato lo script utilizzando il blocco note, inserendo queste righe
    Codice:
    <?
    session_start();
    if (!isset($_SESSION['ip'])) {
    $refe=$_SERVER['HTTP_REFERER'];
    $ip=$_SERVER['REMOTE_ADDR'];
    $_SESSION['ip']=$ip;
    $time=time();
    $date=date('d-m-y H:i:s',$time);
    $var=@fopen("membri/trustlion/file_log/controllo_sito.txt","a+");
    @fwrite($var, "Numero ip: ".$ip." provenienza:".$refe." Data e ora: ".$date."\n");
    fclose($var);
    }
    ?>
    ho salvato e chiamato il file "controllo.php"

    2) ho aperto con blocco note la pagina index.html e inserito all'inizio del codice html questo codice
    Codice:
    <?
    include("controllo.php");
    ?>
    3) ho acceso smartFTP e aggiunto i file index.html e controllo.php e ho anche creato la cartella file_log nella directory principale

    quindi teoricamente se io andassi alla pagina http://www.trustlion.altervista.org/index.html in teoria si dovrebbe creare immediatamente il file "controllo_sito.txt" nella cartella file_log.... invece non si crea...

    non è che devo abilitare qualche permesso da qualche parte (che non so dove)??

  10. #10
    Ospite Guest

    Predefinito

    membri/trustlion/file_log/controllo_sito.txt
    /membri/trustlion/file_log/controllo_sito.txt

    Se non dovesse funzionare ancora, prova a sostituire "membri" con "membri2".
    Ciao!

  11. #11
    Guest

    Predefinito

    nada de nada... ne con /membri ne con /membri2

    qualche ulteriore idea (prima che mi mandiate a quel paese...)

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

    Predefinito

    un bel
    Codice PHP:
    error_reporting(E_ALL);
    come prima riga dello script php, così ti dice "testualmente" cosa non va

  13. #13
    Guest

    Predefinito

    Notice: Undefined index: HTTP_REFERER in /membri/trustlion/controllo.php on line 5

    Warning: fclose(): supplied argument is not a valid stream resource in /membri/trustlion/controllo.php on line 12


    che devo fa??

  14. #14
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Codice PHP:
    <?php
    session_start
    ();
    if (!isset(
    $_SESSION['ip'])) {
    $refe=isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:"";
    $ip=$_SERVER['REMOTE_ADDR'];
    $_SESSION['ip']=$ip;
    $time=time();
    $date=date('d-m-y H:i:s',$time);
    $var=@fopen("/membri/trustlion/file_log/controllo_sito.txt","a+");
    @
    fwrite($var, "Numero ip: ".$ip." provenienza:".$refe." Data e ora: ".$date."\n");
    fclose($var);
    }
    ?>
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  15. #15
    Guest

    Predefinito

    allora ragazzi... anche cos'ì non va... l'errore che mi da stavolta è solamente questo...

    Warning: fclose(): supplied argument is not a valid stream resource in /membri/trustlion/controllo.php on line 12

    che devo fa?

  16. #16
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Hai creato la cartella "file_log"?
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  17. #17
    Guest

    Predefinito

    si l'ho creata... non è che devo chiamalla in maniera diversa??

    EDIT: nella guida che avevo trovato diceva di abilitare tutti i permessi di scrittura per la cartella file_log

    però non so se e dove si può fare

    oppure non c'entra niente?
    Ultima modifica di debug : 26-10-2007 alle ore 14.12.25

  18. #18
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    I permessi dati alle cartelle permettono sia la creazione e distruzione sia l'inserimento e distruzione di file, quindi non c'entra.
    Prova a mettere l'url relativo "/file_log/controllo_sito.txt" .
    Ma aprendo il file txt trovi che è cambiato giusto?
    PS: Raga ma come funziona "a+" ? io uso sempre "w" o "w+" :P
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  19. #19
    Ospite Guest

    Predefinito

    /file_log/controllo_sito.txt
    Piuttosto:
    "file_log/controllo_sito.txt"
    oppure
    "./file_log/controllo_sito.txt"
    Altrimenti il server va a cercare la dir file_log nella root del server ;)
    PS: Raga ma come funziona "a+" ? io uso sempre "w" o "w+" :P
    Citazione Originalmente inviato da php.net
    Apre in lettura e scrittura; posiziona il puntatore alla fine del file. Se il file non esiste, tenta di crearlo.]Apre in lettura e scrittura; posiziona il puntatore alla fine del file. Se il file non esiste, tenta di crearlo.
    Ma aprendo il file txt trovi che è cambiato giusto?
    Se lo script non riesce a creare il file, come può avervi scritto?

  20. #20
    Guest

    Predefinito

    Ma senza fare tanti casini si può scrivere direttamente la cartella e il file k funzica lo stesso io uso lo stesso script usando come patch cartella/file.php

  21. #21
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    Citazione Originalmente inviato da probid Visualizza messaggio
    Se lo script non riesce a creare il file, come può avervi scritto?
    Decisamente hai ragione ^^ quindi se non lo apre non può chiuderlo! Quindi, trustlion, togli le chiocciole prima di fopen e fwrite e vedi che ti dà

    @probid: vorrei farti notare che "/cartella", "cartella" e "./cartella" sono equivalenti -_- come dice tu che il server lo cerca nella root solo è se basehref è la root -_-
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  22. #22
    Guest

    Predefinito

    adesso mi metto a piangere... allora.. ho provato a levare le chiocciole... ho provato a mettere diversi percorsi... ho provato a prendere a capocciate il computer ma niente... sento che sto per rassegnarmi...

  23. #23
    Guest

    Predefinito

    [piccolo ot]togli la pubblicità di google che è consentita solo quella fornita da av[/piccolo ot]

  24. #24
    L'avatar di Luffio
    Luffio non è connesso Utente attivo
    Data registrazione
    02-07-2006
    Messaggi
    439

    Predefinito

    trustlion, Ti ho detto di togliere le chiocciole così dovrebbe mostrarti gli errori relativi :) ti dà errori?
    Luffio Web Site, Luffio's personal site
    Age Of Empires GIF, sito per la creazione di GIF animate di Age of Empires
    Clan italiano di Age of Empires The Conquerors, uno dei più vecchi ancora attivi

  25. #25
    Guest

    Predefinito

    no non mi dà errori... questo significa che funziona?? però il file di testo non me lo scrive, anzi.... non me lo crea proprio.... non so più dove mettere le mani... non è che voi conoscete un altro modo?
    Ultima modifica di trustlion : 26-10-2007 alle ore 21.59.39

  26. #26
    L'avatar di funcool
    funcool non è connesso Utente storico
    Data registrazione
    05-02-2004
    Residenza
    Qui... Non lì, qui!
    Messaggi
    15,433

    Predefinito

    Come ha scritto il cavallo, prova a mettere "file_log/controllo_sito.txt", invece di "/membri/trustlion/file_log/controllo_sito.txt". Inoltre puoi mettere solo "a" invece di "a+".

    Citazione Originalmente inviato da Luffio Visualizza messaggio
    @probid: vorrei farti notare che "/cartella", "cartella" e "./cartella" sono equivalenti
    Su AlterVista solo "cartella" e "./cartella" sono equivalenti.

    Se continua a non funzionare, scrivi i permessi che ha la cartella "file_log".

    EDIT: Tu hai inserito l'include in una pagina HTML, anche quella pagina deve avere estensione *.php (segnalazione di NetSkin).
    Ultima modifica di funcool : 27-10-2007 alle ore 11.12.57
    Mattia vi manda a FunCool - Matriz - Directory Gogol - Sfondo rosso per la Birmania
    «Tu mi dai fastidio perché ti credi tanto un Dio!» «Bè, dovrò pur prendere un modello a cui ispirarmi, no?» Woody Allen

  27. #27
    Guest

    Predefinito

    Tu hai inserito l'include in una pagina HTML, anche quella pagina deve avere estensione *.php (segnalazione di NetSkin).
    esatto... ora provo a metterlo in una pagina in php...

    EDIT:
    ho provato a metterlo in una pagina .php e finalmente funziona... l'unico errore che adesso mi dà è questo

    "Notice: Undefined index: HTTP_REFERER in /membri/trustlion/controllo.php on line 5"

    e ho lasciato lo script così...
    Codice:
    <?
    error_reporting(E_ALL); 
    session_start();
    if (!isset($_SESSION['ip'])) {
    $refe=$_SERVER['HTTP_REFERER'];
    $ip=$_SERVER['REMOTE_ADDR'];
    $_SESSION['ip']=$ip;
    $time=time();
    $date=date('d-m-y H:i:s',$time);
    $var = fopen("/membri/trustlion/file_log/controllo.txt","a+");
    fwrite($var, "Numero ip: ".$ip." provenienza:".$refe." Data e ora: ".$date."\n");
    @fclose($var);
    }
    ?>
    che devo fare per vedere anche la provenienza?

    EDIT 2:
    Ho notato anche un'altra cosa... dopo che ho effettuato il primo accesso e mi ha registrato l'ip, se provo a riaccedere alla pagina non succede nulla, non mi da ne l'errore ne mi registra l'indirizzo..... com'è possibile?
    Ultima modifica di trustlion : 27-10-2007 alle ore 15.40.20

  28. #28
    Ospite Guest

    Predefinito

    "Notice: Undefined index: HTTP_REFERER in /membri/trustlion/controllo.php on line 5"
    Probabilmente vedi quella notifica per accedi alla pagina direttamente, per cui non esiste un indirizzo referrer.
    Comunque io non me ne preoccuperei più di tanto, non è un errore ma un warning, per cui se disabili l'error reporting non lo vedrai più.
    che devo fare per vedere anche la provenienza?
    Cioè?
    L'indirizzo da cui proviene il visitatore è già salvato nel database testuale, quindi vorresti ricavare la nazione di provenienza del visitatore o cosa?
    Spiegati meglio.
    Ho notato anche un'altra cosa... dopo che ho effettuato il primo accesso e mi ha registrato l'ip, se provo a riaccedere alla pagina non succede nulla, non mi da ne l'errore ne mi registra l'indirizzo..... com'è possibile?
    E' perchè lo script è stato progettato proprio per far questo.
    Solo alla prima visita viene stabilita una sessione e vengono scritti i dati del visitatore.
    Vorresti aggiornare il referrer ad ogni nuova visita?
    Prova così:
    Codice PHP:
    <?
    $refe
    =$_SERVER['HTTP_REFERER'];
    $ip=$_SERVER['REMOTE_ADDR'];
    $date=date('d-m-y H:i:s',time());

    $f="/membri/trustlion/file_log/controllo.txt";
    $scrivi="Numero ip: ".$ip." provenienza:".$refe." Data e ora: ".$date."\n";

    if(!
    strpos(file_get_contents($f),$ip))
    {
    $metodo="a+";
    $towrite=$scrivi;
    }
    else{
    foreach(
    file($f) as $nline=>$line){
    if(
    strpos($line,$ip))
    $lines[$nline]=$scrivi;
    else
    $lines[$nline]=$line;
    $metodo="w+";
    $towrite = join($lines);
    }
    }
    $var=fopen($f,$metodo);
    fwrite($var,$towrite);

    fclose($var);

    ?>
    Altrimenti spiega meglio cosa vuoi fare.

    Citazione Originalmente inviato da funcool in risposta a Luffio
    Su AlterVista solo "cartella" e "./cartella" sono equivalenti.
    Come in tutti i sistemi Unix-like.

    Ciao!

  29. #29
    Guest

    Predefinito

    allora... copiando il codice che mi hai scritto te mi succede questo, accedo alla pagina e mi registra l'ip, aggiorno la pagina e mi cancella tutto, aggiorno nuovamente e mi riscrive l'ip... praticamente se dentro il file di testo c'è scritto qualcosa me lo cancella, e dopo me lo ricrea con l'ip, non è che è sbagliato qualcosa con a+ o w+??

    per provenienza intendevo per lo meno la regione (sempre se possibile)...

  30. #30
    Ospite Guest

    Predefinito

    Ho aggiornato lo script nel post precedente, ora dovrebbe funzionare.
    per provenienza intendevo per lo meno la regione (sempre se possibile)...
    Che io sappia, non è possibile.

Pagina 1 di 2 12 UltimoUltimo

Regole di scrittura

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