У меня возникла проблема с записью 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');
}
?>
Какой тип столбца IP в вашей базе данных? – Neat
** 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
Тип столбца ip должен быть varchar, или вы можете использовать функцию php 'ip2long' для преобразования ip в число, а при извлечении использовать' long2ip' для преобразования обратно в ip –