Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 17
  1. #1

    Controllo ip in entrata

    Ciao a tutti...
    io un piccolo rpoblemino con una mia pagina... praticamente
    nella mia pagina ogni utente può dare un voto.... però un solo voto al giorno....

    quindi avrei bisogno di sapere come posso controllare gli utenti (o il loro ip) per potergli far fare questa azione solo una volta al giorno...

    avete consigli da darmi????

  2. #2
    Utente di HTML.it L'avatar di carlo2002
    Registrato dal
    Jun 2002
    Messaggi
    2,746
    Codice PHP:
    $ip_utente $_SERVER['REMOTE_ADDR'] ; 
    però non ti garantisce che lo stesso utente lo abbia per un giorno intero, uno si riconnette e l'ip gli cambia. un pò meglio andrebbe con i cookies finchè non si cancellano.

    Errare humanum est, perseverare ovest

  3. #3

    già

    già hai ragione... per caso sai come fare con i cookies? e soprattutto sai come dirgli "permetti l'azione solo una volta al giorno???"

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

    Re: già

    Originariamente inviato da danirota
    per caso sai come fare con i cookies? e soprattutto sai come dirgli "permetti l'azione solo una volta al giorno???"
    basta cercare un po' http://php.html.it/articoli/leggi/85...-sui-cookie/1/

    Errare humanum est, perseverare ovest

  5. #5
    Imposti un cookie con setcookie(..), assegnandoli la scadenza a 24h quando l'utente vota.

    Quindi, se quel cookie è presente non fai rivotare

    if(isset($_COOKIE['mioCookie'])) exit;
    Olio Extravergine d'Oliva Magino
    Prodotti tipici: in vendita olio, pesto ligure e altri prodotti alimentari tradizionali.

  6. #6
    ok, ho capito grazie!!! però ora stavo facendo delle prove, e ho visto chefaccio la mia zione (il voto) incomincia a "partire" il conteggio (ed è giusto così), però se poi io rifaccio la stessa azione ed il "conteggio" non è ancora finito, questo riparte da capo!!
    praticamente se io gli dico che voglio rendere possibile l'azione dopo 24 h la faccio alle 8 di mattina e poiu la rifaccio alle 7.55 del giorno dopo... non mi è permesso rifarla dopo 5 minuti ma devo attendere nuovamente 24 h......
    forse non son statoi molto chiaro...

    ecco cosa ho fatto...
    Codice PHP:
    $valore="Voto band" ;
    setcookie ("CookieDurevole"$valore,time()+10) ; 
    if(isset(
    $_COOKIE['CookieDurevole'])) $mess="Oggi hai già votato!";//exit

    //if($_COOKIE['CookieDurevole'] == false){
            
    $new_clas $clas +1;
        
    $sql "UPDATE band SET classifica = '$new_clas' WHERE id_band = ".$id_band;
        
    mysql_query($sql);
        
    //echo $sql."
    ";
        //} 

  7. #7
    ti consiglio di usare anche un database dove salvare gli indirizzi ip con relativa data e ora, in modo tale che se l'utente cancella i cookie almeno hai anche questa seconda sicurezza
    Il 90% dei problemi di un pc si trova
    tra la tastiera e la sedia.

  8. #8
    bhè così facendo potrei addirittura evitare il controllo sui cookies, ma fare solo qualche calcolo sull'orario in cui è stato fatto.... no???

  9. #9
    ok, sto facendo delle prove, che in teoria fungono ma in realtà...
    ecco cosa ho fatto....

    Codice PHP:
    <?php
    $slq 
    "SELECT * FROM ip";
    $rse mysql_query($slq);
    while(
    $row mysql_fetch_array($rse)){
        
    $ip $row["ip"];
        
    $data_orig $row["data"];

    //echo "IP :  ".$ip."
    DATA ".$data_o."
    ";

        
    $ip_utente = $_SERVER['REMOTE_ADDR'] ;
    if(
    $ip == $ip_utente){
            
    $data_ok = time()+5;
            echo time()."
    ".
    $data_ok."
    ";
            
        if(
    $data_orig<$data_ok){
            
    $mess = "OGGI HAI GIA' VOTATO!
    DATA : ".$data_orig."
    DATA : ".$data_ok;
            
        }else{
            $tempo = time();
            $lsq = "UPDATE ip SET data='
    $tempo'";
            mysql_query($lsq);
            echo "
    ".$lsq."
    ";
            
            $new_clas = $clas +1;
                $sl = "UPDATE band SET classifica = '
    $new_clas' WHERE id_band = ".$id_band;
                mysql_query($sl);
                echo $sl;
            
        }
    }else{
        $tempo = time();
        
        $sql = "INSERT INTO ip VALUES ('
    $ip_utente','$tempo')";
        mysql_query($sql);
        echo $sql."
    ";
        
            $new_clas = $clas +1;
                $sll = "UPDATE band SET classifica = '
    $new_clas' WHERE id_band = ".$id_band;
                mysql_query($sll);
                echo $sll;
        }
    }
    ?>
    praticamente se la data che c'è nel db è maggiore della data di ora + (un numero che voglio) allora buttami fuori il mess : OGGI HAI GIA' VOTATO!
    altrimenti fai l'ìazione...
    come l'ho scritto in teoria funziona, solo che non è giusto questo
    Codice PHP:
    if($data_orig<$data_ok
    e praticamente butta SEMPRE fuori il mess di "errore"
    PERò ho fatto delle prove e se al posto di $data_orig metto un numero esempio 22222222222
    allora funziona benissimo...

    che ne dite??

  10. #10
    qualcuno può aiutarmi???

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.