![]() |
[PHP] Login per Formular
Es gibt zwar schon einen Thread mit diesem Titel, aber da steht leider nicht das drin, was ich brauche!
Ich möchte für meine Internetseite gerne eine Passwortabfrage einbauen. Momentan habe ich es so gelöst, dass ich folgenden Teil per include an anfang jeder php-datei setze! Wenn das PW richtig ist, dann geht er weiter und wenn es falsch ist, dann öffnen er eben die seite, wo steht, dass es falsch war und führt den restlichen Code nicht mehr aus!
Code:
Damit bin ich eigentlich auch zufrieden, nur geht momentan immer dieses "weniger schöne" Windowslogin-Fenster auf, wo man dann seine Daten eingibt! Kann ich es irgendwie so machen, dass ich diese Variablen (also PW und Name) per Formular eingeben lassen kann?
<?
if (!isset($_SERVER['PHP_AUTH_USER']) || ($_POST['SeenBefore'] == 1) && ($_POST['OldUser'] == $_SERVER['PHP_AUTH_USER']) && ($_POST['OldPw'] == $_SERVER['PHP_AUTH_PW'])) { header("WWW-Authenticate: Basic realm=\"Die Neutralen\" "); header("HTTP/1.0 401 Unauthorized"); } $db = mysql_pconnect('***.de',"zensur","*****"); $query = "use neutralz"; if ( !mysql_query($query, $db) ) die("Die Datenbank existiert nicht."); function login() { $result = mysql_query("SELECT * FROM `od_forum_users` WHERE username='".$_SERVER['PHP_AUTH_USER']."'")or die (mysql_error()); $anzahl= mysql_num_rows ($result); for ($i=0;$i<$anzahl;$i++) { $row = mysql_fetch_row ($result); if(md5($_SERVER['PHP_AUTH_PW'])==$row[3]) { $ok=1;} else {$ok=0;}; } return $ok; } $a = login(); if ($a==0) { header("Location: ./finanzministerium.php"); exit; } ?> Mit dem Prinzip, dass ich den code mit include jedesmal einfüge, bin ich eigentlich zufrieden! Daran würde ich also gerne nichts ändern! Vielen Dank im voraus Nicolai |
Re: [PHP] Login per Formular
Das Windoof-Fenster, das aufpoppt, poppt auf, weil du Einen 401 header sendest.
Du müsstest diese Include-Datei so abänderen, dass sie: :arrow: Statt 401 und 403 Headern einen Location: sendet, der dann auf die Seite mit "hahahaha, FALSCHES PASSWORT !!!!!!!!" leitet :arrow: die Formularvariablen verwendet |
Re: [PHP] Login per Formular
Zitat:
|
Re: [PHP] Login per Formular
Zitat:
![]() |
Re: [PHP] Login per Formular
Ich habe das so gemacht, dass ich eine normales HTML-Formular genommen habe und wenn Passwort richtig, dann wird username und passswd in sessionvariablen gespeichert und erspart so das ständige neueinloggen auf jeder Seite oder das stäöndige anfügen von username und passwd an die Links, was nebenbei auch Sicheheitstechnisch besser ist.
Allerdings brauche ich dafür nur eine einzieg php-Datei. Die entsprechenden php-Dateien für die einzelnen Seiten werden dann per include eingebunden. So brauche ich nur eine Datei mit passwortüberprüfung... ich bin gerade nicht zu Hause, wenn du dich 'ne Stunde gedulden kannst, kann ich dir die indey.php mal senden... |
Re: [PHP] Login per Formular
Zitat:
|
Re: [PHP] Login per Formular
Zitat:
Mich würde Deine Datei mal interessieren weil ich auch über was "selbstgestricktes" Nachdenke... viele Grüße |
Re: [PHP] Login per Formular
Liste der Anhänge anzeigen (Anzahl: 1)
So, im Anhang die PHP-Datei.
Ist eine leicht "zensierte veränderte" Version, die 1. besser verständlcih sein sollte und 2. die ich mit gutem gewissen raugeben kann, da keine Infos enthalten. Die function dbstart() macht nichts anderes als verbindung zur DB herzustellen, die db zu selecten und in die die connection zu returnen. Ganz unten habe ich zum Verständnis noch zwei Funtionen aus der shared reinkopiert... Ansonsten solltet ihr für die include-dateien nat. einen Ort wählen, der vom web aus nicht erreichbar ist, sonst habt ihr ein Sicherheitsproblem (irgendwo in der httpd.conf vom apache kann man einen include-Pfad einstellen) Bei fragen nicht verzagen, sondern einfach yankee fragen ;-) |
Re: [PHP] Login per Formular
Danke erstmal,
Zitat:
Mir persönlich ist dabei nur nicht ganz klar, wie man den Nutzer eindeutig über die gesamte Session identifiziert, solange man nicht entweder Cookies setzt oder Variaben austauscht. Hast Du da eine Erklärung für? |
Re: [PHP] Login per Formular
Hallo,
Zitat:
Falls Cookies nicht erlaubt sind gibt es noch den Ausweg das man die ID als Parameter an die PHP Datei übergibt. Wie das genau geht müßtest du mal das PHP-Manual lesen. |
Re: [PHP] Login per Formular
Zitat:
Zitat:
|
Re: [PHP] Login per Formular
Zitat:
PHP macht dabei (fast) alles automatisch. Mit dem Befehl session_start() bekommt der client per cookie eine ID zugewiesen. Wenn die ID bereits existiert (also wenn das nicht die erste Seite ist, die der User aufruft), wird die vorhandene Session fortgeführt. Jetzt kannst du Session-Variablen speichern: $_SESSION["blabla"] :="mein Variableninhalt"; $_SESSION ist also ein assoziativer Array, in dem du einfach was reinspeichern kannst, was bei einem weiteren Seitenaufrufs des gleichen Users wieder in der Variable drin steht. Ich nutze das, um Passwort und Username zu speichern... Um alle Sessionvariablen wieder zu löschen kannst du diese Funktion benutzen: session_unset() //löscht alle session-Variablen und um die session danach grundsätzlich zu beenden: session_destroy() |
Re: [PHP] Login per Formular
Ich habe zwangweise mal ein LogIn gemacht, basierend auf PHP&MySQL, weil ich damals ein GB gemacht habe.
Das GB selber wurde nie fertig (wurde langweilig), der Login aber wurde ja gleich am Anfang gemacht. Wenn interesse besteht, pack ich mal die funktionen dazu beieinander und poste sie. air |
Re: [PHP] Login per Formular
Mich würde das interessieren! Gib mal bitte!
mfg, mh166 |
Re: [PHP] Login per Formular
Noch ein Tip: Niemals Passworter solala speichern, sonder mit MD5(Passwort) - Funktion ein Hash machen den speichern und diesen auch immer vergleichen.
PS: denkt bei Cookies daran, das es User gibt, die diese abschalten |
Re: [PHP] Login per Formular
Naja, ich setze voraus, dass Nutzer Cookies anschalten, zumindest für die Verweildauer des Besuches. Wer diese nicht einschaltet, muss auf mein Webangebot verzichten. Ich halte das aber auch für ok, denn wer sich informiert, sollte schnell feststellen, dass Cookies völlig harmlos sind und allenfalls zum Usertracking missbraucht werden können.
Aber um ganz sicher zu gehen dass es auch bei Cookieparanoiden läuft kann sonst nur noch eine Session-ID über die Browserzeile weitergereicht werden, was in meinen Augen umständlich erscheint, außerdem durch den Anwender manipulierbar ist. wo ich grad beim Thema bin: @yankee: Es gibt doch auch die Möglichkeit mit session_register anstatt $_SESSION["blabla"] :="mein Variableninhalt"; Ich habe damit bisher öfters herumexperimentiert, allerdings nie zuverlässig auf die session-registrierten variablen zurückgreifen können. Ich nutze daher ebenfalls die $_SESSION["blabla"] Methode. Hast Du damit Erfahrung? |
Re: [PHP] Login per Formular
Zitat:
mfg, mh166 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:27 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