Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [Php] Generowanie captchy - problem
Heniut
post
Post #1





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.07.2011

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


Mam taki kod:
  1. <?php
  2. $tla = "Tlo.png";
  3. $czcionki = "Captcha.ttf";
  4. $znaki = 'ABCDEFGHIJKLMNPQRSTUWXYZ123456789.,';
  5. $obrazek_tla = $tla;
  6. $liczba_znakow = rand(15, 31);
  7. $cap = imagecreatefrompng($obrazek_tla);
  8. $kolor = imagecolorallocate($cap, 250, 250, 250);
  9. for($x = 1; $x <= $liczba_znakow; $x++);
  10. {
  11. $czcionka = $czcionki;
  12. $znak = $znaki[rand(0, strlen($znaki)-1)];
  13. $odleglosc_miedzy_znakami = round(imagesx($cap) / $liczba_znakow+1)-10)*($x-1)+20;
  14. imagettftext($cap,rand(10, 25),rand(-5, 10),$odleglosc_miedzy_znakami,5,$kolor,$czcionka,$znak);
  15. }
  16. imagepng($cap);
  17. ?>

i wyskakuje błąd:
Cytat
Parse error: syntax error, unexpected T_VARIABLE in /home/heniutx/public_html/captcha.php on line 1


I moje 2 pytania:
1. Co tu jest źle, że wyskakuje błąd?
2. Czy to mi zrobi captche? Naturalnie plik png i czcionki są w folderze ze skryptem.

Kod przerobiłem z tąd:
http://php.pl/Wortal/Artykuly/PHP/Bibliote...1-Captcha-w-PHP

Ten post edytował Heniut 22.07.2011, 13:33:31
Go to the top of the page
+Quote Post
Wilu88
post
Post #2





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

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


Cytat(Heniut @ 22.07.2011, 14:25:25 ) *
I moje 2 pytania:
1. Co tu jest źle, że wyskakuje błąd?
2. Czy to mi zrobi captche? Naturalnie plik png i czcionki są w folderze ze skryptem.



Wiem że na pewno wywali Ci błąd w linii 13 nie otwarty nawias.

Poza tym po skopiowaniu tego kodu mój serwer łyka linię 1. To jest początek pliku czy masz coś jeszcze przed tym?

Ten post edytował Wilu88 22.07.2011, 13:35:14
Go to the top of the page
+Quote Post
Heniut
post
Post #3





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.07.2011

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


Tylko to mam.

Przecież u mnie też wywala w 1 linii (IMG:style_emoticons/default/nerdsmiley.png)
Go to the top of the page
+Quote Post
Wilu88
post
Post #4





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

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


Powtarzam że mi łyka to serwer czyli działa. Na pewno chodzi tam o linię 1 (IMG:style_emoticons/default/questionmark.gif) może ucięło ci komunikat i chodzi o 14? w pierwszej linii masz przecież <?php

Spróbuj jeszcze za pomocą Notepad++ zmienić kodowanie za pomocą: Konwertuj na format UTF-8 (bez BOM) w zakładce Format

Ten post edytował Wilu88 22.07.2011, 13:47:27
Go to the top of the page
+Quote Post
Heniut
post
Post #5





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.07.2011

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


Komunikatu nie ucielo.
Zmiana formatu > nie da się. Zmieniam na UTF-8 be zbom i po wlaczeniu i wylaczeniu nadal ansi.
Go to the top of the page
+Quote Post
Wilu88
post
Post #6





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

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


Cytat(Heniut @ 22.07.2011, 14:51:59 ) *
Komunikatu nie ucielo.
Zmiana formatu > nie da się. Zmieniam na UTF-8 be zbom i po wlaczeniu i wylaczeniu nadal ansi.


To zrób nowy plik zmień kodowanie na UTF8- bez bom i wklej do tego kod.
Go to the top of the page
+Quote Post
Heniut
post
Post #7





Grupa: Zarejestrowani
Postów: 54
Pomógł: 0
Dołączył: 22.07.2011

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


Teraz mam tak:
  1. <?php
  2. $tla = "Tlo.png";
  3. $czcionki = "Captcha.ttf";
  4. $znaki = 'ABCDEFGHIJKLMNPQRSTUWXYZ123456789.,';
  5. $obrazek_tla = $tla;
  6. $liczba_znakow = rand(15, 31);
  7. $cap = imagecreatefrompng($obrazek_tla);
  8. $kolor = imagecolorallocate($cap, 250, 250, 250);
  9. for($x = 1; $x <= $liczba_znakow; $x++);
  10. {
  11. $czcionka = $czcionki;
  12. $znak = $znaki[rand(0, strlen($znaki)-1)];
  13. $odleglosc_miedzy_znakami = (round(imagesx($cap) / $liczba_znakow+1)-10)*($x-1)+20;
  14. imagettftext($cap,rand(10, 25),rand(-5, 10),$odleglosc_miedzy_znakami,5,$kolor,$czcionka,$znak);
  15. }
  16. imagepng($cap);
  17. ?>

i jest w utf-8 bez bom ale wyskakuje:
Cytat
‰PNG  IHDRŢ#t #'-IDATxœíÁ1 őOm  ŕh[1â6ŮëIENDŽB`‚

zamiast captchy
Go to the top of the page
+Quote Post
Spawnm
post
Post #8





Grupa: Moderatorzy
Postów: 4 069
Pomógł: 497
Dołączył: 11.05.2007
Skąd: Warszawa




Ustaw header()
Go to the top of the page
+Quote Post
Wilu88
post
Post #9





Grupa: Zarejestrowani
Postów: 158
Pomógł: 6
Dołączył: 7.03.2010

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


Jeśli jeszcze masz z tym problem to oto przykład z mojej captchy

  1.  
  2. header('Expires: Tue, 08 Oct 1991 00:00:00 GMT');
  3. header('Cache-Control: no-cache, must-revalidate');
  4.  
  5.  
  6. header("Content-Type: image/png");
Go to the top of the page
+Quote Post

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: 23.08.2025 - 13:14