Autor Zpráva
Pan X
Profil
Dobrý večer, potřeboval bych poradit. Mám tento script:

<?php 
	session_start();
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="cs">
	<head>

		<meta http-equiv="content-type" content="text/html; charset=utf-8">
        <meta name="resource-type" content="document">

     	
     	

		<title></title>
		
     	<link rel="stylesheet" type="text/css" href="style_a.css">
     	<script type="text/javascript" src="js.js"></script>	
     	
	</head>
	<body>
		<div id="page">
			<?php
				if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1){
					echo '<div id="uziv_panel"><p>Přihlášen jako: <strong>'.$_SESSION['nick'].'</strong> | <a href="logout.php?logout=yes" title="Odhlásit">Odhlásit se</a></div>';
					$spojeni = mysql_connect("server","user","pass") or die ('Spatne zadane udaje (asi heslo, server nebo jmeno.) v db.php');
					mysql_select_db("sejkora_info", $spojeni) or die ('Spatne zadana databaze v db.php');
					$query = MySQL_Query("SELECT * FROM `gallery` ORDER BY nazev");
					echo MySQL_Error();
					echo '<menu>';
					echo '<li><a href="edit_kategorie.php" title="Uprav kategorie">Uprav kategorie</a></li>';
					echo '<li><a href="edit_komentare.php" title="Uprav komentáře">Uprav komentáře</a></li>';
					echo '<li><a href="sprava.php" title="Správa webů">Správa webů</a></li>';
					echo '</menu>';
					echo '<table border="1" cellpadding="0" cellspacing="0"><tr><td><strong>Čekající weby</strong></td><td>&nbsp;</td></tr>';
					$Pocet = 0;		
					while($vypis = MySQL_Fetch_Array($query)){
						if($vypis['ceka'] == "Ano"){
							echo '<tr><td>'.$vypis['nazev'].'</td><td><a href="edit.php?nazev='.$vypis['nazev'].'">Uprav</a> | <a href="delete.php?nazev='.$vypis['nazev'].'">Smaž</a> | <a href="povol.php?nazev='.$vypis['nazev'].'">Povol</a></td></tr>';
						}
					}
				}else{
				  header("location: index.php");
				}
			?>
		</div>
	</body>
</html>


Všechno funguje OK ale když nejsem přihlášen tak mě to nepřesměruje na index.php, ale ani to nevipisuje chybu. Zobrazí se jen bílá stránka.

Mohl by mi někdo poradit jak to opravit?

Předem díky

Pan X
tiso
Profil
headers already sent...
patolog
Profil
ak je to to co napisal tiso tak si pozri tuto temu
SwimX
Profil
patolog
ob_start() zde není potřeba. stačí strčit HTML do podmínky
patolog
Profil
SwimX
no aj to je riesenie. ale ved ak by tam aj dal ob_start() tak nic nepokazi :)
ato3
Profil
Pan X
funkce header musí být před jakýmkoli výstupem, tzn dej ji uplně na začátek celé stránky, pak by to mělo fungovat..
SwimX
Profil
ato3
ale on chce přesměrovat jenom někdy, ne pokaždý. Koukám že se to tu začíná plnit zajímavými názory, tak to raději uvedu na pravou míru:

<?php 
    session_start();
                if(isset($_SESSION['prihlasen']) and $_SESSION['prihlasen']==1){
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="cs">
    <head>

        <meta http-equiv="content-type" content="text/html; charset=utf-8">
        <meta name="resource-type" content="document">

         
         

        <title></title>
        
         <link rel="stylesheet" type="text/css" href="style_a.css">
         <script type="text/javascript" src="js.js"></script>    
         
    </head>
    <body>
        <div id="page">

<?php
                    echo '<div id="uziv_panel"><p>Přihlášen jako: <strong>'.$_SESSION['nick'].'</strong> | <a href="logout.php?logout=yes" title="Odhlásit">Odhlásit se</a></div>';
                    $spojeni = mysql_connect("server","user","pass") or die ('Spatne zadane udaje (asi heslo, server nebo jmeno.) v db.php');
                    mysql_select_db("sejkora_info", $spojeni) or die ('Spatne zadana databaze v db.php');
                    $query = MySQL_Query("SELECT * FROM `gallery` ORDER BY nazev");
                    echo MySQL_Error();
                    echo '<menu>';
                    echo '<li><a href="edit_kategorie.php" title="Uprav kategorie">Uprav kategorie</a></li>';
                    echo '<li><a href="edit_komentare.php" title="Uprav komentáře">Uprav komentáře</a></li>';
                    echo '<li><a href="sprava.php" title="Správa webů">Správa webů</a></li>';
                    echo '</menu>';
                    echo '<table border="1" cellpadding="0" cellspacing="0"><tr><td><strong>Čekající weby</strong></td><td>&nbsp;</td></tr>';
                    $Pocet = 0;        
                    while($vypis = MySQL_Fetch_Array($query)){
                        if($vypis['ceka'] == "Ano"){
                            echo '<tr><td>'.$vypis['nazev'].'</td><td><a href="edit.php?nazev='.$vypis['nazev'].'">Uprav</a> | <a href="delete.php?nazev='.$vypis['nazev'].'">Smaž</a> | <a href="povol.php?nazev='.$vypis['nazev'].'">Povol</a></td></tr>';
  echo "        </div>
    </body>";
                        }
                    }
                }else{
                  header("location: index.php");
                }
            ?>
</html>
Johny007
Profil
Mě v takovýchto případech pomáhá toto:
1)dát přesměrování co nejvýše ve scriptu - tj. udělat podmínu obráceně když není příhášen tak přesměrovat a exit jinak proveď script
2)nevím moc proč ale používám ten druhý zápis např.:
if (!$spojeni):
		Header("Location: ./index.php?chyba=".URLEncode("Nepodařilo se spojit s databází"));
	exit;
tj. ten zápis cyklu s dvojtečkami.
SwimX
Profil
Johny007
s 1) souhlasím, i když tady to není nezbytné.
k 2) to je uplně jedno, každému co mu vyhovuje. Mě se tvůj zápis ale v PsPadu nezvýrazní, takže raději {}
Johny007
Profil
JJ taky normálně používám {}, ale ve spojení s
Header("Location:.....
jsem se opakovaně po hodinách a hodinách trápení dočkal úspěchu až po přepsání do formy s : . Taky to nechápu, třeba jsem tam jen vždycky opravil nějakou syntax. :-D
Pan X
Profil
jo díky SwimX to je přesně to co jsem potřeboval díky.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: