Sessions werden nicht registriert

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

  • Sessions werden nicht registriert

    Hallo,
    ich habe folgendes Problem mit dem dem folgenden Script.
    Die Session wird nicht registriert, gespeichert.

    Wer weiß woran es liegen kann? Danke für die Hilfe.

    PHP-Code:
    <?php

        session_start
    ();
          
    $username $_REQUEST["username"];
          
    $passwort $_REQUEST["passwort"];
        include(
    'config.php');
        
    $l_file "german.php";
        if (
    is_file($l_file)) {
        include(
    $l_file);
        }
        else
        {
        include(
    "german.php");
        }


        
    $passwort md5($passwort);

        if ((!isset(
    $username)) OR (!isset($passwort)))
            {
                die (
    $verfy_no_log_1);
            }
        
    $conn = @mysql_connect($dbserver,$dbuser,$dbpass);
        if (!
    $conn)
            {
                die (
    $verfy_no_db_1);
            }
        
    mysql_select_db($dbname,$conn);
        
    $query "SELECT pass FROM pass WHERE user = '".$username."'";
        
    $result mysql_query($query,$conn);
        
    $zeileholen mysql_fetch_array($result,MYSQL_ASSOC);
        
    mysql_close($conn);
        if (!
    $zeileholen)
            {
                die (
    $verfy_no_name);
            }
        if (
    $zeileholen["pass"] <> $passwort)
            {

                die (
    $verfy_no_pass);

            }

        
    session_register('username');
        
    header ("Location:seite.php");
    ?>
    Es ist folgendes installiert:
    PHP Version 5.0.4

    Folgende Konfiguration:
    '../configure' '--prefix=/usr' '--datadir=/usr/share/php5' '--mandir=/usr/share/man' '--bindir=/usr/bin' '--libdir=/usr/lib' '--includedir=/usr/include' '--with-_lib=lib' '--sysconfdir=/etc/php5/apache2' '--with-config-file-path=/etc/php5/apache2' '--with-config-file-scan-dir=/etc/php5/conf.d' '--with-exec-dir=/usr/lib/php5/bin' '--enable-magic-quotes' '--enable-libxml' '--enable-session' '--with-pcre-regex' '--enable-xml' '--enable-simplexml' '--enable-spl' '--enable-safe-mode' '--enable-sigchild' '--disable-debug' '--enable-memory-limit' '--enable-inline-optimization' '--disable-rpath' '--with-apxs2=/usr/sbin/apxs2' '--disable-all' '--disable-cli'

    Register_Globals OFF

    DANKE FÜR DIE HILFE

  • #2
    an deinen beiden session_ Befehlen im skript ????.php ist nichts falsches. Wie geht es weiter in seite.php ?

    hingegen ist als Nebenbemerkung, der test !isset($password) nicht richtig, weil u.a. md5('nichts') etwas, bzw. d41d...... gibt.

    Kommentar


    • #3
      *lol* die neuste PHP Version, aber immernoch auf so altlasten wie session_register rumhoppeln...

      Kommentar


      • #4
        benutze doch mal $_SESSION['...']

        Und wofür ist das?

        $l_file = "german.php";
        if (is_file($l_file)) {
        include($l_file);
        }
        else
        {
        include("german.php");
        }

        Du includest die Datei, wenn sie eine ist, aber auch sonst?

        Kommentar


        • #5
          ich habe das script nicht geschrieben :-)

          in den seiten, die geschützt werden, wird folgendes eingetragen;

          PHP-Code:
          <? 

          session_start();
          include ("config.php");
           $l_file = "german.php";
              if (is_file($l_file)) {
              include($l_file);
              } else {
              include("german.php");
              }
          if (!session_is_registered('username') || $_SESSION['username'] == "")
                  {  die ($not_loged_in);     }

          ?>
          wie oder was muss denn geändert werden, damit es läuft?

          Kommentar


          • #6
            Original geschrieben von karla
            ich habe das script nicht geschrieben :-)
            Gehört sowas nicht eher in *Projekthilfe* ?

            Original geschrieben von karla
            wie oder was muss denn geändert werden, damit es läuft?
            aus dem manual:
            [color=green]If you are using $_SESSION (or $HTTP_SESSION_VARS), do not use
            session_register(), session_is_registered() and session_unregister().
            [/color]

            Ich glaube Du möchtest herausfinden, was passiert, wenn dein
            Scriptschreiber diese Regel verletzt. Oder hast von einem anderen Forum den 'Tipp'
            bekommen, selber was mit $_SESSION zu beheben... (eher das zweite...)

            Die anderen Bemerkungen (Sprachdatei) betrachte ich als Platzhalterei und das
            Verwenden von session_register in einer funktionierenden Anwendung als vertretbar..

            Kommentar


            • #7
              Schade mein Inet ist eben abgespackt...

              Wenn mans sich genau ansieht, kann man wohl an jeder zeile etwas negatives entdecken:

              session_start();
              -> Naja, an fast jeder Zeile.

              $username = $_REQUEST["username"];
              $passwort = $_REQUEST["passwort"];
              -> Du willst das Passwort doch sicher nicht per Get oder Cookie übertragen. Also _POST!

              include('config.php');
              -> Ich würd absoluten Pfad verwenden.

              $l_file = "german.php";
              if (is_file($l_file)) {
              include($l_file);
              }
              else
              {
              include("german.php");
              }
              -> Dafür wieder die sache mit den absoluten Pfaden. Und ist doch pot wie deckel, welche german.php du nun nimmst.

              $passwort = md5($passwort);
              -> Das hättets du oben schon machen können, oder lass es einfach die DB machen.

              if ((!isset($username)) OR (!isset($passwort)))
              {
              die ($verfy_no_log_1);
              }
              -> warum sollte eine der beiden vars nicht definiert sein, du definerst sie doch selbst!

              $conn = @mysql_connect($dbserver,$dbuser,$dbpass);
              if (!$conn)
              {
              die ($verfy_no_db_1);
              }
              -> das nehme ich so hin, ein "or die()" wäre schöner

              mysql_select_db($dbname,$conn);
              -> bei derverbindung prüfst du, hier nicht???

              $query = "SELECT pass FROM pass WHERE user = '".$username."'";
              -> SQL-Injection!!!

              $result = mysql_query($query,$conn);
              -> und was passiert, wenn du query nen fehler enthält?? Gerade bei der Query.

              $zeileholen = mysql_fetch_array($result,MYSQL_ASSOC);
              -> Fetch_assoc macht mehr sinn und nur, wenn es wirklich ein ergebnis gibt (der user existiert)

              mysql_close($conn);
              -> okay, aber hätte php 10 zeilen später auch gemacht,

              if (!$zeileholen)
              {
              die ($verfy_no_name);
              }
              if ($zeileholen["pass"] <> $passwort)
              {

              die ($verfy_no_pass);

              }
              -> IDR reicht eine query die nachsieht, ob es user/pw übereinstimmen und ein numrows. (10 zeilen überflüssig.)

              session_register('username');
              -> wie gesagt veraltet! s. Manual

              header ("Location:seite.php");
              -> Location-Header immer mit absoluter URI, so ist FALSCH!




              Alle bis auf eine zeile "falsch"

              Nimms mir nicht übel. Das sind konstruktive verbesserungsvorschläge.
              EDIT:
              dummer smilie
              Zuletzt geändert von TobiaZ; 20.06.2006, 20:43.

              Kommentar


              • #8
                OffTopic:
                $username hat den gleichen Status wie $_REQUEST['username'] - die Prüfung
                mit isset($username) ist sinnvoll. Hingegen ist $password immer gesetzt.

                Kommentar


                • #9
                  ich nehme keine kritik übel :-)
                  aber ich weiß jetzt immer noch nicht warum es nicht geht :-)

                  ich bin nicht fit genug um selber ein login script zu schreiben...
                  mit sessions habe ich so gut wie kein plan...

                  für den anfang wäre mir geholfen wenn mir jemand hilft das es schon mal läuft...

                  an den details würde ich später arbeiten und mir sessions inhallieren :-)

                  Kommentar


                  • #10
                    vermutlich also das:
                    PHP-Code:
                    if (!session_is_registered('username'/**|| $_SESSION['username'] == ""**/ 

                    Kommentar

                    Lädt...
                    X