Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][Smarty]Captcha
Forum PHP.pl > Forum > Przedszkole
Atlas
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?
auto-all
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
Atlas
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>
auto-all
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?
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.