[ask] Notice: Undefined variable


Status
Not open for further replies.

xpreborn

Apprentice 1.0
Saya ada coba seperti ini namun nilainnya ko dibaca Undefined variable yach, kira2 saya salahnya dmn? karena jika saya echo hasilnya muncul
Tujuannya yaitu, saya ada beberapa IP address yang telah saya coba daftar di database [$ipaddress], kemudian script test.php di bawah akan dijalankan dgn crond setiap 30 menit, jd dia akan ngecek dgn ping semua IP address yang ada di $ipaddress, nah jika bisa diping maka dia akan insert ke table updown dan begitu juga jika tidak bisa diping maka akan diinsert ke table updown, dgn catatan satu IP Address stausnya hanya ada satu saja jadi jika bisa diping maka statusnya alive jika ga bisa diping akan berubah ke down

koneksi.php
Code:
<?php
$con=mysqli_connect("localhost","root","123abc","test");
if (mysqli_connect_errno())
  {
  echo "Failed to connect to MySQL: " . mysqli_connect_error();
  }

?>

test.php
Code:
<?php
include("koneksi.php");
include("ipaddress.php");

$date = date("Y-m-d H:i:s");

function pingAddress($ip) {
    $pingresult = exec("ping -c3 $ip", $outcome, $status);
    if (0 == $status) {
mysqli_query($con,"INSERT INTO updown (ipaddr,status,tglalive)
VALUES ('$ip','ALIVE','$date')");
mysqli_close($con);

    } else {
mysqli_query($con,"INSERT INTO updown (ipaddr,status,tgldown)
VALUES ('$ip','DOWN','$date')");
mysqli_close($con);
      }
}
pingAddress("$ipaddress");

Error :
Notice: Undefined variable: con in /var/www/html/test.php on line 9
Notice: Undefined variable: date in /var/www/html/test.php on line 10
Warning: mysqli_query() expects parameter 1 to be mysqli, null given in /var/www/html/test.php on line 10
Notice: Undefined variable: con in /var/www/html/ping.php on line 11
Warning: mysqli_close() expects parameter 1 to be mysqli, null given in /var/www/html/test.php on line 11
 

xpreborn

Apprentice 1.0
Karena variable $con di luar function pingAddress
cara tambahkan:
global $con;
Sudah saya coba tapi masih undefined variabel juga Mas [bisa jadi saya yang salah penggunaannya],

lalu saya coba buat simple saja dgn menggunakan satu IP lalu susunannya saya ubah dikit, sudah tidak undefined variabel namun ko ga diinsert ke databasenya yach [tanpa error]
Code:
<?php
function pingAddress($ip) {
$date = date("Y-m-d H:i:s");
include("koneksi.php");

    $pingresult = exec("ping -c3 $ip", $outcome, $status);
    if (0 == $status) {
        mysqli_query($con,"INSERT INTO updown (ipaddress,status,tglalive)
        VALUES ('$ip','ALIVE',$date)");
        mysqli_close($con);
    } else {
        mysqli_query("INSERT INTO updown (ipaddress,status,tgldown)
        VALUES ('$ip','DOWN',$date)");
        mysqli_close($con);
    }
}

pingAddress("127.0.0.1");

Field tablenya ada 4 :
ipaddress | status | tglalive | tgldown

Edit:
Ternyata tdk terinser kurang tanda petik ' '
 
Last edited:

xpreborn

Apprentice 1.0
@masiqbal
Oh yach tanya satu lagi Mas,
Untuk penggunaan ON DUPLICATE KEY UPDATE gmn yach Mas ?
Tujuannya agar jika ada IP Address yang reply akan dirubah statusnya ke ALIVE dan jika statusnya ga bs diping maka statusnya dirubah ke DOWN termasuk datenya juga diupdate
karena yang saya buat skrg :
1. Test satu IP saja,
2. Saya coba jalankan test.php dgn kondisi IP tujuannya bisa diping, terinsert ke database : IP | status | date ,----->>aman
3. lalu IP tersebut saya matikan lalu saya coba jalankan lagi namun tidak ada perubahan dari hasil nomor 2 td
saya inginnya ketika down/ga bs diping statusnya dirubah juga dan date downya juga dicatat dan seperti itu ketika sdh bisa diping kembali
 
Status
Not open for further replies.

Top