Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php] Problem z tokenem
Bojakki
post
Post #1





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


Znalazlem w necie takiego tokena:

  1. <?php
  2. // Nadaje nazwe sesji i ja startuje.
  3. session_name("sess");
  4.  
  5. // dodatkowe naglowki, by nie buforowac wyniku
  6. header ("Expires: Mon, 22 Sep 1997 09:00:00 GMT");
  7. header ("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT");
  8. header ("Cache-Control: no-store, no-cache, must-revalidate");
  9. header ("Cache-Control: post-check=0, pre-check=0", false);
  10. header ("Pragma: no-cache");
  11.  
  12. // tworzę obrazek o okrelonych wymiarach
  13. $grafix = imagecreate(88, 31);
  14.  
  15. // Losowanie kolorow dla tla i napisu
  16. mt_srand(time()*123456789);
  17.  
  18. //kolor tekstu
  19. $white = imagecolorallocate($grafix, 255, 255, 255);
  20. $black = imagecolorallocate($grafix, 0, 0, 0);
  21. // maluję tło
  22. // otwieram obrazek typu PNG
  23. $grafixBackground = @imagecreatefromjpeg("token.jpg");
  24. // kopiuje cala zawartosc na $grafix
  25. imagecopy($grafix, $grafixBackground, 0, 0, 0, 0, 88, 31);
  26. // Losowanie slowa
  27.  
  28. $sAllowedChars = 'abcdefghijklmnopqrstuvwxyz';
  29. $sAllowedChars .= '0123456789';
  30.  
  31. $sAllowedChars = str_shuffle( $sAllowedChars );
  32. $sPassword = substr( $sAllowedChars, 0, 6 );
  33. //definiuje zbior czcionek i wybieram losowo jedna
  34. $font  = "verdana.ttf";
  35. imagettftext($grafix, 12, 0, 15, 20, $black, $font, $sPassword);
  36.  
  37. //zanieczyszam obrazek niewielkimi liniami
  38. for($i=1;$i<13;$i++){
  39. $randPixSpaceLeft = mt_rand(10, 88);
  40. $randPixSpaceTop = mt_rand(0, 31);
  41. imageline($grafix, $randPixSpaceLeft, $randPixSpaceTop, $randPixSpaceLeft+10, $randPixSpaceTop+7, $white);
  42. }
  43.  
  44. // przekazuje przez sesje wylosowane slowo
  45. $_SESSION["choosenWord"] = $sPassword;
  46.  
  47. // wysyłam odpowiedni nagłówek a następnie obrazek do przeglšdarki
  48. header("Content-type: image/jpeg");
  49.  
  50. imagejpeg($grafix);
  51.  
  52. // sprzštam po sobie
  53. imagedestroy($grafix);
  54. ?>


Wszystko dziala ok (obrazek sie generuje i wyswietla) gdy kod jest sam an stronie. Gdy wrzucilem kod w formularz to zamiast strony wyswietla sie tylko i wylacznie adres strony na ktorej jestem. Wie ktos gdzie lezy problem?

Z gory dziekuje za pomoc
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Bojakki
post
Post #2





Grupa: Zarejestrowani
Postów: 379
Pomógł: 0
Dołączył: 18.08.2004

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


rzeczywiscie trzeba zrobic tak jak pisales. Obrazek juz sie pojawia, ale formularz nie bardzo dziala.
Wyglada on tak. Formularz jest przyjmowany gdy nie wpisze nic w pole token czyli tak jakby $_SESSION['choosenWord'] nie bralo zmiennej z obrazka. Nie wiem czy ten formularz jest w ogole dobrze zbudowany:/
  1. <?php
  2. if(isset($_REQUEST['submit']))
  3. {
  4. $s = 0;
  5. $username = 'gość-'.mysql_real_escape_string(strip_tags($_POST[guestname]));
  6. $comment = mysql_real_escape_string(strip_tags($_POST[comment]));
  7. $stringl = strlen($comment);
  8. $stringl2 = strlen($username);
  9. if ($_SESSION['choosenWord'] != $_POST['token'])
  10. {
  11. $z.="<li>Źle przepisałeś znaki z obrazka</li>";
  12. $s++;
  13. }
  14. if ($stringl < 6)
  15. {
  16. $z.="<li>Zbyt krótka wiadomość</li>";
  17. $s++;
  18. }
  19. if ($stringl2 == 0)
  20. {
  21. $z.="<li>Nie uzupełniłeś pola Autor</li>";
  22. $s++;
  23. }
  24.  
  25. if ($s==0)
  26. {
  27. $success=1;
  28. }
  29. else
  30. {
  31. $success=-1;
  32. }
  33.  
  34. $myquery = mysql_query("INSERT INTO a_post (parentid, username, userid, dateline, pagetext, allowsmilie, ipaddress, ico
    nid, visible)
  35. VALUES ('{$parentid}','{$username}','{$userid}','{$lastpost}','{$comment}', 1, '{$ip}', '{$iconid}', 1)") or die(mysql_error());
  36. $lastpostid = mysql_insert_id($mysql);
  37. }
  38.  
  39. if($success==1)
  40. {
  41. echo '<li>Wiadomość została dodana</li>';
  42. echo '<center><a href="news.php?wsk='.$wsk.'">Zobacz</a></center>';
  43. }
  44. elseif($success==-1)
  45. {
  46. echo $z;
  47. echo '<center><a href="news.php?wsk='.$wsk.'">Spróbuj jeszcze raz</a></center>';
  48. }
  49. else
  50. {
  51. echo '
  52. <form method=POST action="'.$typen.'.php?wsk='.$wsk.'">
  53. Autor: <input type="text" size="33" name="guestname"/><br />
  54. Obrazek: <input type="text" size="23" name="token"/><br />
  55. <img src='token.php' alt='token'>
  56. Treść:<br /><textarea name="comment" rows="6" cols="70" type="text" value size="1000" maxlength="1000"></textarea><br />
  57. <input type="submit" name="submit" value="ZatwierdĽ" />
  58. </form>';
  59. }
  60. ?>
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: 5.10.2025 - 08:43