Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/278.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 简单验证码图片不显示_Php_Captcha - Fatal编程技术网

Php 简单验证码图片不显示

Php 简单验证码图片不显示,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验证码:

我完全按照教程所教的去做,但最终验证码图像并没有显示出来

我检查了php错误日志文件,并使用错误报告来检查错误是什么,但没有显示任何错误。这里是脚本需要一些帮助

myform.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" />&nbsp;&nbsp;&nbsp;<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" />&nbsp;&nbsp;&nbsp;<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吗