IE9 źle wyświetla stronę html po dodaniu php

0

Zrobiłem fajna stronkę, głównie na divach w html5. Wyświetla się bez problemów w firefoxie i IE9. Zrobiłem do tej stronki sterownik index.php zaciągający ten kod html przez require i w IE9 treść sie sypnęła po odpaleniu index.php. Elementy są poprzesuwane, niektóre czcionki sie powiększyły. W firefoxie w szystko wygląda jak trzeba. Kod php nie dodaje żadnej grafiki do html tylko srawdza cookies, odpala bazę i sprawdza switchem który kod html załadować. Co może być tu nie tak?

0

utf-8 w kodowaniu Z BOM, albo jakieś znaki przed <!doctype>

0

Znaki przed DOCTYPE - dzięki.
Ale czytałem że najpierw powinno być otwarcie sesji w php dlatego html umieściłem niżej po sczytaniu zmiennych cookies itd.
Poza DOCTYPE mam też przenieść cały nagłówek HTML powyżej początkowego kodu PHP?

0

Raczej nie przenoś nagłówka ponad kod. generalnie w większych projektach (polecam przejrzeć dowolnego frameworka webowego) najpierw wykonuje się cała logika , dopiero potem renderuje widok. po prostu zadbaj o to żeby przed renderowaniem widoku nie wypisywać nic (żadnego echo, print, ani żadnego notice/warninga ), ewentualnie jeśli masz z tym problem - daj na początku kodu ob_start() i przed renderowaniem ob_flush.

0

Ja miałem wcześniej na początku dokumentu start_session() i potem setcookie() (w warunku if jeśli nie były jeszcze ustawione) bo te rzeczy powinny być startowane na początku (jak czytałem), niżej był nagłówek no ale sie sypało. Teraz przesunąłem samo DOCTYPE do góry i działa ale wygląda to troche wiejsko takie rozdzielanie htmlowego nagłówka.

0

jak przesunąłeś doctype to setcookie Ci nie zadziała.

pokaż kod, bo nic nie wywróżymy z fusów

0

Oto mój kod po przesunięciu Doctype:

 
<!DOCTYPE HTML> 
<?php
if(isset($_COOKIE['cookie_1'])) {      
	if($_COOKIE['cookie_1'] == 2 ) {
		require_once("baza.php");
	
        }
	  else {   
	   require_once("baza.php");               
	   setcookie("cookie_1", 1, (time() + 5400)); 

       } 
  } 
   else { // dodatkowe działania na cookie
   
} 
 
 ?>

<html>
<head> 
    <meta charset="utf-8" />
	<meta name="description" content="" />
	<meta name="keywords" content="" />
    <title>Forum</title>
	<link href="css/main.css" rel="stylesheet" />
</head>

<body>


	
<?php
// Warunki wybierajace podstrony

$page = 1;
if(isset($_GET['value'])) {
	$page = $_GET['value'];
	}


  switch( $page ) {
case 1:
   require('menu.php');
break;
  // kolejne casy
?>


</body>
</html>

Jak to rozwiązać żeby cookie działało a jednocześnie strona nie sypała sie na IE9? (teraz wyświetla sie dobrze)

0

Że tak dopowiem, w pliku baza.php require-owanym na początku jest otwarcie sesji i potem połączenia do bazy i nic więcej.

0

pliki masz w kodowaniu UTF-8 bez BOM?

0

I to było to.
Nie wiedziałem nic o tym BOMie. Rzeczywiście Geany zapisywał mi wszystkow w UTF z BOM. Wyłączyłem tę opcję (kto to kur... ustawia na domyślny ja to tylko psuje projekt) przeniosłem Doctype tam gdzie powinno być (poniżej php z setcookies()) i pięknie się wyświetla w IE9. Dzięki.

1 użytkowników online, w tym zalogowanych: 0, gości: 1