Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483

    Scrivi e preleva da file

    Ciao a tutti... avrei bisogno di un aituo... devo rearizzare un piccolo controllo per il mio sito... devo fare in modo ke un utente con lo stesso ip non possa inviare + di TOT messaggi dalla mia sezione CONTATTI(dove c'è un form ke mi invia in automatico una email alla mia casella).. avevo pensato... senza ricorrere a un database... di utilizzare un file txt(poi se la mole dei dati sara' tanta passero' al db,x ora mi faccio bastare il txt)...e registrare ip e time stamp dell'utente quando invia la email email... poi ipotizzando ke l'utente torna un altra volta... accedo al mio file e vedo ke l'ip è lo stesso... controllo anke il time stamp (per esempio se voglio ke venga inviato max 1 messaggio all'ora) e rispondo qualkosa all'utente... oppure invio normalmente l'email se il time stamp è + vekkio (per esempio di 1 ora)... quello ke mi kiedo.... come devo salvare i dati nel file ? per poi andarli a riprendere comodamente dopo ? con quale funzione li prelevo i dati ??

    grazie ciao

  2. #2
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    dunque allora dovresti scrivere nel file al posto di
    IP: $ip\n
    dovresti mettere |$ip in modo che dopo un po' di accessi il file sarà
    |$ip|$ip|$ip|$ip|$ip ecc...
    arrivato a questo punto hai bisogno di fopen(), filesize(), fread() ed explode() da usare in questo modo:
    Codice PHP:
    $ip $_SERVER['REMOTE_ADDR'];
    $apri_file fopen("log.txt"); //apriamo il file con un handler
    $dimensione filesize("log.txt"); //otteniamo la dimentione del file
    $contenuto fread($apri_file$dimensione); /*
    apriamo il file log.txt fino alla dimensione $dimensione (cioè tutta)*/
    $ips explode("|"$contenuto); /*
    questo creerà un array con ogni elemento un elemento di log.txt
    separato dal carattere |
    ESEMPIO:
    log.txt
    |1.1|2.2|3.3|4.4|5.5
    array creato: elemento 1= "1.1" elemento 2= "2.2" ecc...
    Adesso avresti bisogno di una funzione da usare con l'if
    esempio: (non è un commento)*/
    if(/*se $ips contiene + di tot volte in tot tempo l'ip*/) {
      echo 
    "non puoi inviare messaggi";
      exit;
    }else{
    /*(vai avanti)*/

    naturalmente hai bisogno di questa funzione....

  3. #3
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483
    ora provo...grazie mille!!!

  4. #4
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    solo se non fosse per questa funzione..qualcuno la conosce?

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2004
    Messaggi
    483
    stavo pensando di fare un doppio expode... in modo ke posso salvare anke il time stamp... in modo ke salvo questo
    |192.168.3.33-1128366008
    in modo ke "esplodendo" gli | ottengo ip e time stamp assieme... esplodendo il - li ottengo separatamente....
    così mi sembra + facile scrivere la funzione..

    ora provo xo'... xke magari nn mi riesce niente...

  6. #6
    Utente bannato
    Registrato dal
    Sep 2005
    Messaggi
    905
    si come ragionamento può andare..il problema è che avresti bisogno di una funzione che controlli in ogni elemento di un array...

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.