gpt4 book ai didi

javascript - Captcha php ...我不知道什么是错误

转载 作者:行者123 更新时间:2023-11-28 03:03:37 25 4
gpt4 key购买 nike

我是 php 的新手,我想做 capthca ...我写了代码、验证等,结果我只得到了一张小图片 ...上面什么都没有 ...我的程序没有告诉我哪里出错了

这是我在 captcha.php 中的代码:

<?php
session_start();`enter code here`


// build the base captcha image

$img = imagecreatetruecolor(80,30);

$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
$grey = imagecolorallocate($img,150,150,150);
$red = imagecolorallocate($img, 255, 0, 0);
$pink = imagecolorallocate($img, 200, 0, 150);

// build the base captcha image - END

// building randomString
function randomString($length){
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime()*1000000);
$str = "";
$i = 0;

while($i <= $length){
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$str = $str . $tmp;
$i++;
}
return $str;
}

for($i=1;$i<=rand(1,5);$i++){
$color = (rand(1,2) == 1) ? $pink : $red;
imageline($img,rand(5,70),rand(5,20), rand(5,70)+5,rand(5,20)+5, $color);
}
// building randomString - END

// fill image with a white rectangle
imagefill($img, 0, 0, $white);

$string = randomString(rand(7,10));
$_SESSION['string'] = $string;

imagettftext($img, 11, 0, 10, 20, $black, "calibri.ttf", $string);
// fill image with a white rectangle - END

// type of image
header("Content-type: image/png");
imagepng($img);


?>

这是我在 contact.php 中的代码:

<?php

session_start();

if(isset($_POST['submit'])) {

if(!empty($_POST['ime']) && !empty($_POST['email']) && !empty($_POST['poruka']) && !empty($_POST['code'])) {

if($_POST['code'] == $_SESSION['rand_code']) {

// send email
$accept = "Poruka uspesno poslata.";

} else {

$error = "Pogresan kod.";
}

} else {

$error = "Molimo Vas popunite sva polja.";
}
}

?>

<!DOCTYPE html >
<html >
<head>
<title>Kontaktirajte nas</title>

</head>

<body>

<?php if(!empty($error)) echo '<div class="error">'.$error.'</div>'; ?>
<?php if(!empty($accept)) echo '<div class="accept">'.$accept.'</div>'; ?>

<form method="post">
<p>Ime<input type="text" name="ime" /></p>
<p>Email<input type="text" name="email" /></p>
<p>Poruka<textarea name="poruka" rows=”25” cols=”40”></textarea></p>
<img src="captcha.php"/>
<p>Posalji<input type="text" name="code" /></p>
<p><input type="submit" name="submit" value="Posalji" class="button" /></p>
<p>"IPO" MASARIKOVA br.5, BEOGRAD</p>
</form>

</body>
</html>

最佳答案

As you are setting header as header("Content-type: image/png");, page will not render other content.

Just separate your captcha and form so that it will work.

例如,您的 captcha.php 将是:

<?php
session_start();
// build the base captcha image

$img = imagecreatetruecolor(80, 30);

$white = imagecolorallocate($img, 255, 255, 255);
$black = imagecolorallocate($img, 0, 0, 0);
$grey = imagecolorallocate($img, 150, 150, 150);
$red = imagecolorallocate($img, 255, 0, 0);
$pink = imagecolorallocate($img, 200, 0, 150);

// build the base captcha image - END

// building randomString
function randomString($length)
{
$chars = "abcdefghijkmnopqrstuvwxyz023456789";
srand((double)microtime() * 1000000);
$str = "";
$i = 0;

while ($i <= $length) {
$num = rand() % 33;
$tmp = substr($chars, $num, 1);
$str = $str . $tmp;
$i++;
}
return $str;
}

for ($i = 1; $i <= rand(1, 5); $i++) {
$color = (rand(1, 2) == 1) ? $pink : $red;
imageline($img, rand(5, 70), rand(5, 20), rand(5, 70) + 5, rand(5, 20) + 5, $color);
}
// building randomString - END

// fill image with a white rectangle
imagefill($img, 0, 0, $white);

$string = randomString(rand(7, 10));
$_SESSION['string'] = $string;

imagettftext($img, 11, 0, 10, 20, $black, "Gotham-Bold.otf", $string);
// fill image with a white rectangle - END

// type of image
header("Content-type: image/png");
imagepng($img);


?>

关于javascript - Captcha php ...我不知道什么是错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33582541/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com