Я приобрел веб-сайт, созданный на PHP. По сути, большинство страниц не отображаются правильно в IE, и я решил, что это потому, что DOCTYPE не устанавливается.
После дальнейшего исследования кажется, что вся информация заголовка (включая DOCTYPE) находится в включаемом файле PHP с именем header.php, что достаточно справедливо, однако на страницах, которые загружаются некорректно, есть код до того, как это включение будет вызвано для поэтому DOCTYPE не устанавливается.
Было бы легко переместить include для header.php в первую строку кода, но первые строки кода - это переменные PHP, которые включают ключевые слова, описание страницы и заголовок страницы, на которые затем ссылается заголовок header.php. Если я переместу код включения выше этих переменных, то header.php не будет знать ключевые слова, заголовок страницы или описание, поскольку они еще не были установлены.
Весь сайт был построен таким образом - не знаю, как это когда-либо работало.
Есть ли способ обойти это, чтобы я не видел? Я включил часть файла header.php страницы, которая ниже отображается некорректно.
Любая помощь, полученная с благодарностью, и спасибо, что нашли время, чтобы прочитать это.
header.php ->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><?php echo $pageTitleDisp ?></title>
<meta name="keywords" content="<?php echo $pageKeywords?>" />
<meta name="description" content="<?php echo $pageDesc?>" />
<meta http-equiv="content-language" content="en-gb" />
<meta name="copyright" content="My company" />
<meta name="revisit-after" content="3 days" />
<meta name="Robots" content="index, follow" />
<meta name="Robots" content="all" />
<meta name="Distribution" content="Global" />
<meta name="Author" content="Me"/>
<meta name="Accessibility" content="WCAG Double-A" />
<meta name="Audience" content="All Users" />
<meta name="Coverage" content="UK" />
<meta name="Language" content="English" />
<meta name="Rights" content="Reproduction by Permission Only" />
<meta name="Rights.Copyright" content="My company" />
<meta name="Type" content="Web Page" />
<link href="<?php echo $canonical; ?>" rel="canonical" />
<link href="/css/webstyle.css" rel="stylesheet" type="text/css" />
<script src="/js/site-functions.js" type="text/javascript"></script>
<!--[if IE 6]><style type="text/css">img,div { behavior: url(/js/iepngfix.htc) }</style><![endif]-->
<!--[if IE 7]><link href="/css/ie7.css" rel="stylesheet" type="text/css" /><![endif]-->
и это страница, которая затем вызывает указанную выше информацию header.php:
<?php include("../includes/config.php"); ?>
<?php
// SEO TAGGING
$pageTitleDisp="Page Title";
$pageKeywords="cars planes bikes";
$pageDesc="this is a webpage that looks pap in IE";
$canonical="http://mydomain.com/about/";
?>
<?php $popbox="true"; ?>
<?php include("../includes/header.php"); ?>
После некоторых предложений полезных людей, похоже, что эта проблема есть только на страницах, которые вызывают config.php. Ниже приведен файл config.php - если у кого-то есть время или знания, чтобы определить, что может вызвать проблему, я был бы очень благодарен. Если я закомментирую вызов config.php, то страница вообще не будет отображаться!
<?php
$user="user";
$password="password";
$database="DB";
mysql_connect("my.database.com",$user,$password);
@mysql_select_db($database) or die( "Unable to select database");
$bulkPrice="24.99";
$singlePrice="3.49";
function makeClickableLinks($text) {
$text = eregi_replace('(((f|ht){1}tp://)[-a-zA-Z0-9@:%_+.~#?&//=]+)',
'<a href="\1" target="_blank">\1</a>', $text);
$text = eregi_replace('([[:space:]()[{}])(www.[-a-zA-Z0-9@:%_+.~#?&//=]+)',
'\1<a href="http://\2" target="_blank">\2</a>', $text);
$text = eregi_replace('([_.0-9a-z-]+@([0-9a-z][0-9a-z-]+.)+[a-z]{2,3})',
'<a href="mailto:\1" target="_blank">\1</a>', $text);
return $text;
}
function multiInsert($table,$cols){
$cols= explode(",", $cols);
foreach ($cols as $colname) {
$sqlinsert1.= "$colname, ";
global $$colname;
if ($colname=="dateAdded")
{
$sqlinsert2.= "Now(), ";
}
else {
$sqlinsert2.= "'".$$colname."', ";
}
}
$sqlinsert1=removeComma($sqlinsert1);
$sqlinsert2=removeComma($sqlinsert2);
$sqlinsert= "($sqlinsert1) values ($sqlinsert2)";
$query="insert into $table $sqlinsert ";
$result=mysql_query($query)or die( mysql_error()."<BR><BR><B>$query</b>");
return mysql_insert_id();
}
function cleanUserText ($para){
$para=html_entity_decode($para);
$array = array("itxtvisited=\"1\"","<EM>","<EM >","</EM>","<em>","</em>","<i>","</i>");
$para = str_replace($array, "", $para);
$para = str_replace("\n", "<BR>", $para);
$para = str_replace("\n\b", "<BR>", $para);
$para = str_replace("&quot;", "\"", $para);
$para = str_replace("&", "&", $para);
$para = str_replace("•", "·", $para);
$para = str_replace("’", "'", $para);
$para = str_replace("®", "", $para);
$para = str_replace("™", "", $para);
$para = str_replace("…", "...", $para);
$para = str_replace("“", "\"", $para);
$para = str_replace("”", "\"", $para);
$para = str_replace('<span style="font-weight: bold;">', "<B>", $para);
$para = str_replace('<span style="font-weight: bold;" class="largeblack">', "<B>", $para);
$para = str_replace('<i style="font-weight: bold;">', "<B>", $para);
$para = str_replace('BACKGROUND: white', "", $para);
$para = str_replace('</span>', "</B>", $para);
$search = array('@<script[^>]*?>.*?</script>@si', // Strip out javascript
'@<style[^>]*?>.*?</style>@siU', // Strip style tags properly
'@<![\s\S]*?--[ \t\n\r]*>@', // Strip multi-line comments including CDATA
'@<SPAN[^>]*?>@siU', // Strip style tags properly
'@</SPAN>@siU', // Strip style tags properly
'@<FONT[^>]*?>@siU', // Strip style tags properly
'@</FONT>@siU', // Strip style tags properly
);
$para = preg_replace($search, '', $para);
$para=makeClickableLinks($para);
return $para;
}
function encLink($name){
$name=strtolower($name);
$name=str_replace(" ","-",$name);
return "$name";
}
function decLink($name){
$name=strtoupper($name);
$name=str_replace("-"," ",$name);
return "$name";
}
function getColours(){
global $colours;
$query="SELECT * from colours";
$result=mysql_query($query)or die(mysql_error()); ;
while ($row = mysql_fetch_array($result,MYSQL_ASSOC)) {
foreach($row as $k => $v){$$k = $v;}
$colours["$colourID"]="$colourTitle";
}
}
function dispCatLink($catsLink){
$catsList = explode(",", $catsLink);
$catsLink1=$catsList[0];
$query="SELECT * FROM cats where catID = $catsLink1";
$result=mysql_query($query)or die(mysql_error()."Query is: <b>$query</b>");
$row = mysql_fetch_assoc($result);
if ($row){foreach($row as $k => $v){$$k = $v;}}
$catTitleF=str_replace(" ","-",$catTitle);
echo "<a href=/$catTitleF/products/>$catTitle</a>";
}
function alertMSG($alerter){
if ($alerter) echo "<div ID=alerter><img src=/icon/asterisk_yellow.png class=icn width=16 height=16 />$alerter</div>";
}
function open_image ($file) {
# JPEG:
$im = @imagecreatefromjpeg($file);
if ($im !== false) { return $im; }
# GIF:
$im = @imagecreatefromgif($file);
if ($im !== false) { return $im; }
# PNG:
$im = @imagecreatefrompng($file);
if ($im !== false) { return $im; }
# WBMP:
$im = @imagecreatefromwbmp($file);
if ($im !== false) { return $im; }
# Try and load from string:
$im = @imagecreatefromstring(file_get_contents($file));
if ($im !== false) { return $im; }
return false;
}
function upFile($upfile){
if ($_FILES[$upfile]['tmp_name']){
$newName= str_replace(" ","_",basename( $_FILES[$upfile]['name']));
$dest= $_SERVER[DOCUMENT_ROOT]."/uploads/".$newName;
if(move_uploaded_file($_FILES[$upfile]['tmp_name'], $dest)) {
return $newName;
}
else {
echo $_FILES[$upfile]['name']." - There was an error uploading the file, please try again!";
return "";
}
}
else {
return "";
}
}
function multiUpdate($table,$clause,$cols){
$cols= explode(",", $cols);
foreach ($cols as $colname) {
global $$colname;
$sqlinsert.= " $colname = '".$$colname."',";
}
$sqlinsert=removeComma($sqlinsert);
global $$clause;
$query="update $table set $sqlinsert where $clause=".$$clause;
$result=mysql_query($query)or die( mysql_error()."<BR><BR><B>$query</b>");
}
function removeComma($var){
if(substr($var, -1)==","){$var = substr($var,0,-1);}
if(substr($var, -2)==", "){$var = substr($var,0,-2);}
return $var;
}
function conv($size){
$converted=2.54*$size;
$converted= sprintf("%01.0f", $converted);
if ($converted=="0"){$converted="N/A ";}
return $converted;
}
function dispThumbs($prodID,$max_i,$size){
for ($i=1; $i<=$max_i; $i++) {
$filename=$_SERVER['DOCUMENT_ROOT']."/prodImages/$size/".$prodID."/".$i.".jpg";
if (file_exists($filename)) {
echo "<a href='/photos/$prodID/$i/'><img border=0 class='imgTH' width=100 height=67 src=/prodImages/$size/".$prodID."/".$i.".jpg></a>";
}
}
}
function open_dir ($dir){
if (is_dir($dir)) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if (preg_match ("/.jpg/i", "$file")){
$files.="$file,";
}
}
closedir($dh);
}
}
if(substr($files, -1)==","){$files = substr($files,0,-1);}
return $files;
}
function sec2hms ($sec, $padHours = false)
{
$hms = "";
$hours = intval(intval($sec) / 3600);
// $hms .= ($padHours)
// ? str_pad($hours, 2, "0", STR_PAD_LEFT). ':'
// : $hours. ':';
$minutes = intval(($sec / 60) % 60);
$hms .= str_pad($minutes, 2, "0", STR_PAD_LEFT). ':';
$seconds = intval($sec % 60);
$hms .= str_pad($seconds, 2, "0", STR_PAD_LEFT);
return $hms;
}
function checkIMG($imgLink){
if (file_exists($_SERVER['DOCUMENT_ROOT'].$imgLink)) {
echo $imgLink;
}
else {
echo "/content/images/nophoto.gif";
}
}
function checkTH($imgLink){
if (file_exists($_SERVER['DOCUMENT_ROOT'].$imgLink)) {
echo $imgLink;
}
else {
echo "/images/noimage.gif";
}
}
function getIMGsize($img){
list($width, $height, $type, $attr) = getimagesize($_SERVER['DOCUMENT_ROOT'].$img);
echo "params='lightwindow_width=$width,lightwindow_height=$height'";
}
function titleCase($string) {
$len=strlen($string);
$i=0;
$last= "";
$new= "";
$string=strtoupper($string);
while ($i<$len):
$char=substr($string,$i,1);
if (ereg( "[A-Z]",$last)):
$new.=strtolower($char);
else:
$new.=strtoupper($char);
endif;
$last=$char;
$i++;
endwhile;
$new= str_replace("Led ","LED ",$new);
$new= str_replace("Lcd ","LCD ",$new);
return($new);
};
?>
config.php
? Выводит ли он какой-нибудь html? Что будет, если закомментировать, заголовок все равно не отображается. - person mseifert   schedule 24.06.2014