PHP Cronjob Werkt Niet
Ik probeer een cron job te laten draaien, iedere minuut tot dat ik hem werkend krijg.
Ik heb dit ingevuld in crontab -e
* * * * * /var/www/website/public_html/dev/updates.php
De updates.php file ziet er zo uit:
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
<?php
error_reporting(E_ALL);
$config = array();
/*
* Database
*/
$config['hostname'] = "localhost";
$config['username'] = "root";
$config['password'] = "*";
$config['database'] = "database";
$connect = mysql_connect($config['hostname'], $config['username'], $config['password']) or die(mysql_error());
$select = mysql_select_db($config['database']) or die(mysql_error());
include "library/player.class.php";
$result = mysql_query("SELECT * FROM `mh_users`") or die(mysql_error());
while ($line = mysql_fetch_assoc($result)) {
$updates_user = new Player($line['id']);
if ($updates_user->rmdays > 0) {
$multiplier = 2;
} else {
$multiplier = 1;
}
if ($line['hospital'] > 0 && time() >= $line['hospital']) {
$hosp_class = new Player($line['id']);
$result2 = mysql_query("UPDATE `mh_users` SET `hospital` = '0', `hp` = '" . $hosp_class->puremaxhp . "' WHERE `id` = '" . $line['id'] . "'") or die(mysql_error());
}
if ($line['jail'] > 0 && time() >= $line['jail']) {
$result3 = mysql_query("UPDATE `mh_users` SET `jail` = '0' WHERE `id` = '" . $line['id'] . "'") or die(mysql_error());
}
$newawake = $updates_user->directawake + round((($updates_user->directmaxawake * 0.01) * $multiplier));
$newawake = ($newawake > $updates_user->directmaxawake) ? $updates_user->directmaxawake : $newawake;
$newhp = $updates_user->purehp + round((($updates_user->puremaxhp * 0.125) * $multiplier));
$newhp = ($newhp > $updates_user->puremaxhp) ? $updates_user->puremaxhp : $newhp;
$newenergy = $updates_user->energy + round((($updates_user->maxenergy * 0.10) * $multiplier));
$newenergy = ($newenergy > $updates_user->maxenergy) ? $updates_user->maxenergy : $newenergy;
$newnerve = $updates_user->nerve + round((($updates_user->maxnerve * 0.10) * $multiplier));
$newnerve = ($newnerve > $updates_user->maxnerve) ? $updates_user->maxnerve : $newnerve;
$result2 = mysql_query("UPDATE `mh_users` SET `awake` = '" . $newawake . "', `energy` = '" . $newenergy . "', `nerve` = '" . $newnerve . "', `hp` = '" . $newhp . "' WHERE `id` = '" . $line['id'] . "'") or die(mysql_error());
}
?>
error_reporting(E_ALL);
$config = array();
/*
* Database
*/
$config['hostname'] = "localhost";
$config['username'] = "root";
$config['password'] = "*";
$config['database'] = "database";
$connect = mysql_connect($config['hostname'], $config['username'], $config['password']) or die(mysql_error());
$select = mysql_select_db($config['database']) or die(mysql_error());
include "library/player.class.php";
$result = mysql_query("SELECT * FROM `mh_users`") or die(mysql_error());
while ($line = mysql_fetch_assoc($result)) {
$updates_user = new Player($line['id']);
if ($updates_user->rmdays > 0) {
$multiplier = 2;
} else {
$multiplier = 1;
}
if ($line['hospital'] > 0 && time() >= $line['hospital']) {
$hosp_class = new Player($line['id']);
$result2 = mysql_query("UPDATE `mh_users` SET `hospital` = '0', `hp` = '" . $hosp_class->puremaxhp . "' WHERE `id` = '" . $line['id'] . "'") or die(mysql_error());
}
if ($line['jail'] > 0 && time() >= $line['jail']) {
$result3 = mysql_query("UPDATE `mh_users` SET `jail` = '0' WHERE `id` = '" . $line['id'] . "'") or die(mysql_error());
}
$newawake = $updates_user->directawake + round((($updates_user->directmaxawake * 0.01) * $multiplier));
$newawake = ($newawake > $updates_user->directmaxawake) ? $updates_user->directmaxawake : $newawake;
$newhp = $updates_user->purehp + round((($updates_user->puremaxhp * 0.125) * $multiplier));
$newhp = ($newhp > $updates_user->puremaxhp) ? $updates_user->puremaxhp : $newhp;
$newenergy = $updates_user->energy + round((($updates_user->maxenergy * 0.10) * $multiplier));
$newenergy = ($newenergy > $updates_user->maxenergy) ? $updates_user->maxenergy : $newenergy;
$newnerve = $updates_user->nerve + round((($updates_user->maxnerve * 0.10) * $multiplier));
$newnerve = ($newnerve > $updates_user->maxnerve) ? $updates_user->maxnerve : $newnerve;
$result2 = mysql_query("UPDATE `mh_users` SET `awake` = '" . $newawake . "', `energy` = '" . $newenergy . "', `nerve` = '" . $newnerve . "', `hp` = '" . $newhp . "' WHERE `id` = '" . $line['id'] . "'") or die(mysql_error());
}
?>
Alleen het werkt niet, ik heb de path nagegeken en alles staat goed, overigens als ik hem open in localhost/updates.php dan krijg ik alleen een witte pagina - alleen hij update de nieuwe queries niet. Ik krijg ook geen errors te zien.
Maar zodra ik hem include in de header van het spel dan werkt ie wel gewoon...
Is er iets dat ik fout doe?
Met vriendelijke groet,
Robert-Jan
Gewijzigd op 17/10/2013 21:37:09 door RobertJan Doeternietoe
Dus probeer even een echo 'test'; als het kan en laat hem naar je email verzenden.
RobertJan Doeternietoe op 17/10/2013 21:35:54:
* * * * * /var/www/website/public_html/dev/updates.php
Je volledige path naar php zelf ontbreekt.
* * * * * /path/naar/php/php -f /var/www/website/public_html/dev/updates.php
Gewijzigd op 17/10/2013 22:16:24 door - SanThe -
RobertJan Doeternietoe op 17/10/2013 21:35:54:
Goedenavond,
Ik probeer een cron job te laten draaien, iedere minuut tot dat ik hem werkend krijg.
Alleen het werkt niet, ik heb de path nagegeken en alles staat goed, overigens als ik hem open in localhost/updates.php dan krijg ik alleen een witte pagina - alleen hij update de nieuwe queries niet. Ik krijg ook geen errors te zien.
Ik probeer een cron job te laten draaien, iedere minuut tot dat ik hem werkend krijg.
Alleen het werkt niet, ik heb de path nagegeken en alles staat goed, overigens als ik hem open in localhost/updates.php dan krijg ik alleen een witte pagina - alleen hij update de nieuwe queries niet. Ik krijg ook geen errors te zien.
Op een localhost kan je geen CronJobs draaien.
Donny Wie weet op 17/10/2013 22:18:19:
Op een localhost kan je geen CronJobs draaien.
Waarom niet?
Als je een Linux OS hebt kan dat gewoon.
En in Windows zit de Taakplanner.
Je zult je volledige path moeten gebruiken. Die je uit $_SERVER['DOCUMENT_ROOT'] haalt. Gebruik die variabele overigens niet, want de aanvraag gaat dan niet via Apache en dan is de root ook heel anders. (zo zat het toch?)
Er zijn nog andere mogelijkheden, maar die zijn te Googlen.
- SanThe - op 17/10/2013 22:09:53:
Je volledige path naar php zelf ontbreekt.
* * * * * /path/naar/php/php -f /var/www/website/public_html/dev/updates.php
RobertJan Doeternietoe op 17/10/2013 21:35:54:
* * * * * /var/www/website/public_html/dev/updates.php
Je volledige path naar php zelf ontbreekt.
* * * * * /path/naar/php/php -f /var/www/website/public_html/dev/updates.php
Dankje! Dat was het dus.
Hardstikke bedankt! :)