ZeitGeist
Lounge-Member
ob_start() muss _vor_ der ersten Ausgabe stehen.
sicher? Ich meine ob_start unterliegt da keiner Beschränkung.
Follow along with the video below to see how to install our site as a web app on your home screen.
Anmerkung: This feature currently requires accessing the site using the built-in Safari browser.
ob_start() muss _vor_ der ersten Ausgabe stehen.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
else {
header('HTTP/1.0 404 Not Found');
include_once('./'.$valid_sites['fehler404']);
}
nicht entferne:else {
header('HTTP/1.0 404 Not Found');
include_once('./'.$valid_sites['fehler404']);
}
Warning: include_once(./) [function.include-once]: failed to open stream: No such file or directory in C:\xampplite\htdocs\stayfolk\index.php on line 40
Warning: include_once() [function.include]: Failed opening './' for inclusion (include_path='.;C:\xampplite\php\pear\') in C:\xampplite\htdocs\stayfolk\index.php on line 40
Afaik wird die Ausgabepufferung genau ab der Zeile gestartet, in der ob_start() aufgerufen wird. Somit wird die Ausgabe oberhalb nicht berücksichtigt und kann u.U. vorher an den Browser gesendet werden. Es ist ja auch möglich, verschieden Puffer zu verwenden (durch mehrmaliges Aufrufen von ob_start()) und jeden Puffer selektiv zu senden/manipulieren.sicher? Ich meine ob_start unterliegt da keiner Beschränkung.
den Head Bereich entfernt.header() kann keine Ausgabe an den Browser senden, wenn bereits ausgaben erfolgt sind. In deinem Fall ist das das HTML und die whitespaces vor dem <?php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<title>Dynamische Inhalte</title>
</head>
<body>
Überschrift<br />
<div id="menu">
<ul>
<li><a href="?dir=punkt1">Punkt1</a></li>
<li><a href="?dir=punkt2">Punkt2</a></li>
</ul>
</div>
<?php
if(isset($_REQUEST['dir']) && !empty($_REQUEST['dir'])) {
$direction = $_REQUEST['dir'];
} else {
$direction = false;
}
$sites = array (
'punkt1' => "punkt1.php",
'punkt2' => "punkt2.php",
'404' => "404.php"
);
if ($direction == false) {
$direction = $sites['404'];
}
if( isset($sites[$dir]) ) {
include_once('./'.$sites[$dir]);
} else {
header('HTTP/1.0 404 Not Found');
include_once('./'.$sites['404']);
}
?>
<div id="footer"><p>Copyright by WebmastXY</p></div>
</body>
</html>
erfüllen kann, wenn doch das Skript, welches die Inhalte einbindet sich mitten in der HTML-Datei befindet. Und ich weiß nicht, ob es sinnvoll wäre, das übrige HTML wie folgt außerhalb des PHPs zu notieren, da es ja dann nicht gepuffert und somit ggf. schon an den Browser ausgegeben wird:ob_start() muss _vor_ der ersten Ausgabe stehen
<?php
ob_start();
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html>
<head>
<!-- restliches HTML bis... -->
<?php
if(isset($_REQUEST['dir']) && !empty($_REQUEST['dir'])) {
$direction = $_REQUEST['dir'];
} else {
$direction = false;
}
// ...restliches PHP-Skript
ob_end_flush();
?>
<div id="footer"><p>Copyright by WebmastXY</p></div>
</body>
</html>
um zu sehen, womit du überhaupt arbeitest.PHP:var_dump($_REQUEST);
$_GET anstelle $_REQUEST
ganz hilfreich, wenn es um die aktuelle PHP Installation gehtPHP:phpinfo();
array(1) { ["dir"]=> string(6) "punkt2" }
heißt das jetzt also für mich, dass ich mit dieser Methode, sei es mit $_GET oder $_REQUEST keine Variablenabfrage aus der URL machen kann?$dir wird niemals gesetzt. Bei Funpic ist register_globals auf on, das führt dazu das PHP alle Schlüssel in $_GET/$_POST/$_COOKIE ($_SESSION ?) automatisch als Variablen setzt. Somit gibt es in diesem Fall ein instanziertes $dir.
Register_globals auf on zu setzen gilt als Sicherheitsrisiko und wird daher von vielen Hoster deaktiviert.
Einfach an den Anfang des Skriptes einund die Variable steht dir zur Verfügung.PHP:$dir = $_GET['dir'];