Dabei seit: 22.08.2006 Ort: 127.0.0.1 Alter: - Geschlecht:
Verfasst Di 22.08.2006 19:45 Titel
Sessions Problem
Hallo Leute,
Ich habe ein Problem mit Sessions. Ich erstelle einen Fragebogen (multiple choice) mit 30 Fragen a 3 Antworten wovon nur eine Antwort richtig ist und mit einen Punkt honoriert wird, es gibt je 3 Fragen pro Seite (also 10 insgesamt). Die Antworten sind mit Radiobuttons realisiert. Es gibt noch eine letze Seite die die Punkte zusammenfasst und ein Feedback präsentiert.
Wie gesagt pro richtige Antwort gibt es einen Punkt.(zähler läuft mit...)
Weiss vielleicht jemand warum die Punkte nicht summiert werden? Beantwortet man z.B. die ersten 3 Fragen, werden die Punkte an die 2. Seite übergeben. Auf der 3. Seite gehen die von Seite 1 verloren oder werden überschrieben.
Kurz gesagt: Die Variable des Zählers wird nicht an die folgenden Seiten weitergegeben. Ich hoffe jemand weiß woran es liegt, das würde mir sehr helfen.
Dabei seit: 30.09.2004 Ort: Fürth Alter: 26 Geschlecht:
Verfasst Di 22.08.2006 20:15 Titel
Hi BernbaZ,
zeig doch mal deinen Code, dann können wir dir sicherlich besser weiterhelfen. Generell kannst du die Punkte mit GET, POST oder eben über eine Session "durchreichen", wobei letzteres wohl das einfachste sein sollte.
Dabei seit: 17.04.2006 Ort: - Alter: - Geschlecht:
Verfasst Di 22.08.2006 20:51 Titel
Hallo BernbaZ,
Die Session(-Variablen) hast du nur in den Dateien verfügbar, in denen du session_start(); setzt.
Aber evtl. verweigert dein Browser auch Cookies...dann müsste die SID (Session-ID) entweder per URL oder über ein Hidden-Feld im Formular weitergegeben werden.
Gruß
Ivan
Zuletzt bearbeitet von Ivan am Di 22.08.2006 20:52, insgesamt 1-mal bearbeitet
Dabei seit: 22.08.2006 Ort: 127.0.0.1 Alter: - Geschlecht:
Verfasst Di 22.08.2006 21:10 Titel
hallo hoffe der code bringt euch nicht zum lachen, hab "alles zu fuss" gecodet. weil das mit dem array auch nicht so klappen wollte...
also mein code sieht so aus:
check.inc.php
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">
<!--
* Created on 22.08.2006
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
-->
<head>
<title> </title>
</head>
<body>
und so weiter. dann gibt es noch die
auswertung.php
Code:
<?php
header("Cache-control: private");
session_start();
include("check.inc.php");
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en_US" xml:lang="en_US">
<!--
* Created on 22.08.2006
*
* To change the template for this generated file go to
* Window - Preferences - PHPeclipse - PHP - Code Templates
-->
<head>
<title>Auswertung</title>
</head>
<body>
<?php
echo "Das Ergebnis deines Checks:<br />Du hast <strong>".(0+$erg)."</strong> von $gesamt Punkten erreicht.</br>";
print_r($_SESSION);
?>
</body>
</html>
was ich nicht verstehe ist, das die var $erg nicht weitergegeben wird. falls sie überschrieben wird was ich vermute, weiß ich nicht wie ich das ändern soll. hoffe ihr habt eine idee, das wäre echt toll...
Dabei seit: 22.08.2006 Ort: 127.0.0.1 Alter: - Geschlecht:
Verfasst Di 22.08.2006 22:27 Titel
@ Ivan, danke für dein deutliches statement
ist nicht ironisch gemeint, schließlich will was lernen.
hab den code etwas komprimiert. $_SESSIONS['erg'], funktioniert auch nicht. obwohl ich im ganzen code rumgeschoben habe. wenn ich es drin lasse krieg ich von Eclipse so eine Meldung:
Zitat:
Warning: Unknown: Your script possibly relies on a session side-effect which existed until PHP 4.2.3. Please be advised that the session extension does not consider global variables as a source of data, unless register_globals is enabled. You can disable this functionality and this warning by setting session.bug_compat_42 or session.bug_compat_warn to off, respectively. in Unknown on line 0
hier noch mal der geänderte code von
check.inc.php
meinst du vielleicht, $_SESSION['erg'] mit (0+$erg) ersetzen? das hab ich gerade probiert aber auch nix. wenn du noch ne idee hast wäre ich sehr dankbar. sitze schon den ganzen tag dran, klicke mich durch tutorials, manuals und foren und alles ohne ergebnis... sorry, will dich nicht volljammern
Zuletzt bearbeitet von BernbaZ am Di 22.08.2006 22:35, insgesamt 2-mal bearbeitet
Du kannst keine Beiträge in dieses Forum schreiben. Du kannst auf Beiträge in diesem Forum nicht antworten. Du kannst an Umfragen in diesem Forum nicht mitmachen.