Navigazione

    Privacy - Termini e condizioni
    © 2020 Search On Media Group S.r.l.
    • Registrati
    • Accedi
    • CATEGORIES
    • Discussioni
    • Non letti
    • Recenti
    • Hashtags
    • Popolare
    • Utenti
    • Stream
    • Interest
    • Categories
    1. Home
    2. Categorie
    3. Coding e Sistemistica
    4. Coding
    5. Controllo ip e confrondo con database MYSQL - URGENTE
    Questa discussione è stata cancellata. Solo gli utenti con diritti di gestione possono vederla.
    • T
      thedarkita ModSenior • ultima modifica di

      Dovresti modificare la configurazione di php e abilitare la visualizzazione degli errori, che sarà sicuramente disattivata.
      Ho provato il codice in locale e c'era un " di troppo per cui l'errore era quello:

      <?php $ip=$_SERVER['REMOTE_ADDR'];
      $db_host="localhost";
      $db_name="ips"; $db_user="root"; $db_password="***";
      $db=mysql_connect($db_host,$db_user,$db_password); 
      
      
      
      
      
      
      
      
      if ($db==false) die("Errore nel collegamento a MySQL!");
      mysql_select_db($db_name,$db) or die("Errore nella selezione del database!");
      
      
      
      
      
      
      
      
      $query="SELECT ip FROM ips WHERE hostname='$ip' LIMIT 1";
      $ris=mysql_query($query,$db);
      
      
      
      
      
      
      
      
      if (ris==false)
      die("Errore nell'invio della query (verifica ip)!");
      
      
      
      
      
      
      
      
      if (mysql_num_rows($ris) > 0)
      die("Non puoi entrare!");
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      
      echo 'IP: '.$ip.'<br>';
      $query = mysql_query("SELECT ip FROM ips");
      echo '<pre>';
      while($row = mysql_fetch_array($query))
      {
      	var_dump($row);
      }
      echo '</pre>';
      mysql_close($db);
      
      
      0 Miglior Risposta Ringrazia Cita Rispondi

        1 Risposta Ultima Risposta
      • H
        heron User • ultima modifica di

        Ho messo il codice tuo e adesso compaiono una serie di scritte:

        IP: 173.245.49.122

        array(2) { [0]=> string(10) "1558095733" ["ip"]=> string(10) "1558095733"}array(2) { [0]=> string(10) "1558095733" ["ip"]=> string(10) "1558095733"}P.S. L'IP che compare è sbagliato, non è quello

        Edit--

        Se salvo quell'ip nel database mi compare la scritta "Non puoi entrare". Ma come mai quell'ip? L'ip del vps è un altro e inizia con 92...

        0 Miglior Risposta Ringrazia Cita Rispondi

          1 Risposta Ultima Risposta
        • T
          thedarkita ModSenior • ultima modifica di

          Il problema non è lo script che funziona correttamente, hai le idee un pò confuse su come funziona tutto il discorso, cerco di spiegarti nella maniera più semplice possibile:

          $_SERVER['REMOTE_ADDR'] contiene l'indirizzo IP di chi visita la pagina, per cui se lo visiti tu conterrà il tuo IP, se lo visito io conterrà il mio IP.L'IP del vps non viene preso minimamente in considerazione, se ti serve l'IP del vps dovresti poterlo ottenere usando $_SERVER['SERVER_ADDR']

          0 Miglior Risposta Ringrazia Cita Rispondi

            1 Risposta Ultima Risposta
          • H
            heron User • ultima modifica di

            Io vorrei evitare l'accesso di alcuni spammer nel mio sito quindi in questo caso quale devo usare per avere un qualcosa di efficiente e duraturo? $_SERVER['REMOTE_ADDR'] o $_SERVER['SERVER_ADDR']?

            Poi c'è un codice per inserire nel database l'ip, il browser, il giorno e l'ora di chi visita una determinata pagina?

            0 Miglior Risposta Ringrazia Cita Rispondi

              1 Risposta Ultima Risposta
            • T
              thedarkita ModSenior • ultima modifica di

              Devi utilizzare $_SERVER['REMOTE_ADDR'] come stai già facendo.
              Puoi fare in modo di avere nel database tutti quei dati, ma considera che potrebbero essere inseriti moltissimi dati se le pagine vengono visualizzate da molti visitatori/bot, e potresti avere problemi.

              0 Miglior Risposta Ringrazia Cita Rispondi

                1 Risposta Ultima Risposta
              • H
                heron User • ultima modifica di

                La pagina in cui dovrò utilizzare quel codice sarà una pagina interna e disponibile solo ai registrati quindi nessun bot potrà entrare... ho scoperto il perchè di quell'ip "strano", è di cloudflare...
                Comunque, che codice devo usare per memorizzare i dati? Non sono molto bravo a riguardo

                0 Miglior Risposta Ringrazia Cita Rispondi

                  1 Risposta Ultima Risposta
                • T
                  thedarkita ModSenior • ultima modifica di

                  Basta un semplice query INSERT, ma ovviamente devi creare la tabella prima, ad esempio:

                  
                  
                  mysql_query("INSERT INTO tabella(ip, ora)VALUES('".$_SERVER['REMOTE_ADDR']."', ".time().")");
                  
                  
                  0 Miglior Risposta Ringrazia Cita Rispondi

                    1 Risposta Ultima Risposta
                  • H
                    heron User • ultima modifica di

                    Sto usando questo codice:

                    <?php$db_host="localhost";
                    $db_name="ips"; $db_user="root"; $db_password="****";
                    $db=mysql_connect($db_host,$db_user,$db_password); 
                    
                    
                    
                    
                    mysql_query("INSERT INTO ip(hostname, ora)VALUES('".$_SERVER['REMOTE_ADDR']."', ".time().")"); ?>
                    

                    ma se vado nel database che si chiama ips e nella tabella ips non vedo aggiunto nessun ip.

                    0 Miglior Risposta Ringrazia Cita Rispondi

                      1 Risposta Ultima Risposta
                    • T
                      thedarkita ModSenior • ultima modifica di

                      Devi creare una tabella apposita, con la struttura necessaria

                      0 Miglior Risposta Ringrazia Cita Rispondi

                        1 Risposta Ultima Risposta
                      • H
                        heron User • ultima modifica di

                        Ho creato un apposita tabella chiamata ipuser con dentro i campi: ip, ora ma continua a non salvare nulla

                        0 Miglior Risposta Ringrazia Cita Rispondi

                          1 Risposta Ultima Risposta
                        • T
                          thedarkita ModSenior • ultima modifica di

                          Bene, quella query però devi metterla in ogni pagina in cui vuoi che venga aggiunto il record nella tabella affinché funzioni come vuoi tu.

                          0 Miglior Risposta Ringrazia Cita Rispondi

                            1 Risposta Ultima Risposta
                          • H
                            heron User • ultima modifica di

                            Si ma non salva nè ora nè ip

                            <?php
                            $db_host="localhost";
                            $db_name="ips"; $db_user="root"; $db_password="*****";
                            $db=mysql_connect($db_host,$db_user,$db_password);

                            mysql_query("INSERT INTO ipuser(ip, ora)VALUES('".$_SERVER['REMOTE_ADDR']."', ".time().")"); ?>

                            Il db si chiama ips e la tabella ipuser

                            0 Miglior Risposta Ringrazia Cita Rispondi

                              1 Risposta Ultima Risposta
                            • H
                              heron User • ultima modifica di

                              UP

                              0 Miglior Risposta Ringrazia Cita Rispondi

                                1 Risposta Ultima Risposta
                              Caricamento altri post
                              Rispondi
                              • Topic risposta
                              Effettua l'accesso per rispondere
                              • Da Vecchi a Nuovi
                              • Da Nuovi a Vecchi
                              • Più Voti