Mein erster session Versuch klappt nicht so recht

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

  • Mein erster session Versuch klappt nicht so recht

    Hab meine ersten Versuche mit sessions gestarte um einen login in einen geschützen Bereich zu machen. In dem Bereich will ich dann überprüfen ob die Variable die ich beim login gesetzt hab existiert.

    Mein Code
    PHP-Code:
    if($submit)
    {
        if(
    strlen($adminpasslogin) == "" || strlen($adminuserlogin) == "" )  //adminpass-userlogin existiert und kommt aus ner DB
        
    {
            unset(
    $submit);
            
    header ("Location: $PHP_SELF");  //klappt
        
    }
        else
        {
            if(
    $adminpasslogin == $passlogin && $adminuserlogin == $userlogin)  //klappt
            
    {
                
    session_start();  //Fehlermeldung
                
    session_register("login");
                
    $login "LOGIN";
                
    header ("Location: eingeloggt.php");  //zweite Fehlermeldung
            
    }
            else
            {
                unset(
    $submit);
                
    header ("Location: $PHP_SELF");
            }
        }

    Fehlermeldung
    PHP-Code:
    Warningopen(/tmp\sess_97fe8a08596da005a4054584bf0eb3a1O_RDWRfailed(2in C:\apache\htdocs\neuftp\login.inc.php on line 23

    Warning
    Cannot add header information headers already sent by (output started at C:\apache\htdocs\neuftp\login.inc.php:23in C:\apache\htdocs\neuftp\login.inc.php on line 26 
    Ausserdem springt er mir in das Verzeichnis
    http://al-capone/php/php.exe/neuftp/login.inc.php
    das wäre richtig:
    http://al-capone/neuftp/login.inc.php

    Code von eingeloggt.php
    PHP-Code:
    <?php
    session_start
    ();
    if(
    $login)
    {
        echo 
    "Hallo";
    }
    else
    {
        echo 
    "Shit";
    }
    ?>
    Mfg Markus

  • #2
    der kann die session -datei nicht öffnen, wenn ich deine erste meldung richtig sehen. schaue mal in der php.ini nach, wo er seine sessions abspeichern will.

    die zweite meldung kannst du irgnorieren. ist das erste problem behoben, so ist es das zeite automatisch auch.
    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


    Kommentar


    • #3
      Das steht in der php.ini

      session.save_handler = files ; handler used to store/retrieve data
      session.save_path = /tmp ; argument passed to save_handler
      ; in the case of files, this is the
      ; path where data files are stored
      session.use_cookies = 1 ; whether to use cookies
      session.name = PHPSESSID
      ...
      heisst des jetzt das ich einen Ordner erstellen muss der /tmp heisst in meinem Orner neuftp/tmp oder wie?

      Letzteres klappt nicht. Hab auch keinen Ordner in meinem Apache Verzeichnis gefunden des tmp heisst. Wo muss ich denn den Ordner erstellen?

      Mfg Markus
      Zuletzt geändert von markusschmitt; 08.05.2003, 00:37.

      Kommentar


      • #4
        Erstelle einen Ordner TMP in dem Apache Verzeichnis. Anschließend gib den Pfad in der PHP.INI an.
        Bei mir sieht dies z. B. so aus:

        ; Argument passed to save_handler. In the case of files, this is the path
        ; where data files are stored. Note: Windows users have to change this
        ; variable in order to use PHP's session functions.
        session.save_path = C:/Server/Apache/tmp
        mfg
        Günni


        Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
        Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
        Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
        City-Tiger - Online durch die Straßen tigern...

        Kommentar


        • #5
          Danke
          hat vorzüglich geklappt.

          JUPPPIIIIIIII


          Mfg Markus


          Sorry zu früh gefreut, kleiner Bug

          Sobald ich auf den Submit Butten drück springt er mir in das Verzeichnis
          http://al-capone/php/php.exe/neuftp/login.inc.php
          was komisch ist, die header Funktion klappt dennoch obwohl die File gar nicht in dem Verzeichnis ist.

          er soll aber in dem hier bleiben
          http://al-capone/neuftp/login.inc.php und daruas wird dann die Datei eingeloggt.php aufgerufen.

          das ist der Code für den Submit Butten
          <form name=\"login\" method=\"post\" action=\"$PHP_SELF\">

          Bis jetzt hab ich immer mit der direkten Datei gearbeitet also ich hab z.B aus index.php die Datei mit action = "index.php" gearbeitet und nicht mit $PHP_SELF. Wieso erfolgt der Sprung in dieses Verzeichnis?

          Mfg Markus
          Zuletzt geändert von markusschmitt; 08.05.2003, 02:23.

          Kommentar


          • #6
            Lass dir mal die Variable $PHP_SELF ausgeben...
            mfg
            Günni


            Praxis: Jeder kann´s, aber keiner weiß wie´s geht...
            Theorie: Jeder weiß wie´s geht, aber keiner kann´s ...
            Microsoft vereint Praxis und Theorie: Nix geht und keiner weiß warum
            City-Tiger - Online durch die Straßen tigern...

            Kommentar


            • #7
              Hab ich gemacht

              Hier ist das Ergebniss

              "/php/php.exe/neuftp/login.inc.php"


              Hab jetzt gerade noch die php.ini durchsucht aber den Pfad dort nicht gefunden. Was läuft da falsch und wie mach ichs passend?


              Mfg Markus
              Zuletzt geändert von markusschmitt; 08.05.2003, 08:52.

              Kommentar


              • #8
                heißt dein normales script so? nenn das mal um in login.php.
                .inc dateien nimmt man zum ablegen von fkt. und allem möglichem und nennt sie so, da diese nicht im browser angezeigt werden können und man
                somit keinen direkten zugriff darauf hat.
                [color=red]musse rühre, musse probiere=>iss a pulsgeber ![/color]

                Kommentar


                • #9
                  Habs umbenannt, dann geöffnet aber es steht immernoch dort
                  /php/php.exe/neuftp/login.php
                  desweiteren bekomm ich jetzt ne Fehlermeldung für die session_start() zeile
                  Cannot send session cookie - headers already sent by (output started at C:\apache\htdocs\neuftp\login.php:12) in C:\apache\htdocs\neuftp\login.php on line 25

                  Bin jetzt mal für 4 Stunden weg

                  Mfg Markus

                  Kommentar


                  • #10
                    desweiteren bekomm ich jetzt ne Fehlermeldung für die session_start() zeile
                    vorher darf keinerlei ausgabe erfolgt sein.
                    INFO: Erst suchen, dann posten![color=red] | [/color]MANUAL(s): PHP | MySQL | HTML/JS/CSS[color=red] | [/color]NICE: GNOME Do | TESTS: Gästebuch[color=red] | [/color]IM: Jabber.org |


                    Kommentar


                    • #11
                      OK das stimmt, da ich mir $PHP_SELF oben noch habe ausgeben lassen aber das ändert nichts drann warum er mir in den Ordner
                      http://al-capone/php/php.exe/neuftp/eingeloggt.php geht anstatt in den ordner
                      http://al-capone/neuftp/eingeloggt.php

                      Woran kann das liegen?

                      Mfg Markus

                      Kommentar


                      • #12
                        zeig mal die zeilen wie du php in deinen webserver einbindest ..
                        am besten nach php suchen und alles posten was da steht =)
                        mfg,
                        [color=#0080c0]Coragon[/color]

                        Kommentar


                        • #13
                          In welcher Datei finde ich des nochmal, finds gerade nicht.

                          Mfg Markus

                          Kommentar


                          • #14
                            Ich denk des ist die richtige Datei, bin mir aber nicht sicher
                            httpd.conf

                            #
                            # Action lets you define media types that will execute a script whenever
                            # a matching file is called. This eliminates the need for repeated URL
                            # pathnames for oft-used CGI file processors.
                            # Format: Action media/type /cgi-script/location
                            # Format: Action handler-name /cgi-script/location
                            #

                            Action application/x-httpd-php /php/php.exe

                            Des ist eigentlich die einzige Zeile wo auch der Pfad vorkommt, dann gibts noch die Zeile
                            ScriptAlias /php/ "/apache/php/"


                            Mfg Markus
                            Zuletzt geändert von markusschmitt; 08.05.2003, 18:28.

                            Kommentar

                            Lädt...
                            X