Php 将IP地址存储在单列中

Php 将IP地址存储在单列中,php,mysql,Php,Mysql,这是我的代码,在用户登录时插入一个IP地址值。 如果用户尝试从其他IP登录,则用户将收到一封电子邮件进行确认。用户单击电子邮件中发送的链接后,IP地址将更新。我不想更新IP地址,而是希望在用户确认其身份时存储所有IP,以便用户能够登录到我们存储在阵列中的相同IP 基本上我想将IP地址存储为一个数组 <?php include 'header.php'; include('config.php'); $eemail=$_GET['email'];

这是我的代码,在用户登录时插入一个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.";

     }}

        ?> 

好的,除了SQL注入的大量案例之外(请阅读php.net上的php pdo,非常简单易用的示例)

您的疑难查询没有插入:

if(mysql_查询(“更新网络集useripp=”“$ips.”“其中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,了解如何将?、?和?替换为绑定变量和一些更安全的代码)。

好的,除了SQL注入的大量案例之外(阅读php.net上的php pdo,非常简单易用的示例)

您的疑难查询没有插入:

if(mysql_查询(“更新网络集useripp=”“$ips.”“其中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,了解如何将?、?和?替换为绑定变量和一些更安全的代码)。

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

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

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

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

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

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

您的代码中存在一些错误,这些错误都已修复

用这个

您的代码中存在一些错误,这些错误都已修复


您可以包含一些错误输出吗?没有错误,代码运行正常。它更新了值,但没有插入新值“如果用户尝试从其他Ip登录,则用户将收到一封电子邮件进行确认。”请不要我的一天可以更改几次我已经给出了更新查询,但我想插入一个新值,保留以前的值。是的,但我想存储所有值扫描您是否包含一些错误输出?没有错误,代码运行正常。它更新值,但不插入新值“如果用户尝试从不同的Ip登录,则用户将收到一封电子邮件进行确认。”请不要更改我的一天可以更改几次我已给出更新查询,但我也想插入一个新值保留以前的值。是的,但我想存储所有值