nach "include" funktionieren headerfunktionen nicht mehr
lima-city → Forum → Programmiersprachen → PHP, MySQL & .htaccess
ausgabe
befehl
begegnen
browser
code
datei
dokument
fehlermeldung
frage
funktion
header
http
karpfen
login
manual
output
problematik
session
url
zufriedenheit
-
Salvete omnes!
Ich habe mir unlängst eine Registrierungs- bzw. eine Loginseite mittels diversen Tutorials gebastelt.
Diese funktionieren jedes für sich einwandfrei.
Jetzt will ich diese beiden Seiten allerdings in eine fremde includen. Sobald ich das mache bekomme ich allerdings Fehlermeldungen was die "headerfunktionen" (falls die überhaupt so heißen...) betrifft.
Bsp:
Warning: Cannot modify header information - headers already sent by (output started at ...\include_login.php:56) in ...\login.php on line 37
die betreffenden Zeilen:
55: <div id="content">
56<?php include("login.php");?>
57</div>
und:
34 if (isset($_SESSION['PrevUrl']) && false) {
35 $MM_redirectLoginSuccess = $_SESSION['PrevUrl'];
36 }
37 header("Location: " . $MM_redirectLoginSuccess );
38 }
39 else {
40 header("Location: ". $MM_redirectLoginFailed );
41 }
woran scheitert es? vertragen sich diese funktionen nicht mit dem include-Befehl?
mfg und Dank
Cdot -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage
-
in der .php mit den "headerfunktionen" kommt kein einziges include vor, lediglich in ein einer seperaten Seite, in welche ich die gesamte Login-Datei (login.php) includiere... wie soll ich jetzt vor bzw nach den headern includen?
oder verstehe ich deine Antwort irgendwie falsch?
-
Du includest beide Dateien in eine Datei. Dabei sollte zuerst der Headerschmarrn included werden und danach das Login-Zeugs.
-
Ich include nicht 2 Datein, sondern lediglich eine und zwar diese:
<?php require_once('Connections/testung.php'); ?> <?php // *** Validate request to login to this site. if (!isset($_SESSION)) { } $loginFormAction = $_SERVER['PHP_SELF']; if (isset($_GET['accesscheck'])) { $_SESSION['PrevUrl'] = $_GET['accesscheck']; } if (isset($_POST['nick'])) { $loginUsername=$_POST['nick']; $password=$_POST['password']; $MM_fldUserAuthorization = ""; $MM_redirectLoginSuccess = "drin.html"; $MM_redirectLoginFailed = "anmelden.php"; $MM_redirecttoReferrer = false; mysql_select_db($database_testung, $testung); $LoginRS__query=sprintf("SELECT nick, password FROM tbl_register WHERE nick='%s' AND password='%s'", get_magic_quotes_gpc() ? $loginUsername : addslashes($loginUsername), get_magic_quotes_gpc() ? $password : addslashes($password)); $LoginRS = mysql_query($LoginRS__query, $testung) or die(mysql_error()); $loginFoundUser = mysql_num_rows($LoginRS); if ($loginFoundUser) { $loginStrGroup = ""; //declare two session variables and assign them $_SESSION['MM_Username'] = $loginUsername; $_SESSION['MM_UserGroup'] = $loginStrGroup; if (isset($_SESSION['PrevUrl']) && false) { $MM_redirectLoginSuccess = $_SESSION['PrevUrl']; } header("Location: " . $MM_redirectLoginSuccess ); } else { header("Location: ". $MM_redirectLoginFailed ); } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Unbenanntes Dokument</title> </head> <body> <form id="form1" name="form1" method="POST" action="<?php echo $loginFormAction; ?>"> <p>einloggen</p> <table width="730" border="0"> <tr> <td>Benutzername</td> <td><label> <input name="nick" type="text" id="nick" /> </label></td> </tr> <tr> <td>Passwort</td> <td><label> <input name="password" type="password" id="password" /> </label></td> </tr> <tr> <td> </td> <td><label> <input type="submit" name="Submit" value="login" /> </label></td> </tr> </table> <p> </p> </form> <p> </p> </body> </html>
-
cdot schrieb:
woran scheitert es? vertragen sich diese funktionen nicht mit dem include-Befehl?
So ist es eventuell besser zu sehen:
55: <div id="content"> <==1. Ausgabe an den Browser Damit wird auch der Header an den Browser gesendet
56<?php include("login.php");?>
57</div>
und login.php:
37 header("Location: " . $MM_redirectLoginSuccess ); <== Header, der bereits vor dem include gesendet wurde, soll modifiziert werden. Darum Fehlermeldung.
FF
-
somit ist meine frage "woran scheitert es" zu vollster zufriedenheit beantwortet
um eine neue zu stellen:
wie bekomme ich jetzt hin, was karpfen mir schon versuchte zu verdeutlichen?
Also wie schaffe ich es dass das headerzeugs nicht modifiziert wird, nachdem es included wird, sondern umgekehrt...?
um mich ein bisschen aus der Affäre zu reden: mit php habe ich bis jetzt noch nicht viel unternommen, aber erste bücher sind bestellt -
Schreib dazu am besten die Ausgabe in eine Variable und include die Seite ganz am Anfang... Damit müsste das mit den headern dann klappen...
MfG
Edit: Die Variable kannst du dann da ausgeben wo sie benötigt wird...
Beitrag zuletzt geändert: 12.1.2011 14:16:34 von trik -
Diskutiere mit und stelle Fragen: Jetzt kostenlos anmelden!
lima-city: Gratis werbefreier Webspace für deine eigene Homepage