Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] token-problem, zawsze informuje mnie ze zły kod
predator
post 19.04.2008, 23:29:03
Post #1





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


Siedze nad tym 3 godziny, kombinuje na różne sposoby i ciągle to samo... Za każdym razem gdy wpisze w formularzu poprawny kod z obrazka pisze ze niepoprawny, gdy nie poprawny to też to samo.
Sesje wychwytuje poprawnie ale źle porównuje czy sie zgadza z kodem wprowadzonym w formularzu. Kombinowałem na rózne sposoby, sprawdzałem gdzie może być błąd ale już mnie krew zalewa...


  1. <?php
  2. $_SESSION[&#092;"token\"] = '';
  3.  
  4. $login = $_POST[&#092;"login\"];
  5. $haslo = $_POST[&#092;"haslo\"];
  6.  
  7. function ShowForm($komunikat=&#092;"\"){ //funkcja wyświetlająca formularz rejestracyjny
  8.  
  9. for($i=0;$i<5;$i++) {
  10.  $liczba = rand(0,9);
  11.  $_SESSION['token'] .= $liczba;
  12.  $img .= '<img src=\"'.$liczba.'.gif\" >';
  13. }
  14. echo &#092;"
  15. $komunikat
  16. <div style='position: absolute; left: 50px; top: 50px'>
  17.  
  18. Login:
  19. Hasło:
  20.  
  21.  
  22. token:
  23.  
  24.  
  25.  
  26.  
  27. $img
  28.  
  29.  
  30.  
  31.  
  32. &#092;";
  33.  
  34.  
  35. }
  36. ?>
  37.  
  38. if($_POST[\"send\"]==1){ //sprawdzanie czy formularz został wysłany
  39. if(!empty($login) && !empty($haslo) && !empty($_POST[\"token\"])) //oraz czy uzupełniono wszystkie dane
  40.  
  41. {
  42. if ($_SESSION[\"token\"] == $_POST[\"token\"]){
  43. if(preg_match('#^[A-Za-z0-9_]+$#', $login)){ //sprawdzenie poprawnosci znaków
  44.  if(preg_match('#^[A-Za-z0-9_]+$#', $haslo)){
  45.  
  46.  
  47. if(mysql_num_rows(mysql_query(\"select * from users where user_login='\".htmlspecialchars($login.\"'\"))))ShowForm(\"Użytkownik o podanym loginie już istnieje!!!\");// sprawdzanie czy użytkownik o podanej nazwie już istnieje
  48. else 
  49. {
  50. mysql_query(\"insert into users values(NULL, '\".htmlspecialchars($login).\"', '\".htmlspecialchars(md5($haslo)).\"')\"); // zapisywanie rekordu do bazy
  51. echo \"Rejestracja przebiegła pomyślnie. Możesz teraz przejść do <a href="index.php">strony głównej i się zalogować.\";
  52. }
  53. }
  54. else ShowForm(\"nie dozwolone znaki\");
  55. }
  56. else ShowForm(\"nie dozwolone znaki\");
  57. }
  58. else ShowForm(\"nie poprawny kod\");
  59. }
  60.  
  61. else ShowForm(\"Nie uzupełniono wszystkich pól!!!\");
  62. }
  63. else ShowForm();
  64. mysql_close(); //zamykanie połączenia z bazą
  65. ?>
</a href='index.php'></div style='position: absolute; left: 50px; top: 50px'></img src=\"'.$liczba.'.gif\" >

Ten post edytował predator 20.04.2008, 11:19:22
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
marcio
post 19.04.2008, 23:45:05
Post #2





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


  1. <?php
  2. $_SESSION['token'] .= $liczba;
  3.  $img .= '<img src="'.$liczba.'.gif" />';
  4. ?>

Co to za wybryki po co ci . questionmark.gif


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
predator
post 19.04.2008, 23:58:23
Post #3





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


do utworzenia tokena składającego sie z 5 obrazków
skrypt jest z tej strony:
http://webmade.org/porady/token-generator-...azowych-php.php
w takiej formie jak tam działa...

Co może być źle w tym kodzie moim że mnie okłamuje ze zly kod wpisałem??
Go to the top of the page
+Quote Post
Kicok
post 20.04.2008, 09:33:04
Post #4





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Na tej stronie którą podałeś jest napisane, że trzeba kod rozbić na dwa pliki: formularz.php i sprawdz.php.
Więc jeśli nie za bardzo wiesz co ten skrypt robi, to trzymaj się ściśle poleceń z tutoriala. W przeciwnym wypadku zastanów się nad działaniem trzech pierwszych linijek twojego kodu.


A tak w ogóle to wkradł się drobny błąd. Ten kod ze strony webmade.org służy do uprzykrzania życia użytkownikom, a nie zabezpieczania formularzy przed botami ;]

Ten post edytował Kicok 20.04.2008, 09:33:53


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
nevt
post 20.04.2008, 11:04:57
Post #5





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


proszę poptrawić temat na zgodny z zasadami publikacji w Przedszkolu (brakuje tagu) - w przeciwnym razie zamykam temat.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
predator
post 20.04.2008, 11:16:16
Post #6





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


Cytat
W przeciwnym wypadku zastanów się nad działaniem trzech pierwszych linijek twojego kodu.

Otwiera sie sesja "token", sesja ta przyjmuje to co zawiera $liczba pięć razy czyli tworzy ciąg znaków. Wygenerowany kod z obrazków przepisuje do pola formularza i później
Kod
if ($_SESSION["token"] == $_POST["token"])
powinno porównać czy ciąg wygenerowanych znaków równa sie temu co wprowadziłem w formularzu, jednak coś nie pasuje skryptowi i wypisuje że te zmienne są sobie nie równe. Ale co? Hmm.. mówisz że w pierwszych trzech linijkach kodu jest coś co to może powodować..
  1. <?php
  2. $_SESSION["token"] = '';
  3. ?>

Nie wiem czemu ma słuzyć
Kod
''
.. Chodzi może o to że najpierw nic nie jest przypisywane zmiennej a później dopiero jest tworzona, ale jakby tak było to wszystko powinno być ok. Co tu bym musiał zmienić?

Cytat
A tak w ogóle to wkradł się drobny błąd.

jaki błąd?

Cytat
Ten kod ze strony webmade.org służy do uprzykrzania życia użytkownikom, a nie zabezpieczania formularzy przed botami ;]


a to dlaczego? jak sie zabezpieczy przed wpisaniem innych znaków niż 0-9 i a-z to co kto może zrobić złego?

@up już zmieniam, rzeczywiście zapomniałem o tagu, przepraszam

Ten post edytował predator 20.04.2008, 11:22:09
Go to the top of the page
+Quote Post
marcio
post 20.04.2008, 11:37:28
Post #7





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Cytat
Ten kod ze strony webmade.org służy do uprzykrzania życia użytkownikom, a nie zabezpieczania formularzy przed botami ;]

a to dlaczego? jak sie zabezpieczy przed wpisaniem innych znaków niż 0-9 i a-z to co kto może zrobić złego?

Wystarczy prosty bot ktory ze zrodla strony wyciagnie wszystkie elementy img i potem wyciagnie z nich nazwy i juz smile.gif


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
predator
post 20.04.2008, 11:44:48
Post #8





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


a no można i tak worriedsmiley.gif

wie ktoś co zrobić by działał ten kod?
Go to the top of the page
+Quote Post
Crozin
post 20.04.2008, 12:00:43
Post #9





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


  1. <?
  2.  
  3.  
  4. if(!isset($_POST['send'])){
  5. $_SESSION['token'] = ''; //czyścimy zmienna sesyjną "token"
  6.  
  7. for($i = 0; $i < 5; $i++) //tworzymy token
  8. $_SESSION['token'] .= rand(0, 9);
  9.  
  10. //Przy pomocy f-cji imagettftext() tworzysz obrazek, w ktorym jest token (w manualu masz kompletny przykład "how to"
  11.  
  12. ?>
  13. Tutaj cały formularz
  14. <?php
  15. }else{
  16. $token = $_POST['token'];
  17.  
  18. if($_SESSION['token'] == $token)
  19. //poprawny
  20. else
  21. //nie poprawny
  22. }
  23.  
  24. ?>
Go to the top of the page
+Quote Post
marcio
post 20.04.2008, 12:18:53
Post #10





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Hmm a mam pytanko jak sprawdzic czy lib GD jest dostepny na servie bo mam moja klase Tokena ale nie dziala a na localu dziala smile.gif

@webdicepl to wiem tylko nie wiem jak sie dyrektywa nazywa poprostu gd?

EDIT:
  1. <?php
  2. if(function_exists('gd')) echo('jest gd'); else echo('nie ma :(');
  3. ?>

Niby pisze ze nie ma szkoda sad.gif ale klase do cms dodam smile.gif

Ten post edytował marcio 20.04.2008, 12:24:12


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
webdice
post 20.04.2008, 12:19:56
Post #11


Developer


Grupa: Moderatorzy
Postów: 3 045
Pomógł: 290
Dołączył: 20.01.2007




function_exists" title="Zobacz w manualu PHP" target="_manual
Go to the top of the page
+Quote Post
marcio
post 20.04.2008, 12:55:43
Post #12





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Hmm sorki za OT ale jak juz mowimy od GD mam maly problem wiec sprawdzalem juz czy GD jest zainstalowane
Cytat
apt-get install php5-gd

No i bylo juz w php.ini mam linijke
Cytat
extension=gd.so

SPrawdzam
  1. <?php
  2. if(function_exists('gd')) echo('jest gd'); else echo('nie ma :(');
  3. ?>

Pisze ze nie ma nawet apache restartowalem chyba ze zle smile.gif jak probuje wywolac ta funkcje
  1. <?php
  2. function Zrob_obrazek_tokena() { 
  3.  
  4.  
  5.  header("Content-type: image/png"); 
  6. $image = @imagecreate(100,20); 
  7.  if($image) { 
  8.  
  9. $background = imagecolorallocate($image, 0,0,0); 
  10. $text = imagecolorallocate($image, 255,255,235); 
  11. imagestring($image, 4, 25,5, 'sdssd', $text); 
  12. header("Content-type: image/png"); 
  13. imagepng($image); 
  14. imagedestroy($image);
  15. } 
  16.  
  17. }
  18.  
  19. Zrob_obrazek_tokena();
  20. ?>

I mam blad
Cytat
Obrazek "http://localhost/register.php" nie może zostać wyświetlony, ponieważ zawiera błędy.

Chyba ze jak mam zla funkcje ale dziwne kiedys dzialalo smile.gif a funckje blokowanie img w FF wylaczylem

EDIT:phpinfo() mowi ze GD Support enabled wiec co jest zle moja funkcja?

Ten post edytował marcio 20.04.2008, 13:01:34


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
predator
post 20.04.2008, 13:23:09
Post #13





Grupa: Zarejestrowani
Postów: 40
Pomógł: 0
Dołączył: 20.02.2008

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


Cytat
//Przy pomocy f-cji imagettftext() tworzysz obrazek, w ktorym jest token (w manualu masz kompletny przykład "how to"

Z tym jeszcze nie walczyłem, najpierw próbuje połączyć ten skrypt z function ShowForm, kombinuje, kombinuje i ciągle błędy.

Zrobiłem teraz tak:
  1. <!DOCTYPE html 
  2. PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN">
  3. <html>
  4. <head>
  5. <title>Formularz rejestracyjny</title>
  6. </head>
  7. <body>
  8. <?php
  9.  
  10. mysql_connect("", "", "")or die("Nie można nawiązać połączenia z bazą");
  11. mysql_select_db("")or die("Wystąpił błąd podczas wybierania bazy danych");
  12.  
  13. if(!isset($_POST['send'])){
  14. $_SESSION['token'] = ''; //czyścimy zmienna sesyjną "token"
  15.  
  16.  for($i=0;$i<5;$i++) {
  17.  $liczba = rand(0,9);
  18.  $_SESSION['token'] .= $liczba;
  19.  $img .= '<img src="'.$liczba.'.gif" />';
  20. }
  21. ?>
  22. <?php
  23. function ShowForm($komunikat=""){
  24. echo "
  25. <form action='rejestruj2.php' method=post>
  26. $img
  27. <input type=hidden value='1' name=send>
  28. <input class='pole' type='text' name='token'>
  29. <INPUT class='przycisk' TYPE='submit' VALUE='Zarejestruj'>
  30. </FORM>
  31. ";
  32. }
  33.  
  34. }else{
  35. $token = $_POST['token'];
  36.  
  37. if($_POST["send"]==1){
  38.  if($_SESSION['token'] == $token){ 
  39.  ShowForm("DOBRZE");
  40.  }
  41. //poprawny
  42. else {
  43. ShowForm("ZLE");
  44. }
  45. //nie poprawny
  46. }
  47. else ShowForm();
  48. }
  49. mysql_close(); //zamykanie połączenia z bazą
  50. ?>
  51. </body>
  52. </html>


i nic sie nie pojawia na ekranie.
Go to the top of the page
+Quote Post
Crozin
post 20.04.2008, 14:29:27
Post #14





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Ponieważ [manual\]gd\[/manual\] nie zawiera f-cji gd()
  1. <?php
  2. if(function_exists('gd_info')) var_dump(gd_info()); else echo('nie ma :(')
  3. ?>
Powód edycji: Zgodnie z życzeniem ~marcio daje pomógł // Piniek
Go to the top of the page
+Quote Post
marcio
post 20.04.2008, 16:20:42
Post #15





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


@Crozin wielkie dzieki wlasnie wygladalo to jakos dziwne ze nie dzialalo teraz wszystko ok pokazuje czy jest wlasnie bede sprawdzal mojego tokena ogolnie dal bym ci + ale nie mam jak chyba ze autor tematu zrobi to za mnie bede bardzo wdzieczny tongue.gif

Zeby nie bylo ze robie OT to to jest to co sam wykombinowalem tylko jeszcze nie wiem zrobic zeby litery byly od siebie np 2px i mialy zmienne rozmiar
  1. <?php
  2.  
  3. function Zrob_obrazek_tokena() {
  4.  
  5. $losuj = substr(md5(time()), 0, 6);
  6. $_SESSION['randtoken'] = $losuj;
  7. $szerokosc = 150;
  8. $wysokosc = 25;
  9.  
  10. header("Content-type: image/png");
  11. $image = @imagecreate(150,25);
  12.  
  13.  
  14. if($image) {
  15.  
  16. $background = imagecolorallocate($image, 0,0,0);
  17. $text = imagecolorallocate($image, 255,255,235);
  18. $niebieski = imagecolorallocate($image, 150,150,150);
  19.  
  20. for($i = 0; $i < 300; $i++) {
  21.  
  22. $los = rand(0, $szerokosc);
  23. $los1 = rand(0, $wysokosc);
  24. ImageLine($image,$los,$los1,$los,$los1,$niebieski);
  25. }
  26.  
  27. imagestring($image, 5, 50,5, $_SESSION['randtoken'], $text);
  28. imagepng($image);
  29. imagedestroy($image); 
  30. }
  31. }
  32.  
  33. Zrob_obrazek_tokena();
  34.  
  35. ?>

POtem dajesz normalnie
  1. <?php
  2. echo('<img src="token.php">');
  3. ?>

Sprawdznie
  1. <?php
  2. if($_POST['token'] == $_SESSION['randtoken']) { // $_POST['token'] zmienna z forma dla tokena :)
  3. //dziala
  4. }
  5. else {
  6. //nie dziala
  7. }
  8. ?>


Ten post edytował marcio 20.04.2008, 16:23:16


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Crozin
post 20.04.2008, 16:41:37
Post #16





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


  1. <?php
  2.  
  3.  
  4. function Zrob_obrazek_tokena() {
  5.  
  6. $losuj = substr(md5(time()), 0, 6);
  7. $_SESSION['randtoken'] = $losuj;
  8. $szerokosc = 150;
  9. $wysokosc = 25;
  10.  
  11. header("Content-type: image/png");
  12. $image = @imagecreate(150,25);
  13.  
  14.  
  15. if($image) {
  16.  
  17. $background = imagecolorallocate($image, 0,0,0);
  18. $text = imagecolorallocate($image, 255,255,235);
  19. $niebieski = imagecolorallocate($image, 150,150,150);
  20.  
  21. for($i = 0; $i < 300; $i++) {
  22.  
  23. $los = rand(0, $szerokosc);
  24. $los1 = rand(0, $wysokosc);
  25. ImageLine($image,$los,$los1,$los,$los1,$niebieski);
  26. }
  27.  
  28. $i = 0;
  29. $j = strlen($_SESSION['randtoken']);
  30. $x = 5;
  31. $fonts = array('arial.ttf', 'astonish.ttf', 'avgardan.ttf', 'comicbd.ttf'); //pliki z czionkami
  32.  
  33. for(; $i < $j; $i++){
  34. imagettftext($image, rand(14, 18), rand(-15, 15), $x, rand(17, 23), imagecolorallocate($image, rand(150, 255), rand(150, 255), rand(150, 255)), $fonts[array_rand($fonts)], $_SESSION['randtoken']{$i});
  35. $x += 25; 
  36. }
  37.  
  38. imagepng($image);
  39. imagedestroy($image); 
  40. }
  41. }
  42.  
  43. Zrob_obrazek_tokena();
  44.  
  45. ?>
Go to the top of the page
+Quote Post
marcio
post 20.04.2008, 17:14:32
Post #17





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


Heh dzieki za pomoc kombinowalem mniej wiecej tak jak ty ale mi nie wychodzilo bo uzywale imgestring jednak alej nie dziala ze biblioteki GD nie znam i jej funckji tez nie tylko teraz tak na szybko przeczytalem rozdzial z ksiazki zeby to napisac to te pliki z czcionkami musze miec na servie zeby dzialalo bo img w ogole sie nie wyswietla wiesz moze co jest zle??

  1. <?php
  2.  
  3. function Zrob_obrazek_tokena() {
  4.  
  5. $losuj = substr(md5(time()), 0, 6);
  6. $_SESSION['randtoken'] = $losuj;
  7. $szerokosc = 150;
  8. $wysokosc = 25;
  9. $ilosc = strlen($_SESSION['randtoken']);
  10.  
  11. header("Content-type: image/png");
  12. $image = @imagecreate(150,25);
  13.  
  14.  
  15. if($image) {
  16.  
  17. $background = imagecolorallocate($image, 0,0,0);
  18. $text = imagecolorallocate($image, 255,255,235);
  19. $niebieski = imagecolorallocate($image, 150,150,150);
  20.  
  21. for($i = 0; $i < 500; $i++) {
  22.  
  23. $los = rand(0, $szerokosc);
  24. $los1 = rand(0, $wysokosc);
  25. ImageLine($image,$los,$los1,$los,$los1,$niebieski);
  26. }
  27.  
  28. $x = 30;
  29.  
  30. for($i = 0 ; $i < $ilosc; $i++) {
  31.  
  32. imagestring($image, rand(3,5), $x,rand(5,10), $_SESSION['randtoken'][$i], $text);
  33. $x += 15; 
  34.  }
  35.  
  36. imagepng($image);
  37. imagedestroy($image); 
  38. }
  39. }
  40.  
  41. Zrob_obrazek_tokena();
  42.  
  43. ?>

heh wystarczylo troche pokominowac ej a wiecie moze gdzie moge znalesc kolory tzn jaka cyferka to jaki kolor wiem ze rgb 3 kolory i sie mieszaja ale gdzie moge znalesc taki generator??

P.S dziekuje za dodanie + dla @Crozin

Ten post edytował marcio 20.04.2008, 17:16:56


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Crozin
post 20.04.2008, 18:49:38
Post #18





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Proszę... używaj znaków interpunkcyjnych, bo zrozumienie Twojego ostatniego postu jest dosyć trudne.

Aby dodać kolor wystarczy podać 6-ty argument dla imagestring" title="Zobacz w manualu PHP" target="_manual:
  1. <?php
  2. imagestring(......., imagecolorallocate($image, rand(150, 255), rand(150, 255), rand(150, 255)));
  3. ?>
Napis będzie miał losowy kolor (jednak z racji, że tło masz ciemne będzie on jasny)

PS. A sprawdzałeś mój skrypt? Wynik jego działania to np.:
Go to the top of the page
+Quote Post
marcio
post 20.04.2008, 19:22:54
Post #19





Grupa: Zarejestrowani
Postów: 2 291
Pomógł: 156
Dołączył: 23.09.2007
Skąd: ITALY-MILAN

Ostrzeżenie: (10%)
X----


No to ja takie cos mam
  1. <?php
  2.  
  3. function Zrob_obrazek_tokena() {
  4.  
  5. $losuj = substr(md5(time()), 0, 6);
  6. $_SESSION['randtoken'] = $losuj;
  7. $szerokosc = 150;
  8. $wysokosc = 25;
  9. $ilosc = strlen($_SESSION['randtoken']);
  10.  
  11. header("Content-type: image/png");
  12. $image = @imagecreate($szerokosc, $wysokosc);
  13.  
  14.  
  15. if($image) {
  16.  
  17. $background = imagecolorallocate($image, 0,0,0);
  18. $text = imagecolorallocate($image, rand(150,255),rand(150,255),rand(150,255));
  19. $szary = imagecolorallocate($image, 150,150,150);
  20.  
  21. for($i = 0; $i < 500; $i++) {
  22.  
  23. $los = rand(0, $szerokosc);
  24. $los1 = rand(0, $wysokosc);
  25. ImageLine($image,$los,$los1,$los,$los1,$szary);
  26. }
  27.  
  28. $x = 30;
  29.  
  30. for($i = 0 ; $i < $ilosc; $i++) {
  31.  
  32. imagestring($image, rand(3,5), $x,rand(5,10), $_SESSION['randtoken'][$i], $text);
  33. $x += 10; 
  34.  }
  35.  
  36. imagepng($image);
  37. imagedestroy($image); 
  38. }
  39. }
  40.  
  41. Zrob_obrazek_tokena();
  42.  
  43. ?>

Ale chodzi mi o to ze cche zeby kazda literka miala inny kolor wiesz jak zrobic chyba musze dac kolejna petle na kolor kombinowalem ale img sie nie wyswitlal
Chcialem jeszcze zapytac jak idzie zwiekszyc wielkosc napisu w imgaestring() oprocz wybor czcionki bo jest troche maly

P.S ten twoj kod dzialac mi nie chcial wiec sam cos pokobinowalem smile.gif napewno nie chodzi bo nie mam font'ow tongue.gif ogolnie moj tak wyglada
http://img176.imageshack.us/img176/5584/75262885ps2.png


--------------------
Zainteresowania: XML | PHP | MY(SQL)| C# for .NET | PYTHON
http://code.google.com/p/form-builider/
Moj blog
Go to the top of the page
+Quote Post
Crozin
post 20.04.2008, 19:30:18
Post #20





Grupa: Zarejestrowani
Postów: 6 476
Pomógł: 1306
Dołączył: 6.08.2006
Skąd: Kraków

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


Jeżeli tylko masz pliki czcionek w tym samym folderze co plik generujący token (i nazwy plików masz zapisane w tej tablicy) to mój kod będzie działać.

  1. <?php
  2.  
  3. function Zrob_obrazek_tokena() {
  4.  
  5. $losuj = substr(md5(time()), 0, 6);
  6. $_SESSION['randtoken'] = $losuj;
  7. $szerokosc = 150;
  8. $wysokosc = 25;
  9. $ilosc = strlen($_SESSION['randtoken']);
  10.  
  11. header("Content-type: image/png");
  12. $image = @imagecreate($szerokosc, $wysokosc);
  13.  
  14.  
  15. if($image) {
  16.  
  17. $background = imagecolorallocate($image, 0,0,0);
  18. $text = imagecolorallocate($image, rand(150,255),rand(150,255),rand(150,255));
  19. $szary = imagecolorallocate($image, 150,150,150);
  20.  
  21. for($i = 0; $i < 500; $i++) {
  22.  
  23. $los = rand(0, $szerokosc);
  24. $los1 = rand(0, $wysokosc);
  25. ImageLine($image,$los,$los1,$los,$los1,$szary);
  26. }
  27.  
  28. $x = 30;
  29.  
  30. for($i = 0 ; $i < $ilosc; $i++) {
  31. imagestring($image, rand(8,10), $x, rand(5,10), $_SESSION['randtoken']{$i}, imagecolorallocate($image, rand(150, 255), rand(150, 255), rand(150, 255)));
  32. $x += 10; 
  33. }
  34.  
  35. imagepng($image);
  36. imagedestroy($image); 
  37. }
  38. }
  39.  
  40. Zrob_obrazek_tokena();
  41.  
  42. ?>
Ale wielkości/kroju czcionki nie zmienisz (możesz tylko wybrać jedną z 5 wbudowanych (drugi argument imagestring()) - taką funkcionalność oferuje użyta przeze mnie imagettftext" title="Zobacz w manualu PHP" target="_manual

Cytat
P.S ten twoj kod dzialac mi nie chcial wiec sam cos pokobinowalem napewno nie chodzi bo nie mam font'ow ogolnie moj tak wyglada
Zakomentuj na chwilę linię z header()em - zobaczysz treści błędów
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
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: 16.07.2025 - 15:13