Ankündigung

Einklappen
Keine Ankündigung bisher.

[Erledigt] Loginpage funkt nicht wie es soll

Einklappen

Neue Werbung 2019

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

  • [Erledigt] Loginpage funkt nicht wie es soll

    Hi

    Vorab: bin ich php und SQL noch recht neu, weiß aber ein wenig wie was funktioniert.

    Hab mir aus schnipseln die ich im Web gefunden habe eine Loginpage zusammen geschnitten, mit Passwort und Benutzername abfrage über SQL. Funktioniert auch soweit so gut, allerdings hab ich jetzt ein Problem: Ich möchte die Administrativen seiten wie Webmin, phpmyadmin usw. in die Loginpage verlinken.

    Wenn ich die links aber reinschreib, wird entweder garnichts angezeigt, oder dauerhaft, egal ob man angemeldet ist oder nicht.

    PHP-Code:
    <?php
    session_start
    ();
     
    if (isset(
    $_SESSION['id'])) {

        
    $uid $_SESSION['id'];
        
    $usname $_SESSION['username'];
        
    $result "Test: <br /> Name: ".$usname"<br /> Id: ".$uid;
    } else {
        
    $result "Du bist nicht angemeldet";
    }
    ?>
    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Angemeldet als <?php echo $usname ;?></title>
    </head>
     
    <body>
    <?php
    echo $result;
    ?>
    </body>
    </html>
    user.php in dem der Inhalt angezeigt werden soll

    Name und ID werden allerdings richtig ausgegeben. Schreib ich jedoch z. B. <a href="http://meineip/phpmyadmin/"></a> zwischen dem body tag, wirds wie oben gesagt immer angezeigt. Hab ich da nen Denkfehler?

    PHP-Code:
    <?php
    session_start
    ();
     
    if (isset(
    $_POST['username'])) {
            
            
        include_once(
    "dbConnect.php");
        
        
        
    $usname strip_tags($_POST['username']);
        
    $paswd strip_tags($_POST['password']);
        
        
    $usname mysqli_real_escape_string($dbCon$usname);
        
    $paswd mysqli_real_escape_string($dbCon$paswd);
        
        
    $paswd md5($paswd); 
        
        
    $sql "SELECT id, username, password FROM members WHERE username = '$usname' AND activated = '1' LIMIT 1";
        
    $query mysqli_query($dbCon$sql);
        
    $row mysqli_fetch_row($query);
        
    $uid $row[0];
        
    $dbUsname $row[1];
        
    $dbPassword $row[2];
        
        
        if (
    $usname == $dbUsname && $paswd == $dbPassword) {
             
            
    $_SESSION['username'] = $usname;
            
    $_SESSION['id'] = $uid;
            
            
    header("Location: user.php");
        } else {
            echo 
    "<h2>Benutzername / Passwort falsch.
            <br /> Bitte versuch es noch einmal.</h2>"
    ;
        }
        
    }
    ?>

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Loginseite</title>
    <link href="style.css" rel="stylesheet" type="text/css">
    </head>

    <body>
    <div id="wrapper">
    <h1>Login</h1>
    <form id="form" action="index.php" method="post" enctype="multipart/form-data">
    Username: <input type="text" name="username" /> <br />
    Password: <input type="password" name="password" /> <br />
    <input type="submit" value="Login" name="Login" />
    </form>
    </div>
    </body>
    </html>
    index.php -> Eingabefehld und include der sqlconnection



    Danke für Hilfen

    LG Fabi

    Edit: PHP5 und MySQL-server-5.5 auf Linux Raspbian

  • #2
    sieht nach header already sent aus, bitte error reporting hochdrehen etc:
    http://php-de.github.io/#debugging

    Kommentar


    • #3
      Wenn ich die links aber reinschreib, wird entweder garnichts angezeigt, oder dauerhaft, egal ob man angemeldet ist oder nicht.
      Damit kann man leider gar nix anfangen, der Satz ist unverständlich. Bitte genauer/ausführlicher.

      Ich möchte die Administrativen seiten wie Webmin, phpmyadmin usw. in die Loginpage verlinken.
      Noch eine kurze Anmerkung: Es ist nicht wichtig, ob jemand mit falschen Zugriffsrechten einen Links sieht oder nicht. Wichtig ist, das die Aktion nicht ausgeführt werden darf, wenn die Berechtigung fehlt.
      Man kann auch nicht-angezeigte Links direkt im Browser aufrufen , und es gibt genügend Bots, die einen Webauftritt auf phpadmin überprüfen.
      Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

      Kommentar


      • #4
        Zitat von lstegelitz Beitrag anzeigen
        Noch eine kurze Anmerkung: Es ist nicht wichtig, ob jemand mit falschen Zugriffsrechten einen Links sieht oder nicht. Wichtig ist, das die Aktion nicht ausgeführt werden darf, wenn die Berechtigung fehlt.
        Man kann auch nicht-angezeigte Links direkt im Browser aufrufen , und es gibt genügend Bots, die einen Webauftritt auf phpadmin überprüfen.
        Ist mir klar, das die Links auch so aufrufbar sind, aber ich fange erst klein an.


        Also nochmal. Wenn ich <a href="http://meineip/phpmyadmin/"></a> zwischen dem Body tag reinschreibe, und ich die Seite http://meineip/user.php aufrufe, wird dieser Link angezeigt, egal ob man sich zuvor im index angemeldet hat oder nicht. Hat man sich nicht angemeldet wird so wie es sein soll auch $result = "Du bist nicht angemeldet"; gezeigt wenn man user.php aufruft. Nur der Link zu phpmyadmin oder dergleichen darf nicht da stehen

        weiß nicht wie ich das genau erklären soll...

        Kommentar


        • #5
          Von deinen Versuchen sieht man aber nichts... wo ist denn die Stelle, wo die "Adminlinks" in das Menü eingebracht werden?
          Ich würde mal darauf tippen, das du die Links nicht mit einer if-Abfrage umschlossen hast, die den Angemeldet-Zustand überprüft.
          Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

          Kommentar


          • #6
            die Seite betreib ich lokal, also funktioniert der Link auch nicht.

            PHP-Code:
            <?php
            session_start
            ();
             
            if (isset(
            $_SESSION['id'])) {

                
            $uid $_SESSION['id'];
                
            $usname $_SESSION['username'];
                
            $result "Test: <br /> Name: ".$usname"<br /> Id: ".$uid;
            } else {
                
            $result "Du bist nicht angemeldet";
            }
            ?>
            <!DOCTYPE html>
            <html>
            <head>
            <meta charset="UTF-8">
            <title>Angemeldet als <?php echo $usname ;?></title>
            </head>
             
            <body>
            <?php
            echo $result;
            ?>
            <a href="http://meineip/phpmyadmin/"></a>
            </body>
            </html>
            Schreib ich es hier rein, wird bei aufruf von user.php der link dauerhaft angezeigt,

            schreib ich es oben bei $result rein...

            PHP-Code:
            <?php
            session_start
            ();
             
            if (isset(
            $_SESSION['id'])) {

                
            $uid $_SESSION['id'];
                
            $usname $_SESSION['username'];
                
            $result "Test: <br /> Name: ".$usname"<br /> Id: ".$uid"br /> Link: " <a href="http://meineip/phpmyadmin/"></a>;
            } else {
                
            $result "Du bist nicht angemeldet";
            }
            ?>
            <!DOCTYPE html>
            <html>
            <head>
            <meta charset="UTF-8">
            <title>Angemeldet als <?php echo $usname ;?></title>
            </head>
             
            <body>
            <?php
            echo $result;
            ?>
            </body>
            </html>
            ist die Seite weiß mit keinem Inhalt, auch die Entwicklerkonsole von google zeigt nix an.

            Kommentar


            • #7
              PHP-Code:
              <body> 
              <?php 
              echo $result
              ?> 
              <a href="http://meineip/phpmyadmin/"></a> 
              </body> 
              </html>
              Genau wie ich dachte/sagte...
              Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.

              Kommentar


              • #8
                Wenn du hier etwas einfach in den body tag packst ist ja klar, dass das auch angezeigt wird, da ist ja atm nirgends eine Abfrage ob eingeloggt oder nicht.

                Wolltest du vielleicht so was in der Art erreichen?

                PHP-Code:
                <?php
                session_start
                ();
                 
                if (isset(
                $_SESSION['id'])) {

                    
                $uid $_SESSION['id'];
                    
                $usname $_SESSION['username'];
                    
                $result "Test: <br /> Name: ".$usname"<br /> Id: ".$uid;
                } else {
                    
                $result "Du bist nicht angemeldet";
                }
                ?>
                <!DOCTYPE html>
                <html>
                <head>
                <meta charset="UTF-8">
                <title>Angemeldet als <?php echo $usname ;?></title>
                </head>
                 
                <body>
                <?php
                echo $result;
                ?>
                <?php
                    
                if (isset($_SESSION['id'])) {
                ?>
                <a href="">Klick</a>
                <?php
                    
                }
                ?>
                </body>
                </html>
                So würde der Link nur angezeigt wenn der User eingeloggt ist.

                Bei deinem Code wurde das ja nirgends überprüft (außer ganz am Anfang, aber dann hättest du alle Inhalte, inkl der Links, nur in $result packen müssen).

                Kommentar


                • #9
                  Sowas einfaches... und ich komm nicht drauf *meinkopfgegendentischhau*

                  Danke WTB!

                  Kommentar

                  Lädt...
                  X