PHP GD გენერირებული სურათი გამოსახულება არ არის ნაჩვენები, რადგან ის შეიცავს Firefox- ის შეცდომებს

PHP GD გენერირებული სურათი გამოსახულება არ არის ნაჩვენები, რადგან ის შეიცავს Firefox- ის შეცდომებს

PHP- თან ერთად სურათის წარმოქმნისას მაგალითად, სერვერზე შენახული სურათის დამატება, სურათის კოდის გამოყენებით ან JPEG- ის ნაცვლად მსგავსი გამოსახულება შეიძლება არ იყოს გენერირებული და შეცდომა, პირდაპირ Firefox- ში გამოჩნდეს, მაგრამ არა Chrome- ზე.

ამგვარი კოდი, მიუხედავად იმისა, რომ მუშაობს ზოგიერთ სერვერზე, შეიძლება ახლა მუშაობა სხვა, ზოგჯერ გაურკვეველი მიზეზების გამო. ჩემს შემთხვევაში, იგი კარგად მუშაობს ჯეროვნად ადგილობრივად, მაგრამ ინტერნეტის სერვერზე შეცდომით წარმოიშვა, იმიჯი არ არის ნაჩვენები, რადგან ის შეიცავს შეცდომებს.

საკითხი რამდენიმე მიზეზით მოდის, აქ არის რამდენიმე მათგანი:

გამომავალი უკვე ადრეა.

ნამდვილი შეცდომა გამოსახულების თაობაზე.

არასწორი სურათის ტიპი გამოიყენება.

სურათის ბიბლიოთეკა არ არის დაყენებული.

$stamp = imagecreatefrompng('watermark.png');
if(!$im = imagecreatefrompng('image.png')) die('Error generating image');
$marge_right = $marge_bottom = 10;
$sx = imagesx($stamp);
$sy = imagesy($stamp);

$copyimage = imagecopy($im, $stamp, imagesx($im) - $sx - $marge_right, imagesy($im) - $sy - $marge_bottom, 0, 0, imagesx($stamp), imagesy($stamp));

header('Content-type: image/png');
if(!imagepng($im)) die('Error generating image');
if(!imagedestroy($im)) die('Error generating image');
if(!imagedestroy($stamp)) die('Error generating image');

გამომავალი უკვე ადრეა

მაშინაც კი, თუ არ არის განზრახ, ეს შეიძლება იყოს მაგალითი იმისა, რომ სხვა წინა სკრიპტები ბოლოს და ბოლოს შეიცავს სივრციებს - თავიდან აიცილონ ეს შეცდომა, დარწმუნდით, რომ PHP- ის რეკომენდაციას არ აკმაყოფილებს PHP- ის ბოლო ტეგით?

ამის შემდეგ, სათაურის ფუნქციის გამოყენებამდე, გამოიყენეთ შემდეგი კოდი, რათა დარწმუნდეთ, რომ ადრე მითითებული სათაურის წაშლა ხდება

foreach (getallheaders() as $name => $value) {
header_remove($name);
}

ასევე ამ ფუნქციას, რათა დარწმუნდეთ, რომ გამომავალი არ არის გენერირებული ჰედერისა და გამოსახულების წინ

ob_end_clean();

ეს ჩემი საქმეში გადაწყდა და გამოსახულება სწორად იყო ნაჩვენები.

ნამდვილი შეცდომა გამოსახულების თაობაზე

იმ შემთხვევაში, თუ რეალური შეცდომა იყო გამოსახული იმიჯის შექმნისას, დარწმუნდით, რომ PHP არის მითითებული ყველა შესაძლო შეცდომის გამოსაქვეყნებლად და შეამოწმეთ შესაბამისი ჟურნალი, რათა შეძლოთ მისი გადასალახი და გადასაჭრელად.

შემდეგ კოდს PHP ყველა შეცდომას აწვდის ჟურნალში:

error_reporting(E_ALL);
ini_set('display_errors', '1');

ალბათ გაირკვეს, რომ შეცდომები დაფიქსირდა, მაშინაც კი, თუ ისინი ვერ გამოდიან გამომავალი HTML- ში სერვერის კონფიგურაციის გამო.

არასწორი სურათის ტიპი გამოიყენება

დარწმუნდით, რომ თქვენ იყენებთ სურათის ტიპებს სწორია, მაგალითად, ამ კოდის გამოყენებით png და jpeg შორის განასხვავებენ.

ასევე დარწმუნდით, რომ სათაურის სწორია გამოყენებული გამომავალი მიხედვით, დამოკიდებულია სურათების თაობის ფუნქციაზე

//to generate png image
header('Content-type: image/png');
if(!imagepng($im)) die('Error generating image');
//to generate jpeg image
header('Content-type: image/jpeg');
if(!imagejpeg($im)) die('Error generating image');

სურათის ბიბლიოთეკა არ არის დაყენებული

დარწმუნდით, რომ სურათის ბიბლიოთეკები დამონტაჟებულია. ამისათვის აწარმოეთ ფუნქცია phpinfo (); სკრიპტში და შეამოწმოთ გამომავალი PHP GD- თან დაკავშირებული შემდეგი მნიშვნელობისთვის, გრაფიკული ბიბლიოთეკა, რომელიც გამოიყენება ფუნქციებით, როგორიცაა imagepng ();

იმ შემთხვევაში, თუ პაკეტები არ არის დაკარგული, გზა გადაჭრის დამოკიდებულია თქვენს ადგილობრივ კონფიგურაციაში, ან პაკეტის დამატებას PEAR ბრძანებების გამოყენებით, ან პაკეტის ინსტალაციისთვის გადაწყვეტილი ვებ-ჰოსტის გამოყენებით.

რა უნდა გავაკეთოთ, როდესაც imagejpeg ან imagepng არ მუშაობს

In NotePad ++, გახსნა PHP ფაილი, რომელიც მოუწოდებს imagepng ფუნქცია, და შეინახეთ მას შემდეგ აპირებს მენიუში Encoding> კონვერტაციის UTF-8 გარეშე BOM.

DreamWeaver- ში, გადადით Page Properties> Title / Encoding> Uncheck ჩართეთ უნიკოდის ხელმოწერა (BOM).

როდესაც PHP imagejpeg ან imagepng არ მუშაობს, ეს სავარაუდოა იმის გამო, რომ PHP ფაილი კოდირებულია BOM- თან, მასალის ბილზე და ამიტომ დამატებითი ინფორმაცია იგზავნება იმიჯის მონაცემამდე.

PHP imagejpeg და PHP imagepng ფუნქციები ფუნქცია გამოიყენება სურათის კოდი პირდაპირ სერვერზე პასუხის რეჟიმში.

PHP - imagepng არ მუშაობს სწორად
PHP - imagepng ფუნქცია
PHP - imagejpeg ფუნქცია

Წაიკითხე მეტი

ფოტო გალერეა

PHP GD გენერირებული სურათი გამოსახულება არ არის ნაჩვენები, რადგან ის შეიცავს Firefox- ის შეცდომებს : შეცდომა გამოსახულება არ არის ნაჩვენები, რადგან Firefox შეიცავს შეცდომებს
PHP GD გენერირებული სურათი გამოსახულება არ არის ნაჩვენები, რადგან ის შეიცავს Firefox- ის შეცდომებს : დინამიურად გენერირებული სურათი PHP- ის გამოყენებით
PHP GD გენერირებული სურათი გამოსახულება არ არის ნაჩვენები, რადგან ის შეიცავს Firefox- ის შეცდომებს : PHP GD პაკეტის დეტალები phpinfo () ფუნქციის გამოყენებით

მსგავსი სტატიები

კომენტარები (6)

Irvin Vasquez, 2018-08-19
Simple, clear and well explained, many thanks
Joyce Lawrence, 2018-08-19
ありがとう、非常に有益な
Catherine Roberts, 2018-08-19
Dokładnie tego, czego szukałem, idealnie
Headlinext, 2018-08-19
जानकारी का महान टुकड़ा, साझा करने के लिए धन्यवाद
Marshel, 2018-08-19
विश्वास नहीं कर सकता कि मुझे अंत में समाधान मिला, यह लंबे समय तक एक दुःस्वप्न था, अब हल हो गया
porcateraC, 2018-08-19
بالضبط ما كنت أبحث عنه ، مثالي

დატოვე კომენტარი