[ styl3r @ 16.01.2014. 20:28 ] @
I evo opet ja imam problem ali sada sa cron jobom postavio sam skriptu fino je postavljen cron job tamo mi pise ali nece da pokrece fajl... Vec sam imao slican problem jer sam u kodu imao sesije ali sada nemam sesiju samo include... Nisam siguran da li je do toga ali dodao sam i ispred include $_SERVER['DOCUMENT_ROOT']; i opet nece da pokrece evo kod:

Code:

<?php

set_time_limit(1000000000000000);

include $_SERVER['DOCUMENT_ROOT'].'/putanja_do_fajla';

mysql_connect('localhost', 'root', '') or die(mysql_error());
mysql_select_db("baza") or die(mysql_error());

$cssservers = mysql_query("SELECT * FROM igrice WHERE game_id = '2'") or die(mysql_error());
while($servers[] = mysql_fetch_assoc($cssservers)){
    
}

$array = $servers;

if(is_array($array)){
    foreach ($array as $serversall) {
        $serverexplodee = explode(":", $serversall['ip']);

        $serverIP = $serverexplodee[0];
        $serverPort = $serverexplodee[1];

            $Timer = MicroTime( true );

            $Query = new SourceQuery( );
            
            $Info    = Array( );
            $Rules   = Array( );
            $Players = Array( );
            
            try
            {
                $Query->Connect( $serverIP, $serverPort, 1, SourceQuery :: SOURCE );
                
                $Info    = $Query->GetInfo( );
                $Players = $Query->GetPlayers( );
                $Rules   = $Query->GetRules( );
            }
            catch( Exception $e )
            {

                // - ako je offline uzimace podatke koji su zabiljezeni kada je bio online ( i ako je off vise od 15 dana ukinuce se  to trebam dodati ali prvo ovo uraditi)

                $ipserveracj = $serversall['ip'];
                $servernamecj = $serversall['imeservera'];
                $servermodcj = $serversall['servermod'];
                $playerscj = "Offline";
                $maxplayerscj = "";
                $botscj = "0";
                $mapcj = $serversall['servermap'];
                $infoplayerscj = "";
                $arraycj = $infoplayerscj;
            }

            $Timer = Number_Format( MicroTime( true ) - $Timer, 4, '.', '' );

            if($Info["ModDir"] != 'cstrike'){

                // - Ako bude nesto pa ucita neki drugi server koji nije cs:s

                $ipserveracj = $serversall['ip'];
                $servernamecj = $serversall['imeservera'];
                $servermodcj = $serversall['servermod'];
                $playerscj = "0";
                $maxplayerscj = $serversall['maxplayers'];
                $botscj = "0";
                $mapcj = $serversall['servermap'];
                $infoplayerscj = "";
                $arraycj = $infoplayerscj;

            }else{

                // - ako je sve u redu onda uzme podatke sa servera

                $ipserveracj = $serversall['ip'];
                $servernamecj = mysql_real_escape_string(htmlentities($Info["HostName"]));
                $servermodcj = $serversall['servermod'];
                $playerscj = $Info["Players"];
                $maxplayerscj = $Info["MaxPlayers"];
                $botscj = $Info["Bots"];
                $mapcj = $Info["Map"];
                $infoplayerscj = mysql_real_escape_string(json_encode($Players));
                $arraycj = $infoplayerscj;

            }


        /*$ubacipodatkenove = mysql_query("UPDATE igrice SET ip='$ipserveracj', imeservera='$servernamecj', servermod='$servermodcj', igraci='$playerscj', maxplayers='$maxplayerscj', bots='$botscj', servermap='$mapcj', infoplayers='$arraycj' WHERE game_id='2' AND ip='$ipserveracj'") or die(mysql_error());

        foreach ($Players as $Player) {

            $igracevoime = mysql_real_escape_string($Player['Name']);

            $lastseen = date("D.m.Y G:i");
            $firstseen = date("D.m.Y G:i");

            $vidijelzabiljezen = mysql_query("SELECT * FROM allplayers WHERE playername='$igracevoime' AND ipserverwhereplayerplay='$ipserveracj' AND game_id = '$servers[game_id]'") or die(mysql_error());
            if(mysql_num_rows($vidijelzabiljezen) == 0){
                $ubaciga = mysql_query("INSERT INTO allplayers (id, playername, ipserverwhereplayerplay, firstseen, lastseen, game_id, profileid) VALUES ('', '$igracevoime', '$ipserveracj', '', '$lastseen', '2', '0')") or die(mysql_error());
            }else{
                $updatega = mysql_query("UPDATE allplayers SET firstseen = '$firstseen' WHERE firstseen = ''") or die(mysql_error());
                $updategaa = mysql_query("UPDATE allplayers SET lastseen = '$lastseen'") or die(mysql_error());
            }
        }*/
    }    
}



?>
<!DOCTYPE html>
<html>
    <head>
        <meta charset='utf-8'>
    </head>
    <body>

    </body>
</html>


Hvala svima koji pomognu...
[ Nemanja Avramović @ 17.01.2014. 08:38 ] @
Prvo, da li se cron uopšte izvršava? Da li ti je podešeno da ti stiže e-mail kada se cron izvrši i ako da - da li ti stiže e-mail poruka?

Drugo, postavi ovde koju komandu tačno izvršava cron? Da li cron zove wget koji pravi http request ka skripti ili cron direktno izvršava PHP? Ako je ovo drugo slučaj, onda $_SERVER ne postoji, pošto se (web) server i ne koristi.

Treće, da li skripta radi bez crona? Odnosno ako cron pozivaš preko wget-a onda vidi da li ti skripta radi kada je otvoriš u browseru. Ako cron poziva direktno PHP, onda probaj da pokreneš skriptu iz konzole pa vidi da li radi.
[ styl3r @ 17.01.2014. 08:57 ] @
Radi cron na ostalim fajlovima ali na ovome nece, na mail mi stize poruka kada se izvrsi cron kod ostalih podesenih fajlova samo kod ovog nece..
Komanda: goran_no-ip_org/includes/gamecron/fajl.php, ovo da li je preko wget ili direktno to ne znam pitacu podrsku pa cu javiti.. Bez crona skripta radi
[ Nemanja Avramović @ 17.01.2014. 09:14 ] @
Ako ti ne stiže mejl a skripta radi iz browsera (a ako koristiš ovo no-ip.org onda verovatno ide preko wget i $_SERVER niz postoji), onda problem nije do PHP-a već do podešavanja cron joba, tj. komande koja pokreće skriptu. Rešenje tog problema prevazilazi okvire ovog podforuma, pa je možda bolje da pitaš u nekoj drugoj kategoriji (Linux ili tako nešto) a mogu i da ti prebacim temu tamo... Mada, ajde za početak probaj da saznaš tačnu komandu koju pokreće cron, pa da vidimo da li je problem tu. Pošto sumnjam da čitava komanda glasi "goran_no-ip_org/includes/gamecron/fajl.php"

p.s. Bolje je koristiti set_time_limit(0); - ovo ukida time limit, pod uslovom da funkcija nije zabranjena
[ styl3r @ 17.01.2014. 09:59 ] @
Pa to je ta komanda ono meni kaze dole ispod tog polja example: /folder/task.php i ja upisem ovu komandu i gore mi kaze da je cron dodan a tu su mi komandu dali ovi sto tu rade na hostu..
[ styl3r @ 17.01.2014. 10:38 ] @
Izvinjavam se za DP ali mozda ovo moze pomoci kod onih cronova sto rade sto se izvrasavaju, oni se pokrenu na svakih 5 minuta i izvrse skriptu ali ja na mail ne dobijem poruku...
[ Nemanja Avramović @ 17.01.2014. 11:10 ] @
Može pojedinačni cron task da se podesi da ne šalje mejl ako se na kraj komande doda ">/dev/null 2>&1" (bez navodnika).

Elem, ajde da utvrdimo definitivno da li je wget sa http requestom ili command line (cli). Možeš li da napraviš odvojen cron job (koji će ti poslati mejl) a koji će da zove novu skriptu koja sadrži samo ovo:

Code:
<?php echo php_sapi_name();


Kad se taj cron izvrši trebalo bi da ti na mejl stigne kako se izvršava PHP (cli, apache, ...). Za više informacija pogledaj: http://php.net/php_sapi_name

Javi ovde šta ti stigne pa onda možeš i da obrišeš taj novi cron job.
[ styl3r @ 17.01.2014. 11:21 ] @
Znam to ali kada ne mogu provjeriti, ne radi njima mail ja fino napisem tamo kod da dodje poruka kada ono nece da dodje poruka na mail... A 100% radi kod zato sto sam testirao bio drugom hostu izgleda ili nisu uradili mail ili su banovani moram ih pitati..
[ styl3r @ 18.01.2014. 08:25 ] @
Citat:
Nemanja Avramović:
Prvo, da li se cron uopšte izvršava? Da li ti je podešeno da ti stiže e-mail kada se cron izvrši i ako da - da li ti stiže e-mail poruka?

Drugo, postavi ovde koju komandu tačno izvršava cron? Da li cron zove wget koji pravi http request ka skripti ili cron direktno izvršava PHP? Ako je ovo drugo slučaj, onda $_SERVER ne postoji, pošto se (web) server i ne koristi.

Treće, da li skripta radi bez crona? Odnosno ako cron pozivaš preko wget-a onda vidi da li ti skripta radi kada je otvoriš u browseru. Ako cron poziva direktno PHP, onda probaj da pokreneš skriptu iz konzole pa vidi da li radi.


Pitao sam administraciju za ovo i oni kazu da cron job direktno pokrece fajl.. I ja sam sada obrisao $_SERVER['DOCUMENT_ROOT']; I opet nece...
[ Nemanja Avramović @ 18.01.2014. 10:25 ] @
Uključi error reporting (objašnjeno u nekoj od prethodnih poruka), uključi error logging i kad se cron izvrši pogledaj da li prijavljuje neku grešku u error_log fajlu.
[ styl3r @ 05.04.2014. 10:27 ] @
Evo ove errore mi dadne:

Code:
[Sat Apr 05 06:37:18 2014] [error] [client 79.143.169.166] PHP Warning:  date(): Invalid date.timezone value 'Beograd/Europe', we selected the timezone 'UTC' for now. in /etc/zpanel/panel/dryden/ui/tpl/lastlogon.class.php on line 18, referer: http://188.226.216.248/?module=cron&action=DeleteCron
[Sat Apr 05 06:37:18 2014] [error] [client 79.143.169.166] PHP Warning:  date(): Invalid date.timezone value 'Beograd/Europe', we selected the timezone 'UTC' for now. in /etc/zpanel/panel/dryden/ctrl/users.class.php on line 137, referer: http://188.226.216.248/?module=cron&action=DeleteCron
[Sat Apr 05 06:37:18 2014] [error] [client 79.143.169.166] PHP Warning:  date(): Invalid date.timezone value 'Beograd/Europe', we selected the timezone 'UTC' for now. in /etc/zpanel/panel/dryden/ctrl/users.class.php on line 137, referer: http://188.226.216.248/?module=cron&action=DeleteCron
[Sat Apr 05 06:37:18 2014] [error] [client 79.143.169.166] PHP Warning:  date(): Invalid date.timezone value 'Beograd/Europe', we selected the timezone 'UTC' for now. in /etc/zpanel/panel/dryden/ctrl/users.class.php on line 144, referer: http://188.226.216.248/?module=cron&action=DeleteCron
[Sat Apr 05 06:37:18 2014] [error] [client 79.143.169.166] PHP Warning:  date(): Invalid date.timezone value 'Beograd/Europe', we selected the timezone 'UTC' for now. in /etc/zpanel/panel/dryden/ctrl/users.class.php on line 144, referer: http://188.226.216.248/?module=cron&action=DeleteCron
[Sat Apr 05 06:37:18 2014] [error] [client 79.143.169.166] PHP Warning:  date(): Invalid date.timezone value 'Beograd/Europe', we selected the timezone 'UTC' for now. in /etc/zpanel/panel/dryden/ui/tpl/year.class.php on line 16, referer: http://188.226.216.248/?module=cron&action=DeleteCron
[ styl3r @ 05.04.2014. 12:07 ] @
Izvinjavam se za DP, rijesio sam ono za time zonu ali sada ove errore pokaze:
http://prntscr.com/375zkw