Ankündigung

Einklappen
Keine Ankündigung bisher.

Login-Kontrolle funktioniert nicht mehr (teilweise)

Einklappen

Neue Werbung 2019

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

  • Login-Kontrolle funktioniert nicht mehr (teilweise)

    Hallo Community, ich hoffe, ich schreibe hier richtig.
    Ich verwende einen PHP-Script, Sessions.
    Dies funktioniert auf so gut wie allen Seiten wunderbar, aber einige kann ich nicht aufrufen. ich sehe keine Unterschiede und habe überhaupt keine Ahnung, warum das manchmal funktioniert, und manchmal nicht.

    Angezeigt wird das "If Session username nicht vorhanden",also, dass man sich einloggen sollte - wobei diese eigentlich vorhanden sein müsste (grade, da die anderen Seiten mit gleichem Code funktionieren)

    PHP-Code:
    <?php 
    session_start
    ();
    if(!isset(
    $_SESSION['username'])) 
       { 
       echo 
    'Bitte erst <a href="http://website.de" target="_top">einloggen</a>';
       exit(); 
       } 

    if (
    $_SESSION['rang'] < 2)
    {echo
    'Dein Rang reicht nicht aus, um dies anzusehen.';
    exit();
    }   
    ?>
    (Hier dann der restliche Inhalt der Seite, der nur eingeloggten Usern angezeigt werden sollte)
    Da dieser Code sonst geht - kann sowas auch an etwas anderem liegen?

  • #2
    Noch ein print_r($_SESSION) einfügen und im Fehlerfall mal Posten.

    Kommentar


    • #3
      Zitat von ChrisvA Beitrag anzeigen
      Noch ein print_r($_SESSION) einfügen und im Fehlerfall mal Posten.
      Von dem Befehl hab ich noch nichts gehört, erst Anfänger - ist das einfach bloß zum probieren, ob das Array vonhanden ist?

      Jetzt erscheint
      "Array ( ) Bitte erst einloggen"
      (Ich habe es so eingesetzt?
      PHP-Code:
      session_start();
      print_r($_SESSION);
      if(!isset(
      $_SESSION['username']))
      ... 
      und vor dem Array ( ) ist ein Link wo merkwürdiger Text beim raufklicken kommt... (http://www.funpic.de/troubleacoustic.php)


      Vielen Dank für die Mühen...

      Kommentar


      • #4
        Zitat von Nickle Beitrag anzeigen
        Von dem Befehl hab ich noch nichts gehört, erst Anfänger - ist das einfach bloß zum probieren, ob das Array vonhanden ist?
        Dann hast du dich ja bestimmt mal mit google über den Befehl schlau gemacht, oder?

        Die Sessionvariable ist auf jeden Fall, wenn da Array() steht leer.

        Kommentar


        • #5
          Zitat von ChrisvA Beitrag anzeigen
          Dann hast du dich ja bestimmt mal mit google über den Befehl schlau gemacht, oder?

          Die Sessionvariable ist auf jeden Fall, wenn da Array() steht leer.
          Und wüsstest du, was man dementsprechend machen kann? o0

          Kommentar


          • #6
            Der Session Werte zuweisen.

            Kommentar


            • #7
              Zitat von Chris. Beitrag anzeigen
              Der Session Werte zuweisen.
              Und genau das ist es - sie müsste nen Wert haben; Und der gleiche Code funktioniert in einer anderen Datei auch.
              Also man hat sich eingeloggt, geht auf die erste Seite, was funktioniert. Und wenn man dann auf diese eine Datei (und noch ein paar mehr) kommt, zeigt er also an, dass die Variable nicht besetzt sei.
              Bei anderen Seiten funktioniert das jedoch immer noch...

              Kommentar


              • #8
                Vielleicht wäre es sinnvoll mal den Code zu posten, wo du die Session "username" setzt.

                Btw: Du speicherst den Rang in einer session? Vielleicht wäre da eine Datenbank sinnvoller.

                Kommentar


                • #9
                  Zitat von hookie Beitrag anzeigen
                  Vielleicht wäre es sinnvoll mal den Code zu posten, wo du die Session "username" setzt.

                  Btw: Du speicherst den Rang in einer session? Vielleicht wäre da eine Datenbank sinnvoller.
                  Mach ich, danke:
                  PHP-Code:
                  <?php
                  session_start
                  (); 
                  $username $_POST["username"]; 
                  $passwort $_POST["password"]; 
                  $passwort md5($passwort); 
                  $log=0

                  $userdatei fopen ("user.txt","r"); 
                  while (!
                  feof($userdatei)) 
                     { 
                     
                  $zeile fgets($userdatei,500); 
                     
                  $userdata explode("|"$zeile); 

                     if (
                  $userdata[0]==$username and $passwort==trim($userdata[1])) 
                        { 
                        
                  $_SESSION['username'] = $username
                        
                  $_SESSION['rang'] = $userdata[2] ;
                          echo 
                  "<div class=\"sizebig\"><center>Willkommen ",$username," ( Rang ",$_SESSION['rang'],")<p />
                          <a href=\"seite.de/index.php\" target=\"_top\">Zum Mitgliedsbereich</a></center></div>"

                        
                  $log 1
                        } 
                     } 
                  fclose($userdatei); 

                  if (
                  $log==0
                     { 
                     echo 
                  "<div class=\"sizebig\"><center>Falscher LogIn</center></div>"
                     } 
                  ?>

                  Ich kenne mich mit Datenbanken nicht aus, und das klappt gut mit ner Session (sonst)

                  Kommentar


                  • #10
                    Vielleicht liegts auch am Server, daher mach am Besten folgendes, weiße am Anfang jeder anderen Seite den Wert der Session neu zu.
                    Was besseres fällt mir gerade nicht ein^^

                    Kommentar


                    • #11
                      So wie es aussieht, ist die User/Passwort-Datei doch für jedermann zugänglich. Na herzlichen Glückwunsch..
                      Schieb sie wenigstens außerhalb des normalen webs/der htdocs.

                      Kommentar


                      • #12
                        Zitat von Pompei81 Beitrag anzeigen
                        So wie es aussieht, ist die User/Passwort-Datei doch für jedermann zugänglich. Na herzlichen Glückwunsch..
                        Schieb sie wenigstens außerhalb des normalen webs/der htdocs.
                        Wieso die Passwörter sind doch md5 gehasht und damit sicher

                        Aber außerhalb vom doc-Root geht soweit ich weiß bei Funpic nicht.
                        Würde deshalb das ganze in ne Datei mit der Endung .php packen oder mit ner .htaccess schützen.

                        Kommentar


                        • #13
                          Zitat von ChrisvA Beitrag anzeigen
                          Wieso die Passwörter sind doch md5 gehasht und damit sicher
                          Lass mich mal den md5 cracker suchen ...

                          Mit Datenbanken könnte man das Ganze sowieso viel besser lösen, bei einer Textdatei würde ich den Überblick verlieren

                          @Threadstarter: Ich würde dir wirklich ans Herz legen dich minimal mit SQL zu befassen, ist eigentlich garnicht so schwer
                          Später wirst du es merken, dass das mit dem Textdokument keine so gute Idee ist.

                          Kommentar

                          Lädt...
                          X