| 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: 18 let
|
|||
0