Session_start() - Problem

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

  • Session_start() - Problem

    Hallo,

    ich erstelle zur Zeit einen Login. Durch Manuel und Forum bin ich auf Sessions gekommen, da ich diverse Variablen auf jeder Seite immer wieder brauche. U.a. habe ich eine Login-mit-Session-Vorlage im Forum gefunden, die ich implementiert und angepasst habe.

    Leider erhalte ich immer wieder folgende Fehlermeldung, die mich vermuten lässt, dass vielleicht eine grundlegende Einstellung falsch ist (o.ä.):

    Fatal error: session_start() [function.session-start]: Failed to initialize session module in /srv/www/htdocs/phptest/test.php on line 2

    Ich kopiere gern Quelltext hier herein oder erläutere mehr zu meiner Vorgehensweise. Nur falls es wirklich eine PHP-Einstellungssache wäre, wäre das alles hier mit Kanonen auf Spatzen geschossen. Folgendes noch: PHP Version ist 4.3.0

    Ich hoffe, ihr könnt mir helfen! Ich bin mit meinem Latein am Ende!


    Vielen DANK!
    Lilith
    Bekennender Lokalpatriot:
    www.lippstadt.de =)

  • #2
    Hi,
    poste mal bitte den Quelltext...
    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


    • #3
      Quelltext

      Anmeldung.php

      <?php
      session_start();
      $include="/srv/www/htdocs/php-include";
      include("$include/header2.php");

      include("testfunction.php");

      switch($action)
      {
      case "login" : CheckUserLogin ($un, $pw, session_id());
      break;

      case "logout" : UserLogout (session_id());
      break;

      default:
      // Beginn des Anmeldeformulars
      echo " <h3>Datenbank Report Anmeldung</h3>
      <br><br><br>

      <form action=testfunction.php method=get>
      <input type='hidden' name='action' value='login'>
      <table>
      <tr>
      <td>
      <b>Benutzername:</b>
      </td>
      <td>
      <div align=left>
      <input type=text name=benutzer size=20 border=0>
      </div>
      </td>
      </tr>
      <tr>
      <td>
      <b>Passwort:</b>
      </td>
      <td>
      <div align=left>
      <input type=password name=pw size=20 border=0>
      </div>
      </td>
      </tr>
      <tr>
      <td colspan=2 align=center>
      <br>
      <input type='submit' name='anmelden' value='Anmelden' border='0'>
      <input type='reset' border='0'>
      </td>
      </tr>
      </table>
      </form>
      <br>
      ";
      }// Ende case
      // Ende des Anmeldeformulars
      ?>

      <font color=red>
      <b>
      <?php
      if ($fehler != NULL)
      {echo $fehler;}
      ?>
      </b>
      </font>

      <?php
      include("$include/footer2.php");
      ?>



      Nun die testfunction.php:

      <?php
      /***
      * Prüfen, ob der User berechtigt ist, einen Login durchzuführen.
      */

      function CheckUserLogin ($un, $pw, $session) {
      // noch nicht angepasst
      }


      /***
      * Logout
      */

      function UserLogout ($session) {
      // noch nicht angepasst
      }


      /***
      * Prüfen, ob die Session in Ordnung ist.
      */

      function CheckUserSession ($session)
      {
      $servername = servername;
      $sqldb = mssql_connect($servername, $benutzer, $pw);
      if ($sqldb == FALSE)
      {
      $fehler ="Die Anmeldung ist leider fehlgeschlagen.<br>Überprüfen Sie bitte Ihren Benutzernamen und Ihr Passwort.";
      header ("Location: test_anmeldung.php?fehler=".$fehler."");
      }else{
      mssql_select_db("<Datenbankname>") or die ("Die Datenbank existiert nicht!");
      } // Ende else sqldb == False

      $result = mssql_query("SELECT PKMA, Name, First_Name FROM Mitarbeiter where Name =".$benutzer."") or mysql_error();
      if ( mssql_num_rows($result) == 1 ) {
      $zeile = mysql_fetch_array($result);
      $sessarr[Id] = $zeile["PKMA"];
      $sessarr[Name] = $zeile["Name"];
      $sessarr[FirstName] = $zeile["First_Name"];
      return $sessarr;
      }
      else {
      $fehler = "Die Anmeldung ist fehlgeschlagen.<br>Überprüfen Sie bitte Ihren Benutzernamen und Ihr Passwort.";
      header ("Location: test_anmeldung.php?fehler=".$fehler."");
      return false;
      }
      }
      ?>


      Das war's eigentlich.......

      Vielleicht noch wichtig:
      Wie man erkennt, arbeite ich mit dem MS SQL 7 Server. (Vorgabe)
      Bekennender Lokalpatriot:
      www.lippstadt.de =)

      Kommentar


      • #4
        Hi,
        schau mal bitte mittels phpinfo() ob die Sessions aktiviert sind...
        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
          Ergänzende Erklärung

          Die functionCheckUserSession

          Überprüft nicht in einer DB Tabelle, ob die Zugangsdaten stimmen, sondern mit einem Connect zur Datenbank.
          Ich darf mich nicht darauf beziehen, was in der Mitarbeitertabelle der DB steht, sondern soll überprüfen, ob der User die Berechtigung hat sich so in diese DB einzuloggen.
          Bekennender Lokalpatriot:
          www.lippstadt.de =)

          Kommentar


          • #6
            phpinfo

            Session Support ist enabled
            Bekennender Lokalpatriot:
            www.lippstadt.de =)

            Kommentar


            • #7
              Habe dein Fehler unter http://bugs.php.net/bug.php?id=22459
              gefunden. Steht aber soweit ich das sehe leider keine Lösung dabei.
              Hast du schon anderen Programme mit Sessions geschrieben??? Wenn ja, ist dort auch ein Fehler aufgetreten?!
              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


              • #8
                weitere Einstellungen

                machen mich stutzig.
                Leider kenne ich mich damit nicht so aus:
                Directive LocalValue Master VAlue
                session.auto_start Off Off
                session.cache_limiter nocache nocache
                session.use_trans_sid Off Off

                Liegt es an diesen Einstellungen?
                Was muss ich ändern und wie lautet dann der Eintrag in die phpini?

                Ich bin dir sehr dankbar für deine (schnelle) Hilfe!
                Bekennender Lokalpatriot:
                www.lippstadt.de =)

                Kommentar


                • #9
                  Fehler

                  Neeeeiiinn!

                  Das wird's wohl sein.
                  Apache liegt auf einem Rechner mit Suse 8.1.
                  (MS SQL liegt auf einem Windowsrechner....)
                  Nein, habe vorher noch nicht Sessions gearbeitet.
                  Bekennender Lokalpatriot:
                  www.lippstadt.de =)

                  Kommentar


                  • #10
                    ich hab den quelltext verstanden als anfänger !

                    Kommentar


                    • #11
                      Re: Fehler

                      Original geschrieben von Lilith
                      Neeeeiiinn!

                      Das wird's wohl sein.
                      Apache liegt auf einem Rechner mit Suse 8.1.
                      (MS SQL liegt auf einem Windowsrechner....)
                      Nein, habe vorher noch nicht Sessions gearbeitet.
                      ja nur frage ich mich, was die daten bank nun mit der session zu tun hat??

                      ich denk mal es liegt irgendwie anner cfg

                      mfg

                      Original geschrieben von hash@tnt
                      ich hab den quelltext verstanden als anfänger !
                      man kann auch sinnlose kommentare posten!

                      Kommentar


                      • #12
                        Nicht schwer...

                        Ich habe auch nicht behauptet, dass er schwer ist.
                        Ganz im Gegenteil: WEIL es eigentlich so einfach ist (Session-logik), wusste ich nicht woran es liegt.

                        Jetzt werde ich die Variablen halt anders übergeben. auch kein Prob - session wäre nur eleganter gewesen....




                        Vielen Dank an Günni!
                        Lilith
                        Bekennender Lokalpatriot:
                        www.lippstadt.de =)

                        Kommentar

                        Lädt...
                        X