probleme mit sessions

supersalzi

Erfahrenes Mitglied
Hi,

ich bin dabei unter zuhilfenahme von http://www.tutorials.de/tutorials9684.html ein loginbereich zu erstellen. Doch es gelingt mir nicht, ich habe probleme mit der session.
Auf meinem Localhost ist mir aufgefallen, das sich die $_SESSION["id"] = $data["id"]; irgendwie zu verändern scheint. Online (strato.de,Powerweb S) kommen haufen Fehlermeldungen:

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /mnt/kw2/02/586/00000001/htdocs/templ/header.php:4) in /mnt/kw2/02/586/00000001/htdocs/content/waldis/daten/login.php on line 3

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /mnt/kw2/02/586/00000001/htdocs/templ/header.php:4) in /mnt/kw2/02/586/00000001/htdocs/content/waldis/daten/login.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at /mnt/kw2/02/586/00000001/htdocs/templ/header.php:4) in /mnt/kw2/02/586/00000001/htdocs/content/waldis/daten/login.php on line 24

kann es sein, das ich die Sessionvariablen falsch definiere, bzw die Session gar nicht eröffnet wird?

Login.php
PHP:
<?php 

session_start();

require ('scripts/db-access.inc.php');		// loin db

$sql = "SELECT "."id, vorname, email, passwd, name "."FROM "."klasse ".
  "WHERE "."email like '".$_REQUEST["email"]."' AND "."(passwd = '".$_REQUEST["passwd"]."')";


$loginResult = mysql_query ($sql);

if (mysql_num_rows($loginResult) > 0){
	
	$data = mysql_fetch_array ($loginResult);				// benutzerdaten in ein Array packen

	$_SESSION["id"] = $data["id"];					// Sessionvariablen erstellen und registrieren
	$_SESSION["email"] = $data["email"];
	$_SESSION["vorname"] = $data["vorname"];
	$_SESSION["name"] = $data["name"];

	header ("Location: index.php?a=waldis&b=daten&c=adressen");
}else{
	header ("Location: index.php?a=waldis&b=daten&c=fehler");
}

?>

und noch was:
session_check.php soll überprüfen ob eine Session existiert, wenn ich das richtig verstanden habe. Doch dabei wird meins erachtens nach gar nicht geschaut, ob ene evt.vorhandene session, bei der es eine id gitb, etwas mit den rechten auf die datei zuzugreifen gemeinsam hat. Andersherum, wenn ich 2 verschiedene login Bereiche für verschiedene Nutzer mache geht es so nicht, oder?
secchen_check.php

PHP:
 <?php
session_start ();
if (!isset ($_SESSION["id"]))
{
  header ("Location: index.php?a=waldis&b=daten&c=fehler");
}
?>
Vielen Dank!
 
In den Fehlermeldungen steht alles was Du wissen musst:
Warning: session_start(): Cannot send session cookie - headers already sent by (output started at /mnt/kw2/02/586/00000001/htdocs/templ/header.php:4) in /mnt/kw2/02/586/00000001/htdocs/content/waldis/daten/login.php on line 3

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at /mnt/kw2/02/586/00000001/htdocs/templ/header.php:4) in /mnt/kw2/02/586/00000001/htdocs/content/waldis/daten/login.php on line 3

Warning: Cannot modify header information - headers already sent by (output started at /mnt/kw2/02/586/00000001/htdocs/templ/header.php:4) in /mnt/kw2/02/586/00000001/htdocs/content/waldis/daten/login.php on line 24
 
Eine session muss immer das erste sein was im Quellcode ausgegeben wird. Wenn vorher schon irgendein html-code steht und sei es nur ein Leerzeichen (das man leicht übersieht) kommt diese Fehlermeldung: "headers already sent"

Vermutlich wird deine login.php von einer anderen Datei per include eingebunden und das geht so leider nicht.
 
Danke erstmal, das ist sehr hilfreich!

ich vermute mal "deinertsche" wird richtig liegen, denn ich include es. Werde dann gleich mal schauen. Danke
 
Zurück