Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][CRON] Sprawdzanie pliku php
Forum PHP.pl > Forum > Przedszkole
mit2
Witam mam takie pytanie ponieważ chciałbym za pomocą crona zrobic sprawdzenie pliku php
  1. $sprawdz = "SELECT * FROM serwer";
  2. $sprawdz = mysql_query("$sprawdz");
  3. $sprawdz = mysql_fetch_array($sprawdz);
  4. $teraz = time();
  5. $end = $sprawdz[datastop];
  6. $stop = strtotime($end);
  7. $delete = $sprawdz[datadelete];
  8. $usun = strtotime($delete);
  9. if($stop < $teraz)
  10. {
  11. $zmien = "UPDATE serwer SET tryb='4' WHERE id='$sprawdz[id]'";
  12. $zmien = mysql_query($zmien);
  13. $panel = "SELECT * FROM serwery WHERE id='$sprawdz[lok]'";
  14. $panel = mysql_query("$panel");
  15. $panel = mysql_fetch_array($panel);
  16. $is = "SELECT * FROM gry WHERE id='$sprawdz[gra]'";
  17. $is = mysql_query("$is");
  18. $is = mysql_fetch_array($is);
  19. $connection = ssh2_connect(''.$panel["ip"].'', $panel["port"]);
  20. ssh2_auth_password($connection, ''.$panel["login"].'', ''.$panel["haslo"].'');
  21. $dodaj = ssh2_exec($connection, 'cd /home/'.$sprawdz["katalog"].'/hlds_l && killall hlds_run && '.$is[katpass].'pass.sh '.$sprawdz["katalog"].' ruchradzionkow');
  22. }

chce zrobic sprawdzenie wszystkich kolumn w zapytaniu i gdy w jakimś zapytaniu wykryje że data się skonczyła to zmienia w danej kolumnie tryb na 4 i wyłącza serwer. chodzi mi o to czy ten skrypt jest dobrze skonstrułowany czy czy gdy wykryje ze w jakims jest juz zakonczone to nie zmieni mi w wszystkich kolumnach na 4

wie ktoś czy mam to dobrze
ActivePlayer
a nie mozesz go poprostu uruchomic i sprawdzic?smile.gif
mit2
podłączyłem pod cron i nie działa ma ktoś jakiś pomysł jak to zrobic
peter13135
nie wiem co tu Ci nie działa, ale błędów widzę sporo:

poco tutaj cydzysłowia ?
  1. mysql_query("$sprawdz");


apostrofy
  1. $end = $sprawdz[datastop];


to samo co wyżej
  1. $delete = $sprawdz[datadelete];


Reszty mi się nie chce po kolei sprawdzać.
Uważam że nie ma potrzeby zapytania przypisywać do zmiennej a dopiero potem wrzucać do mysql_query. nie używaj bez potrzeby cudzysłowów, bo interpreter musi to interpretować(?) łącz stringi z ze zmniennymi. Czyli zamiast
  1. echo "mam $wiek lat"
; pisz
  1. echo 'mam ' . $wiek , ' lat';
mit2
pozmieniałem i nic dalej nie działa
CuteOne
odpal normalnie skrypt i zobacz jakie błędy zostaną wyświetlone... przez normalnie mam na myśli z przeglądarki

ps. gdzie masz łączenie z bazą MySQL?
mit2
wcześniej nie nie dodałem tutaj do tego. baze mam na localu. błędów żadnych nie pokazuje nawet jak dam mysql_error. skrypt jest cały czas w public-html. już sprawdzałem go wcześniej i nic
Fifi209
Kolega zapytał czy w ogóle łączysz się z bazą?
Nie znamy struktury bazy.

Włącz pokazywanie błędów error_reporting
mit2
łączy się na 100% bo jak dałem inne dane do bazy to pokazywało że złe połączenie
Fifi209
Jak mamy się dogadać skoro wyrywkowo czytasz Nasze posty? Umieściłeś w skrypcie (na początku) to o co prosiłem w poprzednim poście? Nie dałeś odpowiedzi, więc zakładam że nie.
mit2
czytałem twój post a jak to mam włączyc mam takie łączenie z bazą
  1. $sql=mysql_connect('localhost', 'test', 'test');
Fifi209
Na początku skryptu dodaj:


Struktury bazy nadal nie podałeś, co świadczy jednak o tym że czytasz wyrywkowo posty.
mit2
pusta strona.
tak wygląda teraz plik
  1. <?php
  2. //by mit2
  3. $sql=mysql_connect('localhost', 'test', 'test');
  4. $sprawdz = "SELECT * FROM serwer";
  5. $sprawdz = mysql_query($sprawdz);
  6. $sprawdz = mysql_fetch_array($sprawdz);
  7. $teraz = time();
  8. $end = $sprawdz['datastop'];
  9. $stop = strtotime($end);
  10. $delete = $sprawdz['datadelete'];
  11. $usun = strtotime($delete);
  12. if($stop < $teraz)
  13. {
  14. $zmien = "UPDATE serwer SET tryb='4' WHERE id='$sprawdz[id]'";
  15. $zmien = mysql_query("$zmien");
  16. $panel = "SELECT * FROM serwery WHERE id='$sprawdz[lok]'";
  17. echo $panel.'<br>';
  18. $panel = mysql_query("$panel");
  19. $panel = mysql_fetch_array($panel);
  20. $is = "SELECT * FROM gry WHERE id='$sprawdz[gra]'";
  21. $is = mysql_query("$is");
  22. $is = mysql_fetch_array($is);
  23. $connection = ssh2_connect(''.$panel["ip"].'', $panel["port"]);
  24. ssh2_auth_password($connection, ''.$panel["login"].'', ''.$panel["haslo"].'');
  25. $dodaj = ssh2_exec($connection, 'cd /home/'.$sprawdz["katalog"].'/hlds_l && killall hlds_run && '.$is[katpass].'pass.sh '.$sprawdz["katalog"].' ruchradzionkow');
  26. }
  27. ?>


poprawiłem ten tekst i dalej nic
Peter12
  1. $sql=mysql_connect('localhost', 'test', 'test');

Zmień na:
  1. $sql=mysql_connect('localhost', 'test', 'test');
  2. mysql_select_db('test', $sql);

CuteOne
mit2: oki widocznie w skrypcie wszystko gra. Czas na sprawdzenie czy dobrze skonfigurowałeś crona. Przerzuć ten skrypt do innego folderu a na jego miejsce stwórz nowy [z tą samą nazwą] a w nim
  1. <?php
  2.  
  3. $handler = fopen('test.txt', 'w+');
  4. fclose($handler);
  5.  
  6. ?>


Jeżeli po odpaleniu crona nie zostanie stworzony żaden plik musisz poczytać o konfiguracji crontaba.

ps. pamiętaj aby folderowi w którym utworzysz nowy plik nadać uprawnienia do zapisu [777]
mit2
już wiem czemu nie działa
  1. if($stop < $teraz)

w $stop jest takie pokazywanie daty 2012-04-24 15:56:31 a w $teraz jest takie 2012-04-24 jak moge zrobic żeby pokazywało w $teraz taki rodzaj daty 2012-04-24 15:56:31
Peter12
Cytat(mit2 @ 28.05.2011, 21:51:05 ) *
już wiem czemu nie działa
  1. if($stop < $teraz)

w $stop jest takie pokazywanie daty 2012-04-24 15:56:31 a w $teraz jest takie 2012-04-24 jak moge zrobic żeby pokazywało w $teraz taki rodzaj daty 2012-04-24 15:56:31

zrób tak:
  1. $teraz = date("Y-m-d G:i:s");
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.