• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

in SESSIONS wird ihrgend wie nix gespeichert o.O

Tomhalo

Neues Mitglied
index.php :
PHP:
 <?php
    error_reporting(E_ALL);
    session_start();
    include "config.txt";
    include "questions.txt";
    if (isset($_GET['new']))
    {
        session_destroy();
    }
?>
<html>
    <head>
    </head>
    <body>
<?php
            if (isset($_POST['question']))
            {
                if ($q[$_POST['question']]['antwort'][$_POST['antwort']] == $q[$_POST['question']]['ra'])
                {
                    echo '
                            <div style="background:green;">
                            <p>
                            Richtige Antwort !
                            </p>
                            </div>
                         ';
                    while(1)
                    {
                        $h = rand(1,$hoehe);
                        $l = rand(1,$laenge);
                        if(!(isset($_SESSION[$h][$l])))
                        {
                            $_SESSION[$h][$l] = 1;
                            break;
                        }
                    }
                }
                else
                {
                    echo '
                            <div style="background:red;">
                            <p>
                            Falsche Antwort !
                            </p>
                            </div>
                         ';
                    $question = $_POST['question'];
                }
            }
            if (!(isset($_SESSION['img'])))
            {
                $num = rand(1,count($pics));
                $_SESSION['img'] = $num;
            }
            else
            {
                $num = $_SESSION['img'];
            }
            echo '<div style="background-image: url(pics/'.$pics[$num].'.jpg); background-repeat:no-repeat; align: center;">';
            $y = $y_achse;
            $x = $x_achse;
            while ($y <= $hoehe)
            {
                while ($x <= $laenge)
                {
                    if (isset($_SESSION[$y][$x])) { $bild = "full.png"; } else { $bild = $name_of_clear; }
                    echo '<img border="0" width="'.$feld_breite.'" height="'.$feld_hoehe.'" src="'.$bild.'">';
                    $x++;
                }
                echo "<br>";
                $x = $x_achse;
                $y++;
            }
            if (isset($_GET['ya']) and isset($_GET['xa']))
            {
                echo $_SESSION[$_GET['ya']][$_GET['xa']];
            }
            $y = $y_achse;
            echo '</div>';
            if (!(isset($question)))
            {
                $question = rand(1,count($q));
            }
            echo $q[$question]['frage'];
            echo '<form method="post" action="#">';
            echo '<input type="hidden" name="question" value="'.$question.'"/>';
            for ($jkp = 1;$jkp <= count($q[$question]['antwort']);$jkp++)
            {
                echo '<input type="radio" name="antwort" value="'.$jkp.'"/> '.$q[$question]['antwort'][$jkp].'<br>';
            }
            echo '<input type="submit" value="Antworten"/></form>';
            echo '<a href="?new">Neuer Versuch ?</a>';
        ?>
    </body>
</html>
questions.txt :
PHP:
 <?php
$q[1]['frage'] = "Am Nürnberger Prozes wurden welche Verbraecher Angeklagt ?";
$q[1]['antwort'][1] = "Bankräuber";
$q[1]['antwort'][2] = "Nazis";
$q[1]['antwort'][3] = "Nazi Chefs";
$q[1]['antwort'][4] = "Auto Diebe";
$q[1]['nr_d_richt_antwort'] = 3;
$q[1]['ra'] = $q[1]['antwort'][$q[1]['nr_d_richt_antwort']];
?>
config.txt :
PHP:
 <?php
#Höhe und länge des kompleten Kastens (in feldern)
$hoehe = 10;
$laenge = 10;
#Die größe eines feldes (in pixel)
$feld_hoehe = 50;
$feld_breite = 50;
#x und y kordinate des anfangs (nicht verändern wen nicht nötig)
$y_achse = 1;
$x_achse = 1;
 
#Pfad oder url des bildes was den zugedeckten teil darstelt
$name_of_clear = "clear.png";
 
#name der css der bilder (ohne .jpg)
$pics[1] = "bild1";
$pics[2] = "bild2";
?>

so das waren alle drei datein und meine frage ist wieso werden meine sessions nicht gespeichert nachdem neuladne der seite sind die sessions wieder nicht vorhanden ich kann mir das nicht erklären.
 
Werbung:
Frank schrieb:
Du kannst in Sessions keine arrays Speichern. Dazu musst du session_register nehmen oder die Daten vorher serialisieren.

Jain. Sowas geht schon:

PHP:
<?php

session_start();

if (!isset($_SESSION['x']['y'])) {
    $_SESSION['x']['y'] = 'test';
    echo 'Bitte Seite aktualisieren';
    exit;
} else {
    print_r($_SESSION);
}

Das Problem hier scheint zu sein (bin mir nicht völlig sicher), dass in der ersten Dimension des Arrays keine numerischen Indizes als Schlüssel gewählt werden sollten/können. Wenn alle Paare x/y nicht direkt in $_SESSION geschrieben werden, sondern etwa in $_SESSION['fields'], sollte der Teil zumindest klappen. Also etwa:

PHP:
if(!(isset($_SESSION['fields'][$h][$l]))) {
    $_SESSION['fields'][$h][$l] = 1;
    break;
}

Der gepostete Code wirft übrigens auch entsprechende Notices.
 
Werbung:
Zurück
Oben