したがって、このスクリプトを作成すると、データベースからの古い IP アドレスとスクリプトからの新しいアドレスを使用して、正しい電子メールを取得できるようになりました。私の問題は、古いIPアドレスと現在のIPアドレスが同じか異なるかに関係なく、電子メールが送信されることです。このスクリプトは動的 IP アドレスの変更を確認するために毎分実行されるため、毎分メールを送信する必要はありません。私の目標は、最後に投稿された IP が発見された IP と異なる場合にのみメールを送信することです。これで、IP が異なるかどうかにかかわらず、電子メールが送信されます。他のすべてが機能します。電子メールは正常に送信され、他のすべては完全に機能します。唯一の問題は、ロジックを使用してメールを送信するタイミングを決定することです。(新旧IPが異なる場合)
スクリプトがデータベースから IP を取得すると、123.123.123.123 のようになります。http://www.ipaddresscheck.comlu.com/ip.phpからの IPも 123.123.123.123 のように見えます。(***例) しかし、データベースが 123.123.123.123 で、現在が 134.134.134.134 である場合、メールを送信する必要があります。
比較では、!=、== を試し、then セクションと else セクションにメール ブロックを入れてみました。問題は、異なるデータ型によって引き起こされる可能性がありますか? $old_ip は整数ですが、$new_ip は文字列ですか? 私はまだ 14 歳です。
<?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 = "justinmarmorato@gmail.com";
$subject = "IP Address Change";
$from = "no-reply@http://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('justinmarmorato@gmail.com', 'Hello!', implode("\r\n", $headers));
}
?>