Fehlermeldung nach Login

Hilfe zu Modulen und Tags
Post Reply
skyrich
New Member
New Member
Posts: 5
Joined: Sun May 16, 2010 9:55 am

Fehlermeldung nach Login

Post by skyrich »

hallo zusammen,

ich nutze FEU 1.12 und CustomContent 1.7.3 mit CMSms 1.8.1

nachdem ich mich eingeloggt habe, erscheint die Meldung:

Warning: Invalid argument supplied for foreach() in .../modules/FrontEndUsers/FrontEndUsers.module.php on line 360

die seite funktioniert ganz normal. woran kann das liegen? wie kann ich den fehler beseitigen?


danke und gruß, steffen
Last edited by Anonymous on Sun Aug 15, 2010 6:31 pm, edited 1 time in total.
NaN

Re: Fehlermeldung nach Login

Post by NaN »

skyrich wrote:
die seite funktioniert ganz normal. woran kann das liegen?
Warum die Seite ganz normal funktioniert?
Weil es kein schlimmer Fehler, sondern "nur" eine Warnung ist.
skyrich wrote:
wie kann ich den fehler beseitigen?
Das kommt ganz darauf an, was die Ursache dieses Fehlers ist.
Klappt denn der Login?
Last edited by NaN on Sun Aug 15, 2010 6:35 pm, edited 1 time in total.
skyrich
New Member
New Member
Posts: 5
Joined: Sun May 16, 2010 9:55 am

Re: Fehlermeldung nach Login

Post by skyrich »

hi,

ja, der login funktioniert. die warnung erscheint auch erst, nachdem ich eingeloggt bin.

wie kann ich die warnung unterdrücken?
NaN

Re: Fehlermeldung nach Login

Post by NaN »

Weil Du neu hier bist...

Unterdrücken kannst Du sie mit diesen Einträgen in Deiner .htaccess Datei:

php_flag display_startup_errors 0
php_flag display_errors 0
php_flag html_errors 0
php_value docref_root 0
php_value docref_ext 0

(wurde hier wirklich schon oft erwähnt ;) )

Hat der User mit dem Du Dich einloggst irgendwelche Eigenschaften ausgefüllt?
Sorry, wenn ich so viele Fragen stelle, aber dieser Fehler sollte eigentlich garnicht angezeigt werden, wenn das Modul FrontEndUsers fehlerfrei funktioniert.
Der einzige "Fehler" im Modul ist, dass an dieser Stelle einfach versucht wird mit foreach() ein array zu durchlaufen, (mal wieder) ohne zu prüfen, ob die betreffende Variable überhaupt ein array ist. (die Funktion, die für diese Variable zuständig ist, kann nämlich auch einfach nur false zurückliefern) Aber wenn alles geklappt hat, dann kann diese Variable eigentlich nichts anderes sein als ein array.
Daher meine Fragen.
Einfach nur um festzustellen, ob da nicht irgendwo doch noch ein Fehler im Modul ist, den ich vom bloßen Blick in den Quellcode gerade nicht finden kann.
skyrich
New Member
New Member
Posts: 5
Joined: Sun May 16, 2010 9:55 am

Re: Fehlermeldung nach Login

Post by skyrich »

Hallo NaN,

vielen Dank für Dein Verständnis!

Nach der Installation von FEU habe ich 2 Eigenschaften hinzugefügt, davon 1 zunächst geändert und danach gelöscht. Vielleicht kommt deswegen die Warnung. Wenn dem so ist, könnte ich entweder FEU deinstallieren und danach wieder installieren, oder den Weg über die .htaccess gehen. Ist das so richtig?

Eine Deinstallation wäre nicht so dramatisch, da die Seite derzeit noch als Test läuft.

Nochmals vielen Dank für Deine Unterstützung. Die Suche habe ich zwar genutzt, vermutlich aber nicht mit den richtigen Suchbegriffen und auch nicht intensiv genug.


Gruß Steffen
LightFighter

Re: Fehlermeldung nach Login

Post by LightFighter »

Hallo, zusammen!
Mein Anliegen liegt ziemlich nahe diesem Thema, darum wollte ich kein neues anfangen.
In Abmeldungs-Template gibt es eine Begrüßung

Code: Select all

{$prompt_loggedin}{$username}
Der Benutzername ist seine Emailadresse. Ich finde das sieht etwas komisch aus:
Willkommen blabla@bla.de!
Ich wollte also anstatt {$username} die Benutzereigenschaften wie {$anrede} {$nachname} einbauen. Und das will nicht funktionieren!  :-\
Ich habe in /FrontEndUsers/lib/class.feu_smarty.php spezielle Funktionen dafür definiert. Z.B.:

Code: Select all

  function get_user_anrede($uid,$assign)
  {
    if( empty($uid) ) return;
    if( empty($assign) ) return;
    if( !is_object($this->_module) ) return;
    $res = $this->_module->GetUserProperties($uid);
    foreach($res as $one)
      {
	  if ($one['title'] == 'anrede')
		$res2 = $one['data'];
      }
    global $gCms;
    $smarty =& $gCms->GetSmarty();
    $smarty->assign($assign,$res2);
  }
Dann wird es  wie folgt im Template aufgerufen:

Code: Select all

{$feu_smarty->get_user_anrede($userid,'anrede')}{$anrede|print_r}
Leider gibt es dann eine Fehlermeldung:
Warning: Invalid argument supplied for foreach() in /home/www/shop/modules/FrontEndUsers/lib/class.feu_smarty.php on line 205
Wenn ich $res in ein Array mittels settype umwandle, verschwindet zwar die Fehlermeldung, löst sich das Problem aber immer noch nicht.
Ergebnis sieht dann so aus:
Willkommen, 1!
Als ob hier ein boolscher Wert übermittelt wird...
Ich begreife nicht warum das nicht geht.
Ich nutze jetzt CMS 1.8.2 und FrontEndUsers 1.12.2
In meinem vorherigen Projekt habe ich das gleiche gemacht und es hat funktioniert. Da hatte ich CMS 1.5.3 und FrontEndUsers 1.6.5
Last edited by LightFighter on Fri Oct 15, 2010 6:00 am, edited 1 time in total.
LightFighter

Re: Fehlermeldung nach Login

Post by LightFighter »

Das ist eindeutig ein boolscher Wert! Ich hab gerade Folgendes ausprobiert:
In meiner Funktion kommentierte ich die foreach-schleife aus und fügte dies hinzu:

Code: Select all

$res2 = gettype($res);
Ausgabe:
Willkommen, boolean1!
Warum gibt $this->_module->GetUserProperties($uid) einen boolean zurück?`
Die Funktion GetUserProperties soll doch nach ihrer Definition einen Array zurückgeben!...
Oder sehe ich das Falsch?
LightFighter

Re: Fehlermeldung nach Login

Post by LightFighter »

Problem Gelöst!  :D
Bei Erstellung der Benutzereigenschaften setzte ich mal ein "ja" bei "Store this data encrypted in the database". Nur so, zum Ausprobieren, wollte sehen was passiert... Das war auch ein Checkbox... Na ja. Jetzt hab ich gesehen was passiert. Sobald ich die Werte für Unique und Encrypt in DB wieder auf 0 setzte, wurde in der Ausgabe aus einem boolean plötzlich ein array!

Jetzt läuft alles ganz normal. Und übrigens. Die Variablen aus Benutzereigenschaften kann man auch so ansprechen, ohne spezielle Funktionen und {$feu_smarty->...}. Die sind alle in gCms dabei.

Und noch was. Bei Benutzung von print_r wird eine komische 1 am Ende drangehängt. In meinem Fall: "Willkommen, Herr Weiland1!" Ich nehme statdessen sprintf und die 1 verschwindet.
Post Reply

Return to “Module und Tags”