Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt (statystyka w gifie)
Forum PHP.pl > Forum > Gotowe rozwiązania
m4tt_pl
Witam, a wiec szukam skryptu/manuala jak zrobic skrypt ktory laczylby sie przez socketa z np moim ip na porcie 80 i zalozmy sprawdzalby czy mam wlaczonego apacha. Jezeli nie pisalby na obrazku jakims malutkim napis 'Offline', lub jezeli mam wlaczonego 'Online'. Wiec szukalem po sieci (w google) no i na polskich stronach jest tylko calkiem ubogi artykul YGREGA o obrabianiu obrazkow w php, na zaqranicznych nic konkretnego nie moglem znalezc a z serwisu php.net ciezko mi jest cos zrozumiec. Wiec pomocy, dzieki i pozdrawiam.
crash
A mam chwilke to Ci zapodam w miarę gotowca...

  1. <?php
  2.  
  3. $serwer = '10.0.0.3';
  4. $port  = 80;
  5.  
  6. header('Content-type: image/gif');
  7.  
  8. $im = imagecreate(60, 13);
  9.  
  10. $status = 'offline';
  11.  
  12. if($f = @fsockopen($serwer, $port, &$errno, &$errstr, 5))
  13. {
  14.  $status = 'online';
  15.  fclose($f);
  16. }
  17.  
  18. $tlo = imagecolorallocate($im, 255, 255, 255);
  19.  
  20. $zielony = imagecolorallocate($im, 0, 200, 0);
  21. $czerwony = imagecolorallocate($im, 200, 0, 0);
  22.  
  23. imagestring($im, 3, 5, 0, $status, $status == 'online' ? $zielony : $czerwony);
  24.  
  25. imagegif($im);
  26. imagedestroy($im);
  27.  
  28. ?>
m4tt_pl
Niestety, nie dziala. Zapisalem ten skrypt w pliku obrazek.php, zmienilem tam ip na moje, zrobilem plik index.html wpisalem do niego
Kod
<img src=obrazek.php>
lecz niestety obrazek sie nie pojawia ;/ zanim spytasz - tak mam wlaczonego sockets extension.

A i jeszcze jakbysm ogl to dodaj opcje zeby mozna bylo wlasne tlo jakies w gifie czy jpg podlozyc zamiast automatycznego kolorowania przez php.
crash
No to próbuj czemu nie działa. Zahashuj header i imagegif i zobacz czy rzuca jakieś błędy.
m4tt_pl
Zahashuj ? ^^ ee nie wiem co to znaczy tak naprawde hehe biggrin.gif
crash
Hash = #. Zahaszuj = zakomentuj = wstaw # lub inny znak komentarza przed wyrażeniem. Ewentualnie możesz sobie kupić kostkę hashu i zapomnieć o programowaniu na pare godzin biggrin.gif
mop506
# - hash, postawiony na poczatku lini oznacza, ze dany wiersz jest komentarzem i nie jest brany pod uwage podczas wykonywania skryptu.

inne metody tworzenia komentarzy to:
// - od tego znaku do konca linji php traktuje to jako komentarz
/* include('co_tam') ;
dlaczego to nie dziala?? */ - komentarze na wiele linji

czyli zahaszowac to postawic # na poczatku danego wiersza winksmiley.jpg
m4tt_pl
spoko wiem ze # to komentarz tylko ze zapomnialem ze # to jest hash.. skojarzylo mi sie cos z hashowaniem plikow tongue.gif ok momencik

EDIT:
Cytat
Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\program files\easyphp1-7\www\obrazek.php on line 12

Warning: Call-time pass-by-reference has been deprecated - argument passed by value; If you would like to pass it by reference, modify the declaration of fsockopen(). If you would like to enable call-time pass-by-reference, you can set allow_call_time_pass_reference to true in your INI file. However, future versions may not support this any longer. in c:\program files\easyphp1-7\www\obrazek.php on line 12

Fatal error: Call to undefined function: imagecreate() in c:\program files\easyphp1-7\www\obrazek.php on line 8
crash
No i widać chyba co jest nie tak. Albo ustaw w php.ini co trzeba, albo erro_reporting(E_NONE); no i chyba zapomniałeś dodać rozszerzenie GD do php tongue.gif Aby uniknąć kolejnych pytań: extension=php_gd.dll...
m4tt_pl
ok nie mam php_gd.dll ale mam php_gd2.dll <-- wlaczylem, zrobilem w php.ini allow_call_time_pass_reference = ok zresetowalem server i nic .. obrazek sie nie pokazuje :| zhashowalem i zaden error sie nie pokazuje. Co robic?
crash
Żaden? Sprawdziłeś z error_reporing(E_ALL);?
m4tt_pl
Tak, z error_reporting = E_ALL.
Jakies pomysly? Moze cos jest zle napisane w skrypcie ? :|
crash
Odpowiedź na PM m4tt_pl: Niezabardzo już wiem jak Ci pomóc, u mnie ten skrypt działa bez problemu. Skoro u Ciebie nie zwraca nawet żadnych błędów to już nie wiem. Próbuj debugować jakoś (dodaj pare if'ow w miejsa tworzenia np. grafiki czy kolorów)...
m4tt_pl
No wiec rozwiazalem problem - zamiast gifa zrobilem wszystko jak png (header png i imagepng) i zadzialalo dziwne czemu gif nie chcial.
crash
Pewnie miałeś wersje GD nie obsługującą GIFy...
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-2024 Invision Power Services, Inc.