![]() |
[PHP] Eigenes Loginscript
Hallo Leute,
ich habe ein "Loginscript" geschrieben. Es ist zwar ganz einfach aber im Grund reicht es für meine Zwecke! Allerdings habe ich noch ein Problem, das ich hier beschreibe. Vorab, ich möchte KEIN MySql o.ä. verwenden. Das Login Formular:
Delphi-Quellcode:
Folgender Code wird für die Login Funktion verwendet.<form action="" method="post"> <p align="center"> <table border="7"> <tr><td> <table width="50%" border="0"> <tr> <td colspan="2"> <p align="center">[b]<u> L O G I N </u>[/b]</p></td> </tr> <tr> <td> [b] Benutzername [/b] </td> <td> <input type="text" name="user"> </td> </tr> <tr> <td> [b] Passwort [/b] </td> <td> <input type="password" name="pw"> </td> </tr> <tr> <td> </td> <td> <input type="submit" value="Login" > <input type="reset" value="Löschen"> </td> </tr> </table> </tr></td> </table> </form>
Delphi-Quellcode:
<?php
$username = 'BENUTZER'; $passwort = 'PASSWORT'; IF($_POST) { IF ($_POST['user']== $username) { IF ($_POST['pw']== $passwort) { echo (' <h1><p align="center"> Login erfolgreich! </p></h1> <p align="center"> [url="?id=1"] Weiter [/url] </p> <!---- <iframe src="http://m-v-g.de.ms" width="100%" height="100%"> </iframe> ---> '); } } ELSE { echo (' <h1><p align="center"> Login fehlgeschlagen! </p></h1> '); } } ?> Das Prinzip ist sehr einfach: Ich habe eine auf PHP basierende Seite (Administration). Wird diese Aufgerufen, erscheint automatisch die Indexdatei mit dem Loginformular. Geb ich nun meinen Nutzernamen und das Passwort ein, erfolgt die Ausgabe einer Nachricht "Login erfolgreich!" sowie die Ausgabe eines Links. Der Link leitet mich dann auf den Inhalt weiter. Ist der Nutzername schon falsch, wird erst gar nicht das Passwort überprüft sondern gleich die Nachricht "Login fehlgeschlagen" ausgegeben. Soweit so gut, ist zwar nicht das effizienteste Script aber der Grundaufbau funktioniert damit! Nun zum eigentlichen Problem: Ich verwenden für die Anzeige des Inhalts ein Array, in dem ich die Links speichere:
Delphi-Quellcode:
Der Link um auf die Seite zu kommen (Den ich beim Login erhalte) lautet:
<?php
$seite[0]= 'inhalt/login'; $seite[1]= 'inhalt/start'; $seite[2]= 'inhalt/chat_admin'; ?> <?php include($seite[$_GET['id']].'.php'); ?>
Delphi-Quellcode:
Sprich es wird die ID auf 1 gesetzt. Somit wird der Inhalt ausgetauscht (Header und Navi natürlich auch, ist nun aber
[url="?id=1"] Weiter [/url]
nicht weiter von nöten zu erklären). An sich ist das ganze auch recht sicher, vergleich mit der einfachheit. Ich will aber nicht, das jdn den "Trick durschaut" und einfach mal auf gut Glück in der Navileiste den Teil index.php?id=1 durch index.php?id=2 austauscht und somit das Loginmenü umgeht. Eine Idee von mir ist bsp: ich generiere einfach Zufalls ID's. Das Problem dabei ist, woher weiß ich denn, welche Seite welche ID hat? Oder gibts da noch andere Möglichkeiten es so zu machen? Danke für die Hilfe und Gruß Marc |
Re: [PHP] Eigenes Loginscript
Hi!
Also dein Ansatz ist leider völlig falsch! So wird das nichts. Das nennt man ![]() Richtig geht es so: Nachdem du die Daten in POST auf Richtigkeit geprüft hast, musst du dem User eine Session geben. Dafür hat PHP schon fertige Funktionen, die sogar echt einfach zu verwalten sind. Als erstes musst du ganz (!) am Anfang jeder Datei, noch bevor jeder (!) Ausgabe die Funktion session_start(); aufrufen. Wenn die Login-Daten dann richtig sind, kannst du in die globale Array-Variable $_SESSION dann z.B. einen Wert "true" reinschreiben, auf den du dann immer überprüfst. Beim Logout dann einfach ein false rein. Kurzes, ungetestetes Beispiel:
Code:
Edit:// Vielleicht noch ein paar Worte zu den Sessions. Die Daten, welche du in $_SESSION speicherst bleiben erhalten, solange der User eingeloggt ist und sind bei jedem Script-Aufruf wieder verfügbar. Der User bekommt von PHP einen Cookie mit einem 32 Zeichen langen Zufalls-String. Dieser wird vom Browser bei jedem Seitenaufruf an den Server geschickt. Der Server sucht in seiner Session Datenbank nach diesem Zufalls-String (die Session-ID). Hat er was gefunden, läd er die Daten in die $_SESSION-Variable und führt das Script aus. Wichtig zu erwähnen ist es dann wohl, dass all diese Daten Server-gespeichert sind. Das heißt, es ist Problemlos möglich, statt einem "true" auch eine ID möglich, die den gerade eingeloggten User identifiziert. Der User kann diese Daten weder sehen noch ändern. ;-)
session_start();
if ($_POST['name'] == $name && $_POST['password'] == $password) { // Warum denn 2 Abfragen? $_SESSION['login'] = true; } else { // Fehlermeldung ausgeben } // [...] if ($_SESSION['login']) { // geheime Inhalte anzeigen } else { // "Sie sind nicht berechtigt" ... } Mit freundlichen Grüßen, Valle |
Re: [PHP] Eigenes Loginscript
Zitat:
Ich bin gerade dabei, mir PHP beizubringen, ohne Hilfe von Lehrern etc... wenn du verstehst wie ich meine. So die Grundlagen etc hab ich schonmal drinne. Allerdings habe ich noch nie was von diesem "Session" in dieser Form bzw in PHP gesehen! Zitat:
Zitat:
Ich will es mal genauer erklären: Ich habe für z.B. den Chat auf meiner Seite ne Adminstration und auch eine Adminisrtation für den Downloadzähler etc.. diese sind ansich schon Passwortgeschützt. Nur damit ich mich nicht jedes mal überall durch mein Webspace 'schummeln' muss, um dorthin zu gelangen weil ich was ändern möchte, möchte ich das alles quasi zusammenfassen. Zudem hat es noch den Vorteil, das es übersichtlicher ist ;) Zitat:
|
Re: [PHP] Eigenes Loginscript
Hi BullsEye!
Zitat:
Zitat:
![]() ![]() Mit freundlichen Grüßen, Valle |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:59 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz