Programm funktioniert trotz Fehlermeldung - Meldung entfernen ?!

NetPerformance

Erfahrenes Mitglied
Hallo

Beim ersten start von meinem Programm werden die actions nicht erkannt.


Gesamte Quelle:
Code:
<?php

error_reporting(E_ALL);

// Session
session_start();
$sessionid = session_id();

$inhalt = "willkommen.php";
$menue  = "menue.php";
$id     = "";

$matrikelnummer = "";
$generierte_seite = false;

// counter zaehlt die falschen Antworten zusammen
$counter = 0;

// Datenbak-Verbindung wird aufgebaut.
include_once('connect.php');

//**********************
// E-Mail Syntax Check *
//**********************
function email_check($email) {
	if (eregi("^[a-z0-9]+([-_\.]?[a-z0-9])+@[a-z0-9]+([-_\.]?[a-z0-9])+\.[a-z]{2,4}", $email))
		return FALSE;
	else
		return TRUE;
}

//**************************************************************************************
// Diese Methode traegt die bereits gestellten Fragen in der kattalog_temp Tabelle ein *
//**************************************************************************************
function frage_in_katalog_temp_eintragen ($matrikelnummer, $naechste_frage) {
// die oberste Frage + Matrikelnummer des Studenten wird in 'katalog_temp' gespeichert. Dadurch koennen wir jederzeit feststellen, welche Fragen einen Studenten bereits gestellt wurde.
$query_wird_beantwortet = "INSERT INTO kattalog_temp (
		matrikelnummer,
		id_frage
		
	) VALUES (
		'$matrikelnummer',
		'$naechste_frage'
	)";

	$result_wird_beantwortet = mysql_query($query_wird_beantwortet) or die ("Fehlermeldung :<br>".mysql_error());
}//Ende function frage_in_katalog_temp_eintragen


/* ***********************************************************
Diese Methode generiert eine HTML Seite, die die oberste Frage aus dem Stack (array) mit dem den dazugehoerigen Antworten anzeigt.
*********************************************************** */
function html_seite_erzeugen ($naechste_frage, $level, $matrikelnummer) {

	// Sobald alle Fragen beantwortet wurden, wird die Auswertung generiert
	if ($naechste_frage=="") {

		global $counter;

		$query="SELECT * FROM kattalog_antworten a JOIN kattalog_temp_antworten t ON a.id_antwort = t.id_antwort WHERE matrikelnummer=$matrikelnummer";
		$result = mysql_query($query) or die ("Fehlermeldung :<br>".mysql_error());

		while($row = mysql_fetch_assoc($result)) {
			if($row['wahrheit']=='0') {
				$counter++;
			}
		}//Ende while

		global $generierte_seite;
		$generierte_seite = true;
		global $inhalt;

		$inhalt="Anzahl falsche Antworten: ".$counter;

		// Nach der Auswertung werden die bereits gestellten Fragen aus kattalog_temp entfernt
		$query="DELETE FROM kattalog_temp WHERE matrikelnummer=$matrikelnummer";
		$result = mysql_query($query) or die ("Fehlermeldung :<br>".mysql_error());

		// Nach der Auswertung werden die bereits beantworteten Fragen aus kattalog_temp_antworten entfernt
		$query="DELETE FROM kattalog_temp_antworten WHERE matrikelnummer=$matrikelnummer";
		$result = mysql_query($query) or die ("Fehlermeldung :<br>".mysql_error());

	} else {
	// in diesem array werden gleich alle Antworten zu $naechste_frage gespeichert
	$naechste_frage_antworten = array();
	// in diesem array werden gleich alle ids der Antworten gespeichert
	$naechste_frage_antworten_id = array();
	
	// gibt alle Antworten zu der ausgesuchten Frage aus
	$query_suche_antworten = "SELECT * FROM kattalog_antworten WHERE id_frage='$naechste_frage'";
	$result = mysql_query($query_suche_antworten) or die ("Fehlermeldung :<br>".mysql_error());
	
	// gibt die zu der Frage passenden Antworten aus
	while($row = mysql_fetch_assoc($result)) {
		// das array beinhaltet alle level1 Antworten.
		array_push($naechste_frage_antworten,$row['antwort']);
		array_push($naechste_frage_antworten_id,$row['id_antwort']);
	}

	// Um die Frage als Klartext statt 'id_frage' anzuzeigen.
	$query_fragestellung = "SELECT frage FROM kattalog_fragen WHERE id_frage='$naechste_frage'";
	$result = mysql_query($query_fragestellung) or die ("Fehlermeldung :<br>".mysql_error());
	// Hier wird die Frage passend zu id_frage in der Variable $fragestellung gespeichert.
	$fragestellung="";
	while($row = mysql_fetch_assoc($result)) {
		$fragestellung=$row['frage'];
	}

	// Wird fuer das versteckte Feld benoetigt.
	$anzahl_antworten = sizeof($naechste_frage_antworten);


	/*
	ob_start();
	
		echo "$fragestellung";
		echo "<table>";
		echo "<form method='post' action='index.php?action=frage_anzeigen&level_auswahl=$level'>";
		// Antworten + checkboxen werden erzeugt. 
		for($i=0; $i<=sizeof($naechste_frage_antworten)-1; $i++) {
			echo "<tr><td><input type=checkbox name='antwort$i'></td><td>$naechste_frage_antworten[$i]</td></tr>";
			echo "<tr><td><input type=hidden name='id_antwort$i' value=$naechste_frage_antworten_id[$i]</td></tr>";
			echo "<br>";
		}
		echo "</table>";
		echo "<input type=hidden name=anzahl_antworten value=$anzahl_antworten><br></table>";
		echo "<input type=submit value=weiter></input>";
		echo "</form>";
	
	$html = ob_get_contents();
	ob_end_flush();
	*/

	// Hier werden die Antworten + Checkboxen generiert
	$html = "";
	$html.= "$fragestellung";
	$html.= "<table>";
	$html.= "<form method='post' action='index.php?action=frage_anzeigen&level_auswahl=$level'>";
		// Antworten + checkboxen werden erzeugt. 
		for($i=0; $i<=sizeof($naechste_frage_antworten)-1; $i++) {
			$html.= "<tr><td><input type=checkbox name='antwort$i'></td><td>$naechste_frage_antworten[$i]</td></tr>";
			$html.= "<tr><td><input type=hidden name='id_antwort$i' value=$naechste_frage_antworten_id[$i]</td></tr>";
			$html.= "<br>";
		}
	
	$html.= "</table>";
	$html.= "<input type=hidden name=anzahl_antworten value=$anzahl_antworten><br></table>";
	$html.= "<input type=submit value=weiter></input>";
	$html.= "</form>"; 

	// generierte Seite wird auf true gesetzt, damit include durch echo ersetzt wird. Ich benoetige echo, da ich mit include den $html String nicht darstellen kann.
	global $generierte_seite;
	$generierte_seite = true;
	// var_dump($generierte_seite);
	// global - Damit die Definition der $inhalt Variable ueberschrieben wird.
	global $inhalt;
	$inhalt = $html; 

	}//ENDE Auswertung
}//Ende function html_seite_erzeugen


/* *************************************************************************
Hier werden die noch nicht gestellten Fragen ausgesucht in einem Stack (array) gespeichert. Anschliessend werden die Methoden zum generieren der Ansichtsseite und die Methode zum eintragen der bereits gestellten Fragen ausgefuehrt.
************************************************************************** */
function frage_und_antwort_generieren($level) {

	$matrikelnummer = $_SESSION['matrikelnummer'];

	// in diesem array werden gleich alle levelx Fragen gespeichert, die noch nicht gestellt wurden.
	$fragen = array();

	// alle levelx Fragen, die sich nicht in der kattalog_temp Tabelle befinden, und den Studenten noch nicht gestellt wurden, werden aus der Datenbank ausgelesen
	$query_frage = "SELECT f.id_frage, f.frage FROM kattalog_fragen f LEFT JOIN kattalog_temp t ON f.id_frage = t.id_frage AND matrikelnummer=$matrikelnummer WHERE f.level='$level' AND t.id_frage IS NULL";

	$result = mysql_query($query_frage) or die ("Fehlermeldung:<br>".mysql_error());

	while($row = mysql_fetch_assoc($result)) {
		// das array beinhaltet alle level1 Fragen, die noch nicht gestellt wurden.
		array_push($fragen, $row['id_frage']);
	}

	// liefert die obersten Frage
	$naechste_frage = array_shift($fragen);

	// die oberste Frage + Matrikelnummer des Studenten wird in 'katalog_temp' gespeichert. Dadurch koennen wir jederzeit feststellen, welche Fragen einen Studenten bereits gestellt wurde.
	frage_in_katalog_temp_eintragen($matrikelnummer, $naechste_frage);

	// Diese Methode generiert eine HTML Seite, die die oberste Frage aus dem Stack (array) anzeigt.
	$level="level".$level;
	html_seite_erzeugen($naechste_frage, $level, $matrikelnummer);
}//Ende frage_und_antwort_generieren



//*********************************************** 
// Hier koennen sich die Studenten registrieren *
//***********************************************
if($_GET["action"] == 'registration') {

	// Feldkontrolle - Sind alle Eingabefelder ausgefuellt worden ?!
	if(htmlentities($_POST['matrikelnummer'])!="" && htmlentities($_POST['vname'])!="" && htmlentities($_POST['nname'])!="" && htmlentities($_POST['email'])!="" && htmlentities($_POST['passwort1'])!="" && htmlentities($_POST['passwort2'])!="") {

		// Passwort Verschluesselung + Kontrolle
		$verschluesseltes_passwort1 = md5($_POST['passwort1']);
		$verschluesseltes_passwort2 = md5($_POST['passwort2']);

		// Stimmt Passwort1 mit Passwort2 ueberein ?
		if($verschluesseltes_passwort1 == $verschluesseltes_passwort2) {

			// E-Mail Check
			if(!email_check(htmlentities($_POST['email']))) {
	
				// Datenbank Eintrag wird nach der positive Feldkontrolle ausgefuehrt.
				$query = "INSERT INTO kattalog_student (
					matrikelnummer,
					vname,
					nname,
					email,
					studiengang,
					gruppe,
					passwort
				) VALUES (
					'".$_POST['matrikelnummer']."',
					'".$_POST['vname']."',
					'".$_POST['nname']."',
					'".$_POST['email']."',
					'".$_POST['studiengang']."',
					'".$_POST['gruppe']."',
					'$verschluesseltes_passwort1'
				)";
					
				$result = mysql_query($query);// or die ("Fehlermeldung :<br>".mysql_error());
				if($result) {
					$ausgabe ="Anmeldung war erfolgreich.";
				} else {
					$ausgabe = "Die Matrikelnummer ".$_POST['matrikelnummer']." ist bereits registriert.";
				}
	
			} else {
				$ausgabe ="Ungueltige E-Mail Adresse.";
			}//Ende E-Mail Check

		} else {
			$ausgabe="Passwort stimmen nicht ueberein.";
		}//Ende Passwort Verschluesselung + Kontrolle
	} else {
		$ausgabe ="Fuellen Sie bitte alle Eingabefelder aus.";
	}//Ende Feldkontrolle

	$inhalt = 'ausgabe.php';
} //Ende Registration


//********
// Login *
//********
else if($_GET["action"] == 'login') {

	global $matrikelnummer;
	$matrikelnummer = $_REQUEST['matrikelnummer'];

	// Sessionvariable
	$HTTP_SESSION_VARS["matrikelnummer"] = $matrikelnummer;


	// Feldkontrolle
	if(htmlentities($_POST['matrikelnummer'])!="" && htmlentities($_POST['passwort'])!="") {
		// Ist der Eintrag in der DB vorhanden ? 
		$eintrag_vorhanden=false;

		$matrikelnummer = $_POST['matrikelnummer'];

		$verschluesseltes_passwort = md5($_POST['passwort']);
		
		$query="SELECT * FROM kattalog_student";
		$result = mysql_query($query) or die ("Fehlermeldung :<br>".mysql_error());

		while($row = mysql_fetch_assoc($result)) {
			if($matrikelnummer==$row['matrikelnummer'] && $verschluesseltes_passwort==$row['passwort']) {
				$eintrag_vorhanden=true;
				break;
			}
		}

		if($eintrag_vorhanden) {
			$inhalt="level_auswahl.php";
			$menue="menue_intern.php";
		} else {
			$ausgabe="Falsche Zugangsdaten.";
			$inhalt = 'ausgabe.php';
		}

	} else {
		$ausgabe ="Fuellen Sie bitte alle Eingabefelder aus.";
		$inhalt = 'ausgabe.php';
	}//Ende else	
}//Ende login


//*********************
// Passwort vergessen *
//*********************
else if($_GET["action"] == 'passwort_vergessen') {

	if(htmlentities($_POST['matrikelnummer'])!="") {

		$eintrag_vorhanden=false;
	
		$query="SELECT * FROM kattalog_student";
		$result = mysql_query($query) or die ("Fehlermeldung :<br>".mysql_error());
	
		while($row = mysql_fetch_assoc($result)) {
			if($_POST['matrikelnummer']==$row['matrikelnummer']) {
				$eintrag_vorhanden=true;
				break;
			}
		}
		if($eintrag_vorhanden) { 
			$ausgabe ="Sie haben Post :o)";
		} else {
			$ausgabe ="Die Matrikelnummer ".$_POST['matrikelnummer']." ist nicht registriert.";
		}
	} else {
		$ausgabe ="Geben Sie bitte Ihre Matrikelnummer ein.";
		$inhalt = 'ausgabe.php';
	}
	
	$inhalt = 'ausgabe.php';
}//Ende Passwort vergessen


//**********************************************************
// Hier kann der Admin eine neue Frage + Antwort eintragen *
//**********************************************************
else if($_GET["action"] == 'frage_u_antwort_speichern') {
	
	$id_frage_u_antwort = uniqid(""); 

	// Frage wird in der Datenbank gespeichert.
	$query_frage = "INSERT INTO kattalog_fragen (
		id_frage,
		level,
		frage
	) VALUES (
		'$id_frage_u_antwort',
		'".$_POST['level']."',
		'".$_POST['frage']."'
	)";

	$result_frage = mysql_query($query_frage) or die ("Fehlermeldung :<br>".mysql_error());

	// Antworten werden in der Datenbak gespeichert.
	// Durch die for-Schleife werden vier verschiedene Antworten gespeichert.
	for ($i=1; $i<=4; $i++) {
	$query_antwort = "INSERT INTO kattalog_antworten (
		id_frage,
		wahrheit,
		antwort
	) VALUES (
		'$id_frage_u_antwort',
		'".$_POST['wahrheit'.$i]."',
		'".$_POST['antwort'.$i]."'
	)";

	// Leere Antwort-Felder werden nicht in der Datenbank eingetragen.	
	if($_POST['antwort'.$i] == " ") {	
	} else {
		$result_antwort = mysql_query($query_antwort) or die ("Fehlermeldung :<br>".mysql_error());
	}

	}//Ende for-Schleife
}//Ende frage_u_antwort_speichern



/* ***********************************************************
Hier werden die verschiedenen Level aufgerufen; Im zweten Durchlauf werden die markierten Antworten in der DB eingetragen.
************************************************************ */
else if ($_REQUEST["action"] == 'frage_anzeigen') {

	if ($_REQUEST["level_auswahl"] == 'level1') {

		$level = "1";
		$menue = "menue_intern.php";

		$matrikelnummer = $_SESSION['matrikelnummer'];

		frage_und_antwort_generieren($level);

		// Hier werden die Antworten der Studenten in der DB eingetragen.
		// Wurde auf weiter Button gedrueckt ?!
		if(isset($_REQUEST['anzahl_antworten'])) {

			// $counter_intern, um festzustellen, ob der user auf weiter gedrueckt hat, ohne eine Antwort auszuwaehlen. In diesem Fall wird die leere Eingabe als falsche Antwort gewertet. $counter_intern entspricht Anzahl der Antworten. Falls ein checkbox markiert wird, wird $counter_minumiert minimiert.
			$counter_intern = $_REQUEST['anzahl_antworten'];

			// Kontrolliere alle Checkboxen
			for($i=0; $i<=$_REQUEST['anzahl_antworten']-1; $i++) {
				// Ist der Checkbox Nr.$i aktiviert ? 
				if(isset($_REQUEST['antwort'.$i])) {
					// Falls Checkbox aktiviert wurde -> trage ein, dass der User sich fuer diese Antwort entschieden hat.
					if($_REQUEST['antwort'.$i]=='on') {
						// Alles was jetzt in 'Katalog_temp_antworten' Tabelle eingetragen wird, haelt der Student fuer die richtige Loesung 
						$query = "INSERT INTO kattalog_temp_antworten (
								id_antwort,
								matrikelnummer
							) VALUES (
								'".$_REQUEST['id_antwort'.$i]."',
								'$matrikelnummer'
							)";
						$result = mysql_query($query) or die ("Fehlermeldung :<br>".mysql_error());
						
						if($result) {
							$counter_intern-=1;
						}
					}
				}
			}

echo "<br />counter_intern: ".$counter_intern."<br />";
echo "<br />anzahl antworten: ".$_REQUEST['anzahl_antworten']."<br />";

			if($counter_intern == $_REQUEST['anzahl_antworten']) {
				global $counter;
				$counter++;
				echo "<br />global counter: ".$counter."<br />";
			}

		}//Ende if(isset($_REQUEST['anzahl_antworten']))

		/*
		echo '<pre>';
		print_r($_REQUEST);
		echo '</pre>';
		*/
	}//Ende level1

	else if ($_REQUEST["level_auswahl"] == 'level2') {
		$level = "2";
		frage_und_antwort_generieren($matrikelnummer, $level);
	}//Ende level2

	else if ($_REQUEST["level_auswahl"] == 'level3') {
		$level = "3";
		frage_und_antwort_generieren($matrikelnummer, $level);
	}//Ende level3

	else if ($_REQUEST["level_auswahl"] == 'random_level1') {
		frage_und_antwort_generieren($matrikelnummer);
	}//Ende random_level1

	else if ($_REQUEST["level_auswahl"] == 'random_level2') {
		frage_und_antwort_generieren($matrikelnummer);
	}//Ende random_level2

	else if ($_REQUEST["level_auswahl"] == 'random_level3') {
		frage_und_antwort_generieren($matrikelnummer);
	}//Ende random_level3

	else if ($_REQUEST["level_auswahl"] == 'random_all') {
		frage_und_antwort_generieren($matrikelnummer);
	}//Ende random_all
}//Ende frage_anzeigen


// Hier werden die PHP/HTML Seiten geschaltet.
else if($_GET["action"] == 'menue_information') {
	$inhalt = "information.php";
}
else if($_GET["action"] == 'menue_login') {
	$inhalt = "login.php";
}
else if($_GET["action"] == 'menue_registration') {
	$inhalt = "registration.php";
}
else if($_GET["action"] == 'menue_passwort_vergessen') {
	$inhalt = "passwort_vergessen.php";
}
else if($_GET["action"] == 'menue_level_auswahl') {
	$inhalt = "level_auswahl.php";
	$menue = "menue_intern.php";
}
else if($_GET["action"] == 'logout') {

	// Die bereits gestellten Fragen aus kattalog_temp werden entfernt
	$query="DELETE FROM kattalog_temp WHERE matrikelnummer=$matrikelnummer";
	$result = mysql_query($query) or die ("Fehlermeldung :<br>".mysql_error());

	// Die bereits beantworteten Fragen aus kattalog_temp_antworten werden entfernt
	$query="DELETE FROM kattalog_temp_antworten WHERE matrikelnummer=$matrikelnummer";
	$result = mysql_query($query) or die ("Fehlermeldung :<br>".mysql_error());

	// befreit alle Session-Variablen, die gegenwaertig registriert sind.
	session_unset();
	// loescht alle in Verbindung mit der aktuellen Session stehenden Daten. 
	session_destroy();

	$ausgabe = "Sie wurden aus dem System ausgeloggt.";
	$inhalt = "ausgabe.php";
	$menue = "menue.php";
}

else {

}

?>

<html>
	<head>
		<TITLE>Computernetze - Fragekatalog</TITLE>
		<LINK REL="SHORTCUT ICON" HREF="http://www.netperformance.de/favicon2.ico">

		<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
		<meta name="keywords" content=""/>
		<meta name="description" content=""/>
		<meta name="copyright" content="Aaron Kreis">
		<style>
			/* IE CSS */
			@import url(ie.css);
			/* FireFox CSS */
			@import url(ff.css) screen;
		</style>
	</head>
	<body bgcolor="#FFFFFF">
		<div id="rahmen">
			<!-- Menue links -->
			<div id="menue"><?php include($menue); ?></div>
			<!-- Inhalt der Seite -->
			<?php
				// var_dump($generierte_seite);
				if(!$generierte_seite) {
					echo "<div id='inhalt'>";
					include($inhalt);
					echo "</div>";
				} else {
					echo "<div id='inhalt'>";
					echo $inhalt;
					echo "</div>";

					global $generierte_seite;
					$generierte_seite = false;
				}
			?>
		</div>
	</body>
</html>

Wenn ich z.b. mein login-action in der Zeile 258 so verändere,
if(isset($_GET["login"])) {
...
}

funktioniert das Programm nicht mehr. Das Ganze sollte aber ohne isset funktionieren. Habe überall eine else if Abfrage und in der Zeile 594 eine leere else Bedingung.

Gruß und Dank im Voraus
Aaron


@Dennis Wronka:
Tolle Idee mein Quelltext direkt in das Forum zu posten. Jetzt sieht niemand mehr die Zeilennummerierung.
 
Zuletzt bearbeitet:
Ob jemand die Zeilennummerierung sieht ist doch total wurst, diesen Quelltext wird sich eh keiner durchlesen *g*!
Das ist nur eine Warnung die dort Ausgegeben wird wenn du das error_reporting(E_ALL) raus nimmst siehst du es nicht mehr, allerdings hast du dann keinen sauberen Programmcode.

Die Warnung sagt einfach nur das $action oder $_POST['action'] oder $_GET['action'] nicht deklariert ist!
 
Dass die Zeilennummern hier nicht gesehen werden ist irrelevant.
Es geht eher darum, dass die Scripts hier "sicher" sind und nicht vielleicht ploetzlich verschwinden und keiner mehr nachvollziehen kann was los ist.
Ausserdem will ich, und wahrscheinlich auch andere, nicht immer noch irgendwelchen Links folgen bevor ich zum Quellcode komme.
Weiterhin ist es in der Regel nicht noetig den kompletten Code zu posten, sondern nur bestimmte Bereiche.

Und Du haettest ja auch zumindest etwas mehr Lesbarkeit in den Code bringen koennen indem Du die richtigen Tags nutzt.
Die sollten Dir nach knapp 300 Posts doch eigentlich langsam bekannt sein, oder?

Nochmal zur Erinnerung:
Statt [ code] [ /code] einfach [ php] [ /php] schreiben, und schon gibt's kostenloses Syntaxhighlighting.
 
Wenn er deine action am anfang noch nicht erkennt dann mach doch das hier am anfang der Datei:

PHP:
if(!isset($_GET['action'])){
  $_GET['action']="none";
}

if($_GET['action'] == "none"){

    //mach was du mei $_GET['action']="none" machen sollst

}
 
Hiho

@nero_85: Vielen Dank ! hat auf anhieb funktioniert.

@BSA: "hast du dann keinen sauberen Programmcode" <- .. und genau aus dem grund wollte ich error_reporting stehen lassen. :)

@Dennis Wronka: Thx für die Info. Die Sache mit PHP war mir noch nicht aufgefallen *g*
Hast recht.. hier bleibt der Code erhalten. Habe eben nicht daran gedacht.

Gruß
Aaron
 
:offtopic:
Wie hast du denn gedacht, dass wir hier sonst das syntax-highlighting hinbekommen? Dachtest du wir färben alles in feinster kleinarbeit ein!? *roflol* ;) :-) (ist nicht böse gemeint)
 
Hallo!

Oder Du machst es gleich von Anfang an richtig.
PHP:
if($_GET["action"] == 'blabla')
 
// muss so heissen
if($_GET["action"] == "blabla")
 
// oder so
if($_GET['action'] == "blabla")
Man beachte die doppelten Anführungszeichen " bei blabla.

Ausserdem habe ich irgendwo noch ein $HTTP_*_VARS gesehen, dass solltest Du noch ändern, wenn Du nicht irgendwann plötzlich vor einem Problem stehen willst (lässt sich seit PHP 5 in der php.ini deaktivieren).

Gruss Dr Dau
 
@Dr Dau
Was aber nichts ändert. Wenn ich versuche auf einen Schlüssel in einem Assoziativen Array zuzugreifen, der schlicht nicht existiert, dann macht es keinen unterschied, ob ich auf den Schlüssel mit
Code:
$array[key]
oder
$array['key']
oder
$array["key"]
zugreifen. In allen drei Fällen exisitert der Schlüssel einfach nicht ;)
 
@Dr Dau: thx für die Info.
Was benutzt du statt $HTTP_SESSION_VARS["matrikelnummer"] = $matrikelnummer; ?

Habe Session-Variablem bis jetzt immer so gespeichert.

Gruß
Aaron

Nachtrag: Was macht es für einen Unterschied, ob ich "" oder '' benutze ?
 
@GH@NDI, hast recht, da habe ich völligen Schwachsinn geschrieben. :-(
Keine Ahnung was mich da geritten hat. :(

@NetPerformance, $HTTP_*_VARS gehört nicht zu den Superglobalen Variablen.
Somit funktionieren sie schon bei register_globals=OFF nicht mehr.
Weiterhin können sie seit PHP 5.0.0 mit register_long_arrays=OFF gänzlich deaktivert werden, unabhängig von der Einstellung von register_globals.
Daher solltest Du die Superglobale Variable $_SESSION verwenden, diese ist seit PHP 4.1.0 verfügbar.

In deinem Beispiel währe es also:
PHP:
$_SESSION["matrikelnummer"] = $matrikelnummer;
 
Zurück