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

  • Best Practices for Plain Text Notes
  • gepatchte PHP Version 7.4 für Windows
  • Canvas Palette: Eine fertige Komponentenbibliothek für Drupal Canvas
  • Hilfe zu Updates oder Composer
  • Vergleich Drupal und Contao
  • [geloest] Blocks in Bootstrap nebeneinander darstellen und nicht untereinander
  • DrupalCamp Frankfurt 27-28 November 2026
  • Bitte mein Bentzerkonto löschen
  • Beim Aufruf einiger Inhalte erhalte ich folgende Fehlermeldung
  • Neuinstallation: vermutlich ein rewrite-Problem
  • Drupal CMS installieren
  • [erledigt]MP3 in Drupal 10 einbinden
Weiter

Neue Kommentare

  • Muss ja nicht genau php 8.3 sein
    vor 2 Tagen 21 Stunden
  • Guten morgen und Danke
    vor 3 Tagen 4 Stunden
  • Evtl. versuchen auf PHP 8 zu wechseln
    vor 3 Tagen 10 Stunden
  • Danke Schmittrich. Die Frage
    vor 5 Tagen 1 Stunde
  • Keine Antwort auf die Frage nach dem Woher
    vor 5 Tagen 4 Stunden
  • Danke ich werde mir die
    vor 6 Wochen 2 Tagen
  • Vielen Dank für Ihren
    vor 6 Wochen 5 Tagen
  • Composer ist sehr ratsam
    vor 7 Wochen 14 Stunden
  • Vielen Dank für den
    vor 7 Wochen 3 Tagen
  • Die alten CMS Vergleiche von contentmanager.de
    vor 7 Wochen 3 Tagen

Statistik

Beiträge im Forum: 250324
Registrierte User: 20571

Neue User:

  • alxshell
  • FesObsemo
  • AnthonyhoF

» Alle User anzeigen

User nach Punkten sortiert:
wla9466
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