• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

Frage Probleme mit Befehl "header"

Taberna

Mitglied
Ich brauche wohl mal wieder einen kleinen Schubser, sehe das Problem vor lauter Bäumen wohl nicht korrekt.

Folgende Aufgabe möchte ich lösen:

Über eine Datenbank werden verschiedene Einsätze vorher eingegeben, also fiktive Einsätze, die alle in der Zukunft liegen.
Nach und nach (bei fortschreitender Zeit) sollen die fiktiven Einsätze auf einer Seite angezeigt werden. Hierzu aktualisiert die Seite sich selbst jede Sekunde.
Sobald ein Einsatz für die eigene Wehr kommt, soll auf eine Seite "alarm.php" verzweigt werden. Hierfür habe ich den Befehl "header" eingefügt, aber irgendwie verzweigt er nicht auf die "alarm.php".

Wo ist mein Gedankenfehler =?=

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="refresh" content="1">
</head>
<body>
<?php
$con = new mysqli("Zugangsdaten");
if($con->connect_error) {
die("Zur Zeit keine Verbindung");
};

$sql = "SELECT * FROM Datenbank WHERE Zeit<now() ORDER by Zeit DESC LIMIT 2";

$res = $con->query($sql);
if($res->num_rows>0)
{
while($i = $res->fetch_assoc())
{
if ($i["Wehr"]=="Richtig")
{
header("Location: http://www.feuerwehr-winsen-aller.de/02/jugendfeuerwehrtag/alarm.php");
exit;
}
ELSE
{
echo $i["Zeit"];
echo "<br>";
echo $i["Wehr"];
echo "<br>";
echo $i["Einsatzmeldung"];
echo "<br>";
};
};
};

?>


</body>
</html>
 
Werbung:
Vor header darf es keinerlei Ausgaben zum Browser geben, aber du hast schon HTML-Code vor dem header, und somit funktioniert header nicht mehr. Wenn du mal das Error-Reporting hochdrehen würdest (was sinnvoll wäre) würdest du auch eine Fehlermeldung bekommen.

Und never ever "Select *" schreiben, zähle die Spalten auf, die du haben willst.
 
Guten Morgen,
Verstehe ich es richtig, dass mit "keinerlei Ausgaben" auch Meta-Tags, etc. gemeint sind?
So dass ich quasi die Verzweigung noch oberhalb von <!DOCTYPE....> einfügen muss ?

Zu Error-Reporting muss ich dumm fragen, weil ich es immer noch nicht wirklich verstanden habe, wie man damit umgehen sollte.
Ich füge error_reporting(E_ALL); in mein script ein, aber nur so lange ich es entwickel ? Und bei Veröffentlichung nehme ich es wieder raus, oder wie sollte man damit umgehen ?

Und warum sollte ich nicht "SELECT * " schreiben ?
ich mag doch alle Spalten haben ?

Sorry, auch wenn die Fragen vielleicht dumm erscheinen, aber nur so kann ich lernen...
LG
 
Werbung:
Verstehe ich es richtig, dass mit "keinerlei Ausgaben" auch Meta-Tags, etc. gemeint sind?
So dass ich quasi die Verzweigung noch oberhalb von <!DOCTYPE....> einfügen muss ?
Richtig, selbst eine Leerzeile oder Leerzeichen dürfen nicht vor header vorhanden sein.
Ich füge error_reporting(E_ALL); in mein script ein, aber nur so lange ich es entwickel ? Und bei Veröffentlichung nehme ich es wieder raus
Auch richtig, eventuell musst du auch noch "display_errors" auf true setzen, damit dir Fehler auch angezeigt werden.
Und warum sollte ich nicht "SELECT * " schreiben ?
ich mag doch alle Spalten haben ?
Siehe
16.14. Warum soll ich nicht SELECT * schreiben?
http://www.php-faq.de/q/q-sql-select.html
 
Super, wieder viel dazu gelernt. insbesondere was header angeht. dann werde ich mein Script mal komplett umbauen.

Letzte Frage dazu:
Gibt es denn einen Befehl, ähnlich header, den man auch nach Ausgabe von HTML noch einsetzen kann ?
 
Zuletzt bearbeitet:
Zurück
Oben