Ankündigung

Einklappen
Keine Ankündigung bisher.

Session funktioniert nicht

Einklappen

Neue Werbung 2019

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

  • Session funktioniert nicht

    Moin ich habe mir ein kalenderscript runtergeladen und wollte es nun bei mir auf dem Server installieren. Soweit kein Problem... Nur ich komme nicht in den admin bereich. Pass und user stimmen.

    Hier der relevante code aus der login.php:
    PHP-Code:
    <?php if(!isset($_POST['submit'])) { ?>
    <form action="<?php $PHP_SELF ?>" method="post">

    //restliches HTML-Formular

     <?php
     
    }elseif(!$_POST['username'] || $_POST['username'] == "") {
       echo 
    '<head><meta http-equiv="refresh" content="1"; </head>';
     }elseif(!
    $_POST['password'] || $_POST['password'] == "") {
       echo 
    '<head><meta http-equiv="refresh" content="1"; </head>';
     }else{
       
    $password md5($password);
       
    $query mysql_query("SELECT user, pass FROM jgs_event_users WHERE user = '".$_POST['username']."'") or die('<head><meta http-equiv="refresh" content="1"; </head>');
       
    $result mysql_fetch_array($query) or die('<head><meta http-equiv="refresh" content="1"; </head>');
       if(
    $password != $result['pass']){
         echo 
    '<head><meta http-equiv="refresh" content="1"; </head>';
         die;
       }else{
         
    $user $result['user'];
         
    session_register('user');
         echo 
    '<head><meta http-equiv="refresh" content="1; url=admin.php" </head>';
       }
     }
    Hier die Admin.php:

    PHP-Code:
    <?php
    session_start
    ();
    if(!
    session_is_registered('user') || $_SESSION['user'] == "") {
      
    header("location:login.php");
      die;
    }
    ?>
    //rest HTML
    Link zur INFO-PHP: www.hdjtev.de/info.php

  • #2
    1. Wo ist jetzt das Problem?
    2. Das Script kannst du in die Tonne hauen, da teilweise veraltet.

    Gruß
    phpfan

    Kommentar


    • #3
      1. Ich komme nicht in die Admin.php, da diese mich immer wieder auf die login.php "zurückscickt" und 2., warum veraltet?! funktioniert doch hoffentlich trotzdem?! Finde die Ausgabe (als abreißkalenderblatt) einfach zu genial!

      Kommentar


      • #4
        Die session_*_register*-Funktionen sind veraltet. Und warum das Script nicht funktioniert, kann dir auch niemand sagen, sondern nur raten. Deshalb:

        Richtig debuggen
        1. Man bemerkt, dass ein Skript nicht das tut, was es soll.
        2. Man schreibt an den Anfang des Scriptes die Zeile: error_reporting(E_ALL);
        3. Man versucht, die Stelle die daran Schuld sein kann, schonmal einzugrenzen. Falls dies nicht geht, wird zunächst das komplette Skript als fehlerhaft angesehen.
        4. An markanten Stellen im Skript lässt man sich wichtige Variableninhalte ausgeben und ggf. auch in bedingten Anweisungen eine kurze Ausgabe machen, um zu überprüfen, welche Bedingung ausgeführt wurde (oder auch nicht).
        5. Schritt 3 wird so lange wiederholt, bis Unstimmigkeiten im Skript auffallen
        6. Damit hat man das Problem (Unstimmigkeit) gefunden und kann versuchen diese zu beheben. Hierzu dienen dann die PHP-Dokumentation und andere Quellen als Ratgeber.
        7. Lässt sich das konkrete Problem trotzdem nicht beheben, kann man in Foren um Rat fragen.
        8. Das Programm läuft und man kann die Debug-Ausgaben wieder entfernen.

        Die Ausgaben per echo kann man sich ersparen, in dem man einen Debugger benutzt, was eigentlich selbstverständlich sein sollte.

        Gruß
        phpfan

        Kommentar


        • #5
          also jetzt werde ich richtigerweise auf die Admin.php weitergeleitet nur die "schickt" mich zurück, da die session wohl nicht vorhanden ist... wieso funktioniert das hier nicht wie es soll und wie könnte es funktionieren?!

          Kommentar


          • #6
            ja ich hab debuggt. Siehe vorheriger Post. Welche funktionion kann ich statt session_+_register verwenden? Würde es helfen wenn ich den Server auf php3 umstelle?!

            Kommentar


            • #7
              Welchen Teil von "Richtig debuggen" verstehst du nicht?

              Nein, Umstellen auf *.php3 bringt nix.

              http://de2.php.net/manual/de/ref.session.php

              Gruß
              phpfan

              Kommentar


              • #8
                Zitat von scooter
                funktioniert doch hoffentlich trotzdem?!
                Wenn es funktionieren würde, gäbe es das Thema nicht.

                Kommentar


                • #9
                  Re: Session funktioniert nicht

                  $password = md5($password);

                  sollte $_POST['password'] heißen, oder

                  Kommentar


                  • #10
                    nöp, $password kommt vom Formular und wird verschlüsselt und denn unter dem gleichen NAmen wieder gespeichert...

                    Funktioniert jetzt, soweit ich das beurteilen kann. Danke

                    Kommentar


                    • #11
                      sollte $_POST['password'] heißen
                      Zitat von scooter
                      nöp, $password kommt vom Formular ..
                      Doch sollte $_POST['password'] heißen, denn dein Skript wird sonst auf aktuellen PHP Version nicht mehr laufen.

                      http://de.php.net/register_globals
                      http://www.phpfriend.de/forum/ftopic26569.html#172292

                      Kommentar

                      Lädt...
                      X