0

萨拉姆每个人

我在 fatcow 中托管这个脚本,但它给了我一个“内部服务器错误”。

这是脚本:

<?php 
    create_image(); 
    exit();

    function create_image() 
    {
        // Set the content-type

        // Create the image
        $im = imagecreatefrompng('coupon.png');
        // Create red color
        $red = imagecolorallocate($im, 120, 20, 20);
        //get font arail
        $font = 'font/arial.ttf';
        // Insert variables into coupon

        imagettftext($im, 36, 0, 176, 695, $red, $font, $_POST['Tdesc']);
        imagettftext($im, 36, 0, 176, 985, $red, $font, $_POST['Tclient']);
        imagettftext($im, 40, 0, 176, 1145, $red, $font, $_POST['Texpire']);
        imagettftext($im, 42, 0, 176, 1355, $red, $font, $_POST['Toffre']);

        imagettftext($im, 55, 0, 1796, 422, $red, $font, $_POST['Tcommande']);
        imagettftext($im, 36, 0, 1488, 1000, $red, $font, $_POST['Tadresse']);
        imagettftext($im, 36, 0, 1488, 1290, $red, $font, 'Tél. '. $_POST['Ttel']);
        imagettftext($im, 60, 0, 1488, 1590, $red, $font, $_POST['Tvaleur']);
        imagettftext($im, 60, 0, 1488, 1840, $red, $font, $_POST['Tcode']);

        // Using imagepng() results in clearer text compared with imagejpeg()
        imagepng($im);
        imagedestroy($im);  

    } 
?>

和错误信息:

内部服务器错误

服务器遇到内部错误或配置错误,无法完成您的请求。

请联系服务器管理员,并告知他们错误发生的时间,以及您所做的任何可能导致错误的事情。

服务器错误日志中可能提供有关此错误的更多信息。

4

2 回答 2

0

检查您的日志,它们可能很有用。尝试使用代码制作一个 php 信息页面 -

<?php phpinfo(); ?> 

并检查是否已安装PHP GD 库。您还可以通过编辑 php.ini 文件或将这段代码添加到文件中来尝试让页面向您显示错误。

ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);
于 2013-07-31T03:51:40.910 回答
0

易于修复: - 只需颠倒您的定义并调用;

<?php

    function create_image() 
    {
        // Set the content-type

        // Create the image
        $im = imagecreatefrompng('coupon.png');
        // Create red color
        $red = imagecolorallocate($im, 120, 20, 20);
        //get font arail
        $font = 'font/arial.ttf';
        // Insert variables into coupon

        imagettftext($im, 36, 0, 176, 695, $red, $font, $_POST['Tdesc']);
        imagettftext($im, 36, 0, 176, 985, $red, $font, $_POST['Tclient']);
        imagettftext($im, 40, 0, 176, 1145, $red, $font, $_POST['Texpire']);
        imagettftext($im, 42, 0, 176, 1355, $red, $font, $_POST['Toffre']);

        imagettftext($im, 55, 0, 1796, 422, $red, $font, $_POST['Tcommande']);
        imagettftext($im, 36, 0, 1488, 1000, $red, $font, $_POST['Tadresse']);
        imagettftext($im, 36, 0, 1488, 1290, $red, $font, 'Tél. '. $_POST['Ttel']);
        imagettftext($im, 60, 0, 1488, 1590, $red, $font, $_POST['Tvaleur']);
        imagettftext($im, 60, 0, 1488, 1840, $red, $font, $_POST['Tcode']);

        // Using imagepng() results in clearer text compared with imagejpeg()
        imagepng($im);
        imagedestroy($im);  

    } 

    create_image(); 
    exit();
?>

您可能还应该添加一个header调用来设置内容类型。

将来如果您遇到此类错误,您也可以添加:

if (isset($_GET["debug"])){
    ini_set("display_errors", "1");
    error_reporting(E_ALL);
    }

打印出任何错误 - if 是可选的;我的大多数文件都有这个,所以我可以将 ?debug 添加到 url,如果我打错字或其他什么,我可以立即看到问题。

于 2013-07-31T03:45:53.317 回答