Visualizzazione dei risultati da 1 a 9 su 9
  1. #1
    Utente di HTML.it L'avatar di Aran
    Registrato dal
    Nov 2002
    Messaggi
    1,529

    Bloccare IP sconosciuti in una pagina?

    Ciao a tutti!

    Su un sito personale, ho pubblicato un guestbook, php mysql niente di che, solamente che dopo un po di tempo ho notato degli acessi sconosciuti, degli ip che lasciano publbicità e altre cose (non sono amici che fanno scherzi), all'inizio era uno ogni tanto adesso sono decine al giorno!!!

    Ho dovuto creare un'area riservata e per l'accesso al guest è solo per chi si è registrato.

    Ho notato che se alla pagina in cui cè il form idi inserimento tolgo l'obligo di essere loggati per accedervi, dopo pochi minuti mi arrivano un casino di accessi da questi UP "stranieri"!!

    Come posso fare per ovviare questo problema?
    Esiste un modo per bloccare determinati ip solo in una determinata pagina senza dover ricorrere alla registrazione??

    Qualsiasi aiuto è ben accetto ormai son disperato!!!
    Mi diceva sempre: "Mai mangiare a stomaco vuoto..."

    Frank Cianuro - Aeroplane - Aran Blog - No Spez la Catena.

  2. #2
    Potresti registrare in mysql l'ip di quelli che si registrano al guest e con una semplice query verificare se l'ip è presente nel db oppure no, questo sistema ha l'inconveniente che se un'user non si connette dal suo pc viene considerato come spam.
    Oppure potresti fare una tabella bannati e metterci l'ip di quelli che fanno spam, l'inconveniente di questa soluzione è che dovresti aggiungere l'ip alla lista "manualmente" dopo che quell'ip ha spammato almeno una volta.

    Windoz XP è un evento statistico, quindi il fatto che funzioni è un'evento del tutto casuale

  3. #3
    Utente di HTML.it L'avatar di Aran
    Registrato dal
    Nov 2002
    Messaggi
    1,529
    ok, potrebbe essere un'idea, per aggiungerli a mano non sarebbe un problema...ma come faccio con php, conoscendo l'ip di chi si logga ad impedirgli l'accesso??

    Cioè, vedere al momento i cui questo ip si connette alla pagina confrontarlo con tutti gli ip presenti nella mia tabella?
    Mi diceva sempre: "Mai mangiare a stomaco vuoto..."

    Frank Cianuro - Aeroplane - Aran Blog - No Spez la Catena.

  4. #4
    se hai una pagina di login nella pagina di controllo metti una query tipo $query="SELECT ip FROM IP_TABLE WHERE ip=".$_SERVER('REMOTE_ADD')."";

    if($query == null){header("Location:http://www.errorpage.it");}

    Oppure nell'intestazione della home del guest metti un codice simile, ovviamente riveduto e corretto
    Windoz XP è un evento statistico, quindi il fatto che funzioni è un'evento del tutto casuale

  5. #5
    Utente di HTML.it L'avatar di Aran
    Registrato dal
    Nov 2002
    Messaggi
    1,529
    In pratica confronta l'IP di accesso alla pagina e se è presente all'interno della mia tabella lo reindirizza al link che decido?

    Sbaglio?? :master:
    Mi diceva sempre: "Mai mangiare a stomaco vuoto..."

    Frank Cianuro - Aeroplane - Aran Blog - No Spez la Catena.

  6. #6
    Utente di HTML.it L'avatar di Aran
    Registrato dal
    Nov 2002
    Messaggi
    1,529
    Almeno so se è ho capito bene
    Mi diceva sempre: "Mai mangiare a stomaco vuoto..."

    Frank Cianuro - Aeroplane - Aran Blog - No Spez la Catena.

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    434
    oppure così, sempre sul mysql:

    $query = mysql_query('SELECT * FROM `tabella_ip` WHERE `ip` = \''.$_SERVER['REMOTE_ADDR'].'\'');
    if (mysql_num_rows($query) > 0) {
    die("Non puoi postare");
    }

    naturalmente ti personalizzi il messaggio di errore. Creati una tabella sul database così:

    tabella_ip ( id int (2) primary key unsigned not null, ip varchar (15) not null )

  8. #8

  9. #9
    Utente di HTML.it
    Registrato dal
    Jul 2002
    Messaggi
    443
    salve,

    ... ho lo stesso problema ed oltre a questo anche per evitare l'inserimento di messaggi doppi, ho tentato a risolverlo in questa maniera:

    salvo l'indirizzo remoto in una variabile di sessione:
    Codice PHP:
        if (!session_id()) session_start();
        
        if(!isset(
    $_SESSION['controllo_IP'])){
            
    $_SESSION['controllo_IP'] = $_SERVER['REMOTE_ADDR'];
            }
        else {
            
    $_SESSION['controllo_IP'] = $_SESSION['controllo_IP'];
            } 

    qualora l'indirizzo remoto dell'utente esiste nella sessione...


    Codice PHP:
    if ( $_SERVER['REMOTE_ADDR'] == $_SESSION['controllo_IP']) {
        echo 
    "<script language=\"JavaScript\" type=\"text/javascript\">alert(\"Lei ha appena inserito un messaggio !\\n\\n
    Non è possibile inserire messaggi doppi !\"); focus(); window.location.href = \""
    .$_SERVER['HTTP_REFERER']."\";</script>";
        } 

    Il problema è che chi inserisce messaggi spam cambia in continuazione indirizzo IP.

    Qualcuno ha un ulteriore idea come evitare l'inserimento di messaggi spam?

    Grazie

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.