2015-01-12 3 views
0

У меня возникла проблема с записью IP-адреса в базу данных. Если я напечатаю $ ip после $ip=$_SERVER['REMOTE_ADDR'];, я получаю 54.231.128.128. Но если я вставляю ip в базу данных, он вставляет 203223. Вот мой код.IP-адрес неправильный для вставки базы данных

<?php include "db.php"; 
session_start(); 
$toemail=$_POST["toemail"]; 
$report=$_POST["report"]; 
$ip=$_SERVER['REMOTE_ADDR']; 
$fromemail=$_SESSION['nahid']; 
$date=(time()); 
$tatus="Active"; 

if(!$_POST['submit']) { 
    echo "Please fill out the form"; 

    } else { 

    // $query_auto = "INSERT INTO form (date, time) VALUE ('DATE: Auto CURDATE()', CURDATE())"; 


mysql_query("INSERT INTO report(`id`, `from`, `msg`, `to`, `date`, `ip`, `status`) 
      VALUES(NULL,'$fromemail','$report','$toemail','$date', '$ip', '$tatus')") or die(mysql_error()); 
    header('Location: report_congratulations.php'); 
} 

?> 
+2

Какой тип столбца IP в вашей базе данных? – Neat

+1

** Danger **: вы используете [** устаревший ** API баз данных] (http://stackoverflow.com/q/12859942/19068) и должны использовать [современную замену] (http: // php. нетто/ручной/EN/mysqlinfo.api.choosing.php). Вы также уязвимы для [SQL-инъекций] (http://bobby-tables.com/) **, что современный API упростит [защиту] (http://stackoverflow.com/questions/60174/best-way-to-prevent-sql-injection-in-php). – Quentin

+0

Тип столбца ip должен быть varchar, или вы можете использовать функцию php 'ip2long' для преобразования ip в число, а при извлечении использовать' long2ip' для преобразования обратно в ip –

ответ

0

ССЫЛКА INET_ATON и INET_NTOA

mysql_query("INSERT INTO report(`id`, `from`, `msg`, `to`, `date`, (INET_ATON('$ip')), `status`) 
     VALUES(NULL,'$fromemail','$report','$toemail','$date', '$ip', '$tatus')") or  die(mysql_error()); 
+0

@SM Nahidur Rahman это поможет вам. – Priyank

+0

причина для downvote plz? – Priyank

+0

Извините, но это была ошибка. Очень жаль. –

0

Проблема решена. Столбец IP моей базы данных был целым. Но теперь я преобразовал варчар, и проблема решена.

Смежные вопросы