2014-09-29 121 views
-3

我的PHP mysql驱动的网站在呈现网站之前显示了大约半秒的原始代码。我最近添加了更多的mysql查询,这些查询在整个页面生成之前运行,但删除它们没有任何区别。它只会在登录过程后出现,然后当我刷新或甚至当浏览器缓存被清除时,但是当我注销时,它会再次显示。但是:代码仅在Chrome浏览器下显示,而不是在使用Firefox浏览器时显示。这仅在上周开始发生。网站在呈现HTML内容之前显示原始代码

这是什么原因,以及如何防止这种情况?

以下是识别屏幕分辨率的初始Javascript代码,以便稍后调整不同HTML元素的尺寸(它检查分辨率是否已通过GET变量识别,如果不是,则重新加载一次相同的页面)。当我删除这段代码并将页面直接转到PHP时,原始代码不会显示。我相信显示的原始代码是这个Javascript。但是这个问题以前没有发生过,这个网站用这个代码运行了一年多了!

$adj = 0; 
if (isset($_GET['adj'])) $adj = intval($_GET['adj']); // Anpassung an Browserfensteraufloesung 

if (empty($adj)) { 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> 

<script language="javascript"> 
    // Browserfensteraufloesung wird erkannt 

    if(typeof(window.innerWidth) == 'number') { 
     //Non-IE 
     browser_width = window.innerWidth; 
     browser_height = window.innerHeight; 
    } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) { 
     //IE 6+ in 'standards compliant mode' 
     browser_width = document.documentElement.clientWidth; 
     browser_height = document.documentElement.clientHeight; 
    } else if(document.body && (document.body.clientWidth || document.body.clientHeight)) { 
     //IE 4 compatible 
     browser_width = document.body.clientWidth; 
     browser_height = document.body.clientHeight; 
    } 


    var browser_width_previous = "<? echo $screen_width ?>"; 
    var browser_height_previous = "<? echo $screen_height ?>"; 

    if (browser_width != browser_width_previous || browser_height != browser_height_previous) { 

     var datum = "<? echo $datum_range ?>"; 
     var datum_von = "<? echo $datum_von ?>"; 
     var datum_bis = "<? echo $datum_bis ?>"; 
     var dateiname = "<? echo $search_dateiname ?>"; 
     var dateiname_default = "<? echo $search_dateiname_default ?>"; 
     if (dateiname == dateiname_default) dateiname = ""; // Notwendig, damit nicht nach diesem Defaultwert gesucht wird 
     var status = "<? echo $encoding_status ?>"; 
     var kdnr_search_strg = ""; 
     var kd_nr = "<? echo $kunden_nummer ?>"; 

     if (kd_nr == "<? echo $admin_kd_nr; ?>") 
       kdnr_search_strg = "&Kd_nr_search=" + "<? echo $kd_nr_search ?>"; 

     new_location = "kundendaten_viewer.php?Datum_range=" + datum + "&Datum_von=" + datum_von + "&Datum_bis=" + datum_bis + "&BrowserWinWidth=" + browser_width + "&BrowserWinHeight=" + browser_height + "&Search_dateiname=" + dateiname + "&Encoding_status=" + status + kdnr_search_strg + "&adj=1"; 
     //alert (' Location: ' + new_location); 
    window.location = new_location;//"kundendaten_viewer_debug.php?BrowserWinWidth=" + browser_width + "&BrowserWinHeight=" + browser_height + "&Datum_range=" + datum + "&Search_dateiname=" + dateiname + "&Encoding_status=" + status + kdnr_search_strg + "&adj=1"; 
    } //else alert (browser_width + " = " + browser_width_previous); 
    </script> 

<?php 
} 
+0

你是否在任何机会之外声明了你的头文件之外的CSS文件?此外,作为一个兴趣点,这也偶尔会发生在我的Facebook上与Chrome也。 – iamgory 2014-09-29 14:06:06

+0

你有一些示例代码?我们无法猜测您的网站和代码是什么。 – Peter 2014-09-29 14:06:15

+0

如果您可以在此处的某个网页上放置代码示例,我们可以为您提供更多帮助。 – llanato 2014-09-29 14:13:03

回答

0

我建议你创建一个header.php中,在那里你发起HTML body标签开始,并添加CSS文件到HTML那里。在其他的PHP文件中,你只需要使用include_once 'header.php';,这样你的css就包含在前面,而不是你的查询运行。我希望这会解决你的问题。注意:如果您使用会话,则session_start()必须是第一行,因为在发送任何标头之后无法启动会话。

+0

这是一个非常好的初学者建议,但现在如何在专业领域完成任务。你应该使用模板引擎而不是php头文件。 – 2014-09-29 14:21:16

+0

不幸的是,这并没有帮助。 – user1145075 2014-09-29 14:26:17

+0

@STT LCU是的,你可以使用smarty或任何你可以使用的引擎,但正如我所看到的,他不使用任何引擎或框架或cms。 – 2014-09-29 14:44:56