PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei Sessions...


de_malte
22.11.2004, 11:51:11
Hi!
Immer wennn ich ne Session starten will kommt diese errormeldeung:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/web117/html/spk/gbook/admin.php:5) in /var/www/web117/html/spk/gbook/admin.php on line 144
was bedeutet denn dass?

xabbuh
22.11.2004, 11:57:07
Original geschrieben von de_malte
Hi!
Immer wennn ich ne Session starten will kommt diese errormeldeung:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /var/www/web117/html/spk/gbook/admin.php:5) in /var/www/web117/html/spk/gbook/admin.php on line 144
was bedeutet denn dass?
Du sendest bereits vor dem session_start() eine Ausgabe an den Browser. Zum Beispiel durch ein echo oder print. Oder aber du beginnst die Datei nicht mit <?php sondern mit irgendwelchem HTML-Quelltext.

de_malte
22.11.2004, 15:04:36
hmmm...
ich weiss nich warum:


<?php

include("config.inc.php");
include("connect.inc");
$abfrage="SELECT user,passwort FROM $tabletwo";
$ergebnis=mysql_query($abfrage,$GB_conecting2);


$row=mysql_fetch_array($ergebnis);
if($passwort == $row[passwort])
{
session_start();
echo "Sie sind erfolgreich eingeloggt! Sie werden in 4 Sekunden Automatisch weitergeleitet. Sollte die automatische Weiterleitung nicht funktionieren klicken sie <a href="adminmenue.php?lan=".session_name()."ses=".session_id()."&username=".$user."">hier</a> <meta http-equiv="refresh" content="4; URL=adminmenue.php">";
}
else
{
echo "Das angegebene Passwort ist falsch! Klicken sie <a href="admin.php">hier</a> oder benutzen sie den &quot;Zur&uuml;ck Button&quot; ihres Browsers um es erneut zu versuchen.";
}
/********************************************************************** ********************************************************************** ********************************************************************** *********/

//Wird ausgefuehrt falls noch kein Account vorhanden ist

if(empty($row['user']) AND empty($row['passwort'])){

echo "<p align="center" class="style">[ Posti GBook Admincenter ]</p>" .
"<table border="0" bgcolor="A8C4DF" width="55%" align="center" cellspacing="0">" .
"<tr>" .
"<td colspan="2"><p>Es wurde noch kein Adminaccount erstellt. Sie müssen erst einen Account erstellen bevor sie das Admincenter benutzen können!</p></td>" .
"</tr>" .
"<tr>" .
"<td colspan="2" height="10px"></td>" .
"</tr>" .
"<tr>" .
"<td width="25%" bgcolor="A9CBDF"><form action="admin.php" method="post">Account Name:</td>" .
"<td align="center" bgcolor="A9CBDF"><input type="text" value="Administrator" name="username" id="username"></td>" .
"</tr>" .
"<tr>" .
"<td width="25%">Passwort:</td>" .
"<td align="center"><input type="password" name="passwort" id="passwort"></td>" .
"</tr>" .
"<tr>" .
"<td height="5px" colspan="2"><input type="hidden" name="firstregister" id="firstregister" value="ja">" .
"</tr>" .
"<tr>" .
"<td width="15%" bgcolor="A9CBDF"></td>" .
"<td align="center" bgcolor="A9CBDF"><input type="submit" value="Account erstellen"></td>" .
"</tr>" .
"<tr>" .
"<td height="10px" colspan="2"></form></td>" .
"</tr>" .
"</table>" .
"<p align="center">copyright 2004 by <a href="http://www.super-spk.de">super-spk.de</a></p>";


mysql_free_result($ergebnis);
mysql_close($GB_conecting2);
}
/********************************************************************** ********************************************************************** ********************************************************************** ************/
//Login bereich wird ausgefuehrt falls ein Account besteht

else {

if($loginformular != ja)
{
include("connect.inc");
$abfrage="SELECT ID,user,passwort FROM $tabletwo";
$ergebnis=mysql_query($abfrage,$GB_conecting2);

echo "<p align="center" class="style">[ Posti GBook Admincenter ]</p>" .
"<table border="0" bgcolor="A8C4DF" width="55%" align="center" cellpadding="4" cellspacing="0">".
"<tr>" .
"<td width="30%">Username: </td>" .
"<td><form action="admin.php?username=".$user."&ses=".session_id()."" method="post">" .
"<select name="user">";

while($row=mysql_fetch_array($ergebnis))
{
echo "<option value="" . $row['ID'] . "">" . $row['user'] . "</option>";
}

echo "</td>" .
"</tr>" .
"<tr>" .
"<td width="30%" bgcolor="A9CBDF">Passwort:</td>" .
"<td bgcolor="A9CBDF" ><input type="password" name="passwort"></td>" .
"<input type="hidden" name="login" value="ja">" .
"<input type="hidden" name="loginformular" value="ja">" .
"</tr>" .
"<tr>" .
"<td colspan="2" height="5px" bgcolor="A9CBDF"></td>" .
"</tr>" .
"<tr>" .
"<td width="30%"></td>" .
"<td><input type="submit" value="Einloggen">" .
"</tr>" .
"</table></form>";


}

mysql_free_result($ergebnis);
mysql_close($GB_conecting2);
}



/********************************************************************** ********************************************************************** ********************************************************************** ************/
//Wird ausgefuehrt um einen Account zu erstellen falls kein Account besteht

if($firstregister == ja)
{
include("connect.inc");

$strSQL="INSERT INTO $tabletwo" .
"(user,passwort)" .
"VALUES('$username','$passwort');";
mysql_select_db($dbname);
mysql_query($strSQL);
echo "<p>" . mysql_affected_rows() .
" <meta http-equiv="refresh" content="4; URL=admin.php">Account erstellt. Danke dass Sie sich für Posti GBook entschieden haben. Sie werden in 4 sek. weitergeleitet. Sollte die Weiterleitung nicht fnktionieren klicen sie <a href="admin.php">hier</a></p>";
}







/********************************************************************** ********************************************************************** ********************************************************************** ****************/
//Verarbeitet die Daten die vom Login Bereich gesendet werden

if($login == ja)
{
include("connect.inc");
$abfrage="SELECT user,passwort FROM $tabletwo WHERE (ID=$user)";
$ergebnis=mysql_query($abfrage,$GB_conecting2);

$row=mysql_fetch_array($ergebnis);
if(empty($passwort))
{
echo "<p>Passwort eingeben! So schwer is das doch nicht! Klicken sie <a href="admin.php">hier</a> um es erneut zu versuchen.</p>";
}

else {
//Uberprufung des Passwort


}
mysql_free_result($ergebnis);
mysql_close($GB_conecting2);
}





?>

xabbuh
22.11.2004, 15:38:02
Hast du innerhalb der config.inc.php oder der connect.inc eine Ausgabe? Stehen wirklich Leerzeilen vor dem ersten <?php?

de_malte
22.11.2004, 16:18:22
nein es ist kein leerzeichen...

<?php
//Config.inc.php
$dbusername="";
$dbpasswort="";
$dbhost="";
$dbname="";
$tableone="";
$tabletwo="";
$tablethree="";
?>


//connect.inc
<?php
$GB_conecting2=mysql_connect($dbhost,$dbusername,$dbpasswort);
mysql_select_db($dbname);
?>

xabbuh
22.11.2004, 16:32:32
Original geschrieben von de_malte
nein es ist kein leerzeichen...
Hast du auch in den beiden Dateien, die du includierst keine Leerzeichen vor und nach dem PHP-Block?

Setze doch mal session_start() vor die includes und überprüfe, ob du dann immer noch den Fehler bekommst.

de_malte
22.11.2004, 16:48:32
da kommt kein error ...aber jetz beginnt die session sofort und nicht wenn dass pw kontroliert wird..

xabbuh
22.11.2004, 16:56:06
Original geschrieben von de_malte
da kommt kein error ...aber jetz beginnt die session sofort und nicht wenn dass pw kontroliert wird..
Dann besteht eine der Dateien (möglicherweise auch beide) nicht nur aus dem PHP Block. Ändere das, setzt session_start() wieder an die ursprüngliche Position und alles sollte funktionieren.

de_malte
22.11.2004, 17:22:28
kanns daran liegen dass die datei connect.inc und nicht connect.inc.php heisst?

xabbuh
22.11.2004, 17:28:00
Original geschrieben von de_malte
kanns daran liegen dass die datei connect.inc und nicht connect.inc.php heisst?
Nein, an dem Namen wird es nicht liegen. Nur an dem Inhalt der Datei.
Du solltest dir aber trotzdem mal überlegen, die Datei in connect.inc.php umzubenennen. Denn wenn jemand die Datei connect.inc aufruft, wird er den Inhalt dieser Datei angezeigt bekommen, da Dateien mit .inc Endung (soweit nicht explizit anders eingestellt) nicht geparst werden.