Neden Krom farklı sayfa kaynağını gösteriyor?

6 Cevap php

Neden Chrome html kodu kaynak Google Görünümü Kaynak açısından bakıldığında göstermesi gerektiğini göstermek değil ki

Örneğin, ben böyle yazdım

 <div><?php echo "HELLO!" ?></div>

Ben kaynağını görüntülemek Ama eğer, "Merhaba" bu sayfada MERHABA görüntülenen bile yok!

Ben PHP takılı olan bir değere sahip bir girdiyi oluşturmak eğer, bu değer sayfada görüntülenen olsa bile kaynağında değerini göstermez! Hatta bazen gizli giriş etiketi gösterilir değil ama HALA (sonraki sayfa gizli değişkenleri alabilir çünkü biliyorum) sonraki sayfa için bunu taşıyor.

UPDATE: AJAX kullanılmaz. IE ve FF izlendi ve beklendiği gibi onlar kaynağını gösterebilir. Beklendiği gibi yalnızca Google Chrome gelmedi. Ben online kodu sağlayabilir böylece kodumu sıkıştırmak için çalışıyor ama bu davranışı göstermek mümkün oldu - benim tam kod şey kaynak değişkenleri gösterilmesini Chrome'u engelliyor. Şimdi, muhtemelen session_start şey () ve geçerli giriş kontrol bir fonksiyon düşünüyorum. Ne Bence Chrome belirli bir oturum düzenleyecek ve bu sayfayı yenilemek için çalışırken bir sonucu olarak, eksik değerleri görüntüler olmamasıdır "görünümü kaynak."

BİR GÜNCELLEME:

Çoğaltmak için bir yol buldu ve o oturumları ve kaynak kodu retreiving olduğunda verileri önbelleğe Chrome'un yetersizlik ile ilişkili olduğu teorimi doğruluyor.

Bu deneyin:

<?php 
session_start();
?>
<html>
<body> 
<h1><?php echo "SURPRISE!" ?></h1> 
<p> 
</body>
</html>

Php dosyası üzerinde kopyalama ve yapıştırma. Chrome'da açın. Siz "SÜRPRİZ!" Görmelisiniz Açık olsa da, geri dosyaya gidin ve "SÜRPRİZ" silin ve kaydedin. Sonra geri SÜRPRİZ nerede gördüğünü gidin! sayfa ve "Kaynağı Görüntüle" olsun ve boş metin alırsınız.

Kaldırmayı deneyin, "session_start ()" ve Chrome "cache" SÜRPRİZ metin yapabiliyor ve görüntüler görürsünüz "SÜRPRİZ."

6 Cevap

Web sayfası POST yöntemini kullanarak formu ile beslemek bir PHP sonucu olup olmadığını Krom herhangi bir kaynak görünmüyor. Bu gerçekten garip.

Bunu kontrol etmek için, USCIS web sayfasına gidin:

https://egov.uscis.gov/cris/processTimesDisplayInit.do

ve [Hizmet Merkezi işleme Tarihler] veya [NBC İşleme Tarihler], ya [Saha Ofisi İşleme Tarihler], ekranın sağ altındaki düğmeleri [Gönder] 3 herhangi birini tıklatın.

Tıkladığınızda, düğmesinin solundaki seçimi (herhangi) POST metodu ile belirli PHP (ya da başka komut) aktarılacaktır. Ardından, PHP on-the-fly aşağıdaki html yaratacak ve ekranda işlem tarihleri ​​tablosu görebilirsiniz.

Bu ekran Krom kaynağı olarak gösteremez budur. Sağ tıklayın ve [View Page Source] boş bir sayfa üretecek. Firefox, IE ve Opera burada sorun olmadan çalışır.

Sorun "kaynak" var olduğunu, Chrome internette websource tekrar sayfasını okuyun, ziyade tampon içindeki web sayfasını okuyacaktır. Web sayfası PHP ile gerçek zamanlı olarak oluşturulan ve formun POST içeriğini yeniden göndererek olmadan, standart bir URL var gibi, ne geri webserver gelen boş bir sayfa olduğunu. Kaynağı Görüntüle tıklayarak zaman gerçek, Chrome yine web sayfasını okumaya çalıştığınızda, ancak web sayfası bile yok, bu PHP çıktı gerçek zamanlı html yaratmanın bir sonucudur.

Firefox, IE ve Opera bu durumda güzel çalışıyor, ben onların önbellek veya tamponlar içeriden web sayfasının içeriğini okumak varsayalım ziyade internetten tekrar web sayfasını okumaya çalışın.

Bazı Chrome araçlar (ben onları) kullanmak durumunda [Gönder] butonuna tıklayarak herhangi Şimdi, bir, GET Form Form POST dönüştürmek ables, yani, PHP için arama gibi argümanları, taşıma olacak "http://www.anysite.com/anyscript.php?field = 'değer', alan1 = 'değer1'den' ...", Form olarak birlikte "soru işareti" alanlarını ve değerlerini kullanarak, işleri GET url çağrıldığını.

PHP (anyscript.php) çalıştığında Sonra, bu çıkış html ekran üretecektir, ama adres barda aynı bilgileri tutacak. Sonra Krom tekrar web sayfasını almak için adres çubuğu URL'sini tekrar olacak ve birlikte GET değişkenleri taşıyan olduğundan, kaynak göstermek mümkün, bu yüzden Chrome çalışıyor. Ama bunu yapmak için yanlış bir yoldur.

Yani, Chrome kaynak göstermek muktedir html için ricalarınızı tek ve bunun için adres çubuğuna (URL) içeriğini kullanır öğrendim. Ben gerçekten bu sağlıklı ya da doğru olduğunu düşünmüyorum. Bu gibi sorunlar çalışmaya devam edecektir.

Ben html gerçekten var ya da anında oluşturulan, IF, uzak internet sunucusu html nedir, benim ekranda ne kaynağını görüntülemek için istemiyor, bkz.

Google insanlar, sizleri seviyorum, ama bu konuyu yeniden düşünmek lütfen, o gerçekten hiç iyi değil.

Burada basit bir test. Sadece sevdiğiniz sunucunuza aşağıdaki yükleyiniz "foo_test.php" (örneğin) isim ve IE, Firefox, Opera ve Chrome onu aramak, ben yukarıda söylediğim istediğimi anlayacaksınız.

<?php
if(!isset($_POST['submit']))
   {
   echo "<form method='POST'><input type=submit name='submit'></form>";
   } else {
   echo "You Can't view the source of THIS LINE using Chrome.";
   }  
?>

Wagner

Ben sadece örnek çalıştı ve Chrome dev-son ve Safari'de iyi çalıştı, ve Firefox.

Görünüm this Chrome ve ne kaynak gösterir söyle. Doğru değilse, Chrome sürümü ne?

Eğer kaynağını görüntülemek için gittiğinizde, hangi URL size kaynağını gösterir sekmesinde gösterilir. Mine gösterir: view-source: http://www.geekymedia.com/sotest.php

Uygulanması "SELECT is not broken" rule:

Sorun aradığınız yere başka yerde var.

yani. Chrome değil gereken bir şey yapmıyor - page / mantık krom kafa karıştırıcı, ya da aksi takdirde bu bulmacanın kırık parça eksik.

Some things to do to try track down where the issue lies: 1. Try duplicate the issue in different browsers - using the current code 2. Try duplicate the issue in different code - start a new example from scratch 3. Post your results to these so we can help you further.

Ben belirli sayfalarında, Chrome yerine görüntülenmekte olan sayfanın bunun ortak klasörden 500.html sayfanın kaynağını görüntüler, Rails uygulama bir Ruby aynı şeyi gördüm.

Sunucu Chrome beklemek değil, bir şekilde cevap verdiğini orada sayfa html bir hata var ya da bu, ancak Chrome yanlış kaynağını doğru sayfasını görüntüleyen ama görüntüler neden açıklamıyor - olasılıkla bile - Şimdi kesinlikle mümkün , ya da neden diğer tarayıcılar (Firefox ve IE) ekran sayfası ve doğru hem de.

Yani bir cevabım var, ama en çok yakında soruyu görevden izin vermeyin, bu iyi biri.

Eğer bir AJAX arama yaptıktan sonra kaynağını inceleyen başvuruyorsunuz? Bu durumda tarayıcının bellek (DOM) tutar sayfanın orijinal metin sürümünü güncellemek için rahatsız etmiyor. Eğer kaynağı görüntülediğinizde, tarayıcı DOM, o sadece size orijinal HTML belgesi vermek bunu üretmez.

Ben başka bir yol göremiyorum ...