Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Tworzenie obrazka
-Guest-
post
Post #1





Goście







  1. <?php
  2.  
  3. header("Content-type: image/png");
  4. $im = @imagecreate(100, 50)
  5.  or die("Cannot Initialize new GD image stream");
  6. $background_color = imagecolorallocate($im, 255, 255, 255);
  7. $text_color = imagecolorallocate($im, 233, 14, 91);
  8. imagestring($im, 1, 5, 5, "A Simple Text String", $text_color);
  9. imagepng($im);
  10. imagedestroy($im);
  11.  
  12. ?>


Znalazłem na php.net ten skrypt który tworzy obrazek z napisem. Problem polega na tym że nie wiem jak wyświetlić ten obrazek w połowie strony. Ponieważ wyskakuje mi błąd związany z header
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
wielokropek
post
Post #2





Grupa: Zarejestrowani
Postów: 34
Pomógł: 1
Dołączył: 23.04.2006

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


To bez sensu, bo można stworzyć robota, który odczyta jaka jest zawartość polu hidden. Ja to rozwiązałem w taki sposób:

  1. <?php
  2. function create_token() {
  3. $token_id = rand(0,99999);
  4. $date = time() - 600;
  5. mysql_query("DELETE FROM tokens WHERE token_date<'".$date."'");
  6. mysql_query("INSERT INTO tokens (token_id, token_pass, token_date) VALUES ('".$token_id."', '".rand(1000,9999)."', '".time()."')");
  7.  
  8. return $token_id;
  9. }
  10.  
  11. function check_token($pass, $id) {
  12.  $wykonaj = mysql_query("SELECT token_pass FROM tokens WHERE token_id='".$id."' LIMIT 1");
  13.  $wiersz = mysql_fetch_array($wykonaj);
  14.  mysql_query("DELETE FROM tokens WHERE token_id='".$id."'");
  15.  
  16.  if ($pass == $wiersz['token_pass']) return true;
  17.  else return false;
  18. }
  19. ?>


w miejscu gdzie ma sie pojawić obrazek:
  1. <img src="token.php?id=<? echo create_token(); ?>" alt="">


i plik który go obsługuje: token.php
  1. <?
  2. include 'includes/configure.php';
  3. include 'includes/app_top.php';
  4.  $wykonaj = mysql_query("SELECT token_pass FROM tokens WHERE token_id='".$HTTP_GET_VARS['id']."' LIMIT 1");
  5.  $wiersz = mysql_fetch_array($wykonaj);
  6.  
  7. $tekst2 = rand(1000,9999);
  8. $tekst = $wiersz['token_pass'];
  9. $czcionki= array('includes/fonts/freemono.ttf'); //definiujemy czcionki za pomocą tablicy
  10. header("Content-type: image/png"); //ustawiamy nagłówek HTTP na obrazek png
  11. $obraz = ImageCreate(100, 20); //tworzymy obrazek o wysokości 40 i szerokości 250
  12. $kolor['1'] = ImageColorAllocate($obraz, 255, 255, 255); //definiujemy kolor 1 (biały)
  13. $kolor['2'] = ImageColorAllocate($obraz, 169, 169, 169); //definiujemy kolor 2 (darkgray)
  14. $kolor['3'] = ImageColorAllocate($obraz, 220, 220, 220); //definiujemy kolor 3 (gainsboro)
  15. ImageFilledRectangle($obraz, 0, 0, 300, 50, $kolor['1']); 
  16. ImageFilledArc($obraz, 25, 25, 40, 40, 180, 360, $kolor['3'], 1);
  17. for($i = 0; $i < 60; $i++) //w pętli
  18. {
  19. imageellipse($obraz, rand(0, 250), rand(0, 40), rand(2, 30), rand(2, 30), $kolor['2']); 
  20. //tworzymy losowo rozmieszczone elipsy o kolorze darkgray
  21. }
  22. for($i = 0; $i < 3; $i++)
  23. {
  24. ImageTTFText($obraz, rand(15,20), 0, rand(15,20), rand(15,20), $kolor['3'],
  25.  $czcionki[rand(0, count($czcionki) - 1)], $tekst2); 
  26. //dodajemy do rysunku tekst o losowym położeniu, kolorze gainsboro, losowej czcion
    ce (losowanej z tablicy)
  27. } 
  28. ImageTTFText($obraz, rand(15,20), 0, rand(15,20), rand(15,20), $kolor['2'],
  29.  $czcionki[rand(0, count($czcionki) - 1)], $tekst); 
  30. //dodajemy do rysunku tekst o losowym położeniu, kolorze darkgray, losowej 
  31. //czcionce (losowanej z tablicy) oraz tekście, który przekażemy za pomocą sesji
  32.  
  33. Imagepng($obraz); //wyświetlamy obrazek za pomocą funkcji ImagePNG
  34. ImageDestroy($obraz); //niszczymy identyfikator pliku
  35. include 'includes/app_bottom.php';
  36. ?>


sprawdzamy czy dobrze ktoś wpisał tak:
  1. <?php
  2. if (check_token($HTTP_POST_VARS['token_code'], $HTTP_POST_VARS['token_id'])) 
  3. ...
  4. ?>
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: 11.10.2025 - 10:43