Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
eigentliche müsste das mit der Weiterleitung sowieso einen Fehler geben, denn für header() zählt das gleiche wie für session_start(), vorher darf keine Ausgabe erfolgen.
es wird jedoch immer noch
PHP:
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post" name="login" target="_self" id="login">
zu Beginn der Datei ausgegeben. Übrigens sollten Location Angaben immer als absolute URL gemacht werden (http://website/unterseite.php)
Es wird aber keine Fehlermeldung ausgegeben?
Poste nochmal bitte deinen jetzigen Code
|
mdean
|
Forenposter
|
|
registriert
|
03.01.2007
|
wohnt in
|
Schweiz
|
Beiträge
|
90
|
|
nope keine fehlermeldung.... hab jetzt die header() in absolute pfade geändert aber das ergebniss ist das gleiche.
also das ist meine login.php. die wird dann wie gesagt in alle seiten am rand eingebunden.
PHP:
<form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post" name="login" target="" id="login">
<?php
error_reporting(E_ALL);
include 'conect.php';
$connid = @mysql_connect($MYSQL_HOST, $MYSQL_USER, $MYSQL_PASS) OR die("Error: ".mysql_error());
mysql_select_db($MYSQL_DATA) OR die("Error: ".mysql_error());
// Loggt einen User ein, ..
function doLogin($ID, $Autologin=false)
{
// .. indem die aktuelle Session ID in der Datenbank gespeichert wird
$sql = "UPDATE
User
SET
SessionID = '".mysql_real_escape_string(session_id())."',
Autologin = NULL,
IP = '".$_SERVER['REMOTE_ADDR']."',
Letzte_Aktion = '".mysql_real_escape_string(time())."',
Letzter_Login = '".mysql_real_escape_string(time())."'
WHERE
ID = '".$ID."'
";
mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// Daten des Users in der Session speichern
$sql = "SELECT
Nickname
FROM
User
WHERE
ID = '".$ID."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
$row = mysql_fetch_assoc($result);
$_SESSION['UserID'] = $ID;
$_SESSION['Nickname'] = $row['Nickname'];
}
if(isset($_POST['Send_x'], $_POST['Send_x']) ){
// Falls der Nickname und das Passwort übereinstimmen..
$sql = "SELECT
ID
FROM
User
WHERE
Nickname = '".mysql_real_escape_string(trim($_POST['Nickname']))."' AND
Passwort = '".md5(trim($_POST['Passwort']))."'
";
$result = mysql_query($sql) OR die("<pre>\n".$sql."</pre>\n".mysql_error());
// wird die ID des Users geholt und der User damit eingeloggt
$row = mysql_fetch_assoc($result);
// Prüft, ob wirklich genau ein Datensatz gefunden wurde
if (mysql_num_rows($result)==1){
doLogin($row['ID'], isset($_POST['Autologin']));
header ("Location: http://localhost/test/usercenter.php");
}
else{
header ("Location: http://localhost/test/pw_forgot.php");
}
}
?>
<table width="206" height="120" border="0" cellpadding="0" cellspacing="0">
<tr>
<td height="29" colspan="4"> </td>
</tr>
<tr>
<td width="8" height="28"> </td>
<td colspan="3"><label>
<input name="Nickname" type="text"
class=blur id=username
style="width:125px; height:18px; font-family:Verdana; font-size:11px; color:#515151; border-width:1px; border-style:solid; border-color:#7B7B7B"
onFocus="style.background='#E4E4E4';if(value == 'username'){value=''};"
onBlur="style.background='#ffffff';if(value== ''){value='username'}" value=username
size=21 maxlength="30">
</label></td>
</tr>
<tr>
<td height="28"> </td>
<td colspan="2"><input name="Passwort" type="password"
class="logininput"
style="width:125px; height:18px; font-family:Verdana; font-size:11px; color:#515151; border-width:1px; border-style:solid; border-color:#7B7B7B"
onFocus="style.background='#E4E4E4';if(value == 'password'){value=''};"
onBlur="style.background='#ffffff';if(value== ''){value='password'}" value="password"
size=21 maxlength="32" /></td>
<td width="43"> </td>
</tr>
<tr>
<td height="35"> </td>
<td width="72" height="35" align="center" valign="middle"><span class="navi_rechts"><a href="register.php">Registrieren</a></span></td>
<td width="83" align="center" valign="top" class="navi_rechts"><a href="pw_forgot.php">PW<br />
vergessen?</a></td>
<td height="35"><input name="send" type="image" onclick="submit()" src="pics/search.gif" /></td>
</tr>
</table>
</form>
Die Funktion session_start() setze ich dann dort, wo die login.php eingebunden wird, ganz am anfang in das dokument.
|
Flitze
|
Administrator
|
|
registriert
|
17.10.2006
|
wohnt in
|
Eschwege
|
Beiträge
|
332
|
|
manchmal sollte man dich teeren und federn ôÔ
Code:
<td height="35"><input name="send" type="image" onclick="submit()" src="pics/search.gif" /></td>
name="send" kleingeschrieben! 
Soo und was möchte unser if
PHP:
if(isset($_POST['Send_x'], $_POST['Send_x']) ){
Send großgeschrieben!
nunja.. ne 
Achso, beachte übrigens bitte trotzdem, das vor header() keine Ausgabe stattfinden darf
|