URL получить не будет работать на Google Chrome

Привет у меня есть проблема с разделом GET Google Chrome. Вы можете понять лучше с этим DEMO

Пожалуйста, откройте демонстрационную страницу, используя Google Chrome и Internet Explorer или Firefox. Он отлично работает в Internet Explorer, Firefox или других браузерах, но работает не только в Chrome.

Любой может помочь мне здесь, пожалуйста.

Коды файла code.php находятся здесь:

<?php if ( !isset( $_SESSION ) ) session_start(); header( "(anti-spam-content-type:) image/png" );

$acf_num = rand( 0, 9999 );
$code_num = rand( 0, 24 );
$mixed_string = substr( md5( $acf_num ), $code_num, 5 ); // Length of String
$mixed_md5 = md5( $mixed_string );

$_SESSION['SocialMaterial']['AnimationContactForm']['verifyCode'] = $mixed_md5;

// Verification Image Background randomizer
$rand = dirname( dirname( __FILE__ ) ) . '/';
$CoDes = array(
    $rand . 'acf_img/verify/1.png',
    $rand . 'acf_img/verify/2.png',
    $rand . 'acf_img/verify/3.png'
);
$VerifyCodes = array_rand( $CoDes, 1 );

// Verification Image Configurations
$img_handle = imagecreatefrompng( $CoDes[$VerifyCodes] );
$text_colour = imagecolorallocate( $img_handle, 255, 255, 255 );
$font_size = 50;

$size_array = getimagesize( $CoDes[$VerifyCodes] );
$img_w = $size_array[0];
$img_h = $size_array[1];

$horiz = round( ( $img_w/2 )-( ( strlen( $mixed_string )*imagefontwidth( 50 ) )/2 ), 1 );
$vert = round( ( $img_h/2 )-( imagefontheight( $font_size )/2 ) );

// Make the Verification Image
imagestring( $img_handle, $font_size, $horiz, $vert, $mixed_string, $text_colour );
imagepng( $img_handle );

// Destroy the Image to keep Server Space
imagedestroy( $img_handle );

Проблема консоли разработчика заключается в следующем:

введите описание изображения здесь

2 ответа

Решение

Просто измените ваши коды code.php следующим образом:

<?php 
error_reporting(E_ALL);
ini_set('display_errors', 1);
if ( !isset( $_SESSION ) ) session_start(); 
header('Content-type: image/png');
header('Content-transfer-encoding: binary');
$acf_num = rand( 0, 9999 );
$code_num = rand( 0, 24 );
$mixed_string = substr( md5( $acf_num ), $code_num, 5 ); // Length of String
$mixed_md5 = md5( $mixed_string );
header("Content-Disposition: inline; fileimg= $acf_num-$code_num");
$_SESSION['SocialMaterial']['AnimationContactForm']['verifyCode'] = $mixed_md5;

// Verification Image Background randomizer
$rand = dirname( dirname( __FILE__ ) ) . '/';
$CoDes = array(
    $rand . 'acf_img/verify/1.png',
    $rand . 'acf_img/verify/2.png',
    $rand . 'acf_img/verify/3.png'
);
$VerifyCodes = array_rand( $CoDes, 1 );

// Verification Image Configurations
$img_handle = imagecreatefrompng( $CoDes[$VerifyCodes] );
$text_colour = imagecolorallocate( $img_handle, 255, 255, 255 );
$font_size = 50;

$size_array = getimagesize( $CoDes[$VerifyCodes] );
$img_w = $size_array[0];
$img_h = $size_array[1];

$horiz = round( ( $img_w/2 )-( ( strlen( $mixed_string )*imagefontwidth( 50 ) )/2 ), 1 );
$vert = round( ( $img_h/2 )-( imagefontheight( $font_size )/2 ) );

// Make the Verification Image
imagestring( $img_handle, $font_size, $horiz, $vert, $mixed_string, $text_colour );
imagepng( $img_handle );

// Destroy the Image to keep Server Space
imagedestroy( $img_handle );

Журналы изменений:

Удалено: header( "(anti-spam-content-type:) image/png" );

Добавлены заголовки, потому что вы должны сообщить браузеру, какой тип изображения с такими заголовками HTML:

       header('Content-type: image/png');
       header('Content-transfer-encoding: binary');
       header("Content-Disposition: inline; fileimg= $acf_num-$code_num");

Я не могу проверить, решит ли это вашу проблему, но вам нужно сообщить браузеру, какой это тип изображения с HTML-заголовками, например:

  header('Content-type: image/png');
  header('Content-transfer-encoding: binary');
  header('Content-length: '.$size);

это для PNG-файла размером $size, Заголовки должны быть отправлены в браузер, прежде чем что-либо еще.

Другие вопросы по тегам