PHP Cronjob Werkt Niet

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

RobertJan Doeternietoe

RobertJan Doeternietoe

17/10/2013 21:35:54
Quote Anchor link
Goedenavond,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<?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());
}

?>


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
 
PHP hulp

PHP hulp

06/11/2024 02:56:15
 
Frank Nietbelangrijk

Frank Nietbelangrijk

17/10/2013 22:01:47
Quote Anchor link
Meestal kun je de output van de cron naar je emailadres laten verzenden. Dat gebeurt dan alleen als er output is.

Dus probeer even een echo 'test'; als het kan en laat hem naar je email verzenden.
 
- SanThe -

- SanThe -

17/10/2013 22:09:53
Quote Anchor link
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 -
 
Donny Wie weet

Donny Wie weet

17/10/2013 22:18:19
Quote Anchor link
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.



Op een localhost kan je geen CronJobs draaien.
 
- SanThe -

- SanThe -

17/10/2013 22:29:49
Quote Anchor link
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.
 
- Ariën  -
Beheerder

- Ariën -

17/10/2013 22:48:12
Quote Anchor link
Als je de cron via een path benaderd, zoals in jouw voorbeeld, dan werken relatieve includes niet.
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.
 
RobertJan Doeternietoe

RobertJan Doeternietoe

17/10/2013 22:52:27
Quote Anchor link
- SanThe - op 17/10/2013 22:09:53:
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! :)
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.