Visualizzazione dei risultati da 1 a 7 su 7
  1. #1
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746

    [php] inserimento duplicato con fwrite

    sto provando la tecnica di utilizzare una immagine generata con le GD per ottenere un log degli accessi ad una pagina web.

    ad ogni accesso lo script mi aggiunge dei dati ad un file txt.

    La cosa sembra funzionare, solo che ad ogni accesso i dati vengono inseriti sempre due volte.

    Lo script è questo,
    Codice PHP:
    <?php

    if ( empty($_GET['id']) ) $_GET['id'] = "non pervenuto" ;

    $append date("d.m.Y - H:i:s")." === id:".$_GET['id']." === info:".$_SERVER['HTTP_USER_AGENT']."\r\n\r\n" ;

    $fp = @fopen("./servizi/control_email.txt","a");
    if (
    $fp) {
    fwrite($fp,$append);
    fclose($fp);

    header("Content-type: image/jpeg");
    $img imageCreate(1,1);
    $back imagecolorallocate($img,255,255,255);
    imagejpeg($img);
    imagedestroy($img);
    }
    ?>
    il file txt risultante è questo,
    codice:
    26.11.2006 - 17:27:51 === id:non pervenuto === info:Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
    
    26.11.2006 - 17:27:51 === id:non pervenuto === info:Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
    
    26.11.2006 - 17:28:15 === id:non pervenuto === info:Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
    
    26.11.2006 - 17:28:15 === id:non pervenuto === info:Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
    
    26.11.2006 - 17:28:32 === id:non pervenuto === info:Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
    
    26.11.2006 - 17:28:32 === id:non pervenuto === info:Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.0.8) Gecko/20061025 Firefox/1.5.0.8
    come si può notare dal tempo gli inserimenti sono doppi. Come si può risolvere ?

    Grazie
    Errare humanum est, perseverare ovest

  2. #2

    .......

    Ciao.
    empty($_GET['id'])
    Usa isset
    il $_GET['id'] o c'è quindi ha un valore oppure
    è NULL.
    Ah i vari fopen etc li devi mettere
    dentro all'if solamente se è settato
    il $_GET['id'] scriverai no !

    Without faith, nothing is possible. With it, nothing is impossible
    http://ilwebdifabio.it

  3. #3
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746

    Re: .......

    Originariamente inviato da whisher
    Ciao.

    Usa isset
    il $_GET['id'] o c'è quindi ha un valore oppure
    è NULL.
    Ah i vari fopen etc li devi mettere
    dentro all'if solamente se è settato
    il $_GET['id'] scriverai no !

    ho provato come hai detto tu,
    Codice PHP:
    <?php
    header
    ("Content-type: image/jpeg");
    $img imageCreate(1,1);
    $back imagecolorallocate($img,255,255,255);
    imagejpeg($img);
    imagedestroy($img);

    if ( isset(
    $_GET['id']) )  {

    $append date("d.m.Y - H:i:s")." === id:".$_GET['id']." === info:".$_SERVER['HTTP_USER_AGENT']."\r\n\r\n" ;

    $fp = @fopen("./servizi/control_email.txt","a");
    if (
    $fp) {
    fwrite($fp,$append);
    fclose($fp);
    }
    }
    ?>
    ma $append viene inserito nel file ancora sempre due volte

    Errare humanum est, perseverare ovest

  4. #4

    Re: Re: .......

    Originariamente inviato da carlo2002
    ma $append viene inserito nel file ancora sempre due volte

    evidentemente esegui due volte lo stesso file o pezzo di script. Ho preso lo script e incollato su un file cambiando solo il path e funziona inserendo una sola riga per volta.

    Provato il primo script che hai postato.

    Prova a fare una pagina con solo quelle righe che hai postato (le prime) e vedrai che funziona.

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  5. #5
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746

    Re: Re: Re: .......

    grazie, inserendo la richiesta dell'immagine in una pagina funziona correttamente.

    il problema del doppio inserimento si verifica quando si richiede dal browser direttamente il file che produce l'immagine (cosa che appunto stavo facendo ).

    come mai questo comportamento ? :master:
    Errare humanum est, perseverare ovest

  6. #6

    Re: Re: Re: Re: .......

    Originariamente inviato da carlo2002
    grazie, inserendo la richiesta dell'immagine in una pagina funziona correttamente.

    il problema del doppio inserimento si verifica quando si richiede dal browser direttamente il file che produce l'immagine (cosa che appunto stavo facendo ).

    come mai questo comportamento ? :master:
    perche' di solito come la richiedi la pagina .... col piccione viaggiatore????

    se non lo sai tu che hai lo script....

    Il silenzio è spesso la cosa migliore. Pensa ... è gratis.

  7. #7
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    allora , se ad esempio richiedo www.sito.ext e all'interno della index viene richiesta l'immagine:

    [img]img.php[/img]

    l'inserimento nel file avviene correttamente, ossia una sola volta.

    altrimenti se richiedo www.sito.ext/img.php

    l'inserimento avviene due volte.

    mistero
    Errare humanum est, perseverare ovest

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.