Session-Problem

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Session-Problem

    Hallo, beschäftige mich das erste Mal mit Sessions komme aber irgendwie gar nicht richtig rein.


    Mit dem Code
    //////////////////
    if($_GET["action"] == "login") { // aus dem Login-Template
    $user = $_POST["user"];
    session_start();
    session_register("user");
    }
    else
    include("./templates/login.tpl");

    //////////////////

    bekomme ich ne Fehlermeldung:

    Warning: session_start(): Cannot send session cookie - headers already sent by (output started at F:\.....

  • #2
    Gibst du zuvor schon html aus? Steht das script am anfang der seite? Includest du zuvor eine seite?
    _____________
    Ist das so? Scheinbar muss das so?! Oder ist es vielleicht viel leichter...
    [color=red]Auch ich beantworte keine mails bei php problemen! Für das gibts ja das Forum!![/color]

    Kommentar


    • #3
      Wenn Du jetzt erst mit Sessions anfängst dann vergiß "session_register("user");" und verwende lieber $_SESSION["user"] ... !
      carpe noctem

      [color=blue]Bitte keine Fragen per EMail ... im Forum haben alle was davon ... und ich beantworte EMail-Fragen von Foren-Mitgliedern in der Regel eh nicht![/color]
      [color=red]Hinweis: Ich bin weder Mitglied noch Angestellter von ebiz-consult! Alles was ich hier von mir gebe tue ich in eigener Verantwortung![/color]

      Kommentar


      • #4
        Original geschrieben von Seccho
        Gibst du zuvor schon html aus? Steht das script am anfang der seite? Includest du zuvor eine seite?
        Hallo, ja vorher werden schon HTML-Templates included

        Kommentar


        • #5
          das darfst du natürlich nicht!

          -> siehe forum!
          -> siehe manual!

          Kommentar


          • #6
            Danke TobiaZ die Fehler meldungen sind weg, aber benutzen kann ich irgendwie keine Variablen.


            1. Datei:

            session_start();


            $user= "test";
            session_register("test");

            2. Datei:

            session_start();

            echo $user;


            Beides steht jeweils am ANfang aber es wird nichts ausgegeben. Muss man ausser dem session tmp-pfad noch was anderes in der php-ini umstellen ?
            Hab da aber nix wirklich gefunden

            Kommentar


            • #7
              wenn du was umstellen willst und nen leck in deine php installation schlagen willst - nur zu ..
              die einstellung heisst register_globals

              verwende aber stattdessen lieber - wie goth schon erwähnte - $_SESSION

              $_SESSION['user'] = 'Coragon';
              echo $_SESSION['user'];
              mfg,
              [color=#0080c0]Coragon[/color]

              Kommentar


              • #8
                Original geschrieben von Coragon Rivito
                wenn du was umstellen willst und nen leck in deine php installation schlagen willst - nur zu ..
                die einstellung heisst register_globals

                verwende aber stattdessen lieber - wie goth schon erwähnte - $_SESSION

                $_SESSION['user'] = 'Coragon';
                echo $_SESSION['user'];
                register_globals ist eh angestellt, wie bei fast jedem kommerziellen Webserver. ANsonsten würden auch die meisten Scripte net mehr laufen :-)

                geht aber auch mit der oben genannten Schreibweise nicht :-/

                Kommentar


                • #9
                  dann hast du noch irgendwas falsch!

                  wer auf on programmiert ist selber schuld

                  poste mal aktuellen code

                  Kommentar


                  • #10
                    <?
                    session_start();

                    $_SESSION["user"] = "daniel";

                    include("./templates/openDatabase.tpl");
                    /* Haupt-Template */
                    include("./templates/main.tpl");

                    .
                    .
                    .
                    function ...
                    .
                    .
                    .

                    ?>


                    2. Datei zum Prüfen ob Variable übergeben wurde

                    <?
                    session_start();

                    include("../templates/openDatabase.tpl");
                    /* Haupt-Template */
                    include("../templates/main.tpl");

                    /* Inhalt der HTML-Seite */
                    function inhalt()
                    {
                    echo $_SESSION["user"];
                    .
                    .
                    .
                    }

                    ?>

                    Kommentar


                    • #11
                      Ähem, wie rufst Du die 2. Datei (bei der Du offensichtlich den User von der 1. sehen möchtest, aber nicht siehst) auf?
                      Die 2. muss ja was von der SID im 1. mitkriegen. Das passiert entweder über ein Cookie (dann kannst Du die 2. fast so aufrufen wie Du willst), oder eben in der URI (meistens so /script2.php?PHPSESSID=fsdf78ds9f7sd9).

                      Mach doch mal im ersten Script einen relativen Link (bei session.trans_sid=on (per default) wird die SID automatisch angehängt) und benutze diesen Link um auf's 2. Script zu kommen.

                      Kommentar


                      • #12
                        die 2. Seite wird aus einem HTML-Template heraus aufgerufen (per click), welches in der ersten Datei included wird.

                        Kommentar


                        • #13
                          alles klar war doch ein php.ini Fehler ....


                          session.use_trans_sid = 0

                          stand da, habs auf 1 gestellt und jetzt gehts

                          Kommentar


                          • #14
                            Ich wollte darauf hinaus, ob Script 1 die SID an Script 2 übergibt.

                            Tut es das?

                            Mach mal bei Script 1 irgendwo nach session_start() ein echo session_id() und dasselbe auch bei Script2. Haben Sie dieselbe?

                            <Edit>
                            Wir ha'm gleichzeitig gepostet.
                            Jetzt ist's klar, dass die SID nicht weitergegeben wurde.
                            </Edit>

                            Kommentar

                            Lädt...
                            X