Login funktioniert einfach nicht...

Wie verwendet man Module oder Aktion und passt diese an.

Login funktioniert einfach nicht...

Beitragvon oswaldine » 27. Mai 2008, 10:03

Hallo,

Ich habe folgendes Modul
http://www.redaxo.de/165-Moduldetails.h ... ule_id=351 (Portierung des existierenden Login-Moduls von chris-b auf REX 4.0)
zusammen mit dem "Authentifizierung - mehrere Benutzerbereiche, Version für REX 4.0+" und dem "Addon simple user 0.9" installiert.

Im User Management konnte ich zuerst keinen neuen Benutzer anlegen und mich auch nicht einloggen. Mittlerweile kann ich einen neuen Benutzer anlegen: durch das Ersetzen der "simple_user/pages/user.inc.php" beschrieben in diesem Thread: http://forum.redaxo.de/ftopic8497.html?&highlight=login

Allerdings kann ich mich immer noch nicht einloggen. Nach Absenden des Loginformulars komme ich immer nur auf die Startseite und bin NICHT eingeloggt.

Funktioniert dieses Modul bei jemandem mit Rex Version 4.1 rc1 ?
Oder weiss jemand was ich noch versuchen könnte? Weiss einfach nicht mehr weiter...
oswaldine
 
Beiträge: 86
Registriert: 16. Dez 2007, 15:45

Beitragvon Peter.Bickel » 27. Mai 2008, 10:20

Warte am besten einfach noch ne Woche, dann soll das Rex Community-Addon fertig sein. Damit ist alles leichter.

Grüße,
Peter.
Benutzeravatar
Peter.Bickel
 
Beiträge: 1642
Registriert: 25. Jan 2005, 20:17
Wohnort: Schleswig-Holstein

Ja, aber...

Beitragvon oswaldine » 27. Mai 2008, 10:30

Das habe ich mir auch schon gedacht und die Version Beta auch schon installiert.

Musste aber sofort wieder aufgeben, da ich keine Ahnung habe, wie ich das Community Addon im Zusammenhang mit der Navi "<ul>-Navigation für mehrere Benutzerbereiche inc. Breadcrumb" und der dazugehörigen "Authentifizierung" zum laufen bringen kann.

Ich brauche nämlich bestimmte Menupunkte, die dem jeweils eingeloggten Benutzer zur Verfügung stehen sollen.

Geht das mit dem Community Addon ?
oswaldine
 
Beiträge: 86
Registriert: 16. Dez 2007, 15:45

Re: Ja, aber...

Beitragvon Markus.Staab » 27. Mai 2008, 10:32

Hi,

oswaldine hat geschrieben:Ich brauche nämlich bestimmte Menupunkte, die dem jeweils eingeloggten Benutzer zur Verfügung stehen sollen.

Geht das mit dem Community Addon ?


Das ist doch bereits im Addon enthalten.
Wennd du dich auf community.redaxo.de einloggst, bekommst du ja auch neue menupunkte..

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon raybeam » 27. Mai 2008, 11:25

Hallo Oswaldine,

wenn das Community-Addon fertig ist, will ich auch meine Templates daran anpassen, darunter auch die <ul>-Navigation oder zumindest die YAML-Templates - die natürlich auch ohne das YAML-Framework einsetzbar sind.

Da das Community-Addon aber z. Z. als Beta-Version noch nicht wirklich stabil läuft, warte ich bis zum Erscheinen der entgültigen Version.

Gruß

Peter
Benutzeravatar
raybeam
 
Beiträge: 445
Registriert: 5. Feb 2006, 20:30

Danke

Beitragvon oswaldine » 27. Mai 2008, 13:28

Hallo Markus,

Habe mir das Addon nochmal angeschaut, blicke aber immer noch nicht so richtig durch...
Dann warte ich lieber noch bis das Addon fertig ist ;)
Es soll ja dann auch eine Demo geben, oder ?

Hallo raybeam,

Super, habe die Navi nämlich gerade so schön als Dropdown umfunktioniert!

Viele Grüsse
Oswaldine
oswaldine
 
Beiträge: 86
Registriert: 16. Dez 2007, 15:45

Beitragvon Markus.Staab » 27. Mai 2008, 14:46

Hi oswaldine,

fuer das addon gibt es bereits jetzt eine demo.. die eigentliche webseite von community.redaxo.de wird ja mit dem download ausgeliefert und diese besitzt ja eben schon login, forum, ...

Gruß,
Markus
Benutzeravatar
Markus.Staab
Entwickler
 
Beiträge: 9781
Registriert: 29. Jan 2005, 14:50
Wohnort: Aschaffenburg/Germany

Beitragvon oswaldine » 27. Mai 2008, 18:11

Oh je....

Hatte die neueste Version heruntergeladen; die Demo ist aber nur in der alten 0.9 Version dabei...

Jetzt wird das ganze etwas klarer ;)
oswaldine
 
Beiträge: 86
Registriert: 16. Dez 2007, 15:45

Beitragvon hundertmorgen » 27. Jun 2008, 18:19

Hallo oswaldine,

ich hatte mit der angepassten simple user Version auch zunächst meine Probleme. Hab das ganze aber nun lösen können:

Im User Management konnte ich zuerst keinen neuen Benutzer anlegen und mich auch nicht einloggen. Mittlerweile kann ich einen neuen Benutzer anlegen: durch das Ersetzen der "simple_user/pages/user.inc.php" beschrieben in diesem Thread: http://forum.redaxo.de/ftopic8497.html?&highlight=login


In dem neuen Formular fehlen Felder, die aus der DB noch ausgelesen und entsprechend gesetzt werden müssen, und zwar:
user_typ, user_status, login_activation

Zeile 13:
Code: Alles auswählen
$list = new rex_list('SELECT id, user_login, user_firstname, user_name, user_email, user_typ, user_status, login_activation FROM rex_2_user ORDER BY user_login',10000);


...und natürlich auch im Formular weiter unten entsprechend anlegen.

Allerdings kann ich mich immer noch nicht einloggen. Nach Absenden des Loginformulars komme ich immer nur auf die Startseite und bin NICHT eingeloggt.


Falls Du für die Startseite ein anderes Template benutzt, als in der Login-Seite musst Du auch im Starttemplate das Zusatztemplate mit dem Auth-Code includieren, da sonst die Session verloren geht.

Ich hoffe, das hilft weiter.
Benutzeravatar
hundertmorgen
 
Beiträge: 192
Registriert: 29. Jul 2005, 14:36
Wohnort: Essen / NRW

Beitragvon oswaldine » 1. Jul 2008, 11:19

Hallo hundertmorgen,

Vielen Dank für die Antwort!

Ich hatte Deine Schritte alle schon gemacht.
User anlegen usw funktioniert auch alles prima.

Wenn ich mich aber einlogge wird die Startseite angezeigt anstatt die im Code angegeben Seite.

Ich bin aber anscheinend eingeloggt, denn nun wird aus "Login" "Logout"
Allerdings werden die Menupunkte für eingeloggte User auch nicht angezeigt...
Wenn ich dann auf Logout klicke passiert gar nichts, d.h. ich kann mich nicht mehr ausloggen.

Ich denke daher, dass alles vielleicht am Login-Modul liegen könnte:
Code: Alles auswählen
/*------------------------------------------------------------------------------
* $webmaster    an ihn geht die eMail mit dem Antrag nach einer
*               Login-Berechtigung (Name, Kennwort)
*               default: Webmaster (meist bei ERROR_MAIL eingetragen) :-))
* $absender     Mit dieser Absenderadresse verschickt das System die Mails
*               wenn das Passwort vergessen worden war.
*               default: webmaster
* $nach_login   Diese Seite wird angesprungen wenn das login erfolgreich war
*               Default = Startseite
* $nach_logout  Diese Seite wird angesprungen wenn das logout erfolgreich war
*               Default = Startseite
*/
   $webmaster = 'mailto:'.$REX['ERROR_EMAIL'];
   $absender = $webmaster;
   $nach_login = $REX['63'];
   $nach_logout = $nach_login;

// URL und andere interne variablen setzen: ------------------------------------
   $ich = $this->getValue("article_id");
   $url_ich = rex_getUrl($ich,$REX['CUR_CLANG']);
   $url_nach_login = rex_getUrl($nach_login,$REX['CUR_CLANG']);
   $url_nach_logout = rex_getUrl($nach_logout,$REX['CUR_CLANG']);

   $msg = "";
   if($_SESSION['USER']->message != "") {
      $msg = '<p class="warning">'.$_SESSION['USER']->message."</p>";
   }

// Was ist denn nun zu tun? ----------------------------------------------------
   if ($_GET['FORM']['pwd'] == 1) {
      //Formular f�r "Passwort vergessen" anzeigen
      $func = 1;
   }
   elseif ($_POST['FORM']['pwdsnd'] == 1) {
      // Wenn Feld email gef�llt dann Kennwort senden (2),
      // sonst Formular f�r "PWD vergessen" (1)
      $email = $_POST['email'];
      $func = (empty($email)?1:2);
   }
   elseif (!$_SESSION['USR'] OR $_GET['FORM']['LOGOUT'] == 1) {
      // Login: Name und Kennwort eingeben
      $func = 5;
   }
   else {
      $func = 6;
   }

/* Passwortmail anfordern: -----------------------------------------------------
* Aufbau der Maske zum Eingeben der eMail-Adresse, an die Name/Kennwort
* geschickt werden sollen.
*/
   if ($func == 1) {
      print '
      <p>Mot de passe oublié?</p>
      <p>Veuillez taper votre adresse e-mail. Nous vous enverrons votre login et mot de passe à cette adresse.</p>
      <form action="'. $url_ich .'" method="post">
      <input type="hidden" name="article_id" value="'.$ich.'" />
      <input type="hidden" name="FORM[pwdsnd]" value="1" />
      <input type="hidden" name="clang" value="'.$REX['CUR_CLANG'].'" />
      <label for="email">E-mail</label>
      <input id="email" type="text" name="email" size="50" /><br />
      <input class="submit" type="submit" value="Demande de mot de passe" />
      </form>
      ';
   }

/* Passwortmail senden: --------------------------------------------------------
* $email wurde schon oben gesetzt.
* Aus rex_2_user wird der Datensatz mit dieser mailadresse gesucht. Im Fehlerfall
* geht gibt es eine Meldung und mit "Weiter" kommt man wieder auf die Eingabe.
* Wenn eindeutig(!) gefunden geht eine Mail an diese Adresse.
*/
   elseif ($func == 2) {
      $sql = new sql;
      $sql->setQuery ('SELECT user_login, user_password, user_name, user_firstname FROM '.
                      $REX['TABLE_PREFIX'].'2_user where user_email = "'.$email.'"');

      if ( $sqlerr = $sql->getError() ) {
         print 'Oops - Erreur base de données: <br />'.$sqlerr."<br />\n";
         print '<a href="'.$url_ich.'&FORM[pwd]=1">Suite ...</a>'."\n";
      }
      elseif ($sql->getRows() != 1) {
         print 'Cet adresse e-mail '.$email.' n\'est pas enregistrée dans notre base.<br />'."\n";
         print '<a href="'.$url_ich.'&FORM[pwd]=1">Suite ...</a>'."\n";
      }
      else {

         $header = 'De: '.$absender. "\r\n" .'X-Mailer: PHP/' . phpversion();
         $text = 'Bonjour '.$sql->getValue ('user_firstname', 0).' '.
                 $sql->getValue ('user_name', 0)."\n\n".
                 'Suite à votre demande vous trouverez ci-contre votre login et mot de passe.'."\n\n".
                 '_______________________________________________________'."\n\n".
                 'Login: '.$sql->getValue ('user_login', 0)."\n".
                 'Mot de passe: '.$sql->getValue ('user_password', 0)."\n".
                 '_______________________________________________________'."\n";
         $betreff = 'Demande de mot de passe';

         if (mail($email, $betreff, $text, $header)) {
            echo '<p>Votre login et mot de passe ont été <b>'.$email.'</b> envoyés</p>'."\n";
         }
         else {
            echo '<p>Problème lors de l\'envoi. Merci de réessayer plus tard.</p>'."\n";
         }
         print '<a href="'.$url_ich.'">Suite ...</a>'."\n";
      }
   }

/* Login: ----------------------------------------------------------------------
* Im Prinzip ist das der Programmcode aus der Redaxo-Login-Demo.
*/
   elseif ($func == 5) {

      $FORM[loginname] = "Login";
      print '
 
 
      <p>Mot de passe oublié ?
      <a href="'.$url_ich.'&FORM[pwd]=1">Cliquez ici</a>.</p>
      <form action="index.php" method="post">
      <input type="hidden" name="article_id" value="'.$nach_login.'" />
      <input type="hidden" name="FORM[trytologin]" value="1" />
      <input type="hidden" name="clang" value="'.$REX['CUR_CLANG'].'" />

      '.$msg.'
      <table>
         <tr>
            <td>Login</td>
            <td><input id="login" type="text" name="FORM[loginname]" value="" /></td>
         </tr>
         <tr>
            <td>Mot de passe</td>
            <td><input id="paswd" type="password" name="FORM[loginpasswort]" value="" /></td>
         </tr>
         <tr>
            <td>&nbsp;</td>
            <td><br /><input class="submit" type="submit" value="Envoyer" /></td>
         </tr>
      </table>
      </form>
      ';
   }
// Logout: ---------------------------------------------------------------------
   else {
      print
      $msg.'
      <p style="text-align:left;">Vous êtes: <strong>'.$_SESSION['USER']->getValue("user_login").'</strong></p>
      <p style="text-align:left;"><a href="'. $url_nach_logout .'&FORM[LOGOUT]=1">&laquo; Logout</a></p>
   ';
   }

}

?>



In den Meta-Infos steht:

Code: Alles auswählen
1:Standard|2:UnbekannterUser|98:Testuser|99:Superuser





Login-code im Template:
Code: Alles auswählen
<?php
         
           if (!$_SESSION['USR'] OR $_GET['LOGOUT'] == 1) {
               $navLogin = '<ul><li><a href="'.rex_getUrl(61,$REX['CUR_CLANG']).'"><img src="files/layoutinforiel/login.gif" alt="Login Inforiel" border="0"/></a></li></ul>';
           }
           else {
               $navLogin = '<h1><li><a href="'.rex_getUrl($REX['63'],$REX['CUR_CLANG'],'&FORM[LOGOUT]=1').'">Logout</a></li></h1>';
           }
           print $navLogin;
           ?> 


Vielleicht sieht jemand einen Fehler.....?

Wäre super, denn mit dem Community-Addon komme ich, da es sich um eine existierende Site handelt, ganz schlecht zurecht.
oswaldine
 
Beiträge: 86
Registriert: 16. Dez 2007, 15:45

Beitragvon rudoo » 3. Aug 2008, 23:06

Oswaldine, die Portierung stammt von mir. Bin per Zufall auf Deine Frage gestossen. Problem bereits gelöst? Hast Du auch alle in der Installationsanleitung beschriebenen Schritte durchgeführt, insbesondere den fünften Schritt?

Falls ja: Vielleicht kann ich mich mal bei Dir einloggen, um den Fehler zu suchen.

Gruss,
rudoo
rudoo
 
Beiträge: 17
Registriert: 12. Jan 2008, 14:08
Wohnort: Zürich

Super

Beitragvon oswaldine » 6. Aug 2008, 11:56

Hallo Rudoo,

Das ist ja super, dass Du Dich meldest!

Leider habe ich noch immer keine Lösung gefunden, aber immerhin bin ich jetzt schon so weit, dass ich mich einloggen und wieder ausloggen kann.
Es zeigen sich jedoch nicht die benutzerspezifischen Kategorien in der Navi an....

Wäre wirklich toll, wenn Du mal reinschauen könntest.

Soll ich Dir die Zugangsdaten schicken?

Viele Grüsse
Oswaldine
oswaldine
 
Beiträge: 86
Registriert: 16. Dez 2007, 15:45

Beitragvon rudoo » 8. Aug 2008, 00:51

Oswaldine, das ganze war 'nur' ein Konfigurationsproblem.

Zur Erklärung - Es gibt zwei Orte, wo Du Login- und Logout-article_ids eintragen musst:

1) IM LOGIN-MODUL (Achter Schritt der Installationsanleitung)

Hier werden die Login- und Logout-URLs konfiguriert, die verwendet werden, wenn man im Login-/Logout-Formular (im neunten Schritt als 'Login-Seite' bezeichnet) auf irgendwas klickt.

In Deinem Beispiel: Im Login/Logout-Formular wird Username und Kennwort angegeben und nachher auf Submit gedrückt. Nun soll die Seite mit article_id='30' angezeigt werden, falls korrekt eingeloggt wird. Ich habe deshalb folgende Zeile angepasst:
...
$nach_login = "30";
...

2) IM NAVIGATIONS-CODE FUER DIE SEITENLAYOUT-TEMPLATE(S) ALLER ARTIKEL (Zehnter Schritt der Installationsanleitung)

Hier werden die article_ids angegeben, die angezeigt werden, wenn in der NAVIGATION (also nicht auf dem Login-/Logout-Formular) auf 'Login' bzw. 'Logout' geklickt wird. Demzufolge sollte die Login-article_id hier auf das Login-/Logout-Formular zeigen und nicht auf die Seite, die nach erfolgtem Login angezeigt wird.

In Deinem Beispiel hast Du dies bereits richtig gemacht. Du hast die article_id '60' des Login-/Logout-Formulars eingegeben. Ich musste nichts ändern. Die Zeile lautet:

$navLogin = '<ul class="nav1st"><li><a href="'.rex_getUrl(60,$REX['CUR_CLANG']).'">Login</a></li></ul>';

Die Logout-article_id zeigt hier i.a. auf dieselbe Seite, die auch bei einem Logout aus dem Login-/Logout-Formular angezeigt wird. Man könnte sich aber beispielsweise auch vorstellen, dass bei einem Anklicken der Logout-URL der Navi wiederum das zuerst das Login-/Logout-Formular angezeigt wird.

In Deinem Beispiel hast Du die erste Variante gewählt und dies auch richtig gemacht. Du hast die article_id '62' eingegeben. Ich musste nichts ändern. Die Zeile lautet:

$navLogin = '<ul class="nav1st"><li><a href="'.rex_getUrl(62,$REX['CUR_CLANG'],'&FORM[LOGOUT]=1').'">Logout</a></li></ul>';

Ich hoffe, die Erläuterungen haben etwas zur Verständlichkeit der Konfiguation beigetragen.

Viele Grüsse,
Rudoo
rudoo
 
Beiträge: 17
Registriert: 12. Jan 2008, 14:08
Wohnort: Zürich

Beitragvon rudoo » 20. Aug 2008, 23:47

Oswaldine,

Zu Deinem zweiten Problem mit der benutzerspezifischen Navigation: Das Navgationstemplate (sechster Schritt der Anl.) MUSS im Seiten-Template (bei Dir 'DEFAULT') NACH dem Authentisierungstemplate (fünfter Schritt der Anl.) included werden. Wenn die Reihenfolge umgekehrt ist, dann stehen die Session-Variablen dem Navigationstemplate nicht zur Verfügung. Unter den Session-Variablen befindet sich auch der USR_TYP, ohne diesen kann das Navigationstemplate für benutzerspezifische Navi keine Entscheidungen treffen.

Nun läuft Dein Code hoffentlich einwandfrei. Gruss,
Rudoo
rudoo
 
Beiträge: 17
Registriert: 12. Jan 2008, 14:08
Wohnort: Zürich

Danke!

Beitragvon oswaldine » 21. Aug 2008, 10:12

Rudoo,

Nochmals vielen Dank für Deine Mühe!

Alles läuft einwandfrei.

Bin total begeistert.

Viele Grüsse
oswaldine
oswaldine
 
Beiträge: 86
Registriert: 16. Dez 2007, 15:45

Nächste

Zurück zu Module/Aktionen [R4]

Wer ist online?

Mitglieder in diesem Forum: Google [Bot] und 4 Gäste