Startseite
  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche
Startseite › Forum › Drupalcenter.de › Module › Modul-Entwicklung ›

Username bei Registrierung überprüfen

Eingetragen von Klalaus (11)
am 09.01.2010 - 01:02 Uhr in
  • Modul-Entwicklung

Hi,
ich würde gerne bei der Registrierung den Username überprüfen und bei bestimmten Kriterien nicht zulassen. Zunächst wollte ich das ganze über Rules machen aber dann werden auch schon vorhandene Usernamen geblockt.
Ich will z.B. (ist nur ein Beispiel) alle Namen mit einem "a" bei einer Registrierung nicht zulassen, vorhandene Namen mit "a" sollen aber davon nichts merken.
Danke!

‹ Formular: Eingabefelder nebeneinander darstellen? page_content und form ›
  • Anmelden oder Registrieren um Kommentare zu schreiben

Validierung

Eingetragen von stBorchert (6003)
am 09.01.2010 - 10:12 Uhr

Mit Rules kannst Du nur eingreifen, wenn der Account bereits erstellt ist.
Schreibe Dir ein kleines Modul und implementiere dort hook_user.
Dort behandelst Du dann den Fall $op == 'validate'.

Beispiel:

<?php
function mymodule_user($op, &$edit, &$account, $category) {
 
// Validate account data on registering new users.
 
if ($op == 'validate' && $category == 'account' && !isset($account->uid)) {
    if (!
mymodule_validate_username($account->name)) {
     
form_set_error('name', t('Username cannot contain "a".'));
    }
  }
}
?>

hth,

 Stefan

--
Sei nett zu Deinem Themer!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Achsoo =) Mir ist gerade

Eingetragen von Klalaus (11)
am 09.01.2010 - 11:31 Uhr

Achsoo =)
Mir ist gerade eine kleines Licht aufgegangen. Mit den hooks das hatte ich immer nicht verstanden aber das ist ja wirklich nicht so schwer :)
Was ist eigentlich wenn man zwei Module hat die beide das gleiche hooken? Welches bekommt dann denn den Vorrang?
Vielen Dank schonmal! :)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Weight

Eingetragen von stBorchert (6003)
am 09.01.2010 - 12:52 Uhr
Klalaus schrieb

Was ist eigentlich wenn man zwei Module hat die beide das gleiche hooken? Welches bekommt dann denn den Vorrang?

Ausgeführt werden alle Module, die einen hook implementieren.
Entscheidend sein kann jedoch die Reihenfolge (z.B. wenn man in einem Modul Felder erwartet, die von einem anderen Modul hinzugefügt werden).
Es wird nach folgender Sortierung gearbeitet:
- Wert der Spalte weight in der Tabelle {system} für das entsprechende Element (Element mit niedrigstem Wert kommt zuerst)
- bei gleichem weight -> alphabetisch

hth,

 Stefan

--
Sei nett zu Deinem Themer!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ah super, ich dank dir =)

Eingetragen von Klalaus (11)
am 09.01.2010 - 15:47 Uhr

Ah super, ich dank dir =)

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sorry ich muss doch nochmal

Eingetragen von Klalaus (11)
am 09.01.2010 - 16:38 Uhr

Sorry ich muss doch nochmal was nachfragen...
Irgendwie ist $account->name immer leer und kann deshalb auch nicht überprüft werden. Ich hab mal ein "echo $account->name;" (ohne "") vor der Abfrage eingebaut und es wird nichts angezeigt. Bei "echo 'irgendwas'" aber schon...

  • Anmelden oder Registrieren um Kommentare zu schreiben

debug

Eingetragen von stBorchert (6003)
am 09.01.2010 - 17:13 Uhr

<?php
drupal_set_message
('<pre>' . var_export($account, 1) . '</pre>');
?>

hth,

 Stefan

--
Sei nett zu Deinem Themer!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Ah das ist nützlich, danke

Eingetragen von Klalaus (11)
am 09.01.2010 - 17:30 Uhr

Ah das ist nützlich, danke =)
Ich habs jetzt hingekriegt mit $account["name"] anstelle von $account->name obwohl mir eigentlich das zweite auch geläufiger ist aber naja solange es klappt ;)
Dank dir nochmal!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Objekt vs. Array

Eingetragen von stBorchert (6003)
am 09.01.2010 - 17:56 Uhr

Ah hm. Ich war davon ausgegangen, dass $account ein Objekt (eine Klasse) wäre.
Es ist jedoch ein Array.

Hm, in der Doku steht auch "The user object". Merkwürdig. Gleich mal nachprüfen ...

--edit--
Ok, hier mal zur Klärung für zukünftige Generationen:
Direkt nach dem Anlegen eines Benutzers (registrieren) ist $account ein Array (und kann dementsprechend mittels $account['name'] angesprochen werden). Ansonsten ist es ein Objekt (und reagiert auf $account->name).

 Stefan

--
Sei nett zu Deinem Themer!

  • Anmelden oder Registrieren um Kommentare zu schreiben

Sehr seltsam! oO?

Eingetragen von Klalaus (11)
am 09.01.2010 - 18:55 Uhr

Sehr seltsam! oO?

  • Anmelden oder Registrieren um Kommentare zu schreiben

Benutzeranmeldung

  • Registrieren
  • Neues Passwort anfordern

Aktive Forenthemen

  • für drupal11 ein Slider Modul
  • [gelöst] W3CSS Paragraphs Views
  • Drupal 11 neu aufsetzen und Bereiche aus 10 importieren
  • Wie erlaubt man neuen Benutzern auf die Resetseite zugreifen zu dürfen.
  • [gelöst] Anzeigeformat Text mit Bild in einem Artikel, Drupal 11
  • Social Media Buttons um Insteragram erweitern
  • Nach Installation der neuesten D10-Version kein Zugriff auf Website
  • Composer nach Umzug
  • [gelöst] Taxonomie Begriffe zeigt nicht alle Nodes an
  • Drupal 11 + Experience Builder (Canvas) + Layout Builder
  • Welche KI verwendet ihr?
  • Update Manger läst sich nicht Installieren
Weiter

Neue Kommentare

  • melde mich mal wieder, da ich
    vor 1 Woche 5 Tagen
  • Hey danke
    vor 1 Woche 5 Tagen
  • Update: jetzt gibt's ein
    vor 1 Woche 6 Tagen
  • Hallo, im Prinzip habe ich
    vor 2 Wochen 3 Tagen
  • Da scheint die Terminologie
    vor 2 Wochen 4 Tagen
  • Kannst doch auch alles direkt
    vor 3 Wochen 1 Tag
  • In der entsprechenden View
    vor 3 Wochen 1 Tag
  • Dazu müsstest Du vermutlich
    vor 3 Wochen 1 Tag
  • gelöst
    vor 5 Wochen 4 Tagen
  • Ja natürlich. Dass ist etwas,
    vor 5 Wochen 5 Tagen

Statistik

Beiträge im Forum: 250233
Registrierte User: 20452

Neue User:

  • ByteScrapers
  • Mroppoofpaync
  • 4aficiona2

» Alle User anzeigen

User nach Punkten sortiert:
wla9461
stBorchert6003
quiptime4972
Tobias Bähr4019
bv3924
ronald3857
md3717
Thoor3678
Alexander Langer3416
Exterior2903
» User nach Punkten
Zur Zeit sind 0 User und 6 Gäste online.

Hauptmenü

  • » Home
  • » Handbuch & FAQ
  • » Forum
  • » Übersetzungsserver
  • » Suche

Quicklinks I

  • Infos
  • Drupal Showcase
  • Installation
  • Update
  • Forum
  • Team
  • Verhaltensregeln

Quicklinks II

  • Drupal Jobs
  • FAQ
  • Drupal-Kochbuch
  • Best Practice - Drupal Sites - Guidelines
  • Drupal How To's

Quicklinks III

  • Tipps & Tricks
  • Drupal Theme System
  • Theme Handbuch
  • Leitfaden zur Entwicklung von Modulen

RSS & Twitter

  • Drupal Planet deutsch
  • RSS Feed News
  • RSS Feed Planet
  • Twitter Drupalcenter
Drupalcenter Team | Impressum & Datenschutz | Kontakt
Angetrieben von Drupal | Drupal is a registered trademark of Dries Buytaert.
Drupal Initiative - Drupal Association