user1894929
user1894929

Reputation: 199

Run php script every x mins using ajax request

got this file 'functions.php':

<?php
function test ($url){
$starttime = microtime(true);
$valid = @fsockopen($url, 80, $errno, $errstr, 30);
$stoptime = microtime(true);
echo (round(($stoptime-$starttime)*1000)).' ms.';

if (!$valid) {
   echo "Status - Failure";
} else {
   echo "Status - Success";
}
}
    test('google.com');
?>

I want to run it every 10seconds or so, i was told to use ajax request but i dont completely understand how it works. I tried creating a new file 'index.php', and then had this written in it:

<script>
var milliSeconds = 10000; 
setInterval( function() {
    //Ajax request, i dont know how to write it
    xmlhttp.open("POST","functions.php",true);
    xmlhttp.send();
}, milliSeconds);
</script>

I put both files into ftp but nothing happens, can someone help me write a propper ajax request?

Edit: eddited typo, still doesnt work tho

Upvotes: 3

Views: 889

Answers (3)

Glorious Kale
Glorious Kale

Reputation: 1313

var milliSeconds = 1000;

setInterval( function() {

var xmlhttp;

if (window.XMLHttpRequest) // code for IE7+, Firefox, Chrome, Opera, Safari
{
    xmlhttp=new XMLHttpRequest();
}
else
{
    xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); // code for IE6, IE5
}

xmlhttp.onreadystatechange=function()
{
      if (xmlhttp.readyState==4 && xmlhttp.status==200)
      {
         console.log ( xmlhttp.responseText );
      } 
}

xmlhttp.open("POST","functions.php",true);
xmlhttp.send();


}, milliSeconds);

You have to load xmlhttp request object according to the browser ( xmlhttp=new XMLHttpRequest(); ), then set an event handler when the xmlhttp state changes ( xmlhttp.onreadystatechange=function() ). When it changes check if the status is 200 (success) then do whatever you want with the response. ( I printed it to console )

Upvotes: 1

Janus Troelsen
Janus Troelsen

Reputation: 21290

So, it sounds like your only problem is that you don't know how to write an XHR request. Take a look at Using XMLHttpRequest. Comment on this answer with your questions.

Upvotes: 1

karaxuna
karaxuna

Reputation: 26930

xmlhttp.open("POST","funkction.php",true); 

should be:

xmlhttp.open("POST","functions.php",true);

Upvotes: 0

Related Questions