Итак, написание этого скрипта, и теперь я получаю правильный адрес электронной почты, со старым IP-адресом из базы данных и новым адресом из сценария. Моя проблема теперь в том, что старый IP-адрес и текущий те же или разные, отправляет электронное письмо. Этот скрипт будет запускаться каждую минуту, чтобы проверить динамические изменения IP-адресов, поэтому я не хочу, чтобы каждый раз электронная почта. Моя цель состоит в том, чтобы он отправлял электронную почту ТОЛЬКО, если последний опубликованный IP-адрес ОТЛИЧАЕТСЯ от обнаруженного. Теперь, электронная почта посылает, что IP-адреса различны или нет. Все остальное работает. Письмо отправляется отлично, а все остальное работает отлично. Единственная проблема заключается в использовании логики, чтобы решить, когда отправить электронное письмо. (Когда новый и старый IP-адреса разные.)Php if else логический блок работает независимо от того, что?
Когда скрипт получает там ip из базы данных, он выглядит как 123.123.123.123. IP-адрес от http://www.ipaddresscheck.comlu.com/ip.php также выглядит как 123.123.123.123. (*** Пример) Но если в базе данных указано 123.123.123.123, а текущий - 134.134.134.134, он должен отправить электронное письмо.
Для сравнения, я пробовал! =, ==, и я попытался помещать почтовый блок в разделы then и else. Может ли проблема быть вызвана разными типами данных? Является ли $ new_ip строкой, а $ old_ip является целым числом? Im только 14, так ... Yea.
<?php
//Get IP
$new_ip = file_get_contents('http://www.ipaddresscheck.comlu.com/ip.php');
//Connect to SQL
mysql_connect('localhost','root','root');
//Select database
mysql_select_db("ip_changes") or die(mysql_error());
//Get Date Info
$date = date("D M Y");
$time = date("H:i:s");
//Get last inserted IP
$sql = mysql_query('SELECT * FROM ip ORDER BY id DESC LIMIT 1');
$row = mysql_fetch_array($sql);
$old_ip = $row['current_ip'];
echo $old_ip;
//Generate SQL query
$sql="INSERT INTO ip (date, time, current_ip) VALUES ('$date', '$time', '$new_ip')";
//Execute SQL
mysql_query($sql);
//Get latest IP
//$lastip = mysql_query(SELECT $selected FROM ip ORDER BY id DESC LIMIT 1);
if ($old_ip == $current_ip)
{
}
else {
//Set Mail Settings
$to = "[email protected]";
$subject = "IP Address Change";
$from = "[email protected]://mar-remote-net.dns2.us";
$headers = array (
"From:" . $from,
"Content-Type: Text/HTML"
);
//Create email
$finalmessage = <<< EOT
Hello! This is an automated message from the IPMS. An IP address change has been detected.
<html>
<style>
table, th, td
{
border: 2px solid black;
border-color:grey;
}
</style>
<table class='table'>
<tr>
<td>Old IP</td><td>New IP</td><td>Time Detected</td>
</tr>
<tr>
<td>$old_ip</td><td>$new_ip</td><td>$date $time</td>
</tr>
</table>
</html>
EOT;
mail($to,$subject,$finalmessage, implode("\r\n", $headers));
mail('[email protected]', 'Hello!', implode("\r\n", $headers));
}
?>
var_dump ($ old_ip) и var_dump ($ current_ip), расскажут вам, какой тип данных вы имеете дело в обоих случаях, однако я не вижу, чтобы это отличалось, если theyre вытягивается из того же источника – KyleK
Возможно, $ new_ip' заканчивается в новой строке. Попробуйте '$ new_ip = trim ($ new_ip);' – Barmar
вы сохраняете свой ip-адрес, преобразовывая 'INET_ATON()'? – DevZer0