Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> niezrozumiałe zachowanie php, (poprostu niewiem jak to nazwać !??)
rbart
post
Post #1





Grupa: Zarejestrowani
Postów: 32
Pomógł: 0
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


Pisząc skrypt natknołem sie na pewien błąd o którym niemam pojęcia co go wywołuje (sprawdzałem już chyba wszystko).

Zamieszczam więc bardzo okrojony kod przy którym błąd się pojawia:
  1. <?php
  2. function create_img($kod){
  3. $img = imagecreatetruecolor(200, 50);
  4. $arr= str_split((string)$kod);
  5.  
  6. for($i=0; $i<5; $i++){
  7. imagefttext($img, '30', '0', (5+$i*26), '40', hexdec('FFFFFF'), 'Arial', $arr[$i]);
  8. }
  9.  
  10. header('Content-type: image/png');
  11. echo imagepng($img);
  12.  
  13.  
  14. echo '
  15.  
  16. kod = '.$kod.'
  17. arr = '.$arr['0'].$arr['1'].$arr['2'].$arr['3'].$arr['4'];
  18. }
  19. create_img(rand(10000,99999));
  20. ?>
Kod pisałem pod php5 ale w php4 też powinien działać.
Skrypt coprawda generuje obrazek ale nie mam pojęcia skąd bierze te liczby.

Wystarczy zajrzeć do źródła(na samym dole) aby zobaczyć co powinien wyświetlić.
Wiem że to ostatnie echo to nie najlepszy pomysł na wyświetlanie zmiennych ale jakoś musiałem to zrobić a ten był najprostszy.

Edit: zpomniałem skrypt wymaga biblioteki gd ja mam w wersji 2


OFFTOPIC:
pisząc pierwszą linijke zakonczylem ją średnikem :)
oczywiśćie poprawiłem

Ten post edytował rbart 2.06.2006, 15:43:04
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Kuziu
post
Post #2





Grupa: Zarejestrowani
Postów: 743
Pomógł: 0
Dołączył: 11.11.2003
Skąd: Toruń

Ostrzeżenie: (0%)
-----


To chyba jednak jakiś BUG do czasu jak sie nie uzyje RAND wszystko działa.


Wstawilem nawet dane do pliku zeby mieć pewność że nie jest ponownie wywoływana funkcja rand() ale jak widać nawet jak czyta z pliku to czyta głupoty.

  1. <?php
  2. file_put_contents('data.txt', rand(1,9));
  3. $img = imagecreatetruecolor(200, 50);
  4.  
  5. $mem = file_get_contents('data.txt');
  6. imagefttext($img, '30', '0', (5+$i*26), '40', hexdec('FFFFFF'), 'Arial', $mem);
  7.  
  8. header('Content-type: image/png');
  9. echo imagepng($img);
  10.  
  11. echo('
  12. MEM = ' . $mem);
  13. ?>


Ten post edytował Kuziu 2.06.2006, 17:08:02
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 16.10.2025 - 19:37