Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   [PHP] Login per Formular (https://www.delphipraxis.net/34541-%5Bphp%5D-login-per-formular.html)

Nicolai1234 24. Nov 2004 14:39


[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:
<? 
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;
}
?>
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?
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

jfheins 24. Nov 2004 14:48

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

Nicolai1234 24. Nov 2004 14:50

Re: [PHP] Login per Formular
 
Zitat:

Zitat von jfheins
:arrow: die Formularvariablen verwendet

Aber die Daten werden ja vor dem Aufzuf jeder Seite abgefragt! Die Formulardaten, würden mir doch aber beim Aufruf der nächsten Seite "verloren" gehen, oder?

jfheins 24. Nov 2004 15:19

Re: [PHP] Login per Formular
 
Zitat:

Zitat von Nicolai1605
würden mir doch aber beim Aufruf der nächsten Seite "verloren" gehen, oder?

Sessions

yankee 24. Nov 2004 15:39

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...

Nicolai1234 24. Nov 2004 17:00

Re: [PHP] Login per Formular
 
Zitat:

Zitat von yankee
ich bin gerade nicht zu Hause, wenn du dich 'ne Stunde gedulden kannst, kann ich dir die indey.php mal senden...

Gerne

crazynet24 24. Nov 2004 19:09

Re: [PHP] Login per Formular
 
Zitat:

Zitat von yankee
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...

Arbeitest Du dabei auch ohne Cookies oder wie stellst Du sicher, dass jede weitere Kommunikation auch von immer der selben Gegenstelle kommt?
Mich würde Deine Datei mal interessieren weil ich auch über was "selbstgestricktes" Nachdenke...

viele Grüße

yankee 24. Nov 2004 21:22

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 ;-)

crazynet24 26. Nov 2004 09:45

Re: [PHP] Login per Formular
 
Danke erstmal,

Zitat:

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)
auch für den Tip, der war mir bisher unbekannt...

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?

fiasko 26. Nov 2004 09:58

Re: [PHP] Login per Formular
 
Hallo,

Zitat:

Zitat von crazynet24
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?

das PHP generiert für jeden Benutzer eine eindeutige Session-ID wenn sie die Seite das erste mal aufrufen. Im einfachsten fall bekommt der Brwoser dann ein Cookie mit der ID zurück und übergibt diesen dann bei jeder weiteren Anfrage. Anhand der ID ist es PHP auch möglich für jeden "Benutzer" persistente Variablen zuzuweisen.

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.


Alle Zeitangaben in WEZ +1. Es ist jetzt 20:35 Uhr.
Seite 1 von 2  1 2      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz