Author Topic: PHP vars über messages,labels.inc ausgeben  (Read 6135 times)

Offline lacri

  • Full Member
  • ***
  • Posts: 179
    • http://www.php-lexikon.de
PHP vars über messages,labels.inc ausgeben
« on: January 26, 2009, 08:23:30 AM »
Hallo,

ich habe mal wieder eine kleine Frage, wie kann ich die messages.inc bzw labels.inc so dynamisch gestallten das ich in diesen variablen benutzen kann.

also original gibt es ja die var in der messages.inc
$messages['importconfirm'] = '<b>Es wurden $inserted Adressen erfolgreich importiert und $skipped bestehende Einträge übersprungen</b>:<p><em>$names</em></p>';
die var $skipped und die var $names wird ja dynamisch gefüllt.

nun möchte ich eine eigene var erstellen in der einige Werte dynamisch übermittelt werden
$messages['errorloginforbidden'] = 'Login 5 mal fehlerhaft. Der Account ist für 10 Minuten gesperrt.';

die Angabe der Zeit "10 Minuten gesperrt" möchte ich dynamisch geändert haben und die restliche Zeit anzeigen nur ich finde einfach keinen Weg meine var so zu registrieren das sie von der messages.inc ausgegeben wird.

So das ich dann hätte
$messages['errorloginforbidden'] = 'Login 5 mal fehlerhaft. Der Account ist noch für $minuten Minuten gesperrt.';

Danke schon mal im voraus !!!!
« Last Edit: January 26, 2009, 08:26:42 AM by lacri »

Offline lacri

  • Full Member
  • ***
  • Posts: 179
    • http://www.php-lexikon.de
PHP vars über messages,labels.inc ausgeben
« Reply #1 on: January 28, 2009, 04:19:34 AM »
Hallo,

kann mir hierbei niemand helfen und evtl. einen Tipp geben ?

Offline rosali

  • Hero Member
  • *****
  • Posts: 2,533
PHP vars über messages,labels.inc ausgeben
« Reply #2 on: January 29, 2009, 01:07:03 AM »
z.B.

$labels['checkaccount'] = 'Überprüfen Sie Iher Konto $vars um die Identität zu bestätigen';

$confirm = rcube_label(array('name' => 'checkaccount', 'vars' => array('vars'=>$_POST['_email'])));

oder wenn Du die RoundCube Message Box verwenden willst:

/* $OUTPUT object must be available */
$OUTPUT->show_message('checkaccount','notice',array('vars'=>$_POST['_email'])); //types: notice, warning, confirmation, error
$OUTPUT->send(); // notice this will exit the script !!!

WICHTIG: Das Label muss in einfachen Anführungszeichen stehen. Gänsefüßchen (") führen dazu, dass $vars mit NULL ersetzt wird. Das hat mir einige Kopfschmerzen bereitet, bis ich das gecheckt habe!
« Last Edit: January 29, 2009, 02:32:52 AM by rosali »
Regards,
Rosali
__________________
MyRoundcube Project (commercial)

Offline lacri

  • Full Member
  • ***
  • Posts: 179
    • http://www.php-lexikon.de
PHP vars über messages,labels.inc ausgeben
« Reply #3 on: January 29, 2009, 03:11:46 AM »
Danke Rosali,

das war der richtige anstoss :)

etwas einfacher geht es jedoch noch.

Meine var aus der messages.inc

$messages
['errorloginforbidden'] = 'Login 5 mal fehlerhaft. Der Account ist noch für $minuten Minuten gesperrt.';


und die Ausgabe

$resttime 
round(($_SESSION['timer']['time'] + $RCMAIL->config->get('logins_timer') - time()) / 60,0);
$OUTPUT->show_message('errorloginforbidden''warning', array('minuten' => $resttime));


also kurz gesagt mann übergibt der show_message funktion nach dem typ einen weiteren parameter in form eines arrays mit den varnamen und dem value welches in der message.inc gefüllt werden soll :)

gefällt mir !!!

Offline rosali

  • Hero Member
  • *****
  • Posts: 2,533
PHP vars über messages,labels.inc ausgeben
« Reply #4 on: January 29, 2009, 04:26:24 AM »
Was ist einfacher? Ich sehe keinen Unterschied zu meinem Post:

Quote

oder wenn Du die RoundCube Message Box verwenden willst:

/* $OUTPUT object must be available */
$OUTPUT->show_message('checkaccount','notice',array('vars' =>$_POST['_email'])); //types: notice, warning, confirmation, error
$OUTPUT->send(); // notice this will exit the script !!!

« Last Edit: January 29, 2009, 05:57:33 AM by rosali »
Regards,
Rosali
__________________
MyRoundcube Project (commercial)

Offline lacri

  • Full Member
  • ***
  • Posts: 179
    • http://www.php-lexikon.de
PHP vars über messages,labels.inc ausgeben
« Reply #5 on: January 29, 2009, 06:04:15 AM »
lächel hatte ich erst später gesehen ist ja das selbe :)

hattest Deinen Beitrag ja noch editiert ;)

Dennoch vielen Dank funktioniert prima.

Offline rosali

  • Hero Member
  • *****
  • Posts: 2,533
PHP vars über messages,labels.inc ausgeben
« Reply #6 on: January 29, 2009, 06:16:08 AM »
Offensichtlich bastelst Du an einer Art Access Control. Würde mich interessieren, wenn es fertig ist. Vielleicht kann ich daraus ein Plugin für MyRoundCube (http:/roundcubeforum.net/myroundcube) stricken - ich  muss ja nicht alles selber machen!

Sicher bedenkst Du das, aber ich will die Tipps trotzdem los werden:

Schreibe die ungültigen Login Versuche nicht in die SESSION sondern in eine Datenbank Tabelle (ID kann die IP sein, Proxies müssten berücksichtigt werden). Access Control über die SESSION ist leicht über CURL oder Socket Requests zu umgehen.

Außerdem wäre noch ein zweites Feature schön: So eine Art "Max requests per minute" um das Hämmern per Script auf die Seite zu verhindern!
Regards,
Rosali
__________________
MyRoundcube Project (commercial)

Offline lacri

  • Full Member
  • ***
  • Posts: 179
    • http://www.php-lexikon.de
PHP vars über messages,labels.inc ausgeben
« Reply #7 on: January 29, 2009, 06:40:30 AM »
Jep so ist ist wie ich meine ein nicht zu unterbewertendes Sicherheitsmerkmal um zb brutforce zu unterbinden.

Im ersten Schritt um die Funktionalität zu testen löse ich es noch via session im zweiten schritt werde ich dies hier zur Verfügung stellen wenn ich es auf IP ebene und über die DB gelöst habe die Idee mit den max requests per minute gefällt mir auch sehr gut werde ich mit implementieren. Thx für den Hinweis.

Kann noch etwas dauern da ich mit roundcube noch nicht so Vertraut bin, kenne es nunmehr erst seid ca 2-3 Wochen bin aber schwer begeistert und wurschtel mich da langsam hinein.

Baue parallel noch an einem Amavisd Plugin um Spam zu behandeln bzw Regeln für den amavisd vom user erstellen zu lassen.

Fertig habe ich bisher mein retrieve/chance userdata from ldap und chance ldap PW plugin werde ich wenn ich es noch bisserl angepasst und optimiert habe hier auch zur Verfügung stellen. Ist halt alles recht speziell auf meinen Fall zugeschnitten von daher muss ich es noch etwas optimieren so das es für die breitere Masse auch nutzbar und configurierbar ist. Zwecks standard email änderbar ja/nein max aliase konfigurierbar usw

An dieser Stelle ein dickes Danke für Deine Hilfe !!!

Offline Granada

  • Jr. Member
  • **
  • Posts: 35
PHP vars über messages,labels.inc ausgeben
« Reply #8 on: February 12, 2010, 02:54:16 AM »
Quote from: lacri;16767

Fertig habe ich bisher mein retrieve/chance userdata from ldap


Wahh! Ist das ein "retrieveuserdata" von Squirrelmail? Wir müssen auch unsere Userdaten (common name, Emailadresse) aus dem ldap holen und ich bastele schon ein paar Wochen an einem Plugin, das das tut. Wie vollständig ist Deine Arbeit? Nicht daß wir das Rad zweimal erfinden.

Grüße
Rüdiger