Autor | Zpráva | ||
---|---|---|---|
Lolkovnik Profil * |
#1 · Zasláno: 13. 2. 2008, 10:39:28
Mám fci na generaci captchy.
function captcha($text) { header("Content-type: image/png"); $img = imagecreatefromPNG("bg.png"); $white = imagecolorallocate($img, 245, 245, 245); $black = imagecolorallocate($img, 0, 0, 0); $grey = imagecolorallocate($img, 172, 172, 172); putenv('GDFONTPATH=' . realpath('.')); imagettftext($img, 25, 1, 14, 34, $grey, "actionj.ttf", $text); imagettftext($img, 25, 1, 12, 32, $black, "actionj.ttf", $text); imagepng($img); imagedestroy($img); } Potom mám formulář, ale ty data se mi tam nenačtou proč? <?php require_once("rand_code.php"); $text = code(4); ?><form action="captcha.php" method="post"> <fieldset> <legend>Captcha formulář</legend> <label style="width: 150px; float: left">Obrázek</label> <p><?php captcha($text); ?></p> <input type="text" value="" name="code"> <input type="submit" value="Ověřit správnost mého kódu" name="odeslat"> </fieldset> </form> Obrázek captcha.php nelze zobrazit, protože obsahuje chyby. A nevypíše se ani formulář, když dám stránku bez formu a dát jen <?php captcha($text); ?> tak se normálně zobrazí, co dělám špatně? Děkuji všem |
||
suky Profil |
#2 · Zasláno: 13. 2. 2008, 11:24:37
header("Content-type: image/png"); Je pred ni vystup... |
||
Lolkovnik Profil * |
#3 · Zasláno: 13. 2. 2008, 20:28:38
Tak předkládam kompletní kod
<?php require_once("rand_code.php"); /** * @file captcha.php * @description Form with captcha * @author Filip Beneš * @copyright 2008 */ $text = code(4); ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <meta name="author" content="Filip Beneš"> <title>Captcha formulář</title> </head> <body> <form action="captcha.php" method="post"> <fieldset> <legend>Captcha formulář</legend> <label style="width: 150px; float: left">Obrázek</label> <p><?php captcha($text); ?></p> <input type="text" value="" name="code"> <input type="submit" value="Ověřit správnost mého kódu" name="odeslat"> </fieldset> </form> a tady soubor s funkcemi <?php /** * @file rand_code.php * @description generating a rand code * @author Filip Beneš * @copyright 2008 */ function captcha($text) { header("Content-type: image/png"); $img = imagecreatefromPNG("bg.png"); $white = imagecolorallocate($img, 245, 245, 245); $black = imagecolorallocate($img, 0, 0, 0); $grey = imagecolorallocate($img, 172, 172, 172); putenv('GDFONTPATH=' . realpath('.')); imagettftext($img, 25, 1, 14, 34, $grey, "actionj.ttf", $text); imagettftext($img, 25, 1, 12, 32, $black, "actionj.ttf", $text); imagepng($img); imagedestroy($img); } function code($mista) { $souhlasky = array("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "z"); $samohlasky = array("a", "e", "i", "o", "u", "y"); $code = ""; $hlaska = "a"; for ($i = 1; $i <= $mista; $i++) { if ($hlaska == "a") { $nahoda = rand(0, count($souhlasky) - 1); $code .= $souhlasky[$nahoda]; $hlaska = "b"; } elseif ($hlaska == "b") { $nahoda = rand(0, count($samohlasky) - 1); $code .= $samohlasky[$nahoda]; $hlaska = "a"; } } return strtoupper($code); } ?> |
||
spook Profil |
#4 · Zasláno: 13. 2. 2008, 20:43:19
|
||
suky Profil |
#5 · Zasláno: 13. 2. 2008, 20:45:19
<form action="captcha.php" method="post">
<fieldset> <legend>Captcha formulář</legend> <label style="width: 150px; float: left">Obrázek</label> <p> Tohle ti neprijde jako vystup? :o) |
||
spook Profil |
#6 · Zasláno: 13. 2. 2008, 20:49:22
mno nevim jestli to chápu dobře, ale funkce se podle mě vyková až při jejím volání, takže vstupů před úpravou hlaviček tam máš celkem dost(imho)
zkus: <p><?php ob_start("captcha"); captcha($text); ob_end_flush(); ?></p> //omlovám se prázdnej příspěevek, kterej byl odeslán omylema prosím moderátory o jeho smazání;) |
||
djlj Profil |
#7 · Zasláno: 13. 2. 2008, 21:24:05
Ten obrázek se přece musí generovat v jiném souboru…
|
||
Lolkovnik Profil * |
#8 · Zasláno: 13. 2. 2008, 22:05:19
<p><?php ob_start("captcha"); captcha($text); ob_end_flush(); ?></p>
Tak tohle sice nevypíše chybu ale nevypíše to vůbec nic Ten obrázek se přece musí generovat v jiném souboru… Nevím, jak bych to teda měl upravit... |
||
djlj Profil |
#9 · Zasláno: 13. 2. 2008, 22:07:58
<img src="captcha.php">
V souboru captcha.php bude pak ten tvůj kód. |
||
Časová prodleva: 16 let
|
0