XHTMLforum

XHTMLforum (http://xhtmlforum.de/index.php)
-   Serveradministration und serverseitige Scripte (http://xhtmlforum.de/forumdisplay.php?f=80)
-   -   LogIn auf geschütztes Verzeichnis (1 Kunde = 1 Verz.) (http://xhtmlforum.de/showthread.php?t=41439)

Kirsten 20.08.2006 17:05

LogIn auf geschütztes Verzeichnis (1 Kunde = 1 Verz.)
 
Hallo, Ihr Lieben,

ich klicke mich seit Tagen durchs Netz und suche nach einer Lösung für mein LogIn-Problem. Ich dachte, das Problem sei einfach und müsste öfter zu finden sein, aber ich finde nur tangentiale oder zutiefst rätselhafte Antworten oder Scripts aus anderen Zusammenhängen, die ich nicht zum Laufen kriege.

Also:
Auf meinem Server gibt es ein geschütztes Verzeichnis, auf die nur der Kunde XY Zugriff haben soll.
Der Kunde XY bekommt nun von mir per Mail einen Usernamen und ein Password. Er ruft die LogIn-seite auf, trägt Username und Passwort ein und wird dann auf die index.html-Seite in "sein" Verzeichnis weitergeleitet.

Was ich suche:
Eine Lösung, mit der ich die Verbindung zwischen LogIn-Seite und Verzeichnis "Kunde XY" herstellen kann
Entweder nur per PHP/SQL(?) oder indem ich Username/Password per Script an eine .htaccess-Datei im geschützten Verzeichnis weiterleite.
Der Kunde soll sich jedesmal wieder neu einloggen, nachdem er die Seiten wieder verlassen hat.

Was ich NICHT möchte, ist, mit den LogIn-Masken von htaccess arbeiten (würde ich am liebsten ganz umgehen).
Und es soll eine einfach zu verwaltende Lösung sein. Die Inhalte in den geschützten Verzeichnissen sind nicht sooo geheim, dass man die Zugangsdaten noch kompliziert verschlüsseln oder generieren müsste etc.

Vielleicht hat ja jemand einen Tipp, wo ich da nachlesen könnte.

Kirsten 20.08.2006 18:00

Bevor ich hier endgültig die Krise kriege.

In der LogIn-Datei steht:
Code:

<html>

<head>
<title>Login 1</title>
</head>
<form action="kundenprojekt_1.php" method="post"<br>
Username:<br>
<input type="Text" name="username"><br>
Passwort:<br>
<input type="Password" name="passwort"><br>
<input type="Submit" value="Absenden"><br>
</form>
<body>

</body>

</html>

In der Kundenprojekt_1.php-Datei steht:
Code:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
 <head>
  <title>:: Kundenprojekte ::</title>
  <meta http-equiv="content-type" content="text/html; charset=utf-8">
  <meta http-equiv="Content-Script-Type" content="text/javascript">
  <meta http-equiv="Content-Style-Type" content="text/css">
  <meta http-equiv="imagetoolbar" content="no">
  <meta name="author" content="">
  <meta name="description" content="">
  <meta name="keywords" lang="de" content="">
  <meta name="audience" content="all">
  <meta name="robots" content="index, follow">
  <link rel="stylesheet" type="text/css" href="../css/intern.css">
 </head>
 <?php
$username = $_POST["username"];
$passwort = $_POST["passwort"];

if($username=="Kirsten" AND $passwort=="php")
  {
  echo "Zugriff erlaubt";
  }
else
  {
  echo "Zugriff fehlgeschlagen";
  }
?>
<body>
Das ist das Kundenprojekt
<(body>
>/html>

Wenn ich das Password richtig eingebe, sehe ich nur den Quellcode der Seite Kundenprojekt_1.
Dasselbe Phänomen hatte ich bei allen Scriptversuchen bisher. In Safari seh ich immer nur den Quellcode der Kundenprojektseite, im Firefox zwar nicht, aber es funzt trotzdem auch da nix..
Lachen sich jetzt alle tot und ich bin nur zu blöd für diese Welt oder funktioniert mein PHP* auf meinem lokalen Server plötzlich nicht mehr (Apache/Mac OSX) richtig oder mach ich was ganz Elementares im Code falsch?

*PHP ist aktiviert, ich hab nochmal extra nachgeschaut. Einfache Testseiten ("Hallo Welt" und so) werden dargestellt.

Aber sobald es an mein LogIn-Zeug geht, nur Chaos.

Ich HASSE es!
:evil:

Kirsten 20.08.2006 22:47

Gut, einen Teil des Problems hab ich gelöst. Auf meinem lokalen Server gibt es Probleme mit der Darstellung von php.
Auf dem Webserver vertragen sich Baustein 1 und 2 und tun was sie sollen.
Daher nun mit etwas weniger Geschimpfe und etwas konkreter meine Frage:
Was muss ich jetzt wo eintragen, damit der User nach erfolgter Passwortüberprüfung (durch pass.php) auf die Datei "kunde.html" weitergeleitet wird? Respektive bei fehlerhaften Login-Daten zurück auf login.html?

1. Baustein: Datei login.html
Code:

<html>

<head>
<title>Login</title>
</head>
<form action="pass2.php" method="post"<br>
Username:<br>
<input type="Text" name="username"><br>
Passwort:<br>
<input type="Password" name="passwort"><br>
<input type="Submit" value="LogIn"><br>
</form>
<body>
</body>

</html>

2. Baustein: Datei pass.php
Code:

<html>

<head>

<title>Passwortprüfung</title>
</head>

<?php
$username = $_POST["username"];
$passwort = $_POST["passwort"];

if($username=="Kirsten" AND $passwort=="php")
  {
  echo "Sie sind eingeloggt";
  }
else
  {
  echo "Zugriff fehlgeschlagen";
  }
?>


<body>

</body>

</html>


netspy 21.08.2006 10:52

Zitat:

Zitat von Kirsten
Was muss ich jetzt wo eintragen, damit der User nach erfolgter Passwortüberprüfung (durch pass.php) auf die Datei "kunde.html" weitergeleitet wird?

Eine Weiterleitung erfolgt mit header('Location: htttp://...'); Das wird dir aber nichts bringen, da dazu deine kunde.html ja ungeschützt auf dem Server liegen muss und der Kunde (oder jeder, der es kennt) beim nächsten mal dieses Dokument direkt aufruft.

Entweder du arbeitest komplett mit PHP und speicherst die Login-Daten in einer Session oder du machst die Anmeldung über die .htaccess mit der HTTP-Authentifizierung. Viel mehr Möglichkeiten gibt es nicht.

Mario

Kirsten 21.08.2006 13:11

Danke schön!
Ich hab mich inzwischen durchgewühlt (das Verwirrendste war, dass das PHP auf meinem lokalen Server nur fehlerhaft läuft) und eine ganz einfache LogIn-Konstruktion gemacht.
Der Kunde kann sich in der Tat seine Seite bookmarken, d.h. jeder, der den Bookmark kennt, kommt auch dahin. Ist also in gewisser Weise Schmuh, ich könnt ihm auch einfach den Link schicken ;)
Wenn ich Zeit habe, werde ich das Ganze mit einer Session verzieren, aber so lange muss es die einfache Konstruktion tun. Wie gesagt, die Sachen sind nicht wirklich hochgeheim, die da gezeigt werden.

EDIT
Eine ganz einfache Lösung wäre, wenn der Browser den Pfad zur Datei nicht anzeigen würde. Gibt es eine Möglichkeit, per PHP Dateipfade zu verschleiern?
Eine zweite Option wäre, den Weg auf die Datei kunde.html vorzugeben. Also: "Komm nicht einfach per Bookmark an, gehe immer den Weg über LogIn". Kann man das in einem Script abbilden? Ist wahrscheinlich logisch nicht ganz einfach.*

EDIT2
*Nö, nur geht nur per Session.


Alle Zeitangaben in WEZ +2. Es ist jetzt 12:03 Uhr.

Powered by vBulletin® Version 3.8.11 (Deutsch)
Copyright ©2000 - 2024, vBulletin Solutions, Inc.

© Dirk H. 2003 - 2023