Welcome, Guest. Please login or register.
Did you miss your activation email?
May 25, 2012, 01:20:11 AM

Login with username, password and session length
Search:     Advanced search
Wollen Sie dem WebsiteBaker Team beitreten?
Nähere Informationen finden Sie unter hier und auf unserer neuen Webseite.
155476 Posts in 21708 Topics by 7734 Members
Latest Member: rofroodoOvego
* Home Help Search Login Register
Pages: [1]   Go Down
Print
Author Topic: LOGIN_URL/LOGOUT_URL in Code-Sektion?  (Read 671 times)
Katerchen

Offline Offline

Posts: 84


« on: December 25, 2008, 08:36:54 PM »

Hallo!

Ich versuche gerade, einen einfachen Login-/Logout-Mechanismus zu implementieren. Dabei soll im Frontend kein Login-Link auftauchen, stattdessen möchte ich eine versteckte Code-Seite erstellen, die eine Seite mit den Feldern für Benutzername und Paßwort enthält. (Um sich anzumelden, muß der Benutzer also die URL wissen, was ausdrücklich gewünscht ist.)

Wie kann ich in einer Code-Sektion auf die Variable LOGIN_URL zugreifen? (Klar, ich könnte auch direkt auf WB_URL/account/login.php zugreifen, aber geht das auch mit LOGIN_URL?) Ich kriege immer Fehlermeldungen, die Variable sei nicht definiert, offenbar muß ich irgendetwas includen, aber was? Ich habe schon mit

Code:
require_once(WB_PATH.'/framework/class.frontend.php');

herumgespielt, bin damit aber auch nicht weitergekommen...

Danke.
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #1 on: December 25, 2008, 08:58:45 PM »

Hi,

wenn du mal einen Blick in die /account/login.php wirfst ifndest du u.a.:
Code:
require_once(WB_PATH.'/framework/class.login.php');
sowie das ganze restliche Geraffel, daß du benötigst.

Grüßle Bernd
« Last Edit: December 25, 2008, 09:00:17 PM by BerndJM » Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Katerchen

Offline Offline

Posts: 84


« Reply #2 on: December 25, 2008, 09:47:49 PM »

So sieht derzeit meine rudimentäre Login-Seite aus,
Code:
require_once(WB_PATH.'/framework/class.login.php');
echo '<form name="login" action="' . WB_URL . '/account/login.php" method="post">';
echo "<br />\n";
echo '<input type="text" name="username" />';
echo "<br />\n";
echo '<input type="text" name="password" />';
echo "<br />\n";
echo '<input type="submit" name="submit" value="Login"/>';
echo "<br />\n";
echo '</form>';

Das WB_URL . '/account/login.php' hätte ich gerne durch was Allgemeineres ersetzt, ähnlich dem LOGIN_URL in manchen Templates. Oder ist das generell sinnlos, weil die Seite eben immer /account/login.php heißt und ich mit WB_URL den variablen Teil schon erschlagen habe?


Doch irgendwie stehe ich gerade völlig auf dem Schlauch, was die Anmelderei angeht. Denn auch was anderes funktioniert nicht:

Ich möchte folgendes erreichen:

* Einige Benutzer sollen sich über eine spezielle Seite anmelden können. Diese soll nirgendwo als Link auftauchen, die URL muß diesen Benutzern bekannt sein.

*Angemeldete Benutzer bekommen einen zusätzlichen Menüpunkt "Admin" mit ein paar Untermenüpunkten. Einer davon soll "Logout" heißen und den Benutzer abmelden.

Ich habe also folgende Seiten erstellt:

Admin (Sichtbarkeit: "Registriert", Typ "WYSIWYG", enthält nur Erläuterungen zu den Unterpunkten)
  Admin1 (Sichtbarkeit: "Registriert", Typ "Code")
  Admin2 (Sichtbarkeit: "Registriert", Typ "Code")
  Login (Sichtbarkeit: "Versteckt", Typ "Code", hier soll das Anmeldeformular hin)
  Logout (Sichtbarkeit: "Registriert", Typ "Link", zeigt auf /wb/account/logout.php)

Wenn ich in den globalen Optionen "Anmeldung" auf "Eingeschaltet" stelle, funktioniert der Login, allerdings ist der Menüpunkt "Admin" in diesem Fall auch dann sichtbar, wenn der Benutzer nicht angemeldet ist. Ein Klick auf "Admin" zeigt dann eine Login-Seite an. Das sollte nicht sein!

Wenn ich in den globalen Optionen "Anmeldung" auf "Ausgeschaltet" stelle, funktioniert der Login nur noch über das Backend, dann ist der Menüpunkt "Admin" im Frontend allerdings auch nur sichtbar, wenn der Benutzer angemeldet ist (so, wie ich es haben möchte).

Gibt es hierfür eine Lösung?
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #3 on: December 25, 2008, 10:27:07 PM »

Hi,
zum ersten Teil:
die LOGIN_URL wird ja in der login.php definiert:
Code:
"LOGIN_URL" => WB_URL."/account/login.php?redirect=" .$redirect
Denke es macht nicht viel Sinn sie vorher, also extra für dein Form schon mal zu definieren.
Aber warum machst du dir das Leben so schwer? Warum includest du auf deiner Codeseite nicht einfach die login_form.php?

Zum zweiten Teil:
wenn ich dich richtig verstehe, dann wäre wohl Sichtbarkeit "Privat" für die Adminseiten die Lösung.
Dann tauchen die Punkte erst im Menü auf nachdem sich der User über die versteckte Login-Seite eingelogt hat.

Grüßle Bernd
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Katerchen

Offline Offline

Posts: 84


« Reply #4 on: December 26, 2008, 09:27:40 AM »

Aber warum machst du dir das Leben so schwer? Warum includest du auf deiner Codeseite nicht einfach die login_form.php?

Funktioniert leider nicht. Wenn ich in eine leere Code-Seite ein

Code:
require_once(WB_PATH.'/account/login_form.php');
eintrage, wird das Formular angezeigt, sobald ich jedoch versuche, mich anzumelden, bekomme ich eine Fehlermeldung:

Warning: Header may not contain more than a single header, new line detected. in /<Pfad>/wb/framework/class.login.php on line 146

Evtl. ist es nicht vorgesehen, diese Datei von einer anderen Datei aus aufzurufen?

Mein genannter Code funktioniert immerhin, ich kann sogar in die "action" des Formulars per '/account/login.php?redirect=' . WB_URL . PAGES_DIRECTORY . '/admin.php' direkt nach dem Anmelden auf eine Seite umleiten. Ich dachte nur, die schon definierte Variable LOGIN_URL irgendwie verwenden zu können, anstatt sie über /account/login.php fest codieren zu müssen. Aber so wichtig ist das nicht, es funktioniert ja.

Quote
Zum zweiten Teil:
wenn ich dich richtig verstehe, dann wäre wohl Sichtbarkeit "Privat" für die Adminseiten die Lösung.
Dann tauchen die Punkte erst im Menü auf nachdem sich der User über die versteckte Login-Seite eingelogt hat.

Damit funktioniert es genau so, wie es sein soll. Manchmal sieht man den Wald vor lauten Tomaten auf den Augen nicht smiley Danke für den Hinweis.
Logged
BerndJM

Offline Offline

Posts: 1764



« Reply #5 on: December 26, 2008, 01:38:31 PM »

Quote
sobald ich jedoch versuche, mich anzumelden, bekomme ich eine Fehlermeldung:
**uuups**
das hat man davon, wenn man seine Gedanken laut rausplappert ohne es auszuprobieren rolleyes

Grüßle Bernd
Logged

In theory, there is no difference between theory and practice. But, in practice, there is.
Pages: [1]   Go Up
Print
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!