![]() |
Anzeige:
|
|
|||||||
| PHP/MySQL Alles rund um die Programmiersprache PHP sowie MySQL. |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 19.02.2007
Beiträge: 141
|
Hallo ihr Lieben
Ich möchte eine Site passwortschützen. Eine .htaccess-Datei, um die Anmeldeaufforderung anzeigen zu lassen habe ich schon, mit diesem Text von Wikipedia abgekupfert (-: AuthType Basic AuthName "Administrationsbereich" AuthUserFile /usr/admin/web/.htusers AuthGroupFile /usr/admin/web/.htgroups Require user Benutzer1 Benutzer2 Benutzer3 Require group Administratoren Könnte mir jemand erklären, wie der php-script lauten müsste ? Und auch, wie ich die Datenbank bestücke, denn ich habe mit Datenbanken noch nie gearbeitet und weiss nicht, wo was und wie hinkommt. Danke für jede Hilfe |
|
|
|
|
|
|
#2 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 30.12.2002
Ort: Stuttgarter Kreis
Beiträge: 11.722
|
Du hast das nicht verstanden Quirk...
Wenn du htaccess einsetzen willst, kannst du KEINE Anmeldeaufforderung in die Webseite einbauen (bzw. es geht schon, ist aber sau kompliziert und würde ich auf keinen Fall so machen)! Wenn du eine Anmeldeaufforderung in eine Webseite einbauen willst, und das Ganze mit PHP und mySQL machen willst, solltest du aber schon ein paar Vorkenntnisse mitbringen, so einfach ist das nämlich nicht. Schonmal über ein Buch zum Thema PHP nachgedacht?
__________________
|
|
|
|
|
|
#3 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 19.02.2007
Beiträge: 141
|
Ojeeeeeeee
Ganz offensichtlich hab ich es nicht verstanden. Ich stehe anscheinend auf der Leitung. Also: Mir ist nicht klar, wie und wo ich dieses ominöse Passwort mit dazugehörigem Usernamen überhaupt definieren kann ? Ich dachte, dafür sei ein Datenbankeintrag zwingend notwendig. Bin ja ganz froh, wenn php NICHT nötig ist. Schreibe ich es in den Text der .htacess-Datei selbst ? Habe es schon probiert. Obwohl ich bisher nur eine Möglichkeit für "user" erkennen kann, aber wo das Passwort hinkommen könnte und wie man es als solches deklariert, erkenne ich noch nicht. Gut, ich kämpf mich dann mal weiter durch Wiki, werds schon noch irgendwie rauskriegen. (-; Danke LG * |
|
|
|
|
|
#4 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 30.12.2002
Ort: Stuttgarter Kreis
Beiträge: 11.722
|
Wenn du dir das hier mal durchliest, kannst du mit Sicherheit dein eigenes .htaccess nach Belieben zusammen bauen:
http://de.selfhtml.org/servercgi/server/htaccess.htm
__________________
|
|
|
|
|
|
#5 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 19.02.2007
Beiträge: 141
|
Ja, ist tatsächlich ganz easy
Aber was mir trotzdem Probleme bereitet, ist der Pfad zur Passwortdatei. Ich habe schon alles Mögliche durchgetestet: vom Ablegen in den selben Ordner wie die htaccessdatei ohne Pfadangabe - bis hin zum Ablegen in diverse Ordner auf dem Server mit kompletter Pfadangabe, mit und ohne Dateiendungsangabe und vieles mehr. Klappt alles nicht. Es soll " der vollständige absolute Pfadname" angegeben werden. Dieser ist "nicht der Pfad ab dem Wurzelverzeichnis des Webprojekts". Nun weiss ich mal wieder nicht weiter Bleibt nur zu hoffen, dass mir der Provider sagt, wo das Ding hin soll und wie der Pfad lautet. ToiToiToi. Oder haste zum Pfadermitteln noch einen guten Tip ? Habe schon verschiedene Anleitungen durchexerziert, da steht jedenfalls nix weiter drin ... *uff* LG Quirk |
|
|
|
|
|
|
#6 (Direktlink) |
|
War schon mal da
![]() Registriert seit: 19.02.2007
Beiträge: 38
|
Hallo, insofern dein Server php beherrscht. Kannst du den rootpath einfach mittels $_SERVER["DOCUMENT_ROOT"] ermitteln. Dann einfach nur noch dann ab da an bis zu deiner htpasswd hinzufügen und dann sollte das funzen.
Erstelle dir eine Textdatei, kopiere folgendes dort hinein, speichere diese dann als showRoot.php. Uploade sie auf dein Web hoch. Rufe die Datei dann einfach im Browser auf. Code:
<?php
//Server-Root-Path ausgeben lassen
//Aufruf im Browser
//Dateiname: showRoot.php
echo $_SERVER["DOCUMENT_ROOT"];
?>
daran einfach dann noch den pfad anhängen bis zu deiner .htpasswd Tipp: Insofern vorhanden kann man auch ganz schnell mittels der PHP-Funktion phpinfo(); sich sämtliche Serverdaten (phpbezüglich) ausgeben lassen |
|
|
|
|
|
#7 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 19.02.2007
Beiträge: 141
|
Hi Murray, super Tip !Das ist ja praktisch (-: , den Pfad habe ich nun also. Leider klappt die Anmeldung immer noch nicht nicht, ich kann mich partout nicht einloggen. Schreibfehler im Script kann ich nicht finden .... Das Passwort habe ich mit dem Generator beim Webdoctor erstellt. Wenn das kein Murx ist, sollte die pw-Datei eigentlich auch korrekt sein. Ayayayaaay Aber ich gebe nicht auf * |
|
|
|
|
|
#8 (Direktlink) |
|
Weiß worum´s geht
![]() Registriert seit: 19.02.2007
Beiträge: 141
|
#
Habe den Provider angemailt, wird schon noch klappen. EINE WICHTIGE FRAGE HÄTTE ICH NOCH : Ich möchte das so machen, dass ich nur EINEN User mit Passwort erstelle und den dann an mehrere Leute weitergebe. Es würden nicht viele Leute sein, aber trotzdem wärs praktischer, als für jeden ein extra- Login zu erstellen. Kann man das so machen oder würde es Probleme geben, falls mehrere Leute gleichzeitig auf der Site unterwegs sind ? * |
|
|
|
|
|
#9 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 30.12.2002
Ort: Stuttgarter Kreis
Beiträge: 11.722
|
Das geht problemlos
__________________
|
|
|
|
|
|
#10 (Direktlink) |
|
Stammuser
![]() Registriert seit: 19.04.2006
Ort: Adelsheim
Beiträge: 286
|
Warum löst du das ganze nicht einfach per PHP? Wenn es tatsächlich nur einen Benutzer geben soll (also keine individuelle Registration) kommst du sogar ohne Datenbank aus
Ich würde sowas mit Sessions lösen Ich hab mal was zusammengeschustert, vllt reicht es für deine Zwecke aus (sehr unsicher, aber um Bereiche für Neugierige zu schützen reicht es) Code:
<?php
session_start();
if ($_POST['login']) {
$username = $_POST['username'];
$passwort = $_POST['passwort'];
// Hier nun die Login-Daten:
$geheim_name = "geheim"; // Benutzername
$geheim_pass = "passwort"; // Passwort
// Daten-Vergleich
if (($username == $geheim_name) AND ($passwort == $geheim_pass)) {
$_SESSION['login'] = TRUE;
// Weiterleitung zur internen Seite oder internen Inhalt einfügen
}
else { echo "Die angegebenen Daten sind falsch!"; }
}
else {
?>
<form action="login.php" method="post">
<table width="300" border="0" cellspacing="2" cellpadding="1">
<tr>
<td valign="top">Benutzername</td>
<td valign="top"><input type="text" name="username"></td>
</tr>
<tr>
<td valign="top">Passwort</td>
<td valign="top"><input type="password" name="passwort"></td>
</tr>
<tr>
<td valign="top"></td>
<td valign="top"><input type="submit" name="login" value="login"></td>
</tr>
</table>
</form>
<?php
}
?>
Wenn du eine Weiterleitung zu einer externen Datei vornimmst, müsstest du in dieser noch abfragen, ob der Benutzer eingeloggt ist oder nicht Code:
<?php
session_start();
if ($_SESSION['login'] == TRUE) {
// Hier der interne Inhalt
} else { echo "Bitte zuerst einloggen!"; }
?>
Eine logout-Funktion ist eher unnötig, weil eine Session (je nach Einstellung) nach 20min oder beim Browser beenden ghelöscht wird. Und auch bei dieser Lösung können sich beliebig viele Leute gleichzeitig auf der Page befinden! Dient nur als Anregung...wenn du mit .htaccess glücklicher bist, ist auch ok
__________________
mFg K. R. Eyden |
|
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|