PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : simpler Passwortschutz mit PHP, wie??


Pfanni
23.03.2002, 16:56:43
Hallo,

ich will einen ganz simplen Passwortschutz für eine Seite erstellen und auf der zu schützenden Seite dann einfach den Inhalt einer kleinen Datei ausgeben.
Ich habe es mit folgenden zwei PHP-Scripten versucht.
Scheint auch einigermaßen zu funktionieren. Nur wenn ich das zweite Script direkt aufrufe kommt: "Undefined variable: pw in /htdocs/admin1.php
Jemand ne Idee wie ich das verbessern könnte. Bin für alle Ideen offen, also auch für ganz andere, neue Ansätze. Wenn jemnd ein gutes Tutorial über Passwortschutz und PHP kennt wäre ich auch sehr interessiert.
Will den Passwortschutz aber ohne.htaccess und ohne Datenbanken (MySQL) realisieren.

admin.php

<p>Passwortschutz</p>
<form method="POST" action="admin1.php">
<div align="left"><p><font face="BankGothic Md BT">Admin Passwort?</font>
<input type="password" name="pw" size="14"><input type="submit" value="Submit"></p>
</div></form>


admin1.php

<?
$adminpass = "test";
if ($pw == $adminpass)
{
print("Hallo in der Administration!");
include ("a.dat");
}
else
{
print("Falsches Passwort");
}
?>



Grüße
Pfanni

Big2k
26.03.2002, 20:12:12
was haste gegen .htaccess

rew
27.03.2002, 11:32:12
Original geschrieben von Pfanni

Scheint auch einigermaßen zu funktionieren. Nur wenn ich das zweite Script direkt aufrufe kommt: "Undefined variable: pw in /htdocs/admin1.php

admin1.php

<?
$adminpass = "test";
if ($pw == $adminpass)
{
print("Hallo in der Administration!");
include ("a.dat");
}
else
{
print("Falsches Passwort");
}
?>



In admin1.php ist die variable $pw auch nirgends definiert, deshalb gibts nen error.
Was du dagegen machen könntest als Abfrage, ob $pw gesetzt ist:

if (!$pw){
echo "Kein Passwort";
}

Pfanni
27.03.2002, 16:29:34
@Big2k

ich habe nix gegen .htaccess, aber mein Provider. Ich habs halt leider nicht.

@rew

ich habe deinen Vorschlag mal folgendermaßen umgesetzt.

<?
$adminpass = "test";
if (!$pw){
echo "Kein Passwort";
}
if ($pw == $adminpass)
{
print("Hallo in der Administration!");
include ("a.dat");
}
else
{
print("Falsches Passwort");
}
?>


ich bekomme dann beim direkten Aufruf der Datei aber immer noch folgende Warnung:


Warning: Undefined variable: pw in htdocsadmin1.php on line 3
Kein Passwort
Warning: Undefined variable: pw in htdocsadmin1.php on line 6
Falsches Passwort


Grüße
Pfanni

cynos
28.03.2002, 13:13:41
Du musst die Variable mit global definieren:


<?
global $pw, $adminpass;
$adminpass = "test";
// usw.
?>


Du könntest den Schutz auch noch mit einem [verschlüsseltem] Passwort in und einem Cookie erweitern, damit jede Seite geschützt ist und man nicht immer das PW eingeben muss. ;)