Session-Variablen werden nicht gespeichert

Paspirgilis

Weißer Powerranger
Hi.
Ich automatisier grad mein Template und bau dafür eine "installatioins" datei.
Dabei sollen schritte durchlaufen werden, um das template einzustellen.
Und in den Schritten werden dann variablen in sessions gespeichert.
Zur zeit var dumpe ich session, was mir verrät, dass die sessions gespeichert werden allerdings nur bis zur nächsten seite danach werden die wieder gelöscht.
Ich kann mir das nicht erklären. zu beobachten ist das auf:
http://power-of-m.de/developement/mytemplate/install.php

MFG
Mark Paspirgilis
 
hmm ich glaub nich das der code relevant is aber ..

PHP:
<?php
@session_start();
error_reporting(E_ALL);
ini_set('display_errors', 1);
if(isset($_GET['step'])){
    $step = stripslashes(strip_tags($_GET['step']));
} else{
    $step = 1;
}    
switch($step){
    case 2:
        if(!isset($_POST['agb']))
        $step = 1;
        if($step == 2){
            $_SESSION['accept'] = true;
        }
        break;
    case 3:
        if(empty($_POST['css']))
        $step = 2;
        if(empty($_POST['maincss']) || !strstr($_POST['maincss'], '.css'))
        $step = 2;
        if(empty($_POST['js']))
        $step = 2;
        if(empty($_POST['mainjs']) || !strstr($_POST['mainjs'], '.js'))
        $step = 2;
        if(empty($_POST['php']))
        $step = 2;
        if(empty($_POST['pics']))
        $step = 2;
            
        if(!isset($_SESSION['accept']))
        $step = 1;
            
        if($step == 3){
            $_SESSION['folder_css'] = stripslashes(strip_tags($_POST['css']));
            $_SESSION['file_css'] = stripslashes(strip_tags($_POST['maincss']));
            $_SESSION['folder_js'] = stripslashes(strip_tags($_POST['js']));
            $_SESSION['file_js'] = stripslashes(strip_tags($_POST['mainjs']));
            $_SESSION['folder_php'] = stripslashes(strip_tags($_POST['php']));
            $_SESSION['folder_pics'] = stripslashes(strip_tags($_POST['pics']));
        }
        break;
...
...
}
... ...
... ...
 
Nimm das @ vor session_start() mal weg, dass unterdrückt Fehlermeldungen.

Da wird dann bestimmt stehen, dass du schon zuvor eine Ausgabe gemacht hast und der Header deswegen nicht mehr gesandt werden kann.

btw: Wenn ein Skript ein Problem bereitet, dann ist selbstverständlich der Code relevant.
 
Zuletzt bearbeitet:
O man xD.
aus gewohnheit hab ich das davor gemacht.

Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at /data/www/localhost/htdocs/developement/mytemplate/install.php:1) in /data/www/localhost/htdocs/developement/mytemplate/install.php on line 2

Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at /data/www/localhost/htdocs/developement/mytemplate/install.php:1) in /data/www/localhost/htdocs/developement/mytemplate/install.php on line 2

Da wird nix vorher gemacht. -.-
kennt jemand den Fehler?
 
Interressant ich habs im notepad erstellt und habs jetzt mal im netbeans geöffnet.
Dort hat der mir 3 symbole davor angeziegt. Hab die im netbeans gelöscht und hochgeladen... et voilá ... jetzt ist kein output for sessionstart. Danke an alle die mir geholfen haben. Ihr konntet mir die antwort zwar nicht direkt geben aber ohne euch hät ichs wohl ewig nicht gefunden xD

Thread gelöst..
 
Um die Frage nachträglich zu beantworten:
Dies ist ein Bug in PHP.
Bei UTF-8 codierten Dateien gibt PHP die BOM als HTML aus.
Lösung dazu:
Dateien entweder in ANSI speichern, oder einen Editor verwenden, der UTF-8 OHNE BOM kann (z.B. Notepad++)
 
Zurück