Bu kod neden çalışmaz kimse bana söyleyebilir misiniz?
<?php $err=1; ?>
<img src="334234234234234.gif" onError="<?php $err=0; ?>" />
<?php echo "<br />" . $err; ?>
Görüntü varsa bile, onerror hala yürütülür. Neden?
HTML PHP değişkenlerini ayarlamak olamaz. Bunlar sadece sunucu üzerinde iken ayarlanabilir. IMG etiketinin onError yöntem PHP değişkenleri erişimi yoktur.
Sayfa yaşam döngüsü:
Eğer semantik yapılamaz madde 1 ile 3 öğe birleştirmek için çalışıyorsanız, unutmayın.
Eğer çalışıyorsanız ne yapmak tek yolu bu olay için bir javascript yöntemi ekleyin olmak ve onError yöntemi koştu ve eğer sunucuya iletişim olacaktır. Ama bu büyük olasılıkla sen yaramazsın biraz daha karmaşık olacak.
Php sunucu tarafı kodu bu yana, <?php $err=0; ?>
aslında olur onError olmadığını idam alacak. Bunu yapmak için someother yöntem veya Javascript (veya başka bir istemci tarafı kodu) kullanmak isteyeceksiniz.
Yapmak isteyen tüm görüntü yük değilse ekrana bir değişken yazdırmak ise, (bir açılan kutu oluşturmak için onError="alert('ERROR: Image did not load');"
kullanabilir veya üzerinde html değiştirmek için javascript kullanabilirsiniz Eğer sunucuya konuşmak istiyorsanız sayfa), ama, sen javascript ile bir formu göndermek veya bir AJAX yöntemi kullanmak ya gerekecek.
Eğer bir dosyanın varlığını kontrol ediyorsanız PHP güzel bir fonksiyonu sunuyor
Sayfasından Modifiye örnek.
<?php
$filename = '/path/to/334234234234234.gif';
if (file_exists($filename)) {
echo "<img src='334234234234234.gif'/>";
} else {
echo "The file $filename does not exist";
}
?>
Sorunuzu yanıtlamak için.
Even when the image exists, the onerror is still executed. Why?
OnError asla çalıştırılmaz. Bu yürütmek için görünür komut sonunda $ err değişkeni açıkça çıktı çünkü. Eğer yukarıdaki kodu kullanırsanız eğer ben bir JavaScript olayı dayanmadan amaçlanan sonuç olduğuna inanıyorum ne elde edebilirsiniz.