Login und Logout Fehler

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • Login und Logout Fehler

    Hallo Easy-Coding User,
    ich hab ein problem denn möchte ich weg bekommen
    und dass mit euch.

    Dass Problem liegt hier:
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. if(!isset($_SESSION['username']))
    3. {
    4. ?>
    5. <div class="navbar-right" style="margin-top: 10px; font-size:18px; ">
    6. Willkommen, <?php echo $_SESSION['username']; ?> <a href="logout.php" class="btn btn-info">Ausloggen</a>
    7. </div>
    8. <?php
    9. }
    10. else if(!empty ($_SESSION['username']))
    11. {
    12. ?>
    13. <div class="navbar-right" style="margin-top: 10px; font-size:18px; ">Bitte Loggen sie sich <a href="login.php">ein</a>.</div>
    14. <?php
    15. }
    16. ?>
    Alles anzeigen


    Die Session kriegt hier ihre bestimmung:
    Spoiler anzeigen

    Quellcode

    1. if(isset($_POST['submit'])){
    2. $Username = mysql_real_escape_string($_POST['username']);
    3. $Password = mysql_real_escape_string($_POST['password']);
    4. $CheckAcc = mysql_query("SELECT id FROM users WHERE username = '$Username' AND password = '$Password' LIMIT 1");
    5. if(mysql_num_rows($CheckAcc) == 0)
    6. {
    7. $_SESSION['username'] = $Username;
    8. header("Location: index.php");
    9. } else {
    10. echo 'Die angegebenen Benutzerdaten, scheinen nicht korrekt zu sein!';
    11. }
    12. }
    Alles anzeigen



    Mich wurde es freuen wenn ihr mir helfen wurdet.

    MFG
    HobbyCoder
    Projektleiter von Your Elite Reallife & The Gaming Power Elite
    Homepage Content Message System Todolist:
    Spoiler anzeigen

    Teamspeak Viewer
    Admin System
    Member System
    Language Pack System
    Server Start/Stop Funktion(SAMP/Minecraft)
    Ein eingebautes User Control Panel(Aktivierbar)

    Unser Team sucht noch Mitglieder:
    Wollen sie mit machen und ein Supporter oder höher werden, dann besucht uns auf unseren Teamspeak³ Server.
    IP: theperfecthosting.de
  • Moinmoin,

    der Fehler liegt in deinem PHP-Code. Die erste Abfrage der Session mit isset() ist vollkommen in Ordnung zur Abfrage. Das darauffolgende !empty() ist falsch. Gesprochen würde es so heißen: wenn der Inhalt der Session-Variable Username nicht leer ist. Damit greift die Abfrage nur, wenn die Variable mit einem Namen gefüllt ist, wodurch schon die isset-Bedingung greift.

    Benutze statt dem else if einfach ein else.

    PHP-Quellcode

    1. ​if( isset($_SESSION['username']) ) {
    2. // eingeloggt
    3. }
    4. else {
    5. // Nicht eingeloggt
    6. }
  • ich kann mich nun nicht mehr aus loggen.


    Logout.php
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. session_destroy();
    3. header("Location: index.php");
    4. ?>
    Homepage Content Message System Todolist:
    Spoiler anzeigen

    Teamspeak Viewer
    Admin System
    Member System
    Language Pack System
    Server Start/Stop Funktion(SAMP/Minecraft)
    Ein eingebautes User Control Panel(Aktivierbar)

    Unser Team sucht noch Mitglieder:
    Wollen sie mit machen und ein Supporter oder höher werden, dann besucht uns auf unseren Teamspeak³ Server.
    IP: theperfecthosting.de
  • Ich bin mir nicht ganz sicher, aber ich meine mich zu errinern, dass du zuerst die Session initialisieren (session_start()) musst, bevor du sie löschen kannst.

    Im PHP-Manual gibt es dazu ein schönes Beispiel, wie man eine Session komplett löscht: php.net/manual/en/function.session-destroy.php (Beispiel #1)
  • hey arno hab noch ein problem
    der soll nur ein butten anzeigen.

    Fehler:
    Spoiler anzeigen

    Quellcode

    1. <?
    2. if(isset($_SESSION["user"]))
    3. {?>
    4. <a href="index.php?page=login" class="btn btn-info square-btn-adjust">Login</a>
    5. <?
    6. }
    7. else
    8. {
    9. ?>
    10. <a href="index.php?page=logout" class="btn btn-info square-btn-adjust">Logout</a>
    11. <?
    12. }
    13. ?>
    Alles anzeigen
    Homepage Content Message System Todolist:
    Spoiler anzeigen

    Teamspeak Viewer
    Admin System
    Member System
    Language Pack System
    Server Start/Stop Funktion(SAMP/Minecraft)
    Ein eingebautes User Control Panel(Aktivierbar)

    Unser Team sucht noch Mitglieder:
    Wollen sie mit machen und ein Supporter oder höher werden, dann besucht uns auf unseren Teamspeak³ Server.
    IP: theperfecthosting.de
  • Hab nun ein Problem mit dem Admin System was ich angefangen hab


    Fehler: ich bin aus geloggt und sehe admin seite obwohl die als gast nich zu sehen sein solle oder nicht darf.
    Fehler 2:ich bin eingeloggt und ich kann wenn ich admin rang 0 bin kann ich admin seite sehen obwohl mann als user es nicht sehen darf.


    Source Code 1;
    Spoiler anzeigen

    PHP-Quellcode

    1. <?php
    2. if($adminrang > 1)
    3. { ?>
    4. <?php
    5. }
    6. else
    7. {
    8. ?>
    9. <li><a href="admin.php">Admin Seite</a></li>
    10. <?php
    11. }
    12. ?>
    Alles anzeigen



    Source Code 2;
    Spoiler anzeigen

    Quellcode

    1. $query2 = mysql_query('SELECT * FROM user WHERE username="'.$_SESSION["username"].'"');
    2. while($userinfos = mysql_fetch_array($query2))
    3. {
    4. $adminrang = $userinfos["admin"];
    5. }
    Homepage Content Message System Todolist:
    Spoiler anzeigen

    Teamspeak Viewer
    Admin System
    Member System
    Language Pack System
    Server Start/Stop Funktion(SAMP/Minecraft)
    Ein eingebautes User Control Panel(Aktivierbar)

    Unser Team sucht noch Mitglieder:
    Wollen sie mit machen und ein Supporter oder höher werden, dann besucht uns auf unseren Teamspeak³ Server.
    IP: theperfecthosting.de
  • Punkt 1: Wo kommt $adminrang her? ich vermute, das ist $_SESSION['adminrang'], aber da ich nicht genau weiß, wie die Variable entsteht ist das nur reine Spekulation. (Vermutung meinerseits: du schreibst den Rang nicht in die Session, wenn der 2. Code alles ist).
    Zweiter Punkt: Wieso drehst du die if-Abfrage nicht um und sparst dir den else-Block? Stichwort Performance und in deinem Fall viel wichtiger, Lesbarkeit:

    HobbyCoder schrieb:

    ich bin eingeloggt und ich kann wenn ich admin rang 0 bin kann ich admin seite sehen obwohl mann als user es nicht sehen darf.

    Wenn du als User Rang 0 und als Admin etwas höheres hast, dann stimmt die if-Abfrage sowieso nicht. So wärs schöner und kürzer:

    PHP-Quellcode

    1. <?php if($adminrang > 0) { // alles über Rang 0 = User
    2. ?>
    3. <li><a href="admin.php">Admin Seite</a></li>
    4. <?php
    5. }
    6. ?>


    Dritter Punkt: du solltest jede geschützte Seite nochmals schützen, bspw. mit diesem Code am Anfang:

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. if ($_SESSION['adminrang'] > 0) { // alles außer Rang 0, kann man natürlich weiter spezifizieren.
    4. header('Location: login.php');
    5. exit();
    6. }
  • @freeek
    Ehm es funktioniert nicht so wie du es meintest.
    Homepage Content Message System Todolist:
    Spoiler anzeigen

    Teamspeak Viewer
    Admin System
    Member System
    Language Pack System
    Server Start/Stop Funktion(SAMP/Minecraft)
    Ein eingebautes User Control Panel(Aktivierbar)

    Unser Team sucht noch Mitglieder:
    Wollen sie mit machen und ein Supporter oder höher werden, dann besucht uns auf unseren Teamspeak³ Server.
    IP: theperfecthosting.de
  • HobbyCoder schrieb:

    Ehm es funktioniert nicht so wie du es meintest.


    Da brauch ich schon ein paar mehr Infos was nicht funktioniert, meine Kristallkugel ist grad in der Reparatur ;)

    Ein Fehler ist mir aber tatsächlich in meinem zweiten Codeschnipsel aufgefallen:

    PHP-Quellcode

    1. <?php
    2. session_start();
    3. if ($_SESSION['adminrang'] == 0) { // Das > vorher hat da keinen Sinn gemacht
    4. header('Location: login.php');
    5. exit();
    6. }
  • ich kann aber immer noch admin seite sehen als rang 0 und mann sollte es nicht sehen dürfen.
    Erst ab rang 1
    Bilder
    • Unbenannt.PNG

      3,97 kB, 1.001×53, 293 mal angesehen
    Homepage Content Message System Todolist:
    Spoiler anzeigen

    Teamspeak Viewer
    Admin System
    Member System
    Language Pack System
    Server Start/Stop Funktion(SAMP/Minecraft)
    Ein eingebautes User Control Panel(Aktivierbar)

    Unser Team sucht noch Mitglieder:
    Wollen sie mit machen und ein Supporter oder höher werden, dann besucht uns auf unseren Teamspeak³ Server.
    IP: theperfecthosting.de
  • ich werde es nicht hoch laden ich werde es versuchen alleine die Fehler zu beheben wenn mir keiner mehr helfen kann.
    Ich werde in naher Zukunft mehr Coder brauchen die mir helfen wollen ich zwinge keine dazu.
    Dazu bin ich gar nicht in Der Stellung dass ich es machen kann.
    ich werde dieses Wochenende versuchen dass erste PR raus zu bringen, wenn ihr mehr Infos haben wollt.
    Kuck auf meine Profil Seite oder auf den Teamspeak³ wie weit ich mit Der Homepage Content Message System bin.
    Mit Freundlichen Grüßen
    DarkEvolution a.k.a HobbyCoder
    Leiter einer Community und eines Projektes Namens Your Elite Reallife


    @edit1: ALL_TEXT_DEL();
    @edit2: REWRITE_TEXT();
    @edit3: PLEASE_CLOSE_ME();
    Homepage Content Message System Todolist:
    Spoiler anzeigen

    Teamspeak Viewer
    Admin System
    Member System
    Language Pack System
    Server Start/Stop Funktion(SAMP/Minecraft)
    Ein eingebautes User Control Panel(Aktivierbar)

    Unser Team sucht noch Mitglieder:
    Wollen sie mit machen und ein Supporter oder höher werden, dann besucht uns auf unseren Teamspeak³ Server.
    IP: theperfecthosting.de

    Dieser Beitrag wurde bereits 3 mal editiert, zuletzt von HobbyCoder ()