PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : header Befehl funktioniert nicht mehr


Notausstieg
29.12.2005, 15:23:55
Hy,

Wenn ich eine Page weiterleiten will nehm ich immer den header Befehl, aber seit neuestem kommt da immer eine Warnung, sonst ging das immer.header("Location: http://markus.beucha.de/page/intern/members/index.php?sid=$SesId");
und da kommt immer:

Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\page\intern\login.php:1) in C:\Programme\xampp\htdocs\page\intern\login.php on line 19


kann mir da jemand helfen

Notausstieg
29.12.2005, 15:26:32
hier meine login.php

<?php
$conn = mysql_connect("localhost","root","");
mysql_select_db("markusbloch",$conn);
$username = $HTTP_POST_VARS["username"];
$password = $HTTP_POST_VARS["password"];
$login = $HTTP_POST_VARS["login"];
if($username != ""){
$query = "SELECT * FROM Temp Where username='$username'";
$result = mysql_query($query);
if($result != "") {
$row = mysql_fetch_array($result);
$query = "DELETE FROM Temp Where SesId='".$row["SesId"]."'";
$result = mysql_query($query);
}
mt_srand((double)microtime() * 1000000);
$SesId = mt_rand(); // Create unique sessionId
$query2 = "INSERT INTO Temp (SesId, Date, username) VALUES ('$SesId', '$Datesession', '$username')";
$result2 = mysql_query($query2);
header("Location: http://markus.beucha.de/page/intern/members/index.php?sid=$SesId");


}
else {
?>
<html>
<head>
<title>LOG-IN</title>
<link rel="stylesheet" type="text/css" href="style.css">
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>
<body >


<form name="form1" method="post" action="http://markus.beucha.de/page/intern/login.php">
<table width="100%" height="100%"><tr><td align="center" valign="middle">
<table border=0 align="center" valign="middle"><tr><th colspan="3">

<h3>Login</h3>
<?php
if ($errormessage != ""){echo "<br><font color=\"#FF0000\" size=\"-1\"><strong>$errormessage</strong></font><br>";} ?>

</th></tr>
<tr valign="middle">
<td>Username:</td>
<td><input name="username" type="text" id="username" value=<?PHP



echo "\"$username2\"";

if ($username2 != ""){echo "DISABLED";}
?>></td>
</tr><td>Passwort:</td><td>
<input name="password" type="password" id="password"></td></tr><tr><th colspan="3" align="left"> <font size="-1">&nbsp;&nbsp;|<a href="http://markusbloch.ma.funpic.de/page/intern/forgot.php">Passwort vergessen</a>|<a href="http://markusbloch.ma.funpic.de/page/intern/signup.php">Mitglied werden</a>|</font><input type="submit" value="Login =>"></th></tr> </table></tr></td></table>
<input type="hidden" name="login" value="true">

</form>

</body>
</html>
<?php
}


?>

Damir
29.12.2005, 17:24:39
Hi,

du darfst vor header() nichts senden - auch kein Leerzeichen - ....
Warscheinlich hast du entweder ein Leerzeichen oder aber deine MySQL-Abfragen erzeugen einen Fehler und geben diesen zurueck (einfach mal mit @ unterdruecken).

Bye Damir

r0w
29.12.2005, 19:37:48
Wenn die MySQL Abfragen einen Fehler erzeugen sollten müsste doch vor der Header-Fehlermeldung noch mindestens eine weitere kommen...

Noch 2 Tips:
Ich würde immer eine Fehlerbehandlung einbauen, also zum Beispielt mit if(mysql_select_db()) {} testen ob die verbindung aufgebaut wird.

$conn = mysql_connect('localhost','root,''');

if(mysql_select_db('datenbank',$conn)) {
/* wenn alles klappt */
}
else {
/* Wenn irgendein Fehler aufgetreten ist */
}


und: http://www.selfphp.de/forum/showthread.php?p=66996#post66996 ;)