Php 简单验证码图片不显示
我试图通过以下网站创建一个简单的PHP验证码: 我完全按照教程所教的去做,但最终验证码图像并没有显示出来 我检查了php错误日志文件,并使用错误报告来检查错误是什么,但没有显示任何错误。这里是脚本需要一些帮助 myform.phpPhp 简单验证码图片不显示,php,captcha,Php,Captcha,我试图通过以下网站创建一个简单的PHP验证码: 我完全按照教程所教的去做,但最终验证码图像并没有显示出来 我检查了php错误日志文件,并使用错误报告来检查错误是什么,但没有显示任何错误。这里是脚本需要一些帮助 myform.php <?php session_start(); error_reporting(E_ALL); if(isset($_POST['txtName'])){ $error = ''; if(isset($_POST['t
<?php session_start();
error_reporting(E_ALL);
if(isset($_POST['txtName'])){
$error = '';
if(isset($_POST['txtCaptcha']) and $_POST['txtCaptcha'] !=''){
if($_SESSION['captcha_text'] == $_POST['txtCaptcha']){
// Action of form...
echo $_POST['txtName'].' is successfully processed';
exit;
}else{
$error = '<font color="red">Sorry Incorrect captcha entered...</font>';
}
}else{
$error = '<font color="red">You have not entered captcha.</font>';
}
}
?>
<html>
<head><title>Captcha</title></head>
<body>
<?php if(isset($error)){ echo $error; } ?>
<form action="myform.php" method="post">
<input type="text" name="txtName" value="" placeholder="Enter your name" />
<br /><br />
<img src="captcha.php" /> <input type="text" name="txtCaptcha" value="" placeholder="Enter the number you see in the image" />
<br /><br/>
<input type="submit" value="Submit Data" />
</form>
</body>
</html>
<?php
error_reporting(E_ALL);
// Generate Random Number
$random_number = rand(1,9).rand(1,9).rand(1,9);
$_SESSION['captcha_text'] = $random_number;
// Insert random number into image
$captcha_image = imagecreatefromjpeg("captcha.jpg");
$font_color = imagecolorallocate($captcha_image, 0, 0, 0);
imagestring($captcha_image, 5, 20, 5, $random_number, $font_color);
imagejpeg($captcha_image);
imagedestroy($captcha_image);
?>
验证码
captcha.php
<?php session_start();
error_reporting(E_ALL);
if(isset($_POST['txtName'])){
$error = '';
if(isset($_POST['txtCaptcha']) and $_POST['txtCaptcha'] !=''){
if($_SESSION['captcha_text'] == $_POST['txtCaptcha']){
// Action of form...
echo $_POST['txtName'].' is successfully processed';
exit;
}else{
$error = '<font color="red">Sorry Incorrect captcha entered...</font>';
}
}else{
$error = '<font color="red">You have not entered captcha.</font>';
}
}
?>
<html>
<head><title>Captcha</title></head>
<body>
<?php if(isset($error)){ echo $error; } ?>
<form action="myform.php" method="post">
<input type="text" name="txtName" value="" placeholder="Enter your name" />
<br /><br />
<img src="captcha.php" /> <input type="text" name="txtCaptcha" value="" placeholder="Enter the number you see in the image" />
<br /><br/>
<input type="submit" value="Submit Data" />
</form>
</body>
</html>
<?php
error_reporting(E_ALL);
// Generate Random Number
$random_number = rand(1,9).rand(1,9).rand(1,9);
$_SESSION['captcha_text'] = $random_number;
// Insert random number into image
$captcha_image = imagecreatefromjpeg("captcha.jpg");
$font_color = imagecolorallocate($captcha_image, 0, 0, 0);
imagestring($captcha_image, 5, 20, 5, $random_number, $font_color);
imagejpeg($captcha_image);
imagedestroy($captcha_image);
?>
当我们在飞行中绘制图像时,我们必须告诉浏览器我们发送给它的内容(在您的情况下)
header ("Content-type: image/jpeg");
它变成:
....
header ("Content-type: image/jpeg");
imagejpeg($captcha_image);
imagedestroy($captcha_image);
您还可以验证状态
/* Attempt to open */
$captcha_image = imagecreatefromjpeg("captcha.jpg");
/* See if it ok */
if($captcha_image)
{
}else{
// failed to open
$captcha_image = imagecreatetruecolor(150, 30);
}
当我们在飞行中绘制图像时,我们必须告诉浏览器我们发送给它的内容(在您的情况下)
header ("Content-type: image/jpeg");
它变成:
....
header ("Content-type: image/jpeg");
imagejpeg($captcha_image);
imagedestroy($captcha_image);
您还可以验证状态
/* Attempt to open */
$captcha_image = imagecreatefromjpeg("captcha.jpg");
/* See if it ok */
if($captcha_image)
{
}else{
// failed to open
$captcha_image = imagecreatetruecolor(150, 30);
}
谢谢你的回复,我测试了你列出的方式来验证。。。加载captcha.jpg失败。但我不知道为什么加载失败,它们都是相同的file@JakeCube:是否安装了GD<代码>var_dump(get_extension_funcs(“gd”))我确定gd是否已安装,我使用的是XAMPP 7.0.23。我用var_dump测试过,它显示数组中有101个单位。@JakeCube:可能有权限问题,您仍然可以创建验证码,而不必使用imagecreatefromjpeg,
$captcha_image=imagecreatetruecolor(150,30)代码>,这里是,请参阅我的editTested和“ImageCreateTureColor”,加载图像失败后没有显示任何内容。为了研究你给brbThanks回复的URL,我测试了你列出的验证方法。。。加载captcha.jpg失败。但我不知道为什么加载失败,它们都是相同的file@JakeCube:是否安装了GD<代码>var_dump(get_extension_funcs(“gd”))
我确定gd是否已安装,我使用的是XAMPP 7.0.23。我用var_dump测试过,它显示数组中有101个单位。@JakeCube:可能有权限问题,您仍然可以创建验证码,而不必使用imagecreatefromjpeg,$captcha_image=imagecreatetruecolor(150,30)代码>,这里是,请参阅我的editTested和“ImageCreateTureColor”,加载图像失败后没有显示任何内容。要研究你给brb的URL吗