Arasıra Hatalar PHP Görüntüler Yerine Döndü Başlarken

1 Cevap php

Ben bir senaryo var renkler GD ve PHP ile bir dünya haritası üzerinde istenen ülke. PHP istekleri onay kutularını denir. Çok hızlı sonra PHP betikleri diyoruz eğer bir "out XED" hata görüntü verir gibi bu tür görünüyor. SetTimeout veya başka bir şey ile PHP istekleri kuyruğa bir yolu var mı, bu nedenle yeni bir çek olayı başarısız hiç?

İşte onClick olaylar denilen Javascript olduğunu:

    function onBoxClicked(frame, country){
var randomNumber = Math.floor(Math.random()*100000001);
if (document.getElementById(country).checked == true){
window.parent.document.getElementById('world_map').src=(country)+".php?r=" + randomNumber;
}else if (document.getElementById(country).checked == false){
window.parent.document.getElementById('world_map').src=(country)+"_unload.php?r=" + randomNumber;
}
}

İşte tipik ülke PHP dosyası (I kaldırılabilir bazı önemsiz olduğunu biliyorum) 'dir:

<?php
session_cache_limiter('nocache');
$cache_limiter = session_cache_limiter();
header("Cache-Control: no-cache, must-revalidate"); // HTTP/1.1
header("Expires: Sat, 26 Jul 1997 05:00:00 GMT");// Date in the past
$ip=$_SERVER['REMOTE_ADDR'];
$oldImageName = 'world_map2_users_copy.png';
$newImageName = $ip.'.'.'world_map2_users_copy.png';
if (file_exists($newImageName)){
$im = imagecreatefrompng($newImageName);
}else{
copy($oldImageName, $newImageName);
$im = imagecreatefrompng($newImageName);
}
$syria_color = imagecolorallocate($im, 0, 158, 96);
imagefill($im, 780, 205, $syria_color);
ImagePNG($im, $newImageName);
ImagePNG($im);
ImageDestroy($im);
?>

1 Cevap

Eğer yaparsanız

ImagePNG($im, $newImageName);

İki PHP-komut aynı anda aynı dosyaya yazma imkanı vardır.

Neden yine diske yazıyoruz?

Sadece yapın:

$im = imagecreatefrompng($oldImageName);
$syria_color = imagecolorallocate($im, 0, 158, 96);
imagefill($im, 780, 205, $syria_color);
ImagePNG($im);
ImageDestroy($im);

En iyi çözüm önceden tüm görüntü dosyaları oluşturmak için, bu nedenle JavaScript sadece söyleyebiliriz:

window.parent.document.getElementById('world_map').src=country+".png";

Bu durumda da önbelleğe alma sorunları kaybedersiniz.