Passwortabfrage

-=Renegade=-

Lt. Junior Grade
Registriert
Nov. 2006
Beiträge
434
Also, ich will eine Passwortabfrage bei meiner Homepage einbauen.
Bisher hab ich 2 Skripte von GP, die allerdings beide nur über ein Forumlar Feld funktionieren.

Ich würde das ganze gerne über ein window.prompt (oder gibt es sogar etwas passenderes wie window.password, hab bisher darüber leider nichts gefunden) steuern, allerdings hab ich es bei beiden Skripten nicht geschafft, das Formular zu umgehen :(

Ich hoffe, es kann mir wer helfen.
Java
Login.html
Code:
<html>
<head>
<title>Top Secret</title>
<script language="JavaScript" src="cookies.js"></script>
<script language="JavaScript"><!--
function check(f){
  var pwd = f.elements["pass"].value;
  var applet = document.loginApplet;
  if (applet && applet.checkLogin 
             && applet.checkLogin(pwd)) {  // Passwort ok?!
    GP_cookie_setzen("Login", "ok");
    location.href = "geheim.html";
  }
}
//--></script>
</head>
<body>
<h1>Passwortabfrage</h2>
<form onSubmit="check(this); return false;">
  <input type="password" name="pass"> 
  <input type="submit" value="Login">
</form>
<applet code="login.class" name="loginApplet" 
        width="1" height="1"></applet>
</body>
</html>
Der Teil mit den Cookies kann hier vernachlässigt werden, es geht auch ohne ;)
login.class
Code:
import java.applet.*;
import java.awt.*;
public class login extends Applet {
  private String passwort = "geheim"; // das Passwort
  public void paint(Graphics g) {
  }
  public boolean checkLogin(String versuch) {
    return (versuch.equals(passwort));
  }
}

PHP
login.php
Code:
<?php
session_start();
if (isset($_POST["Submit"]) && $_POST["Submit"] == "Login") {
  if (isset($_POST["pass"]) && $_POST["pass"] == "geheim") {
    $Login = "ok";
  }
  session_register("Login");
  header("Location: geheim.php?" . session_name()
                                 . "=" . session_id());
}
?>
<html>
<head>
<title>Top Secret</title>
</head>
<body>
<h1>Passwortabfrage</h2>
<form method="post">
  <input type="password" name="pass"> 
  <input type="submit" value="Login" name="Submit">
</form>
</body>
</html>
geheim.php
Code:
<?php
session_start();
if (!isset($_SESSION["Login"]) || $_SESSION["Login"] != "ok") {
  header("Location: login.php");
}
?>
<html>
<head>
<title>Top Secret</title>
</head>
<body>
Geheime Informationen ... 
</body>
</html>

so far
thx & mfg
 
Die klassische Methode ist die auth-Mechanismen des httpd zu nutzen, Apache regelt dies bspw. mit den auth-Modulen, beim IIS läuft das AFAIK über dessen Benutzerverwaltung. Der httpd sendet dabei einen Status 401 Unauthorized-Header, der den Client veranlaßt den Besucher nach Benutzernamen und Passwort zu fragen.
Beim Apache mußt du dazu eine .htaccess im zu schützenden Verzeichnis erstellen:

Code:
AuthType Basic
AuthName "Meine Schatzkammer"
AuthUserFile /pfad/zur/password.datei
Require valid-user

AuthType:
Basic oder Digest, Basic ist der Standard

AuthName:
Der Name für die Authentifizierung, kann frei gewählt werden.

AuthUserFile:
Der Pfad zur Datei, in dem die Benutzer/Passwort-Kombinatioen stehen.

Require:
Legt fest, welche Benutzer Zugriff haben. Am einfachsten ist valid-user, in diesem Fall haben alle Benutzer aus dem o.g. AuthUserFile Zugriff. Daneben kann man auch mit user user1 [, user2]… nur einzelnen Benutzern Zugriff gewähren, selbiges gilt für group1 [, group2]…, wenn die Direktive AuthGroupFile eine Liste von möglichen Gruppen als mögliche Benutzer vorgibt.

Die Passwortdatei wird mit dem Programm htpasswd angelegt, diese liegt im bin-Verzeichnis der Apache-Installation.

greetings, Keita
 
Die .htaccess Methode war mir schon bekannt, allerdings kann ich die Abfrage nicht wie gewünscht durchführen.

Das Problem liegt darin, dass ich eine Index Seite habe, auf der noch nichts abgefragt werden soll, erst, wenn man die Sprache wählt, soll eine eigene Abfrage kommen. Allerdings kommt die Abfrage schon vorher, auch wenn die Datei nur im Unterverzeichnis der Sprache liegt, und zwar so oft, wie sie im Unterverzeichnis liegt (also bei 2 Sprachen kommt die Abfrage 2 mal, zudem wird die Grafik (eine Fahne), die auf die jeweilige Sprache verweist, nicht mitgeladen.

Deshalb hab ich eben nach einer anderen Methode gesucht, das window.prompt war ja auch schon sehr an die htaccess Methode angelehnt ;)

In beiden Fällen dürfte das Problem ja sehr ähnlich sein, irgenwo muss man wohl noch was hinzufügen / entfernen, um von nem Formular auf ein Eingabefenster zu kommen.


so far
mfg
 
Zurück
Oben