将IP Addreess存储在单列

时间:2015-09-18 04:33:21

标签: php mysql

这是我的代码,在用户登录时插入单个IP地址值。 如果用户尝试从其他IP登录,则用户将收到要确认的电子邮件。用户单击电子邮件中发送的链接后,将更新IP地址。我希望在用户确认其身份时存储所有IP,而不是更新IP地址,以便用户能够登录我们存储在阵列中的相同IP。

基本上我想将IP地址存储为数组。

<?php

       include 'header.php';
   include('config.php');
         $eemail=$_GET['email'];

        if(isset($_POST['scode']))
        {
     $unncode=$_POST['uncode'];

      $sql1="SELECT * FROM nennetwork WHERE code ='$unncode'";
        $res=mysql_query($sql1);

    $rows = mysql_fetch_array($res);

     $ccode = $rows['code'] ;

      if($unncode==$ccode)
     $eemail=$_GET['email'];
       $ips = $_SERVER['REMOTE_ADDR'];
   if(mysql_query("update nennetwork set useripp= '".$ips ."' WHERE email ='$eemail'"))
        {
       $mmmsg= "You can <a href='".'index.php'."' class='ac'>Login</a> if the code matches the code that we have sent you.";


      }


      else{

     $mmmsg="Please submit the numeric code that we sent to your email.";

     }}

        ?> 

3 个答案:

答案 0 :(得分:0)

好的,除了SQL注入的大量案例(在php.net上阅读php-pdo,非常简单易用的例子)。

您无法插入的麻烦查询:

if(mysql_query(“update nennetwork set useripp ='”。$ ips。“'WHERE email ='$ eemail'”))

可以替换为:

INSERT INTO nennetwork (useripp, email) VALUES (?,?) 
  ON DUPLICATE KEY UPDATE useripp=?;

为此,您需要1个索引:

CREATE UNIQUE INDEX idx_nennetwork_nn_1 ON nennetwork(email);

这将导致重复键触发更新或插入,具体取决于所涉及的数据。

(阅读php-pdo如何获取?,?和?被绑定变量和一些更安全的代码替换。)

答案 1 :(得分:0)

正确规范化数据,这样就不需要在表中存储数组了。

在这种情况下,您应该有一个包含IP地址的单独表:

CREATE TABLE your_user_ip (
 id int primary key auto_increment,
 userid int not null
 ip varchar(5) not null);

答案 2 :(得分:0)

使用它。

  

您的代码中存在一些错误。

var slider = $('#slides img');
$(document).ready(function(){
    $("#change").click(function(){
        slider[clickCount].css("visibility","hidden");
    });   
});  

和SQL表应该是

include 'header.php';
include('config.php');
$eemail=$_REQUEST['email'];

if(isset($_POST['scode']))
{
    $unncode=$_POST['uncode'];

    $sql1="SELECT * FROM nennetwork WHERE code ='$unncode'";
    $res= mysql_query($sql1);

    $count = count($res);
    if(empty($count))
    {
        echo 'Query is empty ';
    }
    else
    {
        $rows = mysql_fetch_array($res);

        $ccode = $rows['code'] ;

        if($unncode == $ccode)
        {
            $eemail = $_REQUEST['email'];
            $ips = $_SERVER['REMOTE_ADDR'];

            if(mysql_query("update nennetwork set useripp= '$ips ' WHERE email ='$eemail'"))
            {
                $mmmsg= "You can <a href='".'index.php'."' class='ac'>Login</a> if the code matches the code that we have sent you.";
            }
            else
            {

                $mmmsg="Please submit the numeric code that we sent to your email.";

            }
        }
        else
        {
            echo "unncode not matced with ccode ";
        }

    }

}