header....

rexee

Grünschnabel
PHP:
<?php
	header ("Location: http://localhost/start.php");
    ?>

Also er nimmt bei mir nicht diesen Header, den er eigentlich nach dem login ausführen sollte.

Die Zelle sieht in etwa so aus

PHP:
##################################
#                                #
#                                #
?>

    <?php
	header ("Location: http://localhost/start.php");
    ?>

<?
#				   			  	 #
#                           	 #
##################################

Starten sollte er dann start.php meines ermessens, was er ja ansich nich tut. Und wenn ich gleich mal dabei bin. Wie kann ich sagen, das logout/ Abmelden in einer anderen stelle ausgeführt wird bzw verlinkt wird ?

Ich danke im Vorraus
 
PHP:
Warning: Cannot modify header information - headers already sent by (output started at C:\Programme\xampp\htdocs\login.php:30) in C:\Programme\xampp\htdocs\login.php on line 31

das die Fehler meldung
 
Naja, du musst das vor jeder Browserausgabe machen. Vor jedem Leerzeichen, vor allem :)

Du kannst den Header nicht im nachhinein verändern
 
Das kommt auf Deinen Code an.
Und mal ehrlich: Macht es Sinn ueberhaupt was auszugeben wenn doch eh umgeleitet wird? Eher nicht, oder?
Daher kannst Du, wenn Du doch weisst, dass eh umgeleitet werden soll, auch gleich auf die Ausgabe verzichten.
 
Außerdem kann man doch meines wissens mit ob_start() und ob_end_flush() das senden aller header bis ob_end_flush() verhindern oder nicht?
 
Tag Tag


du musst daauf achten, das ganz am anfang von der seite vor dem
PHP:
<?
kein leerzeichen steht

so könnte ein gültiger code aussehen:
PHP:
<?
ob_start()
?>
<html>.......
<body>
<?
$i = 1;

if($i == 1)
{
    header("location: lordOfTheWeed.php");
}
else
{
    echo "";
}
?>
</body>
</html>


habs nicht getesten wens nicht f unzt sags mit

habs doch getestet es geht


und vor <? sdarf nichts stehen
 
Die Variante mit dem Output Buffer ist aber nicht gerade die optimalste Loesung.
Natuerlich funktioniert es aber dann steht der Output Buffer nicht mehr zur Verfuegung wenn man ihn mal anderweitig benoetigt.
Also besser sauber programmieren als solche Tricksereien zu nutzen.

Weiterhin sollte <?php und nicht <? genutzt werden. Das kurze Tag kann schliesslich per php.ini deaktiviert werden und somit koennte man, wie wenn man ploetzlich eine boese Ueberraschung erleben wenn das Script nicht mehr will.
 
hmm aber wa sist wenn die datei so aussieht ?

PHP:
<?
<html>
<head>
</head>
<title> Login Seite</title>
<body>
<body background="img/hinter.gif">
	<table border="2" bordercolor="#000000" width="100%" cellspacing="20" cellpadding="20" bgcolor="gray">
<tr><td>
<!-- --------------------- -->
<!-- OBERER BEREICH ANFANG -->
<!-- --------------------- -->
<font color="blue"></div><div align="center"><big><b>Willkommen bei Space Combat Online</b></big><p><a href="index.html" target="_self">Startseite</a>||<a href="login.php" target="_self"> Login</a>||<a href="admin/index.html" target="_self"> Admin Panel</a>

<!-- --------------------- -->
<!-- OBERER BEREICH ENDE   -->
<!-- --------------------- -->
</td></tr></table></font><font color="green">
?>
<?




if      ($anmelden) { anmelden($fertig, $user, $password1, $password2, $email);}
else if ($abmelden) { abmelden($fertig, $user, $password);}
else if ($forgot)   { forgot($fertig, $email);}
else                { login($fertig, $user, $password);}




?>



<?php
function inhalt($user)
{
session_start();
session_register("user");


##################################
#                                #
#                                #
?>

    <?php
	header ("Location: http://127.0.0.1/start.php");
    ?>

<?
#				   			  	 #
#                           	 #
##################################


}
?>



<?
function login($fertig, $user, $password)
{
include("config.php");

if ($fertig) {

$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Benutzer exestiert nicht!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
inhalt($user);
}
else {
echo "Falsches Passwort!";
}
}
}

}

else {
echo "Zum anmelden geht es <a href=\"$PHP_SELF?anmelden=yes\">hier</a> lang!";
echo "<p><h2>Login</h2></p>";

	echo "<form method=\"POST\" action=\"$PHP_SELF?fertig=yes\">";
	?>
	<table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2"><font color="green">Nickname:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2"><font color="green">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password" value=""></font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Login></td>
  </tr>
</table>
</form>
<?
echo "<p><a href=\"$PHP_SELF?forgot=yes\">Passwort vergessen?</a><br><a href=\"$PHP_SELF?abmelden=yes\">Abmelden</a></p>";
}

}
?>


<?
function anmelden ($fertig, $user, $password1, $password2, $email)
{
include("config.php");

if($fertig) {
 $abfrage1 = mysql_query("SELECT user FROM login");
 while ($row = mysql_fetch_object ($abfrage1)) {
	if	($row->user==$user) {
	echo "Dieser Benutzer existiert schon!";
	exit;
	}
	}
	if ($user=="" OR $password1=="" OR $password2=="" or $email=="") {
	echo "Sie haben mindestens ein Feld nicht ausgefüllt!";
	}
	else if ($password1!=$password2) {
	echo "Ihr Passwort ist ungleich Ihrer Wiederholung!";
	}
	else {
	$anfuegen=mysql_query("INSERT INTO login (user, password, email) VALUES ('$user','$password1', '$email')");
	echo "Erfolgreich angemeldet! Sie können sich nun einloggen:<br>";
	@login();
	}
}
else {
	echo "<h2>Anmelden</h2>";
	echo "<form method=\"POST\" action=\"$PHP_SELF?anmelden=yes&fertig=yes\">";
	?>
	<table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password1" value=""></font></td>
  </tr>
  <tr>
    <td><font size="2">Wiederholen:</font></td>
    <td><font size="2"><input type="password" name="password2" value=""></font></td>
  </tr>
  <tr>
    <td><font size="2">E-Mail:</font></td>
    <td><font size="2"><input type="text" name="email" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Anmelden></td>
  </tr>
</table>
</form>
<?
}

}
?>
</body>
</html>




<?
function forgot ($fertig, $email)
{

include("config.php");

if ($fertig) {
$abfrage=mysql_query("SELECT * FROM login");
while ($row = mysql_fetch_object ($abfrage)) {
if ($email==$row->email) { $ismail="true"; }
}
if ($ismail=="true") {
$password=mysql_query("SELECT * FROM login WHERE email = '$email'");
while ($row = mysql_fetch_object ($password)) {
$nachricht="Hallo $row->user!\n\nIhr Passwort ist:\n\n$row->password\n\nMfG\nAdmin";
}
mail($email, "Passwort", $nachricht, "From: Administrator");
?>
<p>Das Passwort wurde Ihnen erfolgreich an die Adresse <i><? echo $email; ?></i> geschickt!<br>
Rufen Sie Ihre E-Mails ab und loggen Sie sich ein.<br></p>

<?

login();
}
else { echo "Ihre angegebene E-Mail Adresse wurde nicht gefunden!";}
}
else {

echo "<p><h2>Passwort vergessen</h2><p>";
echo "<p><form method=post action=\"$PHP_SELF?forgot=yes&fertig=yes\">";
?>
<table cellspacing="1" cellpadding="2" border="0">
<tr><td><font size="2">E-Mail Adresse:</font></td><td align=center><input type=text name=email></td></tr>
<tr><td colspan="2" align=center><input type=submit value="Schicken!"></td></tr>
</table></form></p>
<?
}
}
?>



<?
function abmelden($fertig, $user, $password)
{

include ("config.php");

if($fertig) {
$abfrage = mysql_query ("SELECT * FROM login WHERE user = '$user'");
$reihen = mysql_num_rows($abfrage);
if ($reihen <= 0) {
echo "Unbekannter Benutzername!";
}
else {
while ($row = mysql_fetch_object ($abfrage)) {
if ($row->password==$password) {
$delete = mysql_query ("DELETE FROM login WHERE user = '$user'");
echo "Ihre Daten wurden erfolgreich aus der Datenbank entfernt!";
}
else {
echo "Falsches Passwort!";
}
}
}

}
else {
	 echo "<p><h2>Abmelden</h2></p>";
	echo "<form method=\"POST\" action=\"$PHP_SELF?abmelden=yes&fertig=yes\">";
	?>
	<table cellspacing="1" cellpadding="2" border="0">
    <tr>
    <td><font size="2">Benutzername:</font></td>
    <td><font size="2"><input type="text" name="user" value="">&nbsp;</font></td>
  </tr>
  <tr>
    <td><font size="2">Passwort:</font></td>
    <td><font size="2"><input type="password" name="password" value=""></font></td>
  </tr>
  <tr>
    <td colspan=2 align=center><input type=submit value=Abmelden></td>
  </tr>
</table>
</form>
<?
}

}
?>
 
Zurück