Guten Abend Forum,
bisher hatte ich keine Probleme bei meinem Verfahren, lokal mit xampp (php v. 5.0.3) an meinen Seiten zu arbeiten und sie dann komplett auf den Webspace (hier v. 4.1.3) zu laden. Bis jetzt.
1.) Kann ich in der php.ini oder so einstellen, dass er mir auch Fehler anzeigt, die für früheren PHP-Versionen im Code bestehen?
2.) zum eigentlichen Problem:
Ich habe eine test.php:
<?php
require_once "funktionen.php";
redirect("home.php");
?>
und eine funktionen.php: (Auszug)
//>> Weiterleitungsfunktion
function redirect($ziel, $hostdir) { //[DIES IST ZEILE 3]
if ($_SERVER['SERVER_PROTOCOL'] == 'HTTP/1.1') {
if (php_sapi_name() == 'cgi') {
header('Status: 303 See Other');
} else {
header('HTTP/1.1 303 See Other'); //[DIES IST ZEILE 8]
}
}
if (!isset($hostdir)) {
$host = $_SERVER['HTTP_HOST'];
$path = dirname($_SERVER['PHP_SELF']);
header('Location: http://'.$host.($path == '/' ? '' : $path).'/'.$ziel); //[DIES IST ZEILE 14]
} else {
header('Location: http://'.$hostdir.'/'.$ziel);
}
exit;
}
Führe ich die test.php auf dem lokalen Server aus, funktioniert die Weiterleitung.
Auf dem Webserver hingegen wird Folgendes ausgegeben:
Warning: Missing argument 2 for redirect() in /home/gymbrake/gymnasium-brake.de/V-Planer/funktionen.php on line 3
Warning: Cannot add header information - headers already sent by (output started at /home/gymbrake/gymnasium-brake.de/V-Planer/funktionen.php:3) in /home/gymbrake/gymnasium-brake.de/V-Planer/funktionen.php on line 8
Warning: Cannot add header information - headers already sent by (output started at /home/gymbrake/gymnasium-brake.de/V-Planer/funktionen.php:3) in /home/gymbrake/gymnasium-brake.de/V-Planer/funktionen.php on line 14
Ich wundere mich, warum die erste Warnung auftaucht, denn ich habe mir vor dem Schreiben der Funktion erst nochmal das Kapitel für eigene Funktionen im PHP Handbuch durchgelesen.
Und da steht unter http://de.php.net/manual/de/functions.arguments.php#functions.variable-arg-list:
"Variable Anzahl von Parametern
PHP 4 unterstützt eine variable Anzahl von Parametern in benutzerdefinierten Funktionen. [...]
Es ist keine spezielle Syntax erforderlich. Die Parameter können wie gehabt explizit in den Funktionsdeklarationen angegeben werden, und werden sich wie gewohnt verhalten."
Die weiteren beiden Warnungen verstehe ich nicht. Erwartet hätte ich sie, wenn ich vor dem Senden des Headers schon Seiteninhalt gesendet hätte.
Ach so! Tauchen die auf, weil die erste Warnung "Seiteninhalt" ist und somit schon was an den Browser gesendet wurde?
Handelt es sich also nur um das Problem mit der variablen Parameteranzahl?
Grüße
Christian