chrdohmen
Goto Top

session start() schlägt fehl

Hallo Zusammen,

habe ein Login Formular mit folgendem Code:

<form action="kunden_portal/kunden_portal.php". method="post">
<tr><td>Benutzername:</td><td><input type="text" name="benutzername" maxlength="15"></td></tr>
<tr><td>Kennwort:</td><td><input type="password" name="kennwort" maxlength="15"></td></tr>
<tr><td colspan="2"><input type="submit" value=" Absenden "><input type="reset" value=" Abbrechen "></td></tr>
</form>


die kunden_portal.php schaut folgendermaßen aus:

session_start();
include ('../inc/dbconnect.php');
include ('../inc/config.php');

$user = $_POST["benutzername"];
$pwd = $_POST["kennwort"];

$sql = "SELECT USER, PWD, REGION FROM Benutzer WHERE USER LIKE '$user' LIMIT 1";
$result = mysql_query($sql);
$row = mysql_fetch_assoc($result);

if($row['PWD'] == $pwd) { ... }
else {... }

Problem die Zeile session_start() funktioniert nicht. Da bekomm ich immer die Fehlermeldung:


Warning: Cannot send session cookie - headers already sent by (output started at /mnt/web3/10/34/51067434/htdocs/mysql/kunden_portal/kunden_portal.php:3) in /mnt/web3/10/34/51067434/htdocs/mysql/kunden_portal/kunden_portal.php on line 4

Warning: Cannot send session cache limiter - headers already sent (output started at /mnt/web3/10/34/51067434/htdocs/mysql/kunden_portal/kunden_portal.php:3) in /mnt/web3/10/34/51067434/htdocs/mysql/kunden_portal/kunden_portal.php on line 4


Hoffe jemand kann mir weiterhelfen. Im Voraus schonmal vielen Dank.

Gruß

Content-Key: 98174

Url: https://administrator.de/contentid/98174

Printed on: April 20, 2024 at 03:04 o'clock

Member: crazybob
crazybob Sep 30, 2008 at 12:36:00 (UTC)
Goto Top
Sieht so aus als bestünde bereits eine Session.
Kommentiere deinen Startbefehl doch mal aus und versuche Daten in die Session zu schreiben und wieder auszulesen.
Member: SlainteMhath
SlainteMhath Sep 30, 2008 at 12:56:44 (UTC)
Goto Top
Hi,

die Fehlermeldung deutet daraufhin, das vor dem session_start() bereits Zeichen an den Browser gesendet wurden. Evtl. ein Blank vor oder nach den <?php ?> Tags oder sowas ähnliches.

Btw.
$user = $_POST["benutzername"];  
....
$sql = "SELECT USER, PWD, REGION FROM Benutzer WHERE USER LIKE '$user' LIMIT 1";  
ist anfällig für SQL Injections...

lg,
slainte
Member: chrdohmen
chrdohmen Sep 30, 2008 at 13:58:25 (UTC)
Goto Top
Habe versucht die session_id bzw. session_name auszulesen aber da läuft er auch auf Fehler.
Member: chrdohmen
chrdohmen Sep 30, 2008 at 13:59:21 (UTC)
Goto Top
Bin kein Profi daran hab nur ähnlichen Code im PHP Tutorial gesehen und deshalb so verwendet.

Was schlägst du vor?

Gruß
Member: dtzzzzzz
dtzzzzzz Oct 01, 2008 at 07:59:54 (UTC)
Goto Top
Du musst $_POST["benutzername"] escapen, bevor du es im String einsetzst.

Zu session_start(): Es dürfen keine Zeichen/Code vor dem session_start() abgeschickt werden. Also prüfe, ob dein Template z. B. bereits vorher schon geladen wird etc.