|
|
|
| Попробовал сделать простенькую математическую капчу вроде этого (не знаю так делаюут или нет...)Все нормально было пока я не решил вместо echo $one+$two= показывать картинки.
Index.php
<?php
$one = rand(0,20);
$two = rand(0,20);
if(rand(0,1)>0)
{
$act="+";
$text="$one+$two=";
}
else
{
$act="-";
$text="$one-$two=";
}
$im = imagecreate(100, 50);
$bg = imagecolorallocate($im, 255, 153, 0);
$textcolor = imagecolorallocate($im, 255, 255, 0);
imagestring($im, 5, 25, 15, $text, $textcolor);
header('Content-type: image/png');
header('Cache-control: no-cache, no-store');
imagepng($im);
imagedestroy($im);
exit();
?>
<form action="file.php">
<input type="text" name="one" size="30"><br>
<input type="text" name="two" size="30"><br>
//надо было вот тут ставить картинку но из за header знаете ли он не может change header information ....
<input type="text" name="check" maxlength="2" size="3"/>
<input type="hidden" name="1" value="<?php echo"$one";?>" />
<input type="hidden" name="2" value="<?php echo"$two";?>" />
<input type="hidden" name="3" value="<?php echo"$act";?>" />
<input type="submit" value="submit" />
</form>
|
file.php
<?php
$act=$_GET['3'];
switch ($act) {
case "+":
$h=$_GET['1']+$_GET['2'];
break;
case "-":
$h=$_GET['1']-$_GET['2'];
break;
}
if (!is_numeric($_GET['check'])||($h != $_GET['check'])){
die('You answered the bot check incorrectly.');
}else{
echo"molotok!";
// и что то делаем тут
}
?>
|
Но из за header непоказывает форму.С этим можно что то делать? | |
|
|
|
|
|
|
|
для: makigo
(16.12.2010 в 13:17)
| | Попробуйте ответить на следующий вопрос.
У Вас скрипт что выводит? Картинку или html-код?
Пока не ответите, дело не сдвинется.
Отдельным пунктом... Насчет капчи.
Если Вы показываете формулу, зачем связываться с картинкой? | |
|
|
|
|
|
|
|
для: Trianon
(16.12.2010 в 17:20)
| | Здравствуйте!!!
Капча выводило формулу например: 5+14= но подумал может правильнее будет представить это в виде картинки?И тут все и началось... | |
|
|
|