Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> niezrozumiałe zachowanie php, (poprostu niewiem jak to nazwać !??)
rbart
post 2.06.2006, 15:36:26
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
em1X
post 2.06.2006, 16:01:44
Post #2





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


mi to wygląda na jakiś bug smile.gif naprawde niezły lol tongue.gif


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
rbart
post 2.06.2006, 16:11:42
Post #3





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

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


Też tak pomyślałem bo php mi jeszcze nigdy takich cudów nie robiło
Ale szczerze mówiąc bardziej niż na odkryciu bug'u zależy mi aby to działało i
wole aby to był mój błąd ale żeby działało :(
Go to the top of the page
+Quote Post
em1X
post 2.06.2006, 16:15:46
Post #4





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


A czemu upierasz sie na ImageFTtext ? Zagladalem wlasnie do bugs.php.net i juz byl jakis problem z ta funkcja.. mysle, ze warto byloby to zglosic..


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
rbart
post 2.06.2006, 16:29:17
Post #5





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

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


Upierać to ja się nie upieram ale uznałem to za najprostsze.
sugerujesz może coś w zamian ?

Co do zgłoszenia tego poczekam jescze trochę jeżeli do północy nikt nie znajdzie luki u mnie to zgłosze problem.

moja wersja php to 5.0.2

Funkcja faktycznie miała sporo błędów,


OFFTOPIC
ostatnio aż mie korci aby nauczyć się C i zacząć pisać własne biblioteki,
Go to the top of the page
+Quote Post
Kuziu
post 2.06.2006, 17:07:16
Post #6





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


--------------------
Słońce zachodzi ... kolejna noc nadchodzi ...
Go to the top of the page
+Quote Post
em1X
post 2.06.2006, 17:08:42
Post #7





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


ja uzywałem ImageTTFText" title="Zobacz w manualu php" target="_manual snitch.gif


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post
rbart
post 3.06.2006, 14:28:55
Post #8





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

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


ImageTTFText ma ten sam problem który opisałem a błąd już zgłosiłem wspominając o obu funkcjach
Go to the top of the page
+Quote Post
rbart
post 6.06.2006, 18:17:16
Post #9





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

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


Błąd coprawda zgłosiłem ale otrzmałem odpowiedź że wina leży po mojej stronie a raport ma status 'Bogus' cokolwiek to znaczy.

Dołączam równierz korespondencję z grupy pl.comp.lang.php link?

Mam jeszcze małą prośbę czy mogłby ktoś wkleić kody swoich skyptów(o podonym pzeznaczeniu) tą część kóra generuje obrazek(może być nawet okrjona).
Go to the top of the page
+Quote Post
bendi
post 7.06.2006, 09:39:48
Post #10





Grupa: Zarejestrowani
Postów: 401
Pomógł: 5
Dołączył: 14.09.2003
Skąd: Wrocław

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


Szczerze mówiąc niebardzo wiem o co chodzi, właśnie wkleiłem sobie skrypt podany przez rabata w pierwszym poście i wszystko ślicznie śmiga - obrazek się generuje, rand zwraca liczbę z podanego zakresu która następnie jest rozdzielana na czynniki pierwsze (tylko chyba sam autor wie po co) i dodawana do obrazka. Jak tam zaszyję liczbę na sztywno to też działa.

KUbuntu
Apache2
php 5.1.2

Jedna uwaga co do kodu:
Zamiast
  1. <?php 
  2. $arr= str_split((string)$kod);
  3.  
  4. echo $arr[1];
  5. ?>


Wystarczy:
  1. <?php 
  2. $arr= (string)$kod;
  3.  
  4. echo $arr[1];
  5. ?>


Cytat(rbart @ 2.06.2006, 17:29 ) *
ostatnio aż mie korci aby nauczyć się C i zacząć pisać własne biblioteki,

Jak masz się ucz, napewno Ci to nie zaszkodzi tongue.gif


--------------------
Go to the top of the page
+Quote Post
rbart
post 9.06.2006, 22:13:21
Post #11





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

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


Cytat
Szczerze mówiąc niebardzo wiem o co chodzi, właśnie wkleiłem sobie skrypt podany przez rabata w pierwszym poście i wszystko ślicznie śmiga
Jesteś pierwszą osobą która to stwierdza umnie kod na obrazku jest różny od kodu w źódle

Cytat
rand zwraca liczbę z podanego zakresu która następnie jest rozdzielana na czynniki pierwsze (tylko chyba sam autor wie po co) i dodawana do obrazka.

z pierwszego posta rozpoczynającego temat
Cytat
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ć.
a pozatym jak wspomniałem kod jest bardzo okrojony pierwotnie każdej cyfrze był losowo przydzielany rozmiar, położenie(w pewnym zakesie aby zachować kolejność), typ czcionki oraz pochylenie i do tego używalem pętli.

Dziękuje za dodany kod oczywiście wiem że to rozwiązuje problem ale ja mam już kilka gotowych obejść tego poblemu a zależy mi jedynie na tym żeby wykyć błąd

Offtopic:
Przepraszam wszystkich że tak pisze na raty ale mam teraz naprawdę dużo o wiele ważniejszych spraw
Go to the top of the page
+Quote Post
.radex
post 11.06.2006, 21:18:35
Post #12





Grupa: Zarejestrowani
Postów: 1 657
Pomógł: 125
Dołączył: 29.04.2006

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


nie czytałem dokładnie tematu ale czy nie chdodzi o tą linijke:
kod = '.$kod.'
czy nie powinno byc
$kod = '.$kod.';
questionmark.gif


--------------------
blog | Tadam — minutnik do Pomodoro na Maka :)
Go to the top of the page
+Quote Post
em1X
post 11.06.2006, 21:22:42
Post #13





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


radex błysnąłeś inteligencją jak spłuczka w... biggrin.gif jakbyś zauważył to linijkę wyżej zaczęło się echo.

do reszty: ten kod działa, z tym, że funkcja przyjmuje jako parametr pewną liczbę, a wypisuje zupełnie inną.

Ten post edytował em1X 11.06.2006, 21:24:03


--------------------
eh, co polska wódka to polska wódka
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 4.07.2025 - 20:34