Visualizzazione risultati 1 fino 6 di 6

Discussione: Ban per IP

  1. #1
    newucp non č connesso Neofita
    Data registrazione
    30-10-2015
    Messaggi
    14

    Predefinito Ban per IP

    Buonasera, sto facendo un sistema di ban per indirizzo ip.
    Praticamente dal pannello amministratore ho fatto un form dove immetti l'indirizzo ip e lo salva nella tabella 'bans' ora mi manca soltanto la parte dove se l'indirizzo ip risulta bannato e quindi presente nella tabella ti reindirizza altrove.
    Il problema č che non capisco come prelevare l'indirizzo ip con una mysql query.

  2. #2
    newucp non č connesso Neofita
    Data registrazione
    30-10-2015
    Messaggi
    14

    Predefinito

    prima che qualcuno mi dice "non ho capito cosa vuoi fare" come al solito..
    questa č la tabella bans, come faccio a controllare se l'indirizzo ip č presente in questa tabella e quindi reindirizzarlo altrove?

    Ultima modifica di newucp : 13-12-2016 alle ore 21.10.10

  3. #3
    mzanella non č connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Prova ad estrarre dalla tabella le righe in cui compare l'IP da controllare (e il ban č di tipo "ip"), quindi a contare le righe estratte: se ce n'č almeno una, vuol dire che l'IP va considerato soggetto a ban:
    Codice PHP:
    $query = "SELECT id FROM bans WHERE bantype = 'ip' AND value = '<IP da controllare>'";
    $result = $mysqli->query($query);
    if (
    $result->num_rows > 0) {
    // L'IP č nella lista ban, va reindirizzato
    header('Location: http://newucp.altervista.org/banpage.html');
    }

    // Altrimenti, prosegui con le normali attivitā della pagina

  4. #4
    newucp non č connesso Neofita
    Data registrazione
    30-10-2015
    Messaggi
    14

    Predefinito

    Non funziona

  5. #5
    mzanella non č connesso AlterGuru
    Data registrazione
    29-12-2015
    Messaggi
    1,954

    Predefinito

    Cosa non funziona?

    Possono esserci errori di sintassi in un codice scritto "al volo". Hai sostituito '<IP da controllare>' con il valore appropriato, nel corpo dell'interrogazione?
    Hai verificato che l'interrogazione avvenga correttamente, e che non ci siano problemi con la base di dati?

    Hai provato utilizzando un IP che corrisponda perfettamente ad uno di quelli nella tabella? Le prove con l'IP "normale" di navigazione generalmente non trovano corrispondenze esatte in quanto l'IP č dinamico.

  6. #6
    newucp non č connesso Neofita
    Data registrazione
    30-10-2015
    Messaggi
    14

    Predefinito

    Questo funziona perfettamente, grazie lo stesso.

    $remote_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    $find_ip = mysql_query("SELECT * FROM bans WHERE value = '".$remote_ip."' ");
    $bans = mysql_fetch_array($find_ip);
    if($remote_ip == $bans['value']){
    session_destroy();
    header("location: index?bantype=ip&banid=".$ban['id']." ");
    }

Regole di scrittura

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