Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP][Smarty]Captcha
Atlas
post 12.04.2011, 20:14:50
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 26.09.2007

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


Witam mam nie mały problem.

Mam 2 pliczki do captcha które normalnie( bez smarty) działają prawidłowo:

mianowicie

index.php
  1. <?
  2.  
  3. if($_POST['captcha'] != $_SESSION['captcha']){
  4.  
  5. echo '<font style="color:#c03400;">Niepoprawnie przepisałeś kod z obrazka</font><br>';
  6.  
  7. }else{
  8.  
  9. echo ('ok');
  10.  
  11. }
  12. ?>
  13. <html>
  14. <body>
  15. <form action="index.php?action=add" method="post">
  16. <table>
  17. <tbody>
  18. <tr>
  19. <td valign="top"><small>Login</small><br></td>
  20. <td><input name="user" style="width: 200px; height: 20px;" type="text" /><br></td>
  21. </tr>
  22. <tr>
  23. <td valign="top"><small>Tekst</small><br></td>
  24. <td><textarea name="text" style="width: 300px; height: 100px;"></textarea><br></td>
  25. </tr>
  26. <tr>
  27. <td></td>
  28. <td><img src="captcha.php" alt="" style="vertical-align: middle" /> <input name="captcha" style="width: 100px; height: 20px; vertical-align: middle;" type="text" /><br /><br /></td>
  29. </tr>
  30. <tr>
  31. <td></td>
  32. <td><input name="submit" value="Dodaj" type="submit" /></td>
  33. </tr>
  34. </tbody>
  35. </table>
  36. </form>
  37. </body>
  38. </html>

captcha.php
  1. <?
  2. $pool = '0123456789abcdefghijklmnopqrstuvwxyz';
  3. $img_width = 120;
  4. $img_height = 30;
  5.  
  6. $str = '';
  7. for ($i = 0; $i < 7; $i++){
  8. $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1);
  9. }
  10.  
  11. $string = $str;
  12. $_SESSION['captcha'] = $string;
  13.  
  14. $im = imagecreate($img_width, $img_height);
  15.  
  16. $bg_color = imagecolorallocate($im,163,163,163);
  17. $font_color = imagecolorallocate($im,252,252,252);
  18. $grid_color = imagecolorallocate($im,31,0,0);
  19. $border_color = imagecolorallocate ($im, 174, 174, 174);
  20.  
  21. imagefill($im,1,1,$bg_color);
  22.  
  23. for($i=0; $i<1600; $i++){
  24.  
  25. $rand1 = rand(0,$img_width);
  26. $rand2 = rand(0,$img_height);
  27. imageline($im, $rand1, $rand2, $rand1, $rand2, $grid_color);
  28.  
  29. }
  30.  
  31. $x = rand(5, $img_width/(7/2));
  32.  
  33. imagerectangle($im, 0, 0, $img_width-1, $img_height-1, $border_color);
  34.  
  35. for($a=0; $a < 7; $a++){
  36.  
  37. imagestring($im, 5, $x, rand(6 , $img_height/5), substr($string, $a, 1), $font_color);
  38. $x += (5*2); #odstęp
  39.  
  40. }
  41.  
  42. header("Content-type: image/gif");
  43. imagegif($im);
  44. imagedestroy($im);
  45.  
  46. ?>


Sęk w tym że po przerzuceniu tego do smarty nie pokazuje się zdjęcie nie wiem dla czego :/
Ktoś ma jakieś pomysły?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
auto-all
post 12.04.2011, 20:39:03
Post #2





Grupa: Zarejestrowani
Postów: 49
Pomógł: 7
Dołączył: 2.04.2011
Skąd: Wawa

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


Tesli w kodzie wygenerowanym przez smarty nie pojawi się obrazek prawdopodobnie źle do niego linkujesz.

Po co pokazujesz nam działający kod, pokaż lepiej ten kod który masz w smarty lub to co generuje po wywołaniu strony z przeglądarki.

Moim zdaniem pewnie masz w <img src="../captcha.php" ? Tak jakbyś linkował do generatora z katalogu templates co jest oczywistym błędem

Ten post edytował auto-all 12.04.2011, 20:39:22
Go to the top of the page
+Quote Post
Atlas
post 12.04.2011, 20:47:24
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 26.09.2007

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


Cytat(auto-all @ 12.04.2011, 21:39:03 ) *
Tesli w kodzie wygenerowanym przez smarty nie pojawi się obrazek prawdopodobnie źle do niego linkujesz.

Po co pokazujesz nam działający kod, pokaż lepiej ten kod który masz w smarty lub to co generuje po wywołaniu strony z przeglądarki.

Moim zdaniem pewnie masz w <img src="../captcha.php" ? Tak jakbyś linkował do generatora z katalogu templates co jest oczywistym błędem


Właśnie też myślałem że źle linkuje ale to nie to. Sprawdzałem źródło pliku i wskazywało dobrze na localhost/capchta/captcha.php

sad.gif

  1. <div id="content">
  2. <div id="search"><h1>Usuń departament</h1></div>
  3.  
  4. <center>{$info}</center>
  5. <h3>{$ok_msg}{$error_msg}</h3>
  6. <form method=POST enctype="multipart/form-data" action="remove_dep.php">
  7. <tr><td>Departament:</td><td><select name="departament" <option>Wybierz departament który chcesz usunąć</option>
  8. {section name=mysec loop=$tabela}
  9. {strip}
  10. <option value="{$tabela[mysec].dep}"> {$tabela[mysec].dep} </option>
  11. {/strip}
  12. {/section}
  13. </select><br/></td><td></td></tr>
  14. <tr><td colspan="3">w celu weryfikacji wprowadź poprawnie wygenerowany kod</td></tr>
  15. <tr><td><img src="captcha/captcha.php" alt="" style="vertical-align: middle" /> </td>
  16. <td><input type="text" name="captcha" /></td>
  17. <td><input type="submit" value="Zatwierdź" name="submit" class="button" /></td></tr>
  18. </form><br/>
  19.  
  20. <div id="info">
  21. <table><tr><td><img src="css/img/back.png" style="border: 0px;" alt="" width="32px" height="32px"/></td><td><a href="panel_admin.php">Wróć do Administracji</a></td></tr></table><br/>
  22. </div>
  23. </div>


Ten post edytował Atlas 12.04.2011, 20:53:54
Go to the top of the page
+Quote Post
auto-all
post 12.04.2011, 21:22:30
Post #4





Grupa: Zarejestrowani
Postów: 49
Pomógł: 7
Dołączył: 2.04.2011
Skąd: Wawa

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


Z kodu wynika iż struktura plików powinna wyglądać:

localhost/capchta/captcha.php - plik generatora
localhost/index.php - plik wywołujący

A jaki kod widzi przeglądarka po wywołaniu pliku index.php?
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: 24.07.2025 - 20:35