DSGVO-Grenzen des Auskunftsrechts

Nicht übertreiben

Grenzen des Auskunftsrechts nach der DSGVO

Im Grunde steht jedermann das Recht auf Auskunft zu den über seine Person gespeicherten Daten zu. Dieses Recht kann aber auch entfallen, wenn es missbräuchlich genutzt wird. Wann das der Fall sein kann, beantworten mehrere Gerichtsurteile – ein höchstrichterliches steht noch aus.

Von Harald Büring

Für uns alle ist es sehr wichtig, erfahren zu können, welche personenbezogenen Daten Unternehmen über uns gespeichert haben. Die Datenschutzgrundverordnung (DSGVO) räumt deshalb weitgehende Auskunftsrechte ein, die unter anderem auch für Mitarbeiter gegenüber ihrem Arbeitgeber gelten (Art. 15 Abs. 1). Außerdem steht Betroffenen nach der DSGVO ein Recht auf Berichtigung oder auch Löschung ihrer Daten gegenüber dem jeweiligen Unternehmen zu.

Nur so können sie ihr Recht auf informationelle Selbstbestimmung als Teil ihres allgemeinen Persönlichkeitsrechts wahren, das vom Bundesverfassungsgericht Mitte der 80er-Jahre in den beiden berühmten Volkszählungsurteilen aus den Artikeln 1 Abs. 1 und 2 Abs. 1 der Verfassung hergeleitet wurde.

Allerdings geht es längst nicht jeder Person um den Schutz ihrer persönlichen Daten. Oft werden mit dem Auskunftsanspruch andere Interessen verfolgt. Dem einen geht es etwa darum, eventuelle Ansprüche auf Schadensersatz oder Schmerzensgeld durchzusetzen. Ein anderer bezweckt, den Auskunftspflichtigen zu schädigen, etwa indem er ihn mit dem Antrag zur Durchsicht von tausenden E-Mails und weiteren Unterlagen zwingen möchte und diesen Antrag womöglich mehrmals hintereinander stellt. In der Praxis stellt sich in solchen Fällen die Frage, wann das betroffene Unternehmen die Auskunft verweigern darf, weil der Betroffene sein Auskunftsrecht missbraucht.

Unzureichendes Gesetz

Im Gesetz finden sich lediglich unzureichende Regelungen. Dem Erwägungsgrund 63 der DSGVO ist lediglich zu entnehmen, dass dieses Recht die Rechte und Freiheiten anderer Personen, etwa Geschäftsgeheimnisse oder Rechte des geistigen Eigentums und insbesondere das Urheberrecht an Software, nicht beeinträchtigen sollte. Dies darf jedoch nicht dazu führen, dass der betroffenen Person jegliche Auskunft verweigert wird. Verarbeitet der Verantwortliche eine große Menge von Informationen über die betroffene Person, so sollte er verlangen können, dass die betroffene Person präzisiert, auf welche Information oder welche Verarbeitungsvorgänge sich ihr Auskunftsersuchen bezieht, bevor er ihr Auskunft erteilt.

Die Konferenz der Datenschutzbeauftragten, in diesem Jahr unter dem Vorsitz des Bundesbeauftragten Ulrich Kelber, verweist zur Frage des Missbrauchs von Datenschutzauskünften auf Einzelfallentscheidungen durch die Gerichte., Foto: Jens Gyarmaty
Die Konferenz der Datenschutzbeauftragten, in diesem Jahr unter dem Vorsitz des Bundesbeauftragten Ulrich Kelber, verweist zur Frage des Missbrauchs von Datenschutzauskünften auf Einzelfallentscheidungen durch die Gerichte. Foto: Jens Gyarmaty

Die Konferenz der Datenschutzbeauftragten des Bundes und der Länder macht ebenfalls keine klare Aussage darüber, wann das Auskunftsrecht wegen Missbrauch ausgeschlossen ist (siehe ct.de/ysjh). Stattdessen verweist sie auf Einzelfallentscheidungen, letztlich also auf die Gerichte. Die stützen sich bei Entscheidungen zu der Frage, wann in konkreten Fällen ein Missbrauch vorliegt, der den Auskunftsanspruch ausschließen oder begrenzen kann, vor allem auf Art. 12 Abs. 5 Satz 2 Buchstabe b DSGVO. Demnach hat der Verantwortliche das Recht, die Auskunft zu verweigern, sofern der Antrag offensichtlich unbegründet oder es sich um einen exzessiven Antrag handelt. Was genau unter einem exzessiven Antrag zu verstehen ist, dazu gibt es allerdings keine gesetzliche Definition. Weitgehende Einigkeit besteht unter Juristen nur dahingehend, dass ein Antrag dann exzessiv ist, wenn das Unternehmen dadurch schikaniert werden soll oder der Betreffende zu häufig einen neuen Antrag stellt. Das Gleiche gilt, wenn die Bearbeitung des Auskunftsersuchens mit einem extrem hohen Aufwand verbunden ist.

Viele alte E-Mails

So war es in einem Fall, in dem ein ehemaliges Mitglied des Vorstandes eines Unternehmens viele Jahre später gegenüber dem Insolvenzverwalter eine Auskunft über die von ihm geführte und innerhalb eines Jahres verarbeitete E-Mail-Korrespondenz verlangte, die ungefähr 10.000 E-Mails umfasste. Darüber hinaus wollte er eine kostenlose Kopie dieser Daten erhalten. Als der Insolvenzverwalter sich weigerte, verklagte er ihn.

Das Landgericht Heidelberg wies die Klage ab (Urteil vom 21.02.2020, Az. 4 O 6/19, siehe ct.de/ysjh). Es begründete seine Entscheidung damit, dass der Aufwand unverhältnismäßig sei, weil eine Vielzahl von E-Mails gesichtet und geschwärzt werden müssten, um Interessen Dritter zu wahren. Für diese Aufbereitung müsste das Unternehmen mehrere Wochen Arbeitszeit aufwenden. Darüber hinaus verfügte es über viele Daten nicht mehr, weil diese inzwischen gelöscht worden waren. Die davon gemachten Backups auf einem Speichermedium befanden sich nicht mehr im Unternehmen. Die Wiederherstellung auf den alten Servern wäre mit Kosten von etwa 4000 Euro verbunden.

Begrenzte hier der erhebliche Aufwand den Anspruch, stellt sich in anderen Fällen die Frage, inwieweit ein Rechtsmissbrauch im Sinne des Art. 12 Abs. 5 Satz 2 DSGVO auch dann in Betracht kommt, wenn es dem Antragsteller nicht um den Datenschutz, sondern beispielsweise um die Durchsetzung von Forderungen oder die Verteidigung in einem Strafprozess geht.

Dazu liegen einige jüngere obergerichtliche Entscheidungen vor: In einem Fall war einem Arbeitnehmer fristlos wegen Betruges gekündigt worden. Sein Arbeitgeber warf ihm vor, dass er seine Fahrtkosten über den Zeitraum eines Jahres falsch abgerechnet habe. Nachdem der Mitarbeiter seine Kündigungsschutzklage vor den Arbeitsgerichten rechtskräftig verloren hatte, machte er einen Anspruch auf Erteilung einer Auskunft über die bezüglich seiner Person gespeicherten Daten geltend. Der Arbeitgeber verweigerte die Auskunft. Vor Gericht berief sich der Betroffene darauf, dass er die Auskunft benötige, um sich gegen den Vorwurf des Betruges im Rahmen des noch laufenden Strafverfahrens verteidigen zu können.

Das Hessische Landesarbeitsgericht entschied mit Urteil vom 10.06.2021 (Az. 9 Sa 1431/19, ct.de/ysjh), dass der Arbeitgeber dem Betroffenen die Auskünfte erteilen muss. Nach Auffassung der Richter gebe es keine Anhaltspunkte für Rechtsmissbrauch. Diese wären nur dann gegeben, wenn der ehemalige Mitarbeiter damit seinen Arbeitgeber unter Druck gesetzt hätte, um eine höhere Abfindung zu erhalten. Diese Möglichkeit scheide jedoch aus, weil er den Antrag auf Auskunft erst gestellt habe, nachdem über seine Kündigungsschutzklage bereits rechtskräftig entschieden war.

Demgegenüber stelle das mit dem Auskunftsanspruch verfolgte Ziel der Verteidigung in einem Strafverfahren keinen Rechtsmissbrauch dar. Denn ein anderer Beweggrund als der Schutz seiner personenbezogenen Daten führe nicht bereits dazu, dass die Verwendung als Rechtsmissbrauch anzusehen ist. Vielmehr müsste es sich hierzu offensichtlich um einen exzessiven oder unbegründeten Antrag im Sinne von Art. 12 Abs. 5 Satz 2 DSGVO handeln, was die Richter in diesem Fall verneinten.

In einem weiteren Fall wollte der Kläger erreichen, dass seine private Krankenversicherung ihm Beiträge zurückzahlt, die er aufgrund von Beitragserhöhungen in den Jahren von 2013 bis 2016 gezahlt hatte. Um herauszufinden, ob überhaupt und in welcher Höhe die jeweiligen Beitragserhöhungen erfolgt waren, verlangte er Auskunft über alle Beitragsanpassungen in diesem Zeitraum. Als sich die Versicherung weigerte, verklagte er sie.

Damit hatte er allerdings keinen Erfolg. Das Oberlandesgericht Nürnberg entschied, dass er keinen Anspruch auf Auskunft hat (OLG Nürnberg, Urteil vom 14.03.2022, Az. 8 U 2907/21, ct.de/ysjh). Das begründeten die Richter damit, dass die beabsichtigte Vorbereitung einer Klage auf Zahlung als rechtsmissbräuchlich anzusehen sei. Denn die Überprüfung von Beitragsanpassungen sei nicht durch den Schutzzweck der Datenschutzgrundverordnung gedeckt. Das Gericht ließ keine Revision zu.

Ebenso entschied das Oberlandesgericht Dresden in einem Fall, in dem es um Beitragsanpassungen für die Jahre 2011 bis 2016 ging. Auch die Richter des OLG Dresden ließen zu dieser Frage keine Revision zu (OLG Dresden, Urteil vom 29.03.2022, Az. 4 U 1905/21, ct.de/ysjh).

Andere Ansichten

Anders sah dies jedoch das Oberlandesgericht Köln, das über einen ähnlichen Sachverhalt zu entscheiden hatte: Die Versicherung könne sich nach Auffassung des Gerichtes nicht darauf berufen, dass die Geltendmachung rechtsmissbräuchlich sei. Es sei statthaft, dass es dem Kläger vor allem um die Durchsetzung eines Zahlungsanspruches gehe. Dies ergebe sich daraus, dass es dem Gesetzgeber der DSGVO um den Schutz der Rechte und Freiheiten der Person gegen Beeinträchtigungen und Gefährdungen durch Verarbeitungen personenbezogener Daten gegangen sei. Dabei komme es nicht darauf an, ob diese Rechte und Freiheiten selbst im Datenschutzrecht oder in einer anderen Teilordnung des Rechts verankert sind.

Unbedenklich und grundsätzlich zu erfüllen sei deshalb ein Antrag auf Herausgabe von Kopien mit persönlichen Daten, mit denen die betroffene Person sich Informationen zur Vorbereitung eines Gerichtsverfahrens gegen den Verantwortlichen beschaffen wolle, auch wenn es dabei letztlich um andere Ansprüche als den Schutz der Daten gehe. Darüber hinaus ergäben sich keine Anhaltspunkte dafür, dass der Kläger die Versicherung schikanieren wolle. Er habe auch nicht etwa in einem kurzen Abstand erneut Auskunft begehrt (OLG Köln, Urteil vom 13.05.2022, Az. 20 U 198/21, ct.de/ysjh). Gegen dieses Urteil ist ein Revisionsverfahren vor dem Bundesgerichtshof anhängig (Az. BGH IV ZR 193/22).

Neben den noch nicht höchstrichterlich geklärten Rechtsfragen fällt es den Auskunftspflichtigen in der Praxis oft schwer nachzuweisen, dass ein Fall missbräuchlicher Antragstellung vorliegt. Zu begrüßen wäre es jedenfalls im Sinne einer besseren Rechtssicherheit und -klarheit für die Praxis, wenn der BGH abschließend klärt, inwieweit Verantwortliche Auskünfte nach Art. 15 DSGVO erteilen müssen, wenn es dem Betroffenen dabei um die Durchsetzung von Forderungen geht. Eine Entscheidung des höchsten Zivilgerichts in der genannten Sache dürfte jedoch frühestens gegen Ende des Jahres zu erwarten sein. (tig@ct.de)

Gesetze und Entscheidungen zum Auskunftsrecht: ct.de/ysjh




Python im Web

Python im Web

Dynamisches HTML im Browser mit PyScript statt JavaScript

Browser führen nur JavaScript aus? Nicht mehr! PyScript tritt als Alternative zu JavaScript auf. Wir erklären, wie das möglich ist, und programmieren als Beispiel ein Spiel mit der neuen Technik.

Von Pina Merkert

kompakt

  • PyScript nutzt die maschinennahe Sprache WebAssembly, um Python mit der JavaScript-Engine eines Browsers auszuführen.
  • Über PyScript-Funktionen kann der Python-Code auf das DOM zugreifen, was dynamisches HTML ermöglicht.
  • PyScript kann JavaScript ersetzen, es lädt aber wesentlich langsamer.

Beim Versuch, auf eine Objekteigenschaft zuzugreifen, wird die Eigenschaft nicht nur in dem Objekt selbst, sondern auch in seinem Prototyp und dem Prototyp des Prototyps gesucht. Wenn Ihnen Sätze wie dieser auch rätselhaft vorkommen, ist JavaScript wohl auch nicht Ihre Muttersprache. Python ist da oft zugänglicher, der Code hat weniger Zeilen und das Sprachdesign ist auf Lesbarkeit optimiert. Nur leider muss Python immer lokal installiert sein, die allgegenwärtigen Webbrowser verarbeiten nur JavaScript. Oder etwa nicht?

Dass Python nicht im Browser läuft, stimmt nicht mehr: Mit einer trickreichen Software namens „Pyodide“ interpretieren Webseiten auch Python-Code. Python-Entwickler können auf diesem Weg JavaScript durch Python ersetzen. Sie programmieren dann in Python mit PyScript-Funktionen statt in JavaScript. Wir zeigen, wie Sie mit PyScript loslegen.

Als Beispiel haben wir uns von dem Worträtsel „Wordle“ inspirieren lassen und ein Rätsel für Nerds mit dem Namen „Nerdle“ programmiert. Die Spielregeln sind einfach: PyScript wählt aus einer langen Liste mit Begriffen aus der Technikwelt mit fünf Zeichen (Nerdle ist schwieriger als Wordle, weil unser Rätsel Wörter mit Ziffern und Sonderzeichen enthält) einen zufälligen aus, den Sie erraten müssen. Dafür tippen Sie über die Bildschirmtastatur zunächst einen Begriff. Jeder geratene Begriff muss in der Liste stehen, damit das Spiel die Eingabe akzeptiert. Wenn ein Zeichen des geratenen Begriffs an der gleichen Stelle steht wie im gesuchten Begriff, wird es grün. Kommt ein Zeichen irgendwo im gesuchten Begriff vor, wird es gelb. Zeichen, die gar nicht vorkommen, werden grau. Die Tasten der Bildschirmtastatur verfärben sich genauso. Diese Farben geben Hinweise für den nächsten Begriff, sodass Sie mit zusätzlichen Versuchen immer mehr über den gesuchten Begriff erfahren. Wenn Sie spätestens beim sechsten Versuch richtig raten, gewinnen Sie das Spiel. Wenn Sie zu oft falsch raten, sollten Sie mehr c’t lesen *zwinkersmiley*. Ohne selbst zu programmieren, können Sie das Spiel sofort unter nerdle.pinae.net ausprobieren; den Code finden Sie als Open Source (GPLv3) über ct.de/ynk9.

WebAssembly

Browser integrieren weiterhin keinen Python-Interpreter. Sie führen aber in ihrer virtuellen Maschine schon länger WebAssembly aus. WebAssembly ist eine maschinennahe Sprache, die der Browser innerhalb von Millisekunden in Maschinencode übersetzt. Das funktioniert so gut, dass WebAssembly meist nur wenige Prozent langsamer läuft als gleicher Code, den ein Compiler direkt in Maschinencode übersetzt hat. Da der Code aber in der Browser-Sandbox läuft, ist nicht jedes Programm WebAssembly-tauglich. Beispielsweise verbieten Browser direkten Zugriff aufs Dateisystem oder Hardware wie Netzwerkkarten.

Das Pyodide-Projekt hat die Python-Referenzimplementierung CPython so modifiziert, dass sie nach WebAssembly kompiliert. Damit läuft Python zwar im Browser, man sieht davon aber noch nichts. An dieser Stelle kommt PyScript ins Spiel: PyScript bringt Funktionen mit, um vom Browser-Python auf den DOM-Tree zuzugreifen, also auf die HTML-Struktur der Webseite. Außerdem stellt es eigene HTML-Tags bereit, die den Code aufnehmen, Module nachladen und Eingabefelder bereitstellen. Das Projekt steht noch am Anfang: Release-Nummern sind im Datumsformat, die Versionen auf GitHub als „Pre-release“ getaggt. Manchen Funktionen sieht man den frühen Entwicklungsstand noch an. Beispielsweise muss man per Hand Funktionen einkapseln, um sie ins Ereignissystem von JavaScript einzuklinken. Trotzdem funktioniert der Code bereits gut genug für ein Browserspiel.

Einbinden

PyScript bindet man wie ein JavaScript-Framework ein, indem man zwei Tags im <head> der Webseite ergänzt:

<link rel="stylesheet" 
    href="https://pyscript.net/alpha/pyscript.css" />
<script defer src="https://pyscript.net/alpha/pyscript.js"></script>

Den Code lädt der Browser dann aus dem Content Delivery Network (CDN) der PyScript-Entwickler, man bekommt also immer die aktuellste Version. Um Probleme bei Updates zu umgehen, könnte man PyScript auch selbst übersetzen und hosten. Momentan raten wir aber noch davon ab, PyScript produktiv einzusetzen, weil sich in den kommenden Monaten sicherlich noch einiges an den Funktionssignaturen ändern kann.

Danach kann man einfach irgendwo im HTML der Seite den <py-script>-Tag einfügen und in dem Python-Code platzieren. Für ein Hallo-Welt-Programm braucht man nur drei Zeilen:

<py-script>
  print("Hallo Welt.")
</py-script>

Module

Python funktioniert im Browser wie gewohnt. Das bezieht sich auch auf Module, die man wie üblich mit import ins Programm einbindet:

import random
wordlist = ["CT.DE", "RULEZ"]
word = random.choice(wordlist)

Da dem Browser der Python-Paketmanager pip fehlt, packt man externe Module mit Spiegelstrichen in den <py-env>-Tag und PyScript kümmert sich ums Nachladen:

<py-env>
  - numpy
  - matplotlib
</py-env>

Es stehen schon einige beliebte Module wie numpy und matplotlib zur Verfügung, solche mit Hardwarezugriff wie requests können aber nicht funktionieren. Gibt man ein Modul im <py-env>-Tag an, muss man es trotzdem im Code mit einem import einbinden.

Wortlisten per Ajax asynchron laden

Damit wir die Begriffe zentral verwalten können, wollten wir sie nicht als ellenlange Liste hardcoden, sondern lieber mit Ajax nachladen. In normalem Python-Code würde man für so etwas eine Bibliothek wie requests nehmen. Die läuft aber im Browser nicht. Der kann jedoch von sich aus Daten laden, was die Funktion pyfetch() aus dem pyodide-Modul anstößt.

Ajax-Anfragen sind von Natur aus asynchron, weshalb pyfetch() nur in asynchronen Funktionen funktioniert. Die erzeugt man mit async def statt def. Da sie dem normalen Code nicht im Weg stehen, kann man in so einer Funktion problemlos mit await auf Antworten warten, ohne das ganze Programm auszubremsen:

from pyodide.http import pyfetch
from pyodide import JsException
from js import console

async def load_wordlist():
  try:
    response = await pyfetch(
      url="https://raw.githubusercontent.com/pinae/Nerdle/main/nerdle-begriffe.txt",
      method="GET",
      headers={"Content-Type": 
               "text/plain"})
    if response.ok:
      data = await response.string()
      console.log(data.split())
      return data.split()
  except JsException:
    return None

Die JsException ist die Basisklasse aller JavaScript-Fehler, die PyScript automatisch kapselt. Man könnte hier auch spezifische Exceptions fangen, um aussagekräftige Fehlermeldungen anzuzeigen.

Das Speichern der Liste und das Auswählen des zufälligen Worts übernimmt die Funktion pick_word(). Auch sie ist asynchron, weil sie mit await auf die Rückgabe von load_wordlist() warten muss:

async def pick_word():
  global wordlist, word, accept_input
  wordlist = await load_wordlist()
  word = random.choice(wordlist)
  console.log("Wort: ", 
              " ".join(list(word)))
  accept_input = True

Um die asynchronen Funktionen so aufzurufen, dass sie den Code nicht blockieren, kann man einen alten JavaScript-Trick benutzen:

setTimeout(create_proxy(pick_word), 0)

Der Timeout von 0 zwingt den Code nicht zum Warten, bei 0 Millisekunden Verzögerung gibt es aber auch keine Wartezeit. Die Timeout-Funktion sorgt dabei automatisch für eine nebenläufige Ausführung.

Nerdle-HTML

Nerdle benutzt ein Spielbrett aus 30 Quadraten (6 Zeilen mit je 5), die je ein Zeichen aufnehmen. Das geht hervorragend mit einem Grid-Layout. Und da alle Felder gleich aussehen, kann man sie bequem im Quellcode erzeugen. Der fügt alle hintereinander in <div id="board"></div> ein und merkt sich die Divs in einer Liste aus Listen (eine pro Zeile):

tiles=[]
board=document.getElementById("board")
for row in range(6):
  tiles.append([])
  for col in range(5):
    tile=document.createElement("div")
    board.appendChild(tile)
    tiles[-1].append(tile)

Form und Farbe legt die Datei nerdle-styles.css fest, die Sie zusammen mit dem Rest des Codes im Repository über ct.de/ynk9 finden.

Die Funktionen getElementById() und createElement() funktionieren genau wie in JavaScript, sodass Sie dort die Dokumentation konsultieren können, solange PyScript noch keine eigene dafür hat. Die Funktionen gehören zum document-Objekt, das Sie mit from js import document laden.

Die Tasten der Bildschirmtastatur sind ganz ähnliche <div>, allerdings von Anfang an im HTML. Es gibt einen Unterschied: Das umrahmende <div> hat die ID "keyboard". Der Python-Code kann sich anhand der Beschriftung der Tasten dann selbst ein Dictionary zusammenbauen, das jedem Zeichen das passende DOM-Objekt zuordnet:

key_objects = {}
for row in document.getElementById(
               "keyboard").childNodes:
  for key in row.childNodes:
    key.addEventListener("click", 
                       js_key_clicked)
    if len(key.textContent) == 1:
      key_objects[
                key.textContent] = key

childNodes ist dabei die JavaScript-Datenstruktur NodeList, die aber das Iterator-Interface implementiert, sodass sich damit fast wie mit einer Python-Liste arbeiten lässt. addEventListener() ist die von Python aufrufbare JavaScript-Funktion, die den JavaScript-Function-Pointer js_key_clicked annimmt. Den muss man allerdings etwas umständlich erzeugen.

Verpackte Funktionen

Funktionen definiert man im Python-Code wie üblich mit def. Heraus kommt dabei eine Python-Funktion, die im Python-Code ganz normal funktioniert. Will man aber mit dem DOM interagieren, muss man die von PyScript gekapselten JavaScript-Funktionen benutzen, die man an den Namen in CamelCase erkennt. Diese JavaScript-Funktionen sehen die Python-Funktionen nicht, weshalb man eine Funktionsreferenz beispielsweise nicht einfach an addEventListener() übergeben kann.

Die Sprachbarriere überwindet das pyodide-Modul, das PyScript standardmäßig mitbringt (kein Eintrag in <py-env> nötig).

from pyodide import create_proxy
def key_clicked(e):
  print(e.target.textContent)

js_key_clicked = create_proxy(
                          key_clicked)

Mit create_proxy() packt man die Python-Funktion so ein, dass JavaScript sie sehen kann. Die so erzeugte Referenz kann man wie eine JavaScript-Funktion an addEventListener() übergeben.

Dabei funktionieren wiederum alle von JavaScript bekannten Datenstrukturen, sodass die Python-Funktion über den Parameter e das Event-Objekt bekommt. Das verweist unter e.target auf das DOM-Objekt, von dem das Ereignis ausging, und das verrät mit e.target.textContent, was innerhalb des HTML-Tags steht.

Noch ein Hinweis auf eine mögliche Fehlerquelle beim Konvertieren von JavaScript-Code von StackOverflow: Die Python-Funktion muss alle Parameter nennen, die JavaScript übergibt. JavaScript erlaubt es, Parameter still und heimlich wegzulassen, während Python mindestens einen _ verlangt. Man muss die übergebenen Parameter in der Funktion aber nicht benutzen, wenn man sie nicht braucht.

Raten

Nachdem der Code schon ein Wort zum Erraten ausgewählt und das Dictionary mit den Tasten initialisiert ist, muss er nur noch die Eingaben verarbeiten und bei „Enter“ den geratenen Begriff auswerten.

Die aktuelle Eingabe speichert das Programm in der Variable guess. Fürs Verarbeiten der Eingaben macht sich die Funktion key_clicked() den Umstand zunutze, dass alle <div> mit einem Zeichen einen textContent mit Länge 1 haben. Das Backspace-Symbol ist ein SVG, weshalb textContent bei dieser Taste ein leerer String ist. Die Enter-Taste dagegen ist mit „Enter“ beschriftet, also mit fünf Zeichen. Die Fallunterscheidung ist eine gute Gelegenheit, das mit Python 3.10 eingeführte Pattern-Matching einzusetzen:

match len(e.target.textContent):
  case 0:
    guess = guess[:-1]
  case 1:
    guess += e.target.textContent
  case _:
    check_enter()
display_guess()

matchcase funktioniert so ähnlich wie switchcase in C, erlaubt aber beispielsweise auch reguläre Ausdrücke hinter case. Statt default: gibt es case _:, der zum Tragen kommt, wenn keiner der anderen Fälle eintrifft. In allen Fällen kümmert sie die Funktion display_guess() darum, den Inhalt von guess auch anzuzeigen. Pattern Matching funktioniert auch mit Objekten, beispielsweise mit re (das Modul für reguläre Ausdrücke) erzeugte Tupel. Ein Beispiel dafür finden Sie im Code auf GitHub.

Die Funktion display_guess() konsultiert die Variable guess_no, die speichert, in welcher Zeile Spieler gerade raten. Zuerst füllt die Funktion überall Leerzeichen ein, um vorherige Eingaben zu löschen:

for i in range(5):
  tiles[guess_no][i].textContent = ""

Das Eintragen aller Buchstaben aus guess geht fast genauso einfach, weil Python klaglos mit list() Strings in Listen aus Einzelzeichen verwandelt:

for pos, c in enumerate(list(guess)):
  tiles[guess_no][pos].textContent = c

Python kann Tupel automatisch auspacken, wenn man der Anzahl entsprechend viele Variablen mit Komma getrennt hintereinander schreibt. enumerate() gibt für jeden Iterator, also für alles, was sich wie eine Liste behandeln lässt, ein 2-Tupel aus der Nummer und dem Element zurück. Im Beispiel landet in pos also die Nummer des Zeichens und in char das Zeichen. Die Schreibweise, die dabei herauskommt, versteht man ganz intuitiv.

Vergleichen

Bei einem „Enter“ muss das Spiel zunächst prüfen, ob der geratene Begriff fünf Zeichen hat und ob er in der Wortliste steht. Wenn nicht, schreibt die Funktion in das <div> mit der ID "info" eine Fehlermeldung:

pyscript.write("info", f"„{guess}“ " +
      "steht nicht in der Wortliste.")

Die Funktion pyscript.write() nimmt einem dabei die Arbeit ab, das DOM-Element mit der ID "info" herauszusuchen und seinen textContent zu ändern. Wir vermuten, dass PyScript in Zukunft noch weitere Funktionen ähnlicher Art bekommt, die DOM-Zugriffe mit weniger Code erlauben.

Außerdem nutzt die Zeile Pythons seit 3.6 verfügbare f-Strings. Die definiert man mit dem Buchstaben f vor den Anführungszeichen und Python ersetzt dann alle in geschweiften Klammern angegebenen Variablen durch deren Werte. Man kann die Ausgabe mit den gleichen Filtern wie in format() beeinflussen.

Steht in guess ein Begriff aus der Wortliste, vergleicht die Funktion evaluate_guess() den geratenen Begriff mit word, dem zu erratenden Begriff. Dafür macht sie den Begriff wieder zu einer Liste, holt sich mit enumerate() die Zeichennummer dazu, die sie dann benutzt, um das Zeichen aus dem zu erratenden Begriff zu ziehen und die Zeichen zu vergleichen:

for p, char in enumerate(list(guess)):
  if char == word[p]:
    tiles[guess_no][p].classList.add(
                           "nailedit")
    key_objects[char].classList.add(
                           "nailedit")
    correct_counter += 1

Damit Spieler Grün und Gelb sehen, ergänzt die Funktion über classList.add() die passende CSS-Klasse, die die Farbe festlegt. Das passiert sowohl bei den Quadraten im Spielfeld als auch bei der Bildschirmtastatur. Dass die Tasten ihre Farbe verändern, ist eine willkommene Hilfe beim Sinnieren über den nächsten Begriff, den man raten könnte.

Bei richtig geratenen Zeichen zählt die Funktion auch die lokale Variable correct_counter hoch. Steigt die nämlich beim Einfärben aller Zeichen-Quadrate auf 5, ist das Ratespiel gewonnen. Ist die Variable kleiner und zusätzlich guess_no >= 5, ist das Spiel verloren.

Usability

Der vollständige Code, den Sie über das Repository über ct.de/ynk9 finden, enthält noch einige zusätzliche Zeilen. Die dienen der besseren Bedienbarkeit, damit man beispielsweise statt per Bildschirmtastatur auch mit der normalen Tastatur tippen kann. Das geht mit einer key_down()-Funktion, die den onkeydown-Event-Handler von document überschreibt:

js_key_down = create_proxy(key_down)
document.onkeydown = js_key_down

Der Code ist mitsamt HTML kaum mehr als 200 Zeilen lang, die bis auf einen regulären Ausdruck leicht zu lesen sind.

Exceptions sind in der Entwicklerkonsole sichtbar, die Browser mit F12 öffnen. Die Darstellung ist leider nicht so übersichtlich, weil PyScript alles in JavaScript-Objekte einpacken muss.
Exceptions sind in der Entwicklerkonsole sichtbar, die Browser mit F12 öffnen. Die Darstellung ist leider nicht so übersichtlich, weil PyScript alles in JavaScript-Objekte einpacken muss.

Fürs Debugging lohnt es sich, mit F12 die Entwickler-Konsole zu öffnen. Dort landet auch alles, was Sie mit console.log() ausgeben. Die Fehlermeldungen sind leider nicht gut lesbar, weil es in JavaScript-Exceptions verpackte Python-Exceptions sind. Das müssen die Entwickler noch stark nachbessern.

Eine weitere Baustelle sind die Entwicklungsumgebungen. Beispielsweise erkannte die Entwicklungsumgebung PyCharm den Code in <py-script>-Tags nicht als Python-Quelltext, sodass weder Farben noch Code-Vervollständigung funktionierten.

Spielen

Das selbst programmierte Nerdle starten Sie, indem Sie einfach die Datei index.html im Browser öffnen. Ein Webserver ist dafür nicht notwendig, zum Nachladen des PyScript-Codes und der Wortliste aber eine Internetverbindung. Installieren müssen Sie gar nichts. Falls Sie das Spiel doch mit einem Webserver hosten wollen, muss der nur eine statische Seite ausliefern können.

Unser Worträtsel „Nerdle“ ist wegen der Tech-Begriffe mit Abkürzungen deutlich schwerer als „Wordle“ von der New York Times.
Unser Worträtsel „Nerdle“ ist wegen der Tech-Begriffe mit Abkürzungen deutlich schwerer als „Wordle“ von der New York Times.

Unsere Liste mit Begriffen finden Sie im Repository in der Datei nerdle-begriffe.txt. Momentan stehen da schon mehr als 1500 Begriffe zum Raten bereit. Mit dem Skript word_list_filter.py können Sie die Liste aber bequem erweitern. Es liest die Datei neue-begriffe.txt, filtert nach den richtigen Zeichen und fragt für alle neuen Begriffe einzeln, ob Sie die hinzufügen wollen. So können Sie mit wenig Arbeit ganze Listen aus Kreuzworträtsel-Datenbanken ergänzen.

Kritik

Wir sind von PyScript begeistert. Python-Code ohne Installation im Browser ausprobieren? Grandios! 

Noch ist PyScript aber nicht an dem Punkt angelangt, darauf bestehenden Code zu portieren und über Experimente hinausgehende Projekte damit umsetzen zu wollen. Außerdem muss eine Webseite mit PyScript mehr als 14 Megabyte an Code laden, bevor sie überhaupt starten kann. Danach muss die JavaScript-Engine den WebAssembly-Code zunächst in Bytecode für die Prozessorarchitektur übersetzen, was selbst auf einer schnellen Desktop-CPU fast eine Sekunde dauert. Erst danach läuft der Code der Seite los. Bei normalem JavaScript lädt der Browser nur die winzige Skriptdatei und führt diese sofort aus, weil die JavaScript-Engine längst warm gelaufen ist.

PyScript hat trotz allem sinnvolle Anwendungen: Hat beispielsweise eine Statistikerin ihre Daten schon mit Python ausgewertet und mit Matplotlib ein Diagramm gezeichnet, müsste sie normalerweise alles in JavaScript nachprogrammieren, um das Diagramm in eine Webseite einzubinden. PyScript senkt die Hürde für Pythonisten, mal eben schnell aus einer Idee eine Webanwendung zu basteln – wie unser Beispiel zeigt. (pmk@ct.de)

Code bei GitHub, PyScript-Dokumentation: ct.de/ynk9




QR-Codes

Bithaufen

QR-Codes verstehen und ohne technische Hilfsmittel dekodieren

QR-Codes enthalten zusätzlich zu den Nutzdaten Informationen, aus denen man fehlende Pixel wiederherstellen kann. Wenn der Code mal so stark beschädigt sein sollte, dass selbst eine App ihn nicht mehr erkennt, dann können Sie versuchen, ihn manuell zu entschlüsseln. Wir zeigen Ihnen, wie das geht.

Von Wilhelm Drehling

kompakt

  • QR-Codes folgen einem strikten Aufbau, in dem Informationen bestimmten Arealen zugeteilt werden.
  • Die Nachricht sowie viele andere Details kommen mehrfach und teilweise auch maskiert im Code vor.
  • Mit dem in diesem Artikel erlangten Wissen können Sie einen beschädigten QR-Code per Hand dekodieren.

Smartphone raus, entsperren und die Kamera-App über einen QR-Code halten. Im Bruchteil einer Sekunde wandelt sich der verwitterte Sticker am Laternenmast in einen Strom von Bits um, welchen das Smartphone in eine lesbare Zeichenkette dekodiert. Bereit zum Antippen ploppt die gescannte Information auf dem Bildschirm auf.

QR-Codes sind ein häufig benutztes Mittel für Außenwerbung, weil sie eine Menge Schaden aushalten. Wenn aber mal der Code am Laternenmast mehr als 30 Prozent beschädigt ist und technische Hilfsmittel nicht weiterhelfen, dann können Sie versuchen, den QR-Code per Hand zu dekodieren. Kleine Codes mit 20 Zeichen sind problemlos in ein paar Minuten geschafft, bei den wirklich großen sollten Sie es sich zweimal überlegen, ob es sich lohnt. Denn diese können bis zu 2953 herkömmliche Zeichen speichern. In der Theorie lassen sich damit sogar die sämtlichen Web-Tipps von Seite 56 in einen QR-Code packen.

Das ist übrigens nicht das erste Mal, dass wir uns QR-Codes genauer anschauen: Wir haben uns vor einiger Zeit schon mal näher mit den quadratischen Codes beschäftigt und Seiten empfohlen, die zuverlässig für Sie QR-Codes erstellen [1]. Dieser Artikel fokussiert sich dagegen auf den Aufbau von QR-Codes. Dazu zerlegen wir den Code wortwörtlich in seine Bestandteile: in seine Felder und Masken. Schritt-für-Schritt zeigen wir die kleinen Finessen, die sich die Erfinder ausgedacht haben. Mit dem dadurch erlangten Wissen können Sie QR-Codes per Hand dechiffrieren. Das ist zwar nicht sonderlich hilfreich im Alltag, macht aber Spaß und ist ganz nebenbei noch lehrreich!

Geschichtsstunde

Als Kopf hinter den QR-Codes gilt der Ingenieur Masahiro Hara, der für die japanische Firma Denso Wave arbeitete. Denso erhielt 1992 den Auftrag, die Lesbarkeit von Barcodes zu verbessern.

Das Unternehmen hat die Leitung Masahiro Hara übertragen, der sich des Problems prompt annahm und schnell feststellte: Selbst wenn er den Barcodescanner verbessert, die fehlende Unterstützung der Barcodes für das japanische Schriftsystem Kanji und die kleine Speicherkapazität löst das grundlegende Problem der Ineffizienz nicht.

Mit seinem Team entwickelte er in zwei Jahren einen zweidimensionalen Code, mit mehr Kapazität und schnellerer Lesbarkeit: der Quick-Response-Code, kurz QR-Code. Unter ct.de/yvy2 haben wir Ihnen die ausführliche Herkunftsgeschichte verlinkt. Dort geht der Erfinder unter anderem auf die genauen Gründe und Schwierigkeiten ein, die das Team im Laufe der Entwicklung überwinden musste.

Massig

Die Idee von zweidimensionalen Codes ist nicht neu, schon vor dem QR-Code spukten unterschiedliche Entwürfe herum. Zum Beispiel stapelte „Code 16k“ Barcodes aufeinander, um mehr Zeichen abspeichern zu können. Der QR-Code und sein ehemaliger Kontrahent gehören zu den sogenannten Matrix-Codes. Das ist eine Gruppe von Codes, die Informationen zweidimensional abspeichern, im Unterschied zu eindimensionalen Liniencodes wie Barcodes. Der QR-Code ordnet dabei jede Fläche einem Bit zu, Schwarz einer 1 und Weiß einer 0. Der starke Kontrast erlaubt es, auf kleinerem Raum größere Datenmengen abzuspeichern.

Wie viel in einen QR-Code passt, legt die Standardisierung ISO 18004 fest, die aktuelle stammt aus dem Jahr 2015 (siehe ct.de/yvy2). Diese ist gut 115 Seiten lang und definiert fein säuberlich alle Arten von QR-Codes. Das ist nicht wenig, denn es gibt insgesamt 40 Versionen, die mit aufsteigender Versionsnummer immer größer werden. Die kleinste Version 1 nimmt eine Größe von 21 × 21 Pixeln ein, die größte Version 40 177 × 177 Pixel. Die Obergrenze der Speicherkapazität liegt bei 7089 Zahlen (numerisch), 4296 alphanumerischen Zeichen (Großbuchstaben und Ziffern, zzgl. Schrägstrich, Punkt, Komma u. a.), 2958 Bytes mit beliebiger Kodierung wie UTF-8 oder bei respektablen 1817 Zeichen des japanischen Schriftsystems Kanji.

Mithilfe unserer Vorlage dechiffrieren Sie im Laufe des Artikels einen QR-Code der Version 1 mit 7 Prozent Fehlerkorrektur, der als Nachricht „ct.de“ enthält.
Mithilfe unserer Vorlage dechiffrieren Sie im Laufe des Artikels einen QR-Code der Version 1 mit 7 Prozent Fehlerkorrektur, der als Nachricht „ct.de“ enthält.

Fehler

QR-Codes enthalten darüber hinaus fehlerkorrigierende Bereiche. Sie sorgen dafür, dass der Code trotz Schäden scanbar bleibt. Insgesamt gibt es vier Stufen der Fehlerkorrektur, die niedrigste L sichert gerade mal 7 Prozent ab, während H einen Schaden von bis zu 30 Prozent ausgleichen kann. Für die Erfinder des QR-Codes bei der Firma Denso Wave war dieser Umstand besonders wichtig: Da die QR-Codes für ein Lagersystem gedacht waren, sollten diese von Scannern erkannt werden, selbst wenn Schmutz oder Kratzer den Code verunzieren.

Darum kümmert sich die sogenannte Reed-Solomon-Fehlerkorrektur, benannt nach den Mathematikern und Ingenieuren Irving S. Reed und Gustave Solomon. QR-Codes können damit einen gewissen Grad an Schaden überstehen, weil in dem Code zusätzlich Informationen eingeflochten sind, die eine Wiederherstellung des Codes ermöglichen. Die Methode kommt auch bei CDs oder DVDs zum Tragen, ist aber alles andere als trivial.

Da der Fehlerkorrekturalgorithmus für die Dekodierung des vollständig lesbaren Beispielcodes keine Rolle spielt, gehen wir nachfolgend nicht näher darauf weiter ein. Sie können auch ohne den Algorithmus einen QR-Code dekodieren – das liegt am speziellen Aufbau des Codes, doch dazu im Verlauf des Artikels mehr. Eine ausführliche Erklärung der Methode haben wir unter ct.de/yvy2 verlinkt.

Aufgrund der großen Speicherkapazität und der fehlerkorrigierenden Parts findet der QR-Code in allen möglichen Gebieten Anwendung: beispielsweise im digitalen Impfausweis [2] oder bei der Weitergabe von Transaktionsdaten für Online-Überweisungen [3].

Querschnitt

Das Folgende befasst sich wegen der leichteren Nachvollziehbarkeit mit der kleinsten Version 1, die 21 × 21 Felder misst.

Bestimmte Abschnitte des QR-Codes tauchen unabhängig von Inhalt und Version des Codes immer auf (siehe Schaubild). Einige Elemente sind eher versteckt, wie die Abstandspunkte (im Englischen „Timing pattern“), andere wiederum sehr auffällig, wie die markanten Positionsstellen an den drei Ecken („Position pattern“). Die Konstellation und genaue Größe der Positionsstellen sind kein Zufall: Die Erfinder haben damals herkömmliche Zeitschriften auf besonders selten vorkommende Schwarz-Weiß-Abstände untersucht. Heraus kam ein Verhältnis von 1-1-3-1-1, also einmal Schwarz und Weiß, gefolgt von dreimal Schwarz, und zum Abschluss wieder einmal Weiß und Schwarz. Die direkten Pixel-Nachbarn rund um die Position bleiben abgetrennt weiß. 

Bei größeren QR-Code-Versionen gibt es zusätzlich kleinere Positionsstellen an fest definierten Stellen. Der direkte Bereich rund um die Positionsstellen ist dem 15 Bit langen Formatstring vorbehalten (siehe Kasten „Formatstring“), der aus der Maske und dem Level der Fehlerkorrektur besteht.

Es gibt außerdem noch ein Pixel, das immer schwarz ist und in jeder Version an seinem festgeschriebenen Platz verharrt – dieser nennt sich „Dark Module“. Er schreibt vor, welche Farbe die dunklen Pixel haben sollen, üblicherweise also schwarz.

Maske aufsetzen

In keinem der QR-Codes, den Sie in freier Wildbahn entdecken, entspricht ein schwarzes Pixel immer einer 1 und ein weißer immer einer 0 der kodierten Information. Über ihr liegt nämlich eine Maske, die die schwarzen und weißen Felder visuell so modifiziert, dass die entstehenden Einsen und Nullen möglichst gleichmäßig verteilt sind. Es gibt dadurch keine Anhäufungen von Bereichen, in denen kaum Unterschiede erkennbar sind. Scanner können aufgrund der Maske die Codes leichter erkennen und auslesen, die Wahrscheinlichkeit von Fehlerkennungen sinkt drastisch.

Es kommen acht Masken infrage, die ein QR-Code-Generator auf einen QR-Code anwenden kann. Wenn Sie zum Beispiel auf einer Webseite einen QR-Code zu „ct.de“ erstellen möchten, erzeugt der Generator zunächst einen rohen QR-Code, der jedoch noch nicht optimal lesbar ist. Dann probiert der Generator alle Masken auf dem rohen Code aus und bewertet die Ergebnisse anschließend nach vier Regeln. Welche Maske am Ende der glückliche Gewinner sein darf und auf den QR-Code gelegt wird, entscheidet der sogenannte „Penalty Score“. Das ist eine Art Konto für die Strafpunkte.

Die erste Regel schreibt vor, dass es Strafpunkte für hintereinander gereihte Pixelketten der gleichen Farbe gibt. Fünf Pixel kosten 3 Strafpunkte, plus 1 für jedes gleichfarbige Pixel, das dahinter folgt. Als Nächstes durchsucht der Generator den Code nach viereckigen Ansammlungen gleichfarbiger Pixel. Für jede gibt es weitere 3 Strafpunkte. Harsche 40 Punkte landen auf dem Konto, wenn der Generator eines der folgenden beiden Muster im Code findet: In binärer Schreibweise lauten die unerwünschten Pixelketten 10111010000 und 00001011101 (0 = weiß, 1 = schwarz). Das entspricht dem Verhältnis der Positionsstellen (1-1-3-1-1), mit vier weißen Pixeln vor oder nach der speziellen Abfolge.

Das letzte Kriterium macht den Kohl nicht fett, zählt aber trotzdem in die Bewertung hinein: das Verhältnis der Anzahl schwarzer Pixel zu der maximalen Pixelanzahl. Ein Version-1-QR-Code enthält 21 · 21 = 441 mögliche Pixel. Wenn beispielsweise 219 davon schwarz sind, entspricht das einem Anteil von gerundet 49,7 Prozent. Der Generator verteilt anschließend geringfügig Strafpunkte, wenn das Verhältnis größer als 5 Prozent zur Mitte ist. Am Ende wählt der Generator die Maske aus, welche die wenigsten Strafpunkte gesammelt hat.

Maske lüften

Als Beispiel dechiffrieren wir im Folgenden einen QR-Code, der die Zeichenkette „ct.de“ enthält. Damit Sie den Schritten leichter folgen können, haben wir für Sie eine Vorlage in Excel vorbereitet, die Sie unter ct.de/yvy2 herunterladen können. Dort befindet sich bereits unser Beispiel-QR-Code, außerdem noch alle acht Masken und weitere Kleinigkeiten, die Ihnen bei der Dekodierung helfen. Die Vorlage eignet sich auch dazu, mal einen anderen QR-Code zu knacken; wie zum Beispiel im Rätsel am Ende des Artikels.

Zurück zu den Masken: Die Information, welche Maske zum Einsatz kam, verbirgt sich im Formatstring (siehe Kasten „Formatstring“). Jede der acht möglichen Masken besitzt eine dreistellige Kombination an Bits, die Sie an zwei Orten im QR-Code ablesen können. Die Infografik „Masken“ schlüsselt für Sie auf, welche Bits für welche Maske stehen.

Für den Beispielcode lauten die Bits 111, was der ersten Maske und der mathematischen Formel j mod 3 = 0 entspricht (j steht für die Spaltennummer, beginnend bei 0, „mod“ liefert den Rest einer Division). Das bedeutet, dass Sie jede dritte senkrechte Zeile invertieren müssen, beginnend mit der ersten. Das können Sie in unserer Vorlage per Hand erledigen, indem Sie die einzelnen Felder umfärben. Dann sieht es ungefähr so aus wie auf dem Bild oben. Obacht: Sie können nicht einfach alle Pixel austauschen, denn es gibt Bereiche, die Sie nicht anfassen dürfen. Das trifft auf die Positionsstellen und direkten Nachbarpixel zu, den Formatstring, die Abstandspunkte und das Dark Module.

Mit unserer Excel-Vorlage können Sie spielend leicht erkennen, welche Felder Sie bei dem QR-Code invertieren müssen.
Mit unserer Excel-Vorlage können Sie spielend leicht erkennen, welche Felder Sie bei dem QR-Code invertieren müssen.

Kodierung

Jetzt liegt der QR-Code nackt und unmaskiert dar. Sie benötigen aber noch zwei weitere Informationen, um den Code endlich dekodieren zu können. Zuerst müssen Sie herausbekommen, wie die Nachricht kodiert wurde. Außerdem noch, wie lang die Nachricht ist.

Je nachdem, welches Verfahren der Generator verwendet hat, unterscheidet sich, wie viele Bits hintereinander ein Zeichen darstellen. Denn QR-Codes speichern die Nachricht nicht als Ganzes ab, sondern zerlegen sie in einzelne Zeichen und verpacken die dann beispielsweise binär in einem Block der Größe 2 × 4. Welche Kodierung also der Generator benutzt hat, erkennen Sie an den vier Pixeln ganz unten rechts in der Ecke. Den 2-×-2-Block sowie alle folgenden müssen Sie übrigens ganz speziell auslesen (siehe Infografik „Leserichtung“), angefangen ganz unten rechts. Ein weißes Feld steht für 0, ein schwarzes für eine 1.

Es gibt hierfür acht Möglichkeiten, aber relevant sind nur vier davon: Der numerische Modus (0001) liegt vor, wenn der QR-Code ausschließlich aus den Dezimalzahlen 0 bis 9 besteht. Alphanumerisch (0010) nimmt die Großbuchstaben von A bis Z ohne Umlaute hinzu und ein paar Sonderzeichen wie Dollar, Plus, Minus oder Punkt. Über ct.de/yvy2 finden Sie eine Übersetzungstabelle.

Der am häufigsten vorkommende Encoding-Modus ist 0100 und steht für den Byte-Modus. Damit kann man beliebige Daten in binär kodieren; handelt es sich um Text wie in URLs, dann kommen die verfügbaren Zeichen aus der Zeichentabelle ISO 8859-1. Der Modus bringt das klein geschriebene Alphabet mit, eine große Anzahl an Umlauten und eine ganze Palette an Sonderzeichen. Den letzten Modus treffen Sie vermutlich seltener an, denn hinter 1000 verbirgt sich das japanische Schriftsystem Kanji.

Der Beispiel-QR-Code benutzt den Byte-Modus (0100), was bedeutet, dass jedes Zeichen einem 2-×-4-Block entspricht. Jetzt brauchen Sie nur noch die Länge der Nachricht, um herauszubekommen, wie viele Blöcke Sie hintereinander dechiffrieren müssen. Im Falle des Beispiels wissen Sie die Antwort schon (ct.de = 5 Zeichen), bei einem unbekannten QR-Code aber nicht. Daher erklären wir noch mal, wo sich die Information befindet und wie sie Sie auslesen.

Die 8 Pixel (2-×-4-Block) direkt über dem 2-×-2-Block mit der Encoding-Information sind für die Länge der Nachricht reserviert. Beachten Sie auch hier wieder die spezielle Leserichtung der Blöcke (siehe Infografik „Leserichtung“)! Sie fangen also wieder unten rechts im Block an, lesen im Zickzack nach oben und schreiben jede neue Zahl rechts dazu. Für die Länge kommt die Bit-Reihenfolge 00000101 heraus. Die Umrechnung können Sie einem entsprechenden binär zu dezimal Rechner überlassen oder es selbst per Hand versuchen. Spoiler: Die Lösung lautet 5; so viele Blöcke müssen Sie dechiffrieren, um an die Botschaft zu gelangen.

Nachricht

Jetzt können Sie, ausgehend von den schon fertigen zwei Blöcken, fünf weitere Blöcke in der korrekten Leserichtung markieren (das sollte ungefähr so aussehen wie auf dem Bild aus unserer Vorlage auf S. 147). Stellen Sie sich vor, als würden Sie von dem allerersten Block unten rechts mit der Encoding-Information eine Zickzacklinie durch alle Blöcke ziehen. Dabei dürfen Sie nicht in die reservierten Bereiche hineintappen. Zu den verbotenen Zonen gehören wie zuvor erklärt der Formatstring, die Positionsmuster, das Dark Module und die Zeilen mit den Abstandspunkten. Ein 2 × 2 Pixel großer weißer Block nach den fünf Blöcken signalisiert das Ende des Klartextes. Alle folgenden Blöcke brauchen Sie nicht zu entschlüsseln, da es sich um die Fehlerkorrektur handelt.

Ganz unten rechts sitzt der Encoding-Block, darüber ein 2-×-4-Block mit der Länge der Nachricht. Daraufhin folgt die Nachricht („ct.de“) aus fünf Blöcken, die bei einem 2 × 2 großen Block aus weißen Pixeln stoppt.
Ganz unten rechts sitzt der Encoding-Block, darüber ein 2-×-4-Block mit der Länge der Nachricht. Daraufhin folgt die Nachricht („ct.de“) aus fünf Blöcken, die bei einem 2 × 2 großen Block aus weißen Pixeln stoppt.

Im ersten Block der Nachricht steht die binäre Zahl 01100011, was in Dezimal umgerechnet 99 ergibt. Ein Blick in die ISO 8859-1 Tabelle verrät (siehe ct.de/yvy2), dass es sich um den Buchstaben „c“ handelt. Der zweite Block liegt seitwärts, passen Sie daher auf, dass Sie den Block korrekt auslesen (siehe Infografik „Leserichtung“). Diesmal kommt binär kodiert 01110100 heraus. Das ist 116 im Dezimalsystem und laut der Tabelle ein „t“.

Bleiben Sie aufmerksam, die Leserichtung ändert sich wieder! Jetzt lesen Sie die nächsten beiden Blöcke von oben nach unten aus. Für den dritten Block sollten Sie 00101110 herausbekommen; an Stelle 46 in der Tabelle steht dann wie erwartet ein Punkt. Damit haben Sie schon mal mehr als die Hälfte erfolgreich dekodiert. Hinter dem vierten Block verbirgt sich der Buchstabe „d“ (01100100, in dezimal 100), beim letzten Block müssen Sie wieder die geänderte Leserichtung beachten. Für die binäre Darstellung 01100101 (Dezimal: 101) kommt der Buchstabe „e“ heraus. Wenn Sie alles richtig aufgeschrieben haben, sollten Sie gegen einen weißen 2-×-2-Block stoßen, dem Ende des Klartextes. Damit haben Sie die Botschaft „ct.de“ erfolgreich dekodiert.

Letztes Bit

Einen QR-Code per Hand zu entziffern, wird niemals schneller sein als der mobile Begleiter in der Hosentasche. Nichtsdestotrotz lernen Sie auf diese Weise eine Menge über die Funktionsweise der QR-Codes kennen und können sie ohne technische Hilfsmittel dekodieren. Das ist zwar im Alltag nicht wirklich nützlich, hat aber einen hohen Nerd-Faktor! Sudokus kann schließlich jeder lösen, aber QR-Codes?

Rätsel: Diesen QR-Code haben wir absichtlich so weit zerstört, dass er nicht mehr scanbar ist. Schaffen Sie es, die Botschaft im QR-Code zu retten?
Rätsel: Diesen QR-Code haben wir absichtlich so weit zerstört, dass er nicht mehr scanbar ist. Schaffen Sie es, die Botschaft im QR-Code zu retten?

Wenn Sie nach der Lektüre nun das Gefühl haben, einen QR-Code per Hand dekodieren zu können, dann probieren Sie Ihr frisch erlangtes Wissen ruhig an unserem kleinen Rätsel aus (der Code befindet sich ebenfalls in der Excel-Vorlage). Wir haben den QR-Code im Bild unten absichtlich so stark beschädigt, dass er nicht mehr scanbar ist. Mit den obigen Schritten können Sie die verlorene Botschaft trotzdem entschlüsseln. Viel Spaß! (wid@ct.de)

Formatstring

Bei QR-Codes kommt außer Reed-Solomon ein weiterer Fehlerkorrekturalgorithmus namens Bose-Chaudhuri-Hocquenghem (BCH) zum Einsatz, der den Formatstring schützt. Der String kommt an zwei Orten im QR-Code vor und setzt sich aus insgesamt 15 Bits zusammen: zwei Bits für den Level der Fehlerkorrektur und drei Bits für die Maske. Die restlichen zehn sind für die Fehlerkorrektur. Im Folgenden erklären wir, wie die Fehlerkorrektur mit BCH berechnet wird.

Falls Sie einen Blick in den ISO-Standard werfen, stellen Sie fest, dass sich die Reihenfolge und Nummerierung der Masken von der in unserer Infografik unterscheidet. Das liegt daran, dass auf dem Formatstring eine spezielle Maske aufliegt, die verhindern soll, dass irgendeine Kombination von Level der Fehlerkorrektur und Maske fünf Nullen hintereinander ergibt. Dadurch ergeben sich für die Infografik eine andere Reihenfolge und Kennzeichnung, als es der ISO-Standard vorschreibt. Unsere Infografik berücksichtigt im Grunde also nur die draufgelegte Maske, wodurch sich zwar andere Reihenfolgen ergeben, aber so brauchen Sie nicht den Formatstring lernen, um einen QR-Code zu dekodieren. Für den Formatstring dagegen benötigt man die originale rohe Maskeninformation, und die stammt aus dem ISO-Standard (siehe ct.de/yvy2).

Für die Fehlerkorrektur kommen folgende vier Level infrage: L lässt 7 Prozent Schaden zu (01), M 15 Prozent (00), Q 25 Prozent (11) und H 30 Prozent (10). Je nachdem, wie der rohe QR-Code aussieht, kann sich der Generator für eine von acht Masken entscheiden, die von 000 bis 111 binär durchnummeriert sind (eine Liste finden Sie unter ct.de/yvy2). Der QR-Code mit der Nachricht „ct.de“ verwendet die Fehlerkorrektur L (01) und die Maske 010 (aus dem ISO-Standard), kombiniert ergibt das 01010. Als Nächstes berechnet man aus dem 5-Bit-Original 10 Bit an Fehlerkorrektur. Doch dafür braucht man einen Generator.

Für jede Version eines QR-Codes gibt es eine festgelegte Generator-Gleichung; für Version 1 lautet er x10 + x8 + x5 + x4 + x2 + x + 1. Keine Angst, die Gleichung brauchen Sie sich nicht zu merken. Die Gleichung übersetzt man in binär von links nach rechts: Jedes xn ergibt eine 1, fehlende Exponenten wie x9, x7 oder x6 eine 0. Somit kommt 10100110111 als der Generator heraus.

Gegen Schäden geschützt: An zwei Stellen im QR-Code können Sie den Formatstring ablesen.
Gegen Schäden geschützt: An zwei Stellen im QR-Code können Sie den Formatstring ablesen.

Danach bringt man das Original 01010 auf eine Länge von 15 Bits, indem man zehn Nullen anhängt. Danach werden vorne überstehende Nullen entfernt. Der Formatstring lautet damit vorerst 10100000000000, mit einer Länge von 14 Bits. Man verrechnet nun so lange den Formatstring mit dem Generator, bis das Ergebnis zehn Bits oder kürzer ist. Damit man beide Zahlen verrechnen kann, bringt man den Generator ebenfalls auf eine Länge von 14 Bits, indem man die fehlenden drei Nullen anhängt (10100110111000).

Für die Kalkulation beider Zahlen braucht man den XOR-Operator: Jede Kombination von 0 und 1 ergibt 1, während bei 0 und 0 sowie 1 und 1 eine 0 herauskommt. Das ist bei dem Beispiel gleich beim ersten Versuch erreicht: 10100000000000 XOR 10100110111000 = 00000110111000. Manchmal benötigt man aber mehrere Durchläufe. Schneidet man die Nullen auf der linken Seite alle ab, kommt ein 9 Bit langer String heraus. Da der String aber 10 Bits lang sein soll, muss man eine Null auf der linken Seite übrig lassen. Der rohe Formatstring besteht jetzt aus dem Original 01010 und der gerade berechneten Fehlerkorrektur 0110111000.

Zuletzt legt man die Maske 101010000010010 via XOR auf den rohen Formatstring. Der finale Formatstring lautet also 010100110111000 XOR 101010000010010 = 111110110101010. Das entspricht den exakten 15 Bits, wie Sie sie auf dem Aufmacher oder dem Beispiel-QR-Code sehen.

  1. Literatur
  2. André Kramer, Quadratisch, praktisch, Code, Erfinderische und praktische Anwendungen für QR-Codes, c’t 7/2013, S. 140
  3. Gerald Himmelein, Multipass, Inhalt, Apps und Datenschutz: So funktioniert das digitale Impfzertifikat, c’t 15/2021, S. 34
  4. Jan Mahn, Schöner zahlen, Rechnungen schneller überweisen mit QR-Codes, c’t 7/2022, S. 138

QR-Code Linksammlung: ct.de/yvy2




Datenleck in Österreich durch Azure-Workflow

Rausgerutscht

Datenleck in Österreich durch Azure-Workflow

Interne Links einer Microsoft-Azure-Anwendung sind in den Suchindex von Bing geraten – personenbezogene Daten waren dadurch öffentlich einsehbar. Eine Spurensuche offenbart, wie schnell vermeintlich geheime Links zum Sicherheitsrisiko werden – nicht nur bei Azure.

Von Jan Mahn

Das soll so nicht sein, dachte sich ein c’t-Leser Mitte Juni, als er in seiner bevorzugten Suchmaschine DuckDuckGo nach etwas ganz anderem gesucht hatte und die Suchergebnisse sah. In Kombination mit dem Suchwort „ifa“, unter dem man eher Treffer zur Funkausstellung in Berlin erwarten würde, fand er DIN-A4-Seiten im Querformat, betitelt mit „Klientenkarte“.

Die Bögen enthielten je ein Foto sowie diverse personenbezogene Daten wie Geburtsdatum, Sozialversicherungsnummer und Verwandtschaftsverhältnisse. Auch ein Bezug zum ursprünglichen Suchbegriff war vorhanden: Die Dokumente waren jeweils mit einer individuellen Nummer namens IFA versehen. Was es damit auf sich hatte, verrieten die Dokumente nicht. Unser Leser verfeinerte seine Suchanfrage und konnte DuckDuckGo sowie Microsofts Suchmaschine Bing (aus deren Daten sich auch DuckDuckGo bedient) dazu bringen, eine ganze Ergebnisseite mit solchen ominösen Klientenkarten auszuspucken. Mit diesen Erkenntnissen und der Suchanfrage wandte er sich an die c’t-Redaktion.

Wir konnten das Problem bestätigen und machten uns auf die Suche nach dem Verantwortlichen für diese offenbar nicht geplante Veröffentlichung. Doch es war gar nicht so einfach, einen Betreiber auszumachen. Wo eine IFA als eindeutige Nummer verwendet wird, konnten wir mit einer Websuche nicht ergründen, und auch die Domain half nicht weiter: Die Klientenkarten lagen auf einer Subdomain von westeurope.logic.azure.com und waren Bestandteile von Microsofts Produkt „Azure Logic Apps“. Damit können Firmen und Behörden Arbeitsabläufe digitalisieren – Formulare, Freigabeprozesse, Listen und Auswertungen.

Waren nicht für die Öffentlichkeit bestimmt: Bei Bing tauchten Klientenkarten mit personenbezogenen Daten auf. Laut Domain waren sie Teil eines Workflows bei Microsoft Azure.
Waren nicht für die Öffentlichkeit bestimmt: Bei Bing tauchten Klientenkarten mit personenbezogenen Daten auf. Laut Domain waren sie Teil eines Workflows bei Microsoft Azure.

Vieles sprach dafür, dass irgendjemand seine Klienten über einen solchen Azure-Workflow verwaltet und die veröffentlichten A4-Dokumente ein End- oder Zwischenergebnis eines Verwaltungsprozesses sind. Ein Name des Betreibers war in der Azure-Adresse und in den Dokumenten nicht enthalten, wir mussten also weitersuchen.

Doch wer nennt seine Kunden schon „Klienten“, ein Anwalt vielleicht? Auffällig war die Nationalitäten der Klienten – vor allem Syrer und Afghanen. Das deutete darauf hin, dass es sich um ein Verfahren zur Registrierung von Geflüchteten handeln könnte. Also kontaktierten wir die für uns naheliegendste Adresse, das deutsche Bundesamt für Migration und Flüchtlinge. Vielleicht hatten wir eines ihrer Systeme gefunden. Und selbst wenn nicht, könnten sie vielleicht immerhin verraten, was eine IFA-Nummer ist und zu welcher Organisation sie gehört.

Die Pressestelle des Bundesamtes meldete sich umgehend telefonisch und berichtete von einer eifrigen internen Suche nach der Herkunft der Datensätze. Das Fazit der Recherche: Aus Deutschland könnten die Datensätze sicher nicht stammen, das Bundesamt nutze keine Azure-Cloud-Produkte und auch eine zehnstellige Sozialversicherungsnummer auf den Dokumenten passe nicht nach Deutschland. Einen heißen Tipp hatte man doch für uns: Der Begriff „Klient“ und die Sozialversicherungsnummer könnten nach Österreich gehören. Die deutschsprachige Schweiz hatten wir zuvor bereits ausgeschlossen, weil die Dokumente ein ß enthielten, und so folgten wir der Spur nach Wien.

Spurensuche in Österreich

Unsere nächste Anfrage ging daher ans österreichische Bundesministerium für Inneres (BMI), dem das Bundesamt für Fremdenwesen und Asyl unterstellt ist. Volltreffer: Am nächsten Tag meldete sich der Pressesprecher telefonisch und bestätigte, dass man den Verursacher ausgemacht habe, und zwar die Bundesagentur für Betreuungs- und Unterstützungsleistungen (die BBU GmbH mit der Republik Österreich als einziger Gesellschafterin). Sie ist verantwortlich für die Betreuung und Beratung von Asylbewerbern und hat zur Registrierung ein Online-Verfahren auf Basis von Azure entwickeln lassen.

Nach unserem Hinweis begann das Unternehmen direkt mit der Fehlerbeseitigung und bestätigte uns später: „Wir haben von den einsehbaren Daten am Mittwoch, den 21. Juni 2022 um 09:40 Uhr erfahren und konnten diese Einsicht bereits am selben Tag um 10:18 Uhr schließen.“ Das deckt sich mit unseren Beobachtungen. Doch ein Problem blieb bestehen: Die Suchmaschinen Bing und DuckDuckGo zeigten die Treffer weiterhin an, auch wenn die verlinkten Seiten nicht mehr erreichbar waren. Und in der Vorschau der Suchergebnisse standen ausgerechnet alle personenbezogenen Daten der Betroffenen als Fließtext hintereinander.

Am Telefon schilderte uns der Sprecher der BBU, was hinter den Kulissen passierte: Das Unternehmen, das den Azure-Workflow eingerichtet hatte, betreue noch andere Azure-Workflow-Kunden und stehe schon in Kontakt mit Microsoft. Kern der Untersuchung sei die Frage, ob es vielleicht ein generelles Problem gebe und über eine problematische Microsoft-interne Abkürzung massenhaft vertrauliche Links bei Microsofts Suchmaschine Bing landen. Eine Robots.txt-Datei, über die Suchmaschinen für gewöhnlich an Links kommen und die Seiten in den Index aufnehmen, konnte man nicht finden, auch keine anderen Anzeichen für systematisches Indexieren von Azure-Workflow-Links. Der Kontakt zu Microsoft war aber für ein anderes Problem nützlich: Die verwaisten Einträge im Bing-Suchindex verschwanden nach zwei Tagen spurlos. Für das Entfernen von Daten aus Suchmaschinenindexen ist das ein rasantes Tempo.

Arbeitshypothese

Einen grundsätzlichen Konfigurationsfehler konnten die Forschungen von BBU und der Microsoft-Partnerfirma nicht aufdecken, nur eine recht plausible Arbeitshypothese liefern. Die von der Suchmaschine verpetzten Links zeigten nicht nur eine Klientenkarte an, sie dienten auch als Trigger, um den nächsten Schritt im Registrierungsprozess anzustoßen. Eigentlich waren sie nicht dafür gedacht, im Browser geöffnet zu werden. Weil Mitarbeiter der BBU diese Schritte aber ab und zu per Hand auslösen mussten, könnten sie die Adressen, so die Theorie, manuell im Browser geöffnet haben – konkret in Microsoft Edge, dem Standardbrowser der BBU. Genau dieser Schritt könnte das Leck verursacht haben.

Wie wir nachstellen konnten, reicht ein einziges Zeichen vor dem https:// einer URL, und Edge interpretiert eine Eingabe in der Adresszeile nicht als URL, sondern als Suchanfrage für Bing. Ein solches Zeichen ist beim händischen Kopieren und Einfügen schnell falsch kopiert und genug solcher Suchanfragen könnten Bing veranlassen, die eigentlich vertrauliche Adresse zu indexieren.

Kurzerhand probierten wir selbst, eine bisher garantiert von niemandem indexierte URL mit der Beschreibung eines eigens erfundenen Fantasietiers auf diesem Weg in den Bing-Index zu schleusen. Doch auch wiederholtes Suchen nach der URL mit mehreren Kollegen und verteilt über mehrere Tage konnte Bing nicht dazu bringen, die Seite zu indexieren. Die Arbeitshypothese der BBU, dass der Suchschlitz von Edge die undichte Stelle war, können wir damit weder bestätigen noch widerlegen; sie wirkt aber durchaus plausibel, weil nur Bing und nicht Google diese Daten fand.

Herausfinden konnten die Betreiber am Ende der Analyse, wie viele Datensätze betroffen waren: „Die anschließende Untersuchung durch ein internationales Expertenteam hat ergeben, dass aufgrund des spezifischen Verhaltens eines Workflows tatsächlich Daten von insgesamt 35 Asylsuchenden auf einigen Suchmaschinen zu finden waren. Für weitere Fälle wurden keine Indizien gefunden“, schrieb uns die BBU in ihrer abschließenden Stellungnahme. Die österreichische Datenschutzbehörde habe man über den Abfluss der Daten informiert.

Grundsatzproblem

Der Fall wirft ein Schlaglicht auf ein vielfach genutztes technisches Konzept und zeigt seine Schwächen auf: URLs, die etwas auslösen, Daten generieren oder anzeigen und die nur durch einen „geheimen“ Adressbestandteil geschützt sind, gibt es nicht nur bei Azure Logic Apps. Bei vielen Dateiablageplattformen einschließlich Nextcloud und Google Drive gibt es eine Möglichkeit, Links mit lesendem oder schreibendem Zugriff zu erzeugen und an andere zu verschicken.

Das Prinzip: Wer den Link kennt, darf zugreifen, man muss ihn also wie ein Geheimnis behandeln. Abgesichert ist das Konzept nur dadurch, dass der geheime Adressbestandteil ausreichend lang und zufällig generiert ist. Diese Bedingung gilt auch für die gefundenen Azure-Links, die nicht zu erraten waren.

Die Tücken lauern allerdings an vielen Stellen: Erste Schwachstelle ist der Mensch, der die vertraulichen Links vielleicht nicht allzu vertraulich behandelt. Sie werden (wie möglicherweise in diesem Fall) in Suchschlitze von Suchmaschinen eingetippt, an andere weitergeleitet, in cloudsynchronisierten Lesezeichenlisten gespeichert oder aus Bequemlichkeit aus der Firma ans private Mobiltelefon geschickt. Außerdem landen sie im Verlauf von Browsern und in Caches und können dort schlimmstenfalls von Unbefugten gelesen werden. Kurzum: Mit Links stellen viele Nutzer Dinge an, die sie mit ihren Passwörtern eher nicht machen würden.

Was tun?

Sollte man Adressen mit integrierten Geheimnissen also verteufeln und sich für ihre Ächtung einsetzen? Ganz so drastisch muss man vielleicht nicht vorgehen. Wer als Admin oder Entwickler Software mit solchen URLs bereitstellt, sollte aber gut abwägen, ob es sicherere Alternativen gibt und diesen den Vorzug geben. Sofern möglich sollten Abfragen immer nur nach Anmeldung mit Benutzername und Passwort gelingen, am besten abgesichert mit einem zweiten Faktor. Sobald personenbezogene Daten im Spiel sind, ist deren Schutz wichtiger als der Komfortgewinn durch eine gesparte Anmeldung.

Auch aus dem Grundschutz-Kompendium des BSI (siehe ct.de/y8ct) kann man eine Pflicht ableiten, solche URLs mit Geheimnissen durch eine Benutzeranmeldung zu ersetzen. Im Abschnitt ORP.4 zu „Identitäts- und Berechtigungsmanagement“ heißt es: „Der Zugang zu schützenswerten Ressourcen einer Institution ist auf berechtigte Benutzer und berechtigte IT-Komponenten einzuschränken. Benutzer und IT-Komponenten müssen zweifelsfrei identifiziert und authentisiert werden.“ Mit anonymen Links, die womöglich von mehreren Mitarbeitern genutzt und fleißig umher kopiert werden, ist das definitiv nicht gewährleistet.

Wenn für eine Anwendung wirklich nur eine solche „geheime“ URL infrage kommt, kann man das Risiko für Missbrauch immerhin dadurch minimieren, dass man die Links nur in dem überschaubaren Zeitfenster funktionieren lässt, in dem sie unbedingt gebraucht werden – und keine Minute länger. (jam@ct.de)

BSI-Grundschutzkompendium: ct.de/y8ct




Neuer Ärger für Facebook

Neuer Ärger für Facebook

Laut der irischen Datenschutzbehörde muss Facebook den Transfer persönlicher Daten von EU-Bürgern in die USA stoppen. , Bild: dpa
Laut der irischen Datenschutzbehörde muss Facebook den Transfer persönlicher Daten von EU-Bürgern in die USA stoppen. Bild: dpa

Die irische Datenschutzbehörde DPC will Facebook untersagen, Nutzerdaten aus der EU in die USA zu übertragen. Darüber hat die DPC, in deren Jurisdiktion Meta fällt, den Europäischen Datenschutzausschuss informiert. Da die übrigen EU-Datenschutzbehörden noch Einspruch erheben können, erwarten Experten jedoch einen Aufschub. Der Gründer der Datenschutz-Organisation noyb, Max Schrems, geht von mindestens einem Jahr aus; auch, weil die Konzernmutter Meta voraussichtlich klagen wird. Die DPC gründet ihre Entscheidung auf das EuGH-Urteil „Schrems II“, in dem die Richter das „Privacy Shield“-Abkommen für rechtswidrig erklärten. Die seither verwendeten Standardvertragsklauseln reichen laut DPC nicht aus.

Kritik musste Meta auch nach der Veröffentlichung seines Menschenrechtsberichts für 2020 und 2021 einstecken: So betrachte Meta Handlungsempfehlungen der federführenden Kanzlei nicht als verbindlich; zugleich soll die Lage in Indien laut der NGO India Civil Watch International geschönt worden sein – interne Dokumente hätten gezeigt, dass Meta nicht angemessen auf schädliche Inhalte reagierte. (mon@ct.de)




wp-plugin-Ultimate Member – Benutzerprofil, Benutzerregistrierung, Anmeldung und Mitgliedschafts-Plugin

Ultimate Member – Benutzerprofil, Benutzerregistrierung, Anmeldung und Mitgliedschafts-Plugin

Von Ultimate Member Dieses Plugin ist auch auf

Deutsch verfügbar.

Hilf mit, die Übersetzung zu verbessern!

Beschreibung

Bestes Benutzerprofil- und Mitgliedschafts-Plugin für WordPress

Ultimate Member ist das Benutzerprofil- und Mitgliedschafts-Plugin Nr. 1 für WordPress. Das Plugin macht es für Benutzer zum Kinderspiel, sich anzumelden und Mitglieder Ihrer Website zu werden. Das Plugin ermöglicht es Ihnen, Ihrer Website schöne Benutzerprofile hinzuzufügen, und eignet sich perfekt zum Erstellen fortschrittlicher Online-Communities und Mitgliederseiten. Ultimate Member ist leicht und sehr erweiterbar und ermöglicht es Ihnen, fast jede Art von Website zu erstellen, der Benutzer ganz einfach beitreten und Mitglieder werden können.

Zu den Funktionen des Plugins gehören:

  • Front-End-Benutzerprofile
  • Front-End-Benutzerregistrierung
  • Front-End-Benutzeranmeldung
  • Benutzerdefinierte Formularfelder
  • Bedingte Logik für Formularfelder
  • Drag-and-Drop-Formularersteller
  • Seite Benutzerkonto
  • Benutzerdefinierte Benutzerrollen
  • Mitgliederverzeichnisse
  • Benutzer-E-Mails
  • Inhaltsbeschränkung
  • Bedingte Navigationsmenüs
  • Zeigen Sie Autorenbeiträge und -kommentare in Benutzerprofilen an
  • Entwicklerfreundlich mit Dutzenden von Aktionen und Filtern

Lesen Sie mehr über alle Funktionen des Plugins bei Ultimate Member

Bezahlte Erweiterungen

Ultimate Member verfügt über eine Reihe von Erweiterungen, mit denen Sie die Leistung des Plugins erweitern können. Sie können alle diese Erweiterungen mit unserem All-Access-Pass erwerben oder Sie können Erweiterungen einzeln erwerben.

  • Benutzernotizen – Erlauben Sie Benutzern, öffentliche und private Notizen aus ihrem Profil zu erstellen
  • Profilregisterkarten – Ermöglicht das Hinzufügen der benutzerdefinierten Registerkarten zu Profilen
  • Benutzerstandorte – Ermöglicht die Anzeige von Benutzern auf einer Karte auf der Mitgliederverzeichnisseite und ermöglicht Benutzern, ihren Standort über ihr Profil hinzuzufügen
  • Unsplash – Erlauben Sie Benutzern, ein Profil-Titelbild von Unsplash aus ihrem Profil
  • Benutzerlesezeichen – Erlauben Sie Benutzern, Inhalte von Ihrer Website mit Lesezeichen zu versehen
  • Benutzerfotos – Erlauben Sie Benutzern, Fotos in ihr Profil hochzuladen
  • Gruppen – Ermöglichen Sie Benutzern, Gruppen zu gemeinsamen Themen, Interessen usw. zu erstellen und ihnen beizutreten.
  • Private Inhalte – Zeigen Sie angemeldeten Benutzern private Inhalte an, auf die nur sie zugreifen können
  • Benutzer-Tags – Ermöglicht das Hinzufügen eines Benutzer-Tag-Systems zu Ihrer Website
  • Soziale Aktivität – Lassen Sie Benutzer öffentliche Pinnwandbeiträge erstellen und die Aktivitäten anderer Benutzer sehen
  • WooCommerce – Ermöglicht es Ihnen, WooCommerce mit Ultimate Member zu integrieren
  • Private Nachrichten – Fügen Sie Ihrer Website ein privates Nachrichtensystem hinzu und ermöglichen Sie Benutzern, sich gegenseitig Nachrichten zu senden
  • Follower – Ermöglichen Sie Benutzern, einander auf Ihrer Website zu folgen, und schützen Sie ihre Profilinformationen
  • Echtzeitbenachrichtigungen – Fügen Sie Ihrer Website ein Benachrichtigungssystem hinzu, damit Benutzer Echtzeitbenachrichtigungen erhalten können
  • Social Login – Lassen Sie Benutzer sich über Facebook, Twitter, G+, LinkedIn, Instagram und Vkontakte (VK.com) auf Ihrer Website registrieren und anmelden.
  • bbPress – Mit der bbPress-Erweiterung können Sie Ultimate Member wunderbar in bbPress integrieren
  • MailChimp – Ermöglichen Sie Benutzern, Ihre MailChimp-Listen zu abonnieren, wenn sie sich auf Ihrer Website anmelden, und synchronisieren Sie Benutzermetadaten mit MailChimp
  • Benutzerbewertungen – Erlauben Sie Benutzern, sich gegenseitig mit einem 5-Sterne-Bewertungs-/Bewertungssystem zu bewerten und zu bewerten
  • Verifizierte Benutzer – Fügen Sie Ihrer Website ein Benutzerverifizierungssystem hinzu, damit Benutzerkonten verifiziert werden können
  • myCRED – Mit der myCRED-Erweiterung können Sie Ultimate Member mit dem beliebten myCRED-Punkteverwaltungs-Plugin integrieren
  • Hinweise – Machen Sie Benutzer mit bedingten Hinweisen auf wichtige Informationen aufmerksam
  • Profile mit der Profilvollständigkeitserweiterung zu vervollständigen
  • Freunde – Ermöglicht es Benutzern, Freunde zu werden, indem sie Freundschaftsanfragen senden und annehmen/ablehnen

Kostenlose Erweiterungen

  • JobsBoardWP – Diese kostenlose Erweiterung integriert Ultimate Member mit dem Jobboard-Plugin JobBoardWP .
  • ForumWP – Diese kostenlose Erweiterung integriert Ultimate Member mit dem Forum-Plugin ForumWP .
  • Geschäftsbedingungen – Fügen Sie Ihren Registrierungsformularen ein Kontrollkästchen für Geschäftsbedingungen hinzu und verlangen Sie von den Benutzern, dass sie Ihren AGB zustimmen, bevor sie sich auf Ihrer Website registrieren.
  • Google reCAPTCHA – Stoppen Sie Bots auf Ihren Registrierungs- und Anmeldeformularen mit Google reCAPTCHA
  • Online-Benutzer – Zeigen Sie an, welche Benutzer mit dieser Erweiterung online sind

Thema

Unser offizielles Design wurde speziell für Websites entwickelt, die Benutzer an- und abgemeldet haben. Das Theme verfügt über eine tiefe Integration mit dem Ultimate Member-Plugin und den Erweiterungen, verschiedenen Header-Designs für eingeloggte/ausgeloggte Benutzer und funktioniert neben den Seitenerstellern Beaver Builder und Elementor.

Unsere anderen Plugins

Neben Ultimate Member haben wir noch zwei weitere Plugins: ForumWP und JobBoardWP .

ForumWP

ForumWP ist ein Forum-Plugin, das Ihrer Website ein Online-Forum hinzufügt, sodass Benutzer Themen erstellen und Antworten schreiben können. Foren sind eine großartige Möglichkeit, eine Online-Community aufzubauen und zu erweitern.

JobBoardWP

JobBoardWP ist ein Jobbörsen-Plugin, das Ihrer Website eine moderne Jobbörse hinzufügt. Zeigen Sie Stellenangebote an und ermöglichen Sie Arbeitgebern, Stellenangebote einzureichen und zu verwalten – alles vom Front-End aus.

Entwicklung * Übersetzungen

Wenn Sie ein Entwickler sind und zum Quellcode des Plugins beitragen möchten, können Sie dies über unser GitHub-Repository .

Möchten Sie Ultimate Member eine neue Sprache hinzufügen? Groß! Sie können über translate.wordpress.org .

Wenn Sie ein Entwickler sind und die Liste der UM-Hooks kennen müssen, machen Sie dies über unsere Hooks-Dokumentation .

Wenn Sie ein Entwickler sind und die Struktur unseres Codes kennen müssen, machen Sie dies über unsere Dokumentations-API .

Dokumentation & Support

Haben Sie ein Problem oder benötigen Sie Hilfe mit Ultimate Member? Besuchen Sie unsere Dokumentation und durchsuchen Sie die Wissensdatenbank. Wenn Sie keine Lösung für Ihr Problem finden, können Sie ein Thema im Support-Forum .

Screenshots

Blöcke

Dieses Plugin bietet 4 Blöcke.

  • Ultimate Member – Benutzerprofil, Benutzerregistrierung, Anmeldung und Mitgliedschafts-Plugin
  • Ultimate Member – Benutzerprofil, Benutzerregistrierung, Anmeldung und Mitgliedschafts-Plugin
  • Ultimate Member – Benutzerprofil, Benutzerregistrierung, Anmeldung und Mitgliedschafts-Plugin
  • Ultimate Member – Benutzerprofil, Benutzerregistrierung, Anmeldung und Mitgliedschafts-Plugin

FAQ

Muss ich irgendeine Codierung kennen, um dieses Plugin zu verwenden?

Reagiert Ultimate Member auf Mobilgeräte?

Ist Ultimate Member Multi-Site-kompatibel?

Funktioniert das Plugin mit jedem WordPress-Theme?

Funktioniert das Plugin mit Caching-Plugins?

Schränkt Ultimate Member den Zugriff auf wp-login.php ein, wenn das Plugin aktiv ist?

Sind Anmelde-/Registrierungsseiten für Ultimative Mitglieder erforderlich?

Mitwirkende & Entwickler

„Ultimate Member – User Profile, User Registration, Login & Membership Plugin“ ist Open-Source-Software. Die folgenden Personen haben zu diesem Plugin beigetragen.




wp-plugin-RegistrationMagic – Plugin für benutzerdefinierte Registrierungsformulare, Benutzerregistrierung und Benutzeranmeldung

Download

RegistrationMagic – Plugin für benutzerdefinierte Registrierungsformulare, Benutzerregistrierung und Benutzeranmeldung

Durch Registrationmagic Dieses Plugin ist auch auf

Deutsch verfügbar.

Hilf mit, die Übersetzung zu verbessern!

Beschreibung

Erstellen Sie benutzerdefinierte WordPress-Registrierungsformulare, erlauben Sie die Benutzerregistrierung, akzeptieren Sie Zahlungen, verfolgen Sie Einreichungen, verwalten Sie Benutzer, analysieren Sie Statistiken, weisen Sie Benutzerrollen zu, automatisieren Sie Prozesse, senden Sie Massen-E-Mails und vieles mehr. Wenn Sie einen benutzerdefinierten WordPress-Registrierungsformularprozess erstellen müssen, suchen Sie nicht weiter!

Übernehmen Sie die vollständige Kontrolle über Benutzerregistrierungen auf Ihrer Website mit einem leistungsstarken Toolkit zum Erstellen, Konfigurieren, Veröffentlichen, Verwalten, Analysieren und Automatisieren.

Also, was genau ist RegistrationMagic?

RegistrationMagic ist ein leistungsstarkes WordPress-Benutzerregistrierungs-Plugin und ein WordPress-Registrierungsformular-Builder, der Ihnen die VOLLSTÄNDIGE KONTROLLE über Benutzerregistrierungen auf Ihrer Website gibt. Sie können verschiedene WordPress-Registrierungsformulare für Ihre Benutzer mit verschiedenen vordefinierten Formularfeldern erstellen. einrichten kostenpflichtige Benutzerregistrierungen und jede Art von WordPress-Zahlungsformular erstellen. Ein Front-End-Benutzerregistrierungsbereich ermöglicht es Ihren Benutzern, sich anzumelden, das Passwort zurückzusetzen, den Zahlungstransaktionsverlauf zu überprüfen, ihre Formularübermittlungen herunterzuladen usw. Dies ist das einzige WordPress-Registrierungsformular-Plugin, das Sie jemals brauchen werden!

Beginnen Sie mit RegistrationMagic mit unserem Starter Guide.

https://www.youtube.com/embed/1AvhmIifzjg?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent

RegistrationMagic verfolgt alle eingehenden Formularübermittlungen und -aktivitäten, die von seinem Dashboard aus überwacht werden können, sodass Sie fundierte Entscheidungen über Ihre Formularoptimierungen treffen können. Sie können auch Anhänge (einzeln oder mehrere) akzeptieren und sie in einem einzigen Bereich innerhalb des Dashboards anzeigen oder herunterladen. Mit erweiterten Filtern können Sie Formularübermittlungen für ein bestimmtes Formular innerhalb eines bestimmten Zeitraums verfolgen.

Es gibt auch ein vollwertiges Benutzerverwaltungsmodul , das in RegistrationMagic integriert ist. Es geht dem Standard-WordPress-Benutzermanager einen Schritt voraus, indem es Benutzerregistrierung und Zahlungsaktivitäten mit einzelnen Benutzerkonten verbindet. Der Benutzermanager ist der zentrale Hub für das Benutzerverwaltungssystem von RegistrationMagic, das wichtige Informationen über jeden Benutzer auf einzelnen Benutzerseiten bereitstellt. Die Benutzerverwaltung bietet auch erweiterte Optionen wie das Sperren und Reaktivieren von Benutzern.

RegistrationMagic können Sie nicht nur neue Benutzerrollen sondern diese auch einfach in Ihr Anmelde- und Registrierungssystem integrieren. Sie können sogar kostenpflichtige Benutzerrollen mit dem integrierten Manager erstellen!

Die vollständige Integration mit dem Standard-Benutzer-Meta-System von WordPress bedeutet, dass Sie Ihre Formularfelder mit vorhandenen Benutzer-Meta-Schlüsseln verknüpfen oder neue direkt von Ihrem Registrierungsformular-Dashboard aus erstellen können. Daher sind nicht nur alle Registrierungsformular-Übermittlungen auf den WordPress-Benutzerseiten als Tabelle sichtbar, Sie können auch einzelne Formularfelder den Benutzerprofilfeldern zuordnen (oder von Grund auf neu erstellen)! Dies eröffnet auch eine Welt voller Möglichkeiten für Integrationen mit anderen Plugins, die WP-Benutzer-Meta verwenden.

Das integrierte Benutzer-Login-Verwaltungssystem ist robust und sicher und bietet erweiterte Konfigurationsoptionen sowohl für Anfänger als auch für professionelle Benutzer. Es müssen keine separaten Login-Management-Plugins installiert werden! Die Login-Daten fließen in den RegistrationMagic User Manager und das Sicherheitssystem ein und bieten Ihnen eine zentralisierte Ansicht von Registrierungsformularen, Login-Aktivitäten und benutzerspezifischen Daten, alles in einer schönen grafischen Ansicht. Nachfolgend finden Sie weitere Informationen zum Anmeldesystem.

Erfahren Sie hier mehr über die Funktionen von RegistrationMagic.

Nicht zufrieden mit der standardmäßigen WordPress-Registrierungsseite? Sie können die standardmäßige WordPress-Registrierungsseite definieren und durch Ihr eigenes benutzerdefiniertes Formular ersetzen. RegistrationMagic bietet Ihnen mehr Kontrolle und Flexibilität über Ihre WordPress-Registrierungsseite. Es definiert neu, was ein Login- und Registrierungs-Plugin können sollte, indem es spezialisierte Rollen von Login- und Registrierungs-Plugin kombiniert.

Einen WooCommerce-Shop betreiben? Die WooCommerce-Benutzerregistrierung ist ein weiterer Bereich, in dem sich RegistrationMagic als nützlich erweist. Wir verstehen, dass begrenzte Registrierungsoptionen in WooCommerce Sie verlangsamen können. RegistrationMagic kann Ihnen dabei helfen, die WooCommerce-Benutzerregistrierung , indem es Ihnen ermöglicht, benutzerdefinierte Felder zum Checkout-Registrierungsformular hinzuzufügen. Der Benutzer-Manager kann WooCommerce-Einnahmen, Adressen und Download-Informationen anzeigen. Sie können auch das WooCommerce-Abrechnungs- und Versandfeld zu Ihren Standardregistrierungsformularen hinzufügen.

Mit RegistrationMagic können Sie alles vom einfachen bis zum komplexen Registrierungsgenehmigungssystem . Die leistungsstarke benutzerdefinierte Statusfunktion bietet eine Option zum Erstellen eines mehrstufigen Registrierungsgenehmigungsprozesses. Automatisierungen können für einen automatisierten Registrierungsgenehmigungsmechanismus verwendet werden. Diese Funktionen ermöglichen es Ihnen, RegistrationMagic für branchenspezifische Registrierungssysteme zu verwenden, z. B. ein Anmeldeformular für WordPress-Events . Wenn Sie sich mit begrenzten Plätzen registrieren , kann Ihnen die Limits-Funktion dabei helfen, ein Anmeldeformular für WordPress-Events zu erstellen, das sowohl ein Buchungszeitfenster als auch eine Option zum Begrenzen der Anzahl von Buchungen enthält. Sie können auch Token-Nummern für jede Buchung für diese Veranstaltungsregistrierungsformulare generieren.

Ein weiteres Beispiel wäre die Verwendung als WordPress- Kursanmeldung.

Benutzerdefinierter Statusleitfaden : Das benutzerdefinierte Statussystem ermöglicht das Kombinieren mehrerer Aktionen mit einem einzigen Klick. (Genau wie Ihre eigenen Makros!) Dies ermöglicht Ihnen, Einreichungen durch einen Überprüfungsprozess zu bewegen. Jede Aktion kann den Benutzer dazu auffordern, bestimmte Anforderungen zu erfüllen. Mit erweiterten Posteingangsfiltern und gespeicherten Suchen ist es ein Kinderspiel, Einsendungen zu sortieren und zu markieren. Fehlgeschlagene Registrierungsversuche können durch verschiedene Registrierungseinstellungen geleitet werden.

Abgesehen davon ist RegistrationMagic ein ebenso leistungsstarkes Kontaktformularsystem . Intelligente Kontaktformulare sind eine der vielen einzigartigen Funktionen, die auf Fallbeispielen aus der realen Welt aufbauen. Da Registrierungs- und Kontaktformulare übersichtlich in einem einzigen Abschnitt „Alle Formulare“ angezeigt werden, erhalten Sie einen einzigen Ort, an dem Sie alle Ihre Benutzereingaben und Workflows verwalten können.

Frontend

Die Customer Journey auf Ihrer Website beginnt mit dem Anmeldeprozess. Es gibt mehrere Konfigurationseinstellungen in RegistrationMagic, um die Anmeldeerfahrung für Ihre Benutzer zu kuratieren. Dazu gehören verschiedene Arten von Limits zusammen mit granularen Zugriffskontrollen, die es ihnen ermöglichen, Benutzerrollen auszuwählen, Anmeldeformularfelder unter Verwendung voreingestellter Bedingungen anzuzeigen und auszublenden usw. Sie haben auch die vollständige Kontrolle über Umleitungen nach der Anmeldung , das Senden von E-Mail-Updates an Benutzer und sogar Hinzufügen Automatisierung zur Erledigung wiederkehrender Aufgaben. Das Anmeldeformular kann mit dem visuellen Design-Editor im Formular-Dashboard gestaltet werden, sodass Sie es an Ihr Design und Branding anpassen können.

RegistrationMagic bietet einen Shortcode für seinen eigenen Mitgliederbereich, um Konten, Zahlungen, Nachrichten und mehr zu verwalten! Der integrierte Mitgliederbereich ist wunderschön mit individuellen Registerkarten für verschiedene Arten von Informationen für die Benutzer gerendert. Mit dem MagicPopup-System von RegistrationMagic können Sie sogar den Mitgliederbereich in einem Overlay anzeigen!

Der Benutzerbereich hat auch viele Produktivitätsfunktionen. Benutzer können beispielsweise den Status ihrer Einreichungen überprüfen, ausgefüllte Formulare als PDF-Dateien herunterladen, alle von Ihnen gesendeten E-Mails finden usw., alles von einem einzigen Benutzerbereich aus, der mit einem einzigen Shortcode veröffentlicht wird. Tatsächlich ist der Benutzerbereich so aufgebaut, dass er in jedes von Ihnen verwendete WordPress-Thema passt, indem automatisch die Akzentfarben des Themas ausgewählt werden. Eine Sorge weniger!

Das Anmeldesystem

Lesen Sie unseren WordPress User Login Guide : Mit der Veröffentlichung von RegistrationMagic 4 wurde das Login-Logout-System grundlegend überarbeitet. Obwohl die Anmeldung schon immer ein integraler Bestandteil von RegistrationMagic war, war sie nicht so funktionsreich wie der Registrierungsteil. Aber jetzt, mit seinem eigenen zentralen Verwaltungsbereich, dem Anmeldeformular-Dashboard, ist es ein viel leistungsfähigeres und skalierbareres System. Sie können jetzt sowohl die Felder „Benutzername“ als auch „Passwort“ bearbeiten, einschließlich benutzerdefinierter Fehler und Labels. Sie erhalten einen mehrstufigen Anmeldevalidierungsprozess, der reCAPTCHA, IP-Filter (Premium) und Zwei-Faktor-Authentifizierung (Premium) verwendet. Wie bei anderen Formularen können Sie die visuellen Elemente des Anmeldeformulars optimieren. Wir haben vier neue benutzerdefinierte E-Mail-Vorlagen hinzugefügt, die an Anmeldeereignisse angehängt sind. Wir haben außerdem ein neues Mehrzweck-Widget für die Schaltfläche „Anmelden und Abmelden“ eingeführt. Es rendert Login-Logout-Schaltflächen basierend auf dem Login-Status des Benutzers, zeigt das Login-Formular als Popup oder Seite und wichtige Informationen über den aktuellen Benutzer an, wenn der Cursor darüber schwebt. Wir haben alle externen Integrationsdienste, die für die Anmeldung spezifisch sind, in einen einzigen Abschnitt verschoben und Login Analytics mit einer Zeitleiste für die Benutzeranmeldung darunter hinzugefügt. Die Login-Timeline bietet auch eine erweiterte Filterung. Auf Benutzerseiten im Benutzer-Manager wird jetzt eine neue Registerkarte „Anmeldung“ mit einer chronologischen Liste von Anmeldeereignissen angezeigt, die für den Benutzer spezifisch sind.

Neue Datenschutzoptionen ermöglichen es Ihnen, persönliche Benutzerdaten zu löschen, die über Formulare gesammelt wurden. RegistrationMagic lässt sich auch in das standardmäßige WordPress-System zum Exportieren und Löschen persönlicher Benutzerdaten integrieren. Darüber hinaus können Sie Ihren Kontakt- und Registrierungsformularen ein Feld für Datenschutzrichtlinien hinzufügen, wobei das Kontrollkästchen den Benutzer auffordert, es vor dem Absenden des Formulars zu akzeptieren.

Kurz gesagt, RegistrationMagic ist das fehlende Benutzerregistrierungssystem für WordPress und eine leistungsstarke Ergänzung für das Arsenal eines jeden WordPress-Administrators. Von der Erstellung jeder Art von WordPress-Anmeldeformular kann es als branchenspezifische Lösung wie das Plugin für die WordPress-Veranstaltungsregistrierung und das WordPress-Plugin für die Kursregistrierung dienen. Es kombiniert die Rolle eines leistungsstarken Login- und eines Registrierungs-Plugins.

Und das ist nicht alles! RegistrationMagic befindet sich in aktiver Entwicklung, wobei alle zwei Wochen neue Funktionen eingeführt werden. Behalten Sie das Änderungsprotokoll im Auge! Wenn Sie das Gefühl haben, dass etwas fehlt, fordern Sie einfach unser Team an und Sie werden es möglicherweise in der nächsten Version sehen.

Zahlungsformulare

Viele professionelle und geschäftliche Benutzer benötigen das Sammeln von Informationen zusammen mit Zahlungen. RegistrationMagic ist auf solche Benutzer zugeschnitten, indem es als leistungsstarkes WordPress-Zahlungsformularsystem fungiert. Mit RegistrationMagic können Sie PayPal-Formulare, Stripe-Formulare, Registrierungsformulare mit Zahlung und mehr erstellen! Die PayPal-Integration ist in die Standardversion integriert, sodass Sie sie als Standard-WordPress-Zahlungs-Plugin verwenden können. Mit erweiterten Preisoptionen in der Premium-Version wetten wir, dass es Ihnen schwer fallen wird, eine robustere Zahlungslösung zu finden!

DSGVO und Datenschutzgesetze

RegistrationMagic-Formulardaten und Übermittlungsaufzeichnungen funktionieren mit den WordPress-Tools „Persönliche Daten exportieren“ und „Persönliche Daten löschen“, sodass Sie Ihren Benutzern eine bessere Datenschutzkontrolle bieten und Ihre lokalen Datenschutzgesetze einhalten können. Eine eingebaute Option ermöglicht es Ihnen auch, bei Bedarf alle Plugin-Daten mit einem einzigen Klick aus der Datenbank zu löschen. Darüber hinaus können Sie Ihren Formularen einen Link zu Ihrer Datenschutzrichtlinie als benutzerdefiniertes Feld hinzufügen.

Hier ist ein kurzer Überblick über die Funktionen:

Formular-Manager

  • Unified User Registration Forms Manager.
  • Unbegrenzte Online-Registrierungsformulare für Benutzer.
  • Formularkarten mit Informationen auf einen Blick.
  • Schneller und einfacher Drag-and-Drop-Formularersteller.
  • Eingebautes Anmeldeformular für Benutzer.
  • Abgabezähler auf Formularkarte.
  • Standard-Formularauswahl.
  • Kurzwahlsystem für Formulare.
  • Dashboard-Widget für Einreichungen.
  • Einreichungen unter Benutzerprofile.
  • Formularkarten alphabetisch oder chronologisch sortieren.
  • Formulare duplizieren.
  • HTML-Einbettungscode für Formulare (Premium).
  • Kontrollkästchen Allgemeine Geschäftsbedingungen.
  • Benutzerdefinierte WordPress-Benutzerregistrierungs-URL.
  • Standardregisterseite.

Überblick

Die neue Übersichtsfunktion bietet eine leistungsstarke Vogelperspektive aller registrierungsbezogenen Benutzeraktivitäten auf Ihrer Website durch Diagramme und Tabellen-Widgets auf einer einzigen Seite. Diese beinhalten:
* Balkendiagramme zum Vergleich der Formularübermittlung.
* Trendformen.
* Zeitplan der letzten Einreichungen.
* Liniendiagramm der Benutzerregistrierungen.
* Liniendiagramm für Benutzeranmeldungen.
* Einreichungszähler.
* Neueste Formulare.
* Neueste Anmeldezeitleiste.
* Schneller Zugriff auf globale Einstellungen.

Allgemeine Einstellungen

  • 2 Formularstile mit 3 Layoutoptionen.
  • Möglichkeit, akzeptierte Anhangserweiterungen zu definieren (Premium).
  • Mehrere Anhänge in einem Formular zulassen.
  • Countdown für den Ablauf des Formulars über dem Formular anzeigen.
  • Definieren und ersetzen Sie die standardmäßige WordPress-Benutzerregistrierungsseite.
  • Legen Sie die Umleitung fest, nachdem sich der Benutzer angemeldet hat.
  • Einreichungsformular PDF und Kopfzeilenlogo drucken (Premium).
  • Benutzerdefinierter Text für Einreichungen PDF und Druck (Premium).
  • Zeigen Sie RegistrationMagic Floating Button, Popup Menu und Sliding Panels an.
  • Definieren Sie die Akzentfarbe von RegistrationMagic Button, Popup Menu und Sliding Panels.

Sicherheit

Sicherheitsleitfaden .

  • Google reCaptcha Support (Anmelde-Captcha für Benutzerregistrierungsformular zur Kontrolle von Spam bei der Benutzerregistrierung).
  • Formularübermittlungslimit auf einem Gerät.
  • Benutzerdefinierte Passwortbeschränkung (Premium).
  • Gesperrte IP-Adressen für den Zugriff auf das Formular (Premium).
  • Gesperrte E-Mail-Adressen für den Zugriff auf das Formular (Premium).
  • Blacklist- und Reserve-Benutzernamen (Premium).

Benutzerkonten

  • Passwort automatisch generieren.
  • Benutzername und Passwort per E-Mail an den Benutzer senden.
  • Automatische Genehmigung der WordPress-Benutzerregistrierung (Premium).

E-Mail Benachrichtigungen

  • Senden Sie eine Benachrichtigung an den Benutzer für Hinweise zur Front-End-Benutzerregistrierung (Premium).
  • Empfängerliste festlegen.
  • SMTP-Relay-Option.
  • Von Name und E-Mail.

Externe Integration

  • Social-Login-Registrierung mit Facebook-, LinkedIn-, Microsoft-, Twitter-, Instagram- und Google-Konten (Benutzerregistrierungsformular mit Front-End-Login).
  • Integration mit MailChimp (benutzerdefinierte MailChimp-Felder und MailChimp-Benutzerregistrierungsformular).
  • Integration mit MailPoet (benutzerdefinierte MailPoet-Felder und MailPoet-Benutzerregistrierungsformular).
  • Integration mit WooCommerce (benutzerdefinierte WooCommerce-Felder, WooCommerce-Benutzerregistrierungsformular * WooCommerce-Anbieterregistrierung und schwebender WooCommerce-Warenkorb).
  • Mit DropBox integrieren.
  • Integrieren Sie das NewsLetter-Plugin (benutzerdefinierte Felder für NewsLetter und Registrierungsformular für NewsLetter-Benutzer).
  • Integrieren Sie mit dem Google Maps-API-Schlüssel. (Prämie)

Zahlungen

  • PayPal-Integration. Volle Unterstützung für die Erstellung von WordPress-PayPal-Formularen.
  • Stripe-Integration (Premium).
  • Authorize.net-Integration (Premium).
  • Benutzerdefinierte PayPal-Checkout-Seite.
  • Währungsdefinition.
  • Währungsposition.

Visueller Formulareditor

  • Definieren Sie Rahmen, Rahmenbreite, Rahmenfarbe, Rahmenradius, Hintergrundfarbe, Hintergrundbild und Polsterung für das Formular.
  • Definieren Sie Rahmen, Rahmenbreite, Rahmenfarbe, Rahmenradius, Hintergrundfarbe, Hintergrundbild und Polsterung für die Eingabefelder.
  • Definieren Sie Rahmen, Rahmenbreite, Rahmenfarbe, Rahmenradius, Hintergrundfarbe, Hintergrundbildpolsterung, Schriftfarbe und Beschriftung für den Senden-Button.

Konten

  • Erstellen Sie mit jeder Übermittlung einen WordPress-Benutzer.
  • Wählen Sie eine WordPress-Benutzerrolle aus, die Benutzern automatisch zugewiesen werden soll (Premium).
  • Ermöglichen Sie dem Benutzer, aus vordefinierten Rollen auszuwählen (Premium).
  • Benutzer nach der Übermittlung automatisch anmelden.

Post-Einreichung

  • Benutzerdefinierte Erfolgsmeldung mit Seriendruck.
  • Zeigen Sie bei jeder Einreichung eine eindeutige Token-Nummer (Premium).
  • Nach Übermittlungen auf eine Seite oder URL umleiten.
  • Übermittlung von Übermittlungsdaten an eine externe URL (Premium).

Autoresponder

  • Benutzerdefinierter E-Mail-Betreff und -Text mit Seriendruck schlägt fehl.

Grenzen

  • Beschränken Sie die Benutzereingaben basierend auf Anzahl, Datum oder beidem.
  • Definieren Sie die Anzahl der zulässigen Einreichungen.
  • Legen Sie eine Frist für die Einreichung des Formulars fest.
  • Benutzerdefinierte Nachricht an den Benutzer, nachdem die Übermittlung abgeschlossen ist.

MailChimp-Registrierung

  • Wählen Sie eine Liste zum Zuordnen aus.
  • Ordnen Sie die MailChimp-Felder E-Mail, Vorname und Nachname den Feldern Ihres Benutzerregistrierungsformulars zu.
  • Ordnen Sie die erweiterten benutzerdefinierten Felder von MailChimp den Feldern Ihres Benutzerregistrierungsformulars zu (Premium).
  • Zeigen Sie ein Opt-in-Feld mit benutzerdefiniertem Text an.

Zugangskontrolle

  • Aktivieren Sie den datumsbasierten Zugriff. Definieren Sie das Alter oder eine bestimmte Zeit zwischen den Daten.
  • Passphrasenbasierter Zugriff. Geheime Frage und Passphrase definieren.
  • Benutzerrollenbasierter Zugriff. Definieren Sie Rollen, die Zugriff auf das Formular haben.
  • Benutzerdefinierte Ablehnungsnachricht.

Anmeldeformular BENUTZERDEFINIERTE FELDER

  • Alle gängigen Feldtypen werden unterstützt.
  • Spezielle benutzerdefinierte Felder (33 in Premium).
  • WordPress-Benutzerprofilfelder (Premium).
  • Feldsortierung per Drag-and-Drop.
  • Benutzerdefinierte Bezeichnung für jeden Feldtyp.
  • Benutzerdefiniertes Symbol aus über 900 Google-Symbolen.
  • Definieren Sie Symbolfarbe, Hintergrundfarbe, Hintergrundform und Transparenz.
  • Benutzerdefinierte CSS-Klasse.
  • Hilfetext als Tooltip.
  • Platzhaltertext, Länge für unterstützende Feldtypen.
  • Feld nach Bedarf definieren.
  • Feld auf der Benutzerseite im RegistrationMagic User Manager anzeigen.
  • Fügen Sie Seiten hinzu und weisen Sie ihnen benutzerdefinierte Felder zu (Premium).
  • Benennen Sie die Seiten (Premium).
  • Doppelte Felder mit einem einzigen Klick.

Übermittlung des Benutzerregistrierungsformulars

  • Submissions Manager mit Tabelle aller chronologisch erfassten Einreichungen.
  • Filtern Sie Einreichungen nach Tag, Woche, Monat, Jahr oder einem bestimmten Zeitraum (Premium).
  • Suchfelder in den Einreichungen.
  • Exportieren Sie Einreichungen als CSV (Premium).
  • Anzeigen einzelner Einreichungen.
  • Anmerkung zu Einreichungen hinzufügen (Premium).
  • Definieren Sie die Sichtbarkeit der Notiz für den Benutzer und ihre Farbe.
  • Einzelne Einreichung als PDF herunterladen (Premium).

Formularanalyse

  • Eine Tabelle mit Besucher-IP-Besuchszeit, Übermittlungsstatus, Übermittlungszeit und Informationen zur Ausfüllzeit (Formular-IP-Erfassung).
  • Verfolgen Sie die Geolokalisierung des Besuchers (Formular Standorterfassung).
  • Kreisdiagramm des Konversionsprozentsatzes der Besucher.
  • Kreisdiagramm der vom Besucher verwendeten Browser.
  • Ausfallrate in Prozent.
  • Durchschnittliche Füllzeit in Sekunden.
  • Browserweise Konversionsrate (Form Browser Capture).

Feldanalyse (Premium)

  • Kreisdiagramme unterteilt nach Optionen, die von den Benutzern in Kontrollkästchen, Optionskästchen, Dropdown- und Länderfeldern ausgewählt wurden.

Berichte

Diese Funktion bietet leistungsstarke Reporting-Tools für alle Arten von Benutzerregistrierungen, Einreichungen von Registrierungsformularen und Zahlungsformularen auf Ihrer Website. Berichte mit tabellarischen Daten können für eine genauere Analyse in Tabellenkalkulations-Apps wie Microsoft Excel importiert werden. Für jeden Bericht bietet RegistrationMagic auch visuelles Feedback durch begleitende Grafiken oder Diagramme. Hier sind die derzeit verfügbaren Berichte:

  • Formularübermittlungen: Generationenberichte für die Übermittlung von Registrierungsformularen.
  • Anmeldedatensätze: Generiert Berichte für Benutzeranmeldeereignisse.
  • Anhänge: Aufschlüsselung der empfangenen Dateien mit Datei-Upload-Feld in Formularen. (Prämie)
  • Zahlungen: Generiert Berichte für Einnahmen aus Zahlungsformularen. (Prämie)
  • Formularvergleich: Vergleicht die Leistung von zwei verschiedenen Formularen über einen bestimmten Zeitraum. (Prämie)

Angemeldete Ansicht

  • Definieren Sie, was Benutzer nach der Anmeldung auf der Anmeldeseite sehen.
  • Zeigen Sie benutzerdefinierte Begrüßungen und Nachrichten an.

Login-Umleitungen

  • Verwenden Sie allgemeine oder rollenbasierte Weiterleitungen.
  • Definieren Sie separate Umleitungen für Login Logout.

Validierung und Sicherheit

  • Definieren Sie Meldungen zu ungültigem Benutzernamen und Passwort.
  • Benachrichtigen Sie Administratoren und Kontoinhaber über fehlgeschlagene Anmeldeversuche.
  • Zeigt reCAPTCHA nach einer festgelegten Anzahl fehlgeschlagener Anmeldeversuche an.
  • Sperren Sie IP vorübergehend oder dauerhaft nach einer festgelegten Anzahl von Anmeldefehlern (Premium).

Zwei-Faktor-Authentifizierung (Premium)

  • Senden Sie Einmalpasswörter (OTP) an Benutzer nach der Überprüfung der Anmeldeinformationen.
  • Definieren Sie Parameter von OTP wie Länge, Ablauf, Typ usw.
  • Legen Sie OTP-Regenerationsregeln fest.
  • Begrenzen Sie falsche OTP-Anmeldefehler.
  • Erzwingen Sie benutzerrollenspezifische 2FA.

Login-Formular veröffentlichen

  • Veröffentlichen Sie mit nativem Shortcode.
  • Veröffentlichen Sie mit dem Anmeldeschaltflächen-Widget.
  • Veröffentlichen Sie mit dem Anmeldeformular-Widget.
  • Veröffentlichen Sie mit Overlays über das MagicPopup-System.

Externe Login-Integrationen

  • Facebook Login Registrieren (Premium).
  • Twitter Login Registrieren (Premium).
  • Windows Live-Anmeldung Registrieren (Premium).
  • Instagram (Premium).
  • Google (Premium).
  • LinkedIn (Premium).

Preisfelder

Leitfaden für Preisfelder .

  • Ein separater Manager zum Erstellen und Verwalten von Preisen für Formulare.
  • Festpreis-, Mehrfachauswahl-, Drop-Down- und benutzerdefinierte Preisoptionen (Premium).
  • Benutzerdefinierte Labels für Unterpreisoptionen (Premium).
  • Erstellen Sie ein WordPress-Formular mit Zahlungsoption.

Browser für Anhänge (Premium)

  • Ein einziger Ort zum Anzeigen und Herunterladen aller mit Formularen empfangenen Dateien.
  • Laden Sie einzelne Dateien oder alle Dateien als zip herunter.
  • Zeigen Sie Miniaturansichten von Bilddateien an.

E-Mail-Benutzer

  • Senden Sie eine E-Mail-Nachricht an alle Benutzer, die ein bestimmtes Formular gesendet haben.
  • Verwenden Sie den Seriendruck, um personalisierte Nachrichten zu versenden.
  • Siehe Warteschlangen, die gerade Nachrichten senden.
  • Zeigen Sie schnell die Anzahl der Empfänger für jedes Formular an.

Benutzer Manager

  • Benutzerverwaltung mit tabellarischer Ansicht der registrierten Benutzer oder derjenigen, die das Formular ausgefüllt haben.
  • Filtern Sie die Benutzerregistrierungen nach Tag, Woche, Monat und Jahr.
  • Filtern Sie Benutzer basierend auf ihrem Status.
  • Aktivieren oder deaktivieren Sie mehrere Benutzer.
  • Neuen hinzufügen oder bestehenden Benutzer bearbeiten.
  • Zeigen Sie benutzerdefinierte Felder an, die vom Benutzer auf der Benutzerseite ausgefüllt wurden.
  • Siehe Einsendungen einzelner Benutzer.
  • Siehe Transaktionen von einzelnen Benutzern.

Benutzerregeln

Leitfaden für Benutzerrollen .

  • Erstellen und benennen Sie benutzerdefinierte Benutzerrollen.
  • Erben Sie Berechtigungen von WP-Benutzerrollen.
  • Bezahlte Benutzerrollen (Premium).

Registrierungs-Shortcodes und Variablen

Eine Liste nützlicher Shortcodes und Variablen, die in RegistrationMagic verwendet werden .

RegistrierungMagic Translations

Bitte lesen Sie diesen Beitrag , um zu erfahren, wie RegistrationMagic in Ihre Sprache übersetzt wird.

Vielen Dank, dass Sie bis hierhin gelesen haben. Wie Sie sehen können, ist RegistrationMagic bei weitem das fortschrittlichste Plugin zum Erstellen von WordPress-Registrierungsformularen. Wenn Sie also an WordPress-Benutzerregistrierungen auf Ihrer Website interessiert sind oder einfach nur ein Zahlungsformular erstellen, sollten Sie es unbedingt ausprobieren. Wir sind zuversichtlich, dass Sie es lieben werden! Wenn Sie feststellen, dass Funktionen fehlen, die Sie benötigen, wenden Sie sich bitte an unser Support-Team. Wir werden versuchen, sie in eine zukünftige Version aufzunehmen.

Screenshots

FAQ

F: Ich sehe folgende Fehlermeldung, wenn ich das Formular besuche: „Einsendelimit für dieses Formular erreicht, bitte versuchen Sie es nach 24 Stunden erneut.“

F: Fehlermeldung „Zugriff verweigert“ beim Versuch, das Formular anzuzeigen?

F: Senden-Button funktioniert nicht/macht nichts!

F: Das Formular wird beim Absenden neu geladen und alle Felder werden geleert!

F: Wie ändere ich den Text auf der Schaltfläche „Senden“?

F: Ich möchte einen Text übersetzen, wie kann ich das tun?

F: Kann ich damit Registrierungsformulare für Frühbucher erstellen?

F: Kann ein bereits registrierter Benutzer ein Benutzerregistrierungsformular erneut einreichen?

F: Kann ich ein WordPress-Registrierungsformular mit Zahlungsfeld erstellen?

F: Kann ich PayPal mit RegistrationMagic verwenden?

F: Kann ich Stripe mit RegistrationMagic verwenden?

F: Kann ich RegistrationMagic verwenden, um Benutzer für Veranstaltungen zu registrieren?

F: Kann ich Benutzer in meine Newsletter-Liste eintragen, während sie sich registrieren?

F: Wie kann RegistrationMagic meinen WooCommerce-Onlineshop verbessern?

Mitwirkende & Entwickler

„RegistrationMagic – Custom Registration Forms, User Registration and User Login Plugin“ ist Open-Source-Software. Die folgenden Personen haben zu diesem Plugin beigetragen.




wp-plugin-benutzerdefiniertes-registrierungsformular-anmeldeformular-benutzerprofil

Benutzerregistrierung – Benutzerdefiniertes Registrierungsformular, Anmeldeformular und Benutzerprofil für WordPress

Von WPEverest Dieses Plugin wurde noch nicht auf Deutsch übersetzt.

Hilf mit, es zu übersetzen!

Beschreibung

Benutzerregistrierung – Das beste Registrierungs-Plugin für WordPress

Sind Sie ein Anfänger mit absolut null Programmierkenntnissen? Kein Problem! Mit dem Drag-and-Drop-Formular-Generator für die Benutzerregistrierung können Sie benutzerdefinierte Registrierungsformulare jeglicher Art für Ihre WordPress-Site erstellen. Entscheiden Sie sich für einfache Formulare oder erstellen Sie komplexe Formulare mit mehreren Schritten. Es hängt alles von dir ab.

Darüber hinaus enthält dieses kostenlose, leichtgewichtige und zu 100 % reaktionsschnelle Plugin ein schön gestaltetes Anmeldeformular, das Sie sofort verwenden können. Es erstellt automatisch auch ein Benutzerprofilkonto für WordPress-Benutzer.

Das Beste ist, dass es unbegrenzte Anpassungsmöglichkeiten für jedes Feld und Formular gibt. Um dies noch weiter zu erweitern, erhalten Sie Premium-Add-Ons, um zusätzliche Funktionen in Ihre Registrierungsformulare aufzunehmen. Sie haben also ein fantastisches WordPress-Benutzerregistrierungs- und Anmelde-Plugin. https://www.youtube.com/embed/zNhNvj8jPhM?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent

Alle Funktionen | Demo | Dokumentation

Probieren Sie die Benutzerregistrierung Premium aus

Hauptmerkmale der Benutzerregistrierung

  • Einfacher Drag-and-Drop-Builder: Ziehen Sie die Formularfelder einfach per Drag-and-Drop auf eine leere Tafel und erstellen Sie im Handumdrehen ein Registrierungsformular. Kein Code, keine Aufregung.
  • Benutzerdefinierte Formularfelder abgesehen von Standardbenutzerfeldern: Die Benutzerregistrierung beseitigt die Einschränkungen, die durch die Standardfelder von WordPress bei der Registrierung von Benutzern auferlegt werden. Verwenden Sie benutzerdefinierte Formularfelder wie Land, Datenschutzrichtlinie und Profilbild, um jede Art von Formular zu entwerfen, das Sie benötigen.
  • Mail-Benachrichtigungen für Benutzer: Senden Sie benutzerdefinierte E-Mail-Benachrichtigungen an Ihre Benutzer, sobald sie den Registrierungsprozess abgeschlossen haben. Darüber hinaus können Sie auch Benachrichtigungen zu Zahlungen und Änderungen an Profildetails senden.
  • Schöne Benutzerprofil-Kontoseite: Die Benutzerregistrierung erstellt automatisch ein WordPress-Benutzerprofilkonto für alle Ihre registrierten Benutzer. Noch besser ist die Tatsache, dass Sie immer noch die vollständige Kontrolle über die Anpassung dieser Seite haben.
  • Integriertes Anmeldeformular: Es ist nicht erforderlich, ein separates Anmeldeformular für Benutzer zu erstellen, da Sie ein integriertes Anmeldeformular mit der Benutzerregistrierung erhalten. Leiten Sie Ihre Benutzer einfach von der Registrierungsseite auf diese Seite um.
  • Starker Spamschutz mit Google reCaptcha und Honeypot: Blockieren Sie Spam-Angriffe wie gefälschte Benutzerregistrierung und Spam-Übermittlungen mit unserer Google reCaptcha- und Honeypot-Funktion. Aktivieren Sie einfach die Funktionen für ausgewählte Formulare in den Plugin-Einstellungen.
  • Benutzerrollen und -funktionen zuweisen: Weisen Sie beim Erstellen von Registrierungsformularen standardmäßige WordPress-Benutzerrollen wie Editor, Autor, Abonnent und mehr zu. Auf diese Weise können Sie steuern, wer Zugriff auf welche Bereiche Ihrer Website hat und welche Aktionen er ausführen kann.
  • [Premium] Mehrstufiges Formular: Lange und detaillierte Formulare können langweilig und vollgestopft aussehen. Aus diesem Grund haben wir mehrstufige Formulare erstellt, mit denen Sie lange Formulare für eine übersichtlichere und ansprechendere Präsentation in mehrere Abschnitte unterteilen können.
  • [Premium] Zahlungen per Kreditkarte und PayPal einziehen: Die Benutzerregistrierung funktioniert sowohl mit PayPal als Kreditkarten (Stripe) . Sie werden also kein Problem haben, Zahlungen von Benutzern während der Registrierung mit diesen Zahlungs-Gateways einzuziehen.
  • [Premium] Erstellen Sie einfache Inhaltsbeschränkungsregeln: die Inhaltsbeschränkung für Beiträge, Seiten und Kategorien mit dem Premium-Inhaltsbeschränkungs-Addon. Sie können auch erweiterte benutzerdefinierte Inhaltszugriffsregeln basierend auf Rollen, Fähigkeiten, Benutzerstatus und mehr erstellen.
  • [Premium] Registrieren Sie Benutzer mit einem Social-Profil-Konto: Ihre Benutzer können sich jetzt direkt registrieren und anmelden, indem sie ihre bestehenden Social-Media-Konten auf Facebook, Twitter, LinkedIn und Google verwenden. Die Daten aus dem bei der Registrierung verwendeten Social Account werden dann in das entsprechende Nutzerprofil importiert.
  • [Premium] WooCommerce-Integration: Integrieren Sie WooCommerce mit unserem Plugin und fügen Sie WooCommerce-Versand-/Rechnungsadressenfelder zu Ihren Benutzerregistrierungsformularen hinzu.
  • [Premium] Geolokalisierungsdaten für Benutzer sammeln: Mit diesem Premium-Addon können Sie die Geolokalisierungsdaten von Benutzern sammeln und speichern, die sich auf Ihrer Website registrieren. Und es ist ziemlich einfach, wenn Sie Felder wie Land, Stadt und Postleitzahl haben.
  • [Premium] LearnDash-Integration: Durch die Integration von LearnDash in die Benutzerregistrierung können Sie Ihrem Registrierungsformular ein LearnDash-Kursfeld hinzufügen. Dadurch werden die Benutzer automatisch in ihren angegebenen LearnDash-Kurs eingeschrieben.
  • [Premium] Sichtbarkeit der Felder festlegen: Blenden Sie bestimmte Benutzerregistrierungsfelder in den veröffentlichten Formularen und auf der Benutzerprofilseite aus. Sie können entscheiden, ob das Feld im Registrierungsformular oder in den Profildetails oder in beiden sichtbar ist.
  • [Premium] Benutzer importieren: Mit dem Plugin zur Benutzerregistrierung können Sie Benutzer in jedes Registrierungsformular auf Ihrer WordPress-Website importieren. Laden Sie einfach die CSV-Datei mit Benutzerinformationen hoch und ordnen Sie sie dem Registrierungsformular Ihrer Wahl zu.
  • [Premium] Registrierungsformulare mit über 1000 Diensten über Zapier verbinden: Zapier leitet Informationen an alle Anwendungen weiter, mit denen Ihre Registrierungsformulare verbunden sind. Dies hilft Ihnen, Zeit zu sparen, indem Sie Aufgaben wie das Sammeln von Formularantworten, das Senden von Texten und Erinnerungen automatisieren.
  • [Premium] Integrationen mit E-Mail-Marketing-Services: Fördern Sie Ihr Unternehmen mit den richtigen E-Mail-Marketing-Tools wie MailChimp und MailerLite . Durch die Integration in die Benutzerregistrierung werden alle Ihre registrierten Benutzer direkt zu Abonnentenlisten hinzugefügt.
  • [Premium] Drag-and-Drop-Upload mehrerer Dateien: Die Funktion zum Hochladen mehrerer Dateien ist perfekt, wenn Sie mehr als ein Dokument oder eine Bilddatei sammeln müssen. Sie müssen nur das maximale Datei-Upload-Limit in den Feldoptionen festlegen.
  • [Premium] Intelligente Bedingungslogik: Jetzt können Sie Registrierungsformulare für Benutzer personalisieren und sie mit Bedingungslogik interaktiver gestalten. Zeigen Sie verschiedene benutzerspezifische Felder basierend auf ihren vorherigen Eingaben an.

Die Benutzerregistrierung hat alle Formularfelder, die Sie jemals brauchen werden:

Formularfelder im kostenlosen Plugin
* Vorname
* Nachname
* Email
* Bestätigungs-E-Mail
* Passwort
* Passwort bestätigen
* Nutzername
* Spitzname
* Webseite
* Anzeigename
* Benutzerbiografie
* Eingabefeld
* Passwortfeld
* Alternative Email
* Auswählen
* Land
* Textbereich
* Nummer
* Datum
* Kontrollkästchen
* Datenschutz-Bestimmungen
* Radio

Erweiterte Formularfeldoptionen in Pro
* Abschnittsüberschrift
*HTML
* Zeitauswahl
* Telefon
*WYSIWYG
* Wählen Sie 2
* Mehrfachauswahl
* Profilbild
* Einzelexemplar
* Stripe-Gateway

Was zeichnet die Benutzerregistrierung aus?

Hier ist ein kurzer Blick auf die Funktionen, die die Benutzerregistrierung zu einem der besten WordPress-Plugins für die Benutzerregistrierung und -anmeldung machen.

  • [Premium] Benutzerregistrierungsdaten in Grafiken und Diagrammen: Erhalten Sie genaue Statistiken zu jedem Benutzerregistrierungsformular durch Grafiken und Diagramme. Sie können die gesamten, genehmigten, abgelehnten und ausstehenden Registrierungen anzeigen, die Ihre Website an einem Tag, einer Woche, einem Monat oder in einem bestimmten Zeitraum erhält.
  • [Premium] Live Form Designer Tool: Möglicherweise finden Sie die Standardformularvorlage etwas langweilig. Die Benutzerregistrierung bietet Ihnen also einen Live-Formulardesigner, mit dem Sie Formularelemente wie Feldstile, Formular-Wrapper und Schaltflächenstile anpassen können, ohne Code schreiben zu müssen.
  • [Premium] für die Registrierung: Die Benutzerregistrierung ermöglicht den Zugriff auf die Registrierungsseite nur für Benutzer mit einem Einladungscode. Sie können entweder selbst einen Code erstellen oder zufällige Codes generieren
  • Einfaches Importieren und Exportieren von Formularen: Wenn Sie mehrere Websites besitzen, müssen Sie nicht jedes Mal Registrierungsformulare von Grund auf neu erstellen. Sie können Zeit sparen, indem Sie Formulare als JSON-Dateien exportieren und importieren, die auch Formulareinstellungen enthalten.
  • [Premium] Front-End-Listing: Wenn Sie alle Ihre registrierten Benutzer auf Ihrer Website anzeigen möchten, ist das Front-End-Listing-Addon Ihre Antwort. Benutzer und Gäste können von dieser Frontend-Liste aus individuelle Profile Ihrer Benutzer anzeigen.
  • [Premium] Mein Konto anpassen: Verwalten Sie die integrierte Seite „Mein Konto“, indem Sie benutzerdefinierte Registerkarten hinzufügen sowie Standardregisterkarten bearbeiten und löschen. Die Benutzerregistrierung ermöglicht Ihnen auch, Designelemente der Seite wie Farbe, Schaltflächen, Navigation und mehr zu bearbeiten.

Für wen ist die Benutzerregistrierung?

  • Schulen und Universitäten
  • E-Commerce-Websites
  • Geschäftsagenturen
  • Online-Magazine
  • Gemeinnützige Organisationen
  • Online-Zertifizierungsprogramme
  • Konferenz- und Seminarveranstalter
  • Werkstätten
  • Restaurants
  • Organisatoren von Sportveranstaltungen
  • Regierungsbüros
  • Websites von Jobbörsen
  • Foren
  • Medizinische Einrichtungen
  • Blogger
  • Fitness- und Yogastudios

Erstellen Sie verschiedene Registrierungsformulartypen ohne Programmierkenntnisse

  • Mitarbeiterregistrierung
  • Veranstaltungsanmeldung
  • Jobseeker-Registrierung
  • Terminformular
  • Antragsformular dokumentieren
  • Soziale Registrierung
  • Studentenanmeldung
  • WooCommerce-Registrierung
  • Registrierung in mehreren Schritten
  • Kursanmeldung

Alle Funktionen des WordPress-Benutzerregistrierungs-Plugins

  • Formularfelder, mit denen Sie jede Art von Registrierungsformular erstellen können.
    • Benutzerdefinierte Formularfelder zusammen mit Standard-WordPress-Feldern
    • Mehrspaltiges Layout verfügbar
    • Leicht anpassbar mit Formularoptionen
  • Drag-and-Drop-Formularersteller
    • 4 vorgefertigte Formularvorlagen neben Standard
    • Benutzerfreundliches Bedienfeld
    • Leicht verständliche Formulareinstellungen
  • Erstellen Sie benutzerdefinierte E-Mail-Vorlagen
  • Anpassbare E-Mail-Benachrichtigungen:
    • Warten auf Admin-Genehmigung
    • Email Bestätigung
    • Registrierung genehmigte E-Mail
    • Registrierung verweigert E-Mail
    • E-Mail-Passwort zurücksetzen und mehr
  • Weisen Sie Benutzerrollen bei der Registrierung zu
  • erleichtert die WordPress-Benutzerverwaltung
  • Verhindern Sie den Dashboard-Zugriff auf bestimmte Benutzerrollen
  • Aktivieren Sie starke Passwörter
  • Eingebautes Login-Formular
  • Anmeldemöglichkeiten nach Registrierung:
    • Manueller Login nach Registrierung
    • E-Mail-Bestätigung zum Anmelden
    • Automatische Anmeldung nach Registrierung
    • Admin-Genehmigung nach Registrierung
  • Weiterleitung zu einer beliebigen Seite oder URL nach dem Absenden des Registrierungsformulars
  • Passwortfunktion beim Eingeben des Passworts ausblenden/anzeigen
  • Captcha zum Schutz vor Spam
    • reCaptcha v2
    • reCaptcha v2 Unsichtbar
    • reCaptcha v3
    • hCaptcha
  • Honeypot-Spamschutz
  • Erlauben Sie nur die Registrierung von E-Mail-Domains auf der Whitelist
  • Überprüfen Sie die Benutzerregistrierungsstatistiken im Plugin-Dashboard
  • Core-Login verhindern
  • Übersetzung bereit
  • Registrieren Sie Benutzer über Einladungscodes
    • Importieren/Exportieren Sie Einladungscodes über mehrere Websites hinweg
    • Legen Sie Benutzerlimit, Ablaufdatum und Benutzerrolle fest
  • Bearbeitbare Front-End-Nachrichten
  • DSGVO-konforme Formulare
  • Passwort automatisch generieren
  • Benutzern erlauben, ihr Konto zu löschen
  • Live-Formulardesign mit dem Style Customizer-Addon
  • Seite Mein Konto
    • Front-End-Benutzerprofilseiten für jeden angemeldeten Benutzer
    • Anpassbare Kontoregisterkarten
  • Formulare und Benutzer importieren/exportieren
  • Soziale Registrierung und Anmeldung
  • Teilen Sie lange Formulare in mehrteilige Formulare auf
  • Legen Sie benutzerdefinierte Inhaltsbeschränkungsregeln fest
  • Dateifeld für Dokumente, Bilder und mehr hochladen
    • Option zum Hochladen einzelner oder mehrerer Dateien
    • Datei-Uploads löschen oder ersetzen
    • Legen Sie gültige Dateitypen fest
    • Legen Sie die maximale Dateigröße fest
  • E-Mail-Marketing mit MailChimp und MailerLite
  • Formulardaten als PDF exportieren
  • Sammeln Sie Geolokalisierungsinformationen von Benutzern
  • Akzeptieren Sie Zahlungen mit Stripe und PayPal
  • Verbinden Sie Benutzer aus anderen Formularen mit Benutzerregistrierungsformularen
  • Alle Benutzer im Frontend auflisten
  • Bedingte Logik für interaktive Formulare
  • LearnDash-Integration
  • WooCommerce-Integration

Machen Sie sich mit unseren Tutorials mit der Benutzerregistrierung vertraut

Screenshots

Blöcke

Dieses Plugin bietet 1 Block.

  • Benutzerregistrierung – Benutzerdefiniertes Registrierungsformular, Anmeldeformular und Benutzerprofil für WordPress

FAQ

Benötige ich Programmierkenntnisse, um das Benutzerregistrierungs-Plugin zu verwenden?

Funktioniert das Plugin mit beliebigen WordPress-Themes?

Wie kann der Administrator auf die Daten registrierter Benutzer zugreifen?

Kann ein Benutzer seine Profilinformationen nach der Registrierung bearbeiten?

Enthält das Plugin auch ein Anmeldeformular?

Mitwirkende & Entwickler

„Benutzerregistrierung – Benutzerdefiniertes Registrierungsformular, Anmeldeformular und Benutzerprofil für WordPress“ ist Open-Source-Software. Die folgenden Personen haben zu diesem Plugin beigetragen.




wp-plugin-Custom-loginwp

LoginWP (ehemals Peter’s Login Redirect)

LoginWP -Team Dieses Plugin ist auch auf

Deutsch verfügbar.

Hilf mit, die Übersetzung zu verbessern!

Beschreibung

Mit LoginWP (ehemals Peter’s Login Redirect) können Sie eine Reihe von Umleitungsregeln für bestimmte Benutzer, Benutzer mit bestimmten Rollen, Benutzer mit bestimmten Fähigkeiten und eine pauschale Regel für alle anderen Benutzer definieren. Legen Sie außerdem eine Umleitungs-URL für die Nachregistrierung fest.

Sie können die folgenden Platzhalter in Ihren URLs verwenden, damit das System bei jeder Anmeldung eine dynamische URL erstellt: {{username}} , {{user_slug}} , {{website_url}} .

Upgrade auf LoginWP PRO durch, um Benutzer nach der Anmeldung mithilfe der {{current_page}} und {{ previous_page}} Platzhalter Mehr erfahren

Sie können bei Bedarf Ihre eigene Codelogik vor und zwischen den normalen Umleitungsprüfungen des Plugins hinzufügen. Siehe unsere Dokumentation . Einige Beispiele sind: Umleitung des Benutzers basierend auf seiner IP-Adresse und Umleitung von Benutzern auf eine spezielle Seite bei der ersten Anmeldung.

Webseite | Dokumentation | Die Unterstützung

Pro-Integrationen

Dies ist die Lite-Version, die mit der standardmäßigen WordPress-Anmeldeseite und eingeschränkten anderen Benutzerregistrierungs- und Anmeldeformular-Plugins funktioniert. Führen Sie ein Upgrade auf Pro durch, um die Unterstützung für die folgenden Plugins in Anspruch zu nehmen.

Was kommt als nächstes

Wenn Ihnen dieses Plugin gefällt, sollten Sie sich unsere anderen Produkte ansehen:

  • ProfilePress – Die perfekte Benutzerregistrierung, Anmeldeformular, Benutzerprofil & Mitgliedschafts-Plugin.
  • MailOptin – Erstellen Sie Popups und Opt-in-Formulare zum Erfassen von E-Mail-Newsletter-Abonnenten. Integriert mit Mailchimp, ConvertKit, Infusionsoft, ActiveCampaign, Campaign Monitor, Constant Contact und mehr.

Screenshots

FAQ

besuchen Sie bitte die Plugin-Seite .

Login-Umleitungen funktionieren nicht? Dieses Plugin verwendet den standardmäßigen login_redirect-Hook von WordPress. Die übliche Ursache für Probleme ist, dass ein anderes Plugin den Hook zuerst verwendet oder es ein benutzerdefiniertes Anmeldeformular gibt, das nicht einmal die standardmäßigen WordPress-Anmeldefunktionen durchläuft.

Mitwirkende & Entwickler

„LoginWP (Formerly Peter’s Login Redirect)“ ist Open-Source-Software. Die folgenden Personen haben zu diesem Plugin beigetragen.




wp-plugin-Custom Login Page Customizer von Colorlib

Custom Login Page Customizer von Colorlib

Von Colorlib Dieses Plugin wurde noch nicht auf Deutsch übersetzt.

Hilf mit, es zu übersetzen!

Beschreibung

Custom Login Page Customizer von Colorlib ist ein fantastisches und intuitives Login-Seiten-Plugin, mit dem Sie Ihre Login-Seite und Ihr Login-Formular direkt aus dem Customizer heraus personalisieren können. Custom Login Page Customizer unterstützt die Live Customizer-Funktion vollständig und Sie können alle Änderungen in Echtzeit auf Ihrer Anmeldeseite sehen und bearbeiten.

Alle Tools und Optionen dieses Plugins finden Sie unter Darstellung > Anpassen > Anpassung der benutzerdefinierten Anmeldeseite. Dort haben Sie Vorlagen, die Sie auf Ihrer Anmeldeseite verwenden können, ein benutzerdefiniertes Logo der Anmeldeseite, benutzerdefinierte Hintergrundoptionen für die Anmeldeseite, benutzerdefinierte Anpassungen des Anmeldeseitenformulars, benutzerdefinierte Breite des Anmeldeformulars, Polsterung und Rahmen des Anmeldeformulars und vieles mehr, was dazu führt, dass Sie ein brandneues haben und benutzerdefinierte Anmeldeseite.

Custom Login Page Customizer ist ohne Zweifel eines der am einfachsten zu verwendenden WordPress-Plugins, das die Anpassung der Anmeldeseite und des Anmeldeformulars ermöglicht. Es wurde so konzipiert und entwickelt, dass es leistungsstark und benutzerfreundlich ist, sodass es sowohl von Anfängern als auch von fortgeschrittenen Entwicklern genutzt werden kann. Mit Custom Login Page Customizer können Sie im Gegensatz zu einigen anderen Login-Customizer-Plugins in Sekundenschnelle eine benutzerdefinierte Anmeldeseite und ein benutzerdefiniertes Anmeldeformular erstellen. Custom Login Page Customizer markiert das Ende einer langweiligen und langweiligen Anmeldeseite und eines Anmeldeformulars, da Sie jeden Aspekt des Formulars an Ihren Stil und Ihre Ansicht anpassen und eine einzigartige und benutzerdefinierte Anmeldeseite erstellen können.

Erstellen und personalisieren Sie Ihre WordPress-Anmeldeseite und Ihr Anmeldeformular von Anfang bis Ende. Custom Login Page Customizer hat die folgenden Funktionen:

• Benutzerdefinierte Logooptionen für die Anmeldeseite: Sie können ein benutzerdefiniertes Logo für die Anmeldeseite hinzufügen und dessen Höhe und Gewicht festlegen.
• Benutzerdefinierte Optionen für den Hintergrund der Anmeldeseite und des Anmeldeformulars: Hier können Sie ein Hintergrundbild hochladen oder die Farbe des Hintergrunds ändern.
• Optionen für benutzerdefinierte Anmeldeformulare: Sie können die Breite und Höhe des Anmeldeformulars ändern, ein Hintergrundbild hinzufügen, die Hintergrundfarbe ändern, Auffüllungen und Rahmen hinzufügen und die Feldhintergrundfarbe, -breite und -ränder des Anmeldeformulars ändern.
• Verschiedenes: Hier finden Sie die Optionen zum Ändern des Hintergrunds, der Farbe, des Hover-Status, des Rahmens, des Schattens sowie der Farbe des Links und der Hover-Farbe der Anmeldeformular-Schaltfläche.

Detaillierte Funktionen des Custom Login Page Customizer von Colorlib:

  • Benutzerdefinierte Anmeldeseitenvorlagen
  • Anmeldelogo auf der Anmeldeseite ausblenden/anzeigen
  • Anzeigen/Ausblenden des Logo-Textes auf der Anmeldeseite
  • Benutzerdefiniertes Logo auf der Anmeldeseite
  • Ändern Sie die Logobreite auf der Anmeldeseite
  • Ändern Sie die Logohöhe auf der Anmeldeseite
  • Ändern Sie die Anzahl der Spalten auf Ihrer Anmeldeseite
  • Passen Sie die Breite der Spalten auf Ihrer Anmeldeseite an
  • Spaltenausrichtung des Anmeldeformulars ändern
  • Passen Sie die vertikale Ausrichtung des Anmeldeformulars an
  • Passen Sie die horizontale Ausrichtung des Anmeldeformulars an
  • Passen Sie die Hintergrundfarbe auf der Anmeldeseite an
  • Fügen Sie auf der Anmeldeseite ein benutzerdefiniertes Hintergrundbild hinzu
  • Passen Sie die Hintergrundfarbe der Anmeldeformularspalte an
  • Fügen Sie ein benutzerdefiniertes Hintergrundbild für die Anmeldeformularspalte hinzu
  • Passen Sie die Breite des Anmeldeformulars an
  • Passen Sie die Breite des Anmeldeformulars an
  • Fügen Sie ein benutzerdefiniertes Hintergrundbild für das Anmeldeformular hinzu
  • Passen Sie die Hintergrundfarbe für das Anmeldeformular an
  • Passen Sie den Randradius des Anmeldeformulars an
  • Passen Sie die Breite der Anmeldeformularfelder an
  • Passen Sie den Rand der Anmeldeformularfelder an
  • Passen Sie den Rand der Anmeldeformularfelder an
  • Passen Sie den Randradius der Anmeldeformularfelder an
  • Passen Sie die Hintergrundfarbe der Anmeldeformularfelder an
  • Passen Sie die Textfarbe der Anmeldeformularfelder an
  • Passen Sie die Beschriftungsfarbe der Anmeldeformularfelder an
  • Passen Sie das Benutzernamenetikett des Anmeldeformulars an
  • Passen Sie das Passwortetikett für das Anmeldeformular an
  • Ein-/Ausblenden der Links auf der Anmeldeseite unter dem Anmeldeformular
  • Passen Sie die Hintergrundfarbe der Anmeldeformularschaltfläche an
  • Passen Sie die Hintergrundfarbe des Hover-Hover-Buttons für das Anmeldeformular an
  • Passen Sie die Randfarbe der Anmeldeformularschaltfläche an
  • Passen Sie die Randfarbe der Anmeldeformularschaltfläche beim Hover an
  • Passen Sie den Schatten der Anmeldeformular-Schaltfläche an
  • Passen Sie den Textschatten der Anmeldeformularschaltfläche an
  • Passen Sie die Farbe der Anmeldeformular-Links an
  • Passen Sie die Farbe der Anmeldeformular-Links beim Hover an
  • Verbergen/Anzeigen ‚Erinnerst du dich an mich?‘ Option im Anmeldeformular
  • Benutzerdefinierte CSS-Option zur weiteren Anpassung des Anmeldeformulars und der Anmeldeseite

Erstellen und personalisieren Sie Ihr WordPress-Anmeldeformular von Anfang bis Ende. Colorlib Login Customizer hat die folgenden Funktionen:

  • Logo-Optionen: Sie können ein benutzerdefiniertes Logo hinzufügen und dessen Höhe und Gewicht festlegen.
  • Hintergrundoptionen: Hier können Sie ein Hintergrundbild hochladen oder die Hintergrundfarbe ändern.
  • Formularoptionen: Sie können die Breite und Höhe des Formulars ändern, ein Hintergrundbild hinzufügen, die Hintergrundfarbe ändern, Auffüllungen und Rahmen hinzufügen und die Hintergrundfarbe, Breite und den Rand des Formularfelds ändern.
  • Verschiedenes: Hier finden Sie die Optionen zum Ändern des Hintergrunds, der Farbe, des Hover-Status, des Rahmens, des Schattens sowie der Farbe des Links und der Hover-Farbe der Schaltfläche.

Weiterführende Lektüre

Dieses Plugin wird von Colorlib entwickelt und gepflegt. Was für seine kostenlosen WordPress-Themes bekannt ist. Jetzt möchten sie jedoch ihre Präsenz in der Plugin-Entwicklung ausbauen und glauben, dass Colorlib Login Customizer ein guter Einstieg ist.

Wenn Sie neu bei WordPress sind und mehr erfahren möchten, sind Sie bei uns genau richtig. Colorlib zeigt Ihnen, wie Sie einen Blog starten oder eine Website erstellen und vieles mehr. Wenn Sie bereits mit WordPress vertraut sind, möchten Sie wahrscheinlich lernen, wie Sie es schneller und zuverlässiger machen können. Dann sollten Sie sich mit Hosting und insbesondere mit WordPress-Hosting befassen .

Wenn Sie den Colorlib Login Customizer für WordPress gerne verwenden, hinterlassen Sie bitte ein positives Feedback . Wir sind bestrebt, es zum besten Login Customizer-Plugin für WordPress zu machen.

Screenshots

Mitwirkende & Entwickler

„Custom Login Page Customizer by Colorlib“ ist Open-Source-Software. Die folgenden Personen haben zu diesem Plugin beigetragen.