Salam Every body
I host this script in fatcow but it give me an "Internal Server Error".
Here are the script:
<?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);
}
?>
And the error message:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator, and inform them of the time the error occurred, and anything you might have done that may have caused the error.
More information about this error may be available in the server error log.
Easy to fix: - just reverse your definition and call;
<?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();
?>
You should probably also add a header
call to set the content type.
In the future if you have this kind of error you can also just add:
if (isset($_GET["debug"])){
ini_set("display_errors", "1");
error_reporting(E_ALL);
}
to print out any errors - the if is optional; I have that on most of my files so I can just add ?debug to the url and instantly see the problem(s) if I make a typo or something.
Check your logs, they may prove useful. Try making a php info page with the code -
<?php phpinfo(); ?>
and check if the PHP GD library has been installed. You can also try and get the page to show you errors by either editing your php.ini file or by adding this piece of code to your file.
ini_set('display_errors',1);
ini_set('display_startup_errors',1);
error_reporting(-1);