Was mache ich mit der "session_start()"

Ersatzkandidat

Grünschnabel
Ich hoffe der Betreff ist aussagekraeftig genug. ich weiss nicht, wie ich anders fragen soll. es geht darum, dass ich staendig diesen bloeden session-fehler bekomme, wenn ich was mit php und mysql auf meinem localhost einrichten und testen will. ich weiss nicht was ich da noch einstellen muss oder ob ich da irgendwas falsch mache. ich brauch eure hilfe.

Das sind die fehlermeldungen:

Warning: session_start(): The session id contains invalid characters, valid characters are only a-z, A-Z and 0-9 in E:\Apache2\htdocs\test\sspicture\src\session.php on line 10

Warning: session_start(): Cannot send session cookie - headers already sent by (output started at E:\Apache2\htdocs\test\sspicture\src\session.php:10) in E:\Apache2\htdocs\test\sspicture\src\session.php on line 10

Warning: session_start(): Cannot send session cache limiter - headers already sent (output started at E:\Apache2\htdocs\test\sspicture\src\session.php:10) in E:\Apache2\htdocs\test\sspicture\src\session.php on line 10

Username:
Passwort:

Warning: Unknown(): The session id contains invalid characters, valid characters are only a-z, A-Z and 0-9 in Unknown on line 0

Warning: Unknown(): Failed to write session data (files). Please verify that the current setting of session.save_path is correct (/tmp) in Unknown on line 0

also wo kann mein problem sein?
danke fuer eine schnelle und konkrete antwort, die mir vielleicht auch bei den anderen installationen die einen session-fehler zeigen helfen koennen.
 
Naja das Problem ist, dass der "Wert" der aktuellen Session aus ungültigen Zeichen besteht.
zeig doch mal den Quellcode den du verwenderst, dann kann man mehr dazu sagen...
 
Den quellcode der session.php?

Code:
<?
class session
{

function session()
	{
	global $sql_table,$DB;
	$this->DB=$DB;
	$this->sql_table=$sql_table;
	session_start();
	if(isset($_GET['location']) && $_GET["location"]=="logout")
		$this->logoutuser();
	if(isset($_SESSION['SESSION']) && $_SESSION['SESSION']['loggedin']=='true')
		$this->usercheck($_SESSION["SESSION"]["user"],$_SESSION["SESSION"]["pw"]);
	}

function usercheck ($user,$pw)
	{
	$num=$this->DB->sql_num($this->sql_table["user"],"id"," WHERE user_name='$user' AND user_pw='$pw'");
	if($num==0)
		{
		unset($_SESSION['SESSION']);
		$_SESSION["SESSION"]["loggedin"]="false"; 
		}
	}

function logoutuser()
	{
	unset($_SESSION['SESSION']);
	session_destroy();
	header("location: admin.php");
	}

function sessionlogin($user,$pw)
	{
	global $picmsg;
	$daten=$this->DB->sql($this->sql_table["user"],"COUNT(id) num,user_status,user_rechte"," WHERE user_name='$user' AND user_pw='$pw' GROUP BY id");
	if($daten['num']==1)
		{
		$_SESSION["SESSION"]["user"]=$user;
		$_SESSION["SESSION"]["pw"]=$pw;
		$_SESSION["SESSION"]["loggedin"]="true";
		$_SESSION['SESSION']['status']=$daten['user_status'];
		return $daten['user_rechte'];
		}
	else
		return "";
	}
}
?>
 
hmm diesen Fehler kann ich mir eigentlich nur so erklären, dass der Parameter PHPSESSID (oder wie auch immer der Sessionname bei dir definiert ist) empfangen wird, z.B. durch ein Cookie oder eine POST / GET Variable, und dieser jedoch leer ist oder einen ungültigen Wert hat.

Bau doch mal vor session_start() ein var_dump($_REQUEST) ein, vielleicht sieht man dort ja ein leeres PHPSESSID.

Btw: Halte dich doch bitte an unsere Netiquette!
 
hab aber nirgends gefunden wonach ich suche. keine klare bzw hilfreiche antwort. habe das mit dem

var_dump($_REQUEST)

ausprobiert. da gibt er mir aber nur noch diese fehlermeldung aus

Code:
Parse error: parse error, unexpected T_STRING in E:\Apache2\htdocs\test\sspicture\src\session.php on line 11
 
Das ; hinter var_dump ist aber da?

Wo hast du keine Antwort auf dein Problem gefunden? In der Netiquette?
 
Das mit dem "var_dump($_REQUEST);" bringt leider nichts, denn jetzt bringt er die ganzen fehlermeldungen nur eine zeile weiter (also nicht mehr zeile 10 sondern zeile 11).

muss ich vielleicht in der php.ini irgendwas einstellen? es ist ja nicht das erste mal, dass ich probleme mit dieser session-dingsda habe.
 
Zurück