{"id":21349,"date":"2026-05-23T17:41:03","date_gmt":"2026-05-23T15:41:03","guid":{"rendered":"https:\/\/www.drugshortage.ch\/?page_id=21349"},"modified":"2026-05-27T15:38:23","modified_gmt":"2026-05-27T13:38:23","slug":"abo-registrierung","status":"publish","type":"page","link":"https:\/\/www.drugshortage.ch\/index.php\/abo-registrierung\/","title":{"rendered":"Abo Registrierung"},"content":{"rendered":"\n<!-- Slug: medikament-abo -->\n<style>\n  #abo-outer { width:100%; max-width:600px; margin:0 auto; box-sizing:border-box; font-family:'Segoe UI',Arial,sans-serif; font-size:14px; color:#2d3748; }\n\n  .abo-card { background:#fff; border:1px solid #e2e8f0; border-radius:12px; padding:32px; box-shadow:0 2px 8px rgba(0,0,0,.07); }\n  .abo-title { font-size:22px; font-weight:700; color:#2d3748; margin-bottom:6px; }\n  .abo-subtitle { font-size:13px; color:#718096; margin-bottom:24px; }\n\n  .abo-tabs { display:flex; gap:0; margin-bottom:24px; border-bottom:2px solid #e2e8f0; }\n  .abo-tab { padding:10px 20px; cursor:pointer; font-weight:600; color:#718096; border-bottom:3px solid transparent; margin-bottom:-2px; transition:all .2s; }\n  .abo-tab.aktiv { color:#e53e3e; border-bottom-color:#e53e3e; }\n\n  .abo-panel { display:none; }\n  .abo-panel.aktiv { display:block; }\n\n  .abo-field { margin-bottom:16px; }\n  .abo-label { display:block; font-size:13px; font-weight:600; color:#4a5568; margin-bottom:6px; }\n  .abo-pflicht { color:#e53e3e; margin-left:3px; }\n  .abo-optional { font-size:11px; font-weight:400; color:#a0aec0; margin-left:4px; }\n  .abo-input { width:100%; padding:10px 12px; border:1px solid #e2e8f0; border-radius:8px; font-size:14px; box-sizing:border-box; outline:none; transition:border-color .2s; }\n  .abo-input:focus { border-color:#e53e3e; box-shadow:0 0 0 3px rgba(229,62,62,.1); }\n  .abo-input.error { border-color:#e53e3e; background:#fff5f5; }\n\n  \/* Datenschutz *\/\n  .abo-disclaimer { background:#fff5f5; border:1px solid #feb2b2; border-radius:8px; padding:14px 16px; font-size:12px; color:#742a2a; line-height:1.7; margin-bottom:16px; max-height:180px; overflow-y:auto; }\n  .abo-checkbox-wrap { display:flex; align-items:flex-start; gap:10px; margin-bottom:16px; }\n  .abo-checkbox { width:18px; height:18px; margin-top:2px; cursor:pointer; flex-shrink:0; }\n  .abo-checkbox-label { font-size:13px; color:#4a5568; cursor:pointer; }\n\n  .abo-btn { width:100%; padding:13px; background:#e53e3e; color:#fff; border:none; border-radius:8px; font-size:15px; font-weight:700; cursor:pointer; transition:background .2s; }\n  .abo-btn:hover { background:#c53030; }\n  .abo-btn:disabled { background:#a0aec0; cursor:not-allowed; }\n\n  .abo-meldung { display:none; margin-top:16px; padding:14px 16px; border-radius:8px; font-size:14px; font-weight:600; }\n  .abo-meldung.success { background:#f0fff4; border:1px solid #9ae6b4; color:#276749; }\n  .abo-meldung.error   { background:#fff5f5; border:1px solid #feb2b2; color:#c53030; }\n\n  .abo-spinner { display:inline-block; width:16px; height:16px; border:2px solid #fff; border-top-color:transparent; border-radius:50%; animation:abospin .7s linear infinite; vertical-align:middle; margin-right:6px; }\n  @keyframes abospin { to { transform:rotate(360deg); } }\n<\/style>\n\n<div id=\"abo-outer\">\n  <div class=\"abo-card\">\n    <div class=\"abo-title\">&#x1f514; Medikamenten-Benachrichtigung<\/div>\n    <div class=\"abo-subtitle\">Erhalten Sie eine E-Mail wenn ein Lieferengpass f\u00fcr Ihre Medikamente gemeldet wird.<\/div>\n\n    <div class=\"abo-tabs\">\n      <div class=\"abo-tab aktiv\" onclick=\"aboTab('registrieren')\">Neu registrieren<\/div>\n      <div class=\"abo-tab\" onclick=\"aboTab('login')\">Bereits registriert<\/div>\n    <\/div>\n\n    <!-- Registrierung -->\n    <div id=\"abo-panel-registrieren\" class=\"abo-panel aktiv\">\n      <div class=\"abo-field\">\n        <label class=\"abo-label\">E-Mail-Adresse <span class=\"abo-pflicht\">*<\/span><\/label>\n        <input type=\"email\" id=\"reg-email\" class=\"abo-input\" placeholder=\"ihre@email.ch\">\n      <\/div>\n      <div class=\"abo-field\">\n        <label class=\"abo-label\">Telefon <span class=\"abo-optional\">(optional)<\/span><\/label>\n        <input type=\"tel\" id=\"reg-tel\" class=\"abo-input\" placeholder=\"+41 79 000 00 00\">\n      <\/div>\n\n      <div class=\"abo-disclaimer\">\n        <strong>&#x26a0;&#xfe0f; Datenschutz-Hinweis<\/strong><br><br>\n        F\u00fcr diesen Service speichern wir Ihre E-Mail-Adresse, optional Ihre Telefonnummer\n        sowie die GTIN-Codes Ihrer abonnierten Medikamente.<br><br>\n        <strong>Bitte beachten Sie:<\/strong><br>\n        \u2022 Die \u00dcbertragung erfolgt verschl\u00fcsselt (HTTPS)<br>\n        \u2022 Die Daten werden auf einem Schweizer Server gespeichert<br>\n        \u2022 Es werden keine Daten an Dritte weitergegeben<br>\n        \u2022 <strong>Das Schutzniveau entspricht nicht dem eines zertifizierten Gesundheitsdatendienstes<\/strong><br>\n        \u2022 Medikamentendaten k\u00f6nnen R\u00fcckschl\u00fcsse auf Ihren Gesundheitszustand erm\u00f6glichen \u2013\n          bitte w\u00e4gen Sie dies sorgf\u00e4ltig ab<br>\n        \u2022 Sie k\u00f6nnen Ihren Account jederzeit selbst deaktivieren und alle Daten l\u00f6schen<br>\n        \u2022 Bei Deaktivierung werden alle Ihre Daten sofort und unwiderruflich gel\u00f6scht<br><br>\n        Dieser Service dient nur zur Information \u00fcber Lieferengp\u00e4sse.\n        Es handelt sich um keine medizinische Beratung.\n      <\/div>\n\n      <div class=\"abo-checkbox-wrap\">\n        <input type=\"checkbox\" id=\"reg-datenschutz\" class=\"abo-checkbox\">\n        <label for=\"reg-datenschutz\" class=\"abo-checkbox-label\">\n          Ich habe den Datenschutz-Hinweis gelesen und akzeptiere die Bedingungen.\n        <\/label>\n      <\/div>\n\n      <!-- Honeypot: f\u00fcr Menschen unsichtbar, Bots f\u00fcllen es aus -->\n      <div style=\"display:none;\">\n        <input type=\"text\" id=\"reg-website\" name=\"website\" tabindex=\"-1\" autocomplete=\"off\">\n      <\/div>\n\n      <button class=\"abo-btn\" onclick=\"aboRegistrieren()\">Registrieren &#038; Login-Link erhalten<\/button>\n      <div class=\"abo-meldung\" id=\"reg-meldung\"><\/div>\n    <\/div>\n\n    <!-- Login -->\n    <div id=\"abo-panel-login\" class=\"abo-panel\">\n      <p style=\"color:#718096;font-size:13px;margin-bottom:16px;\">\n        Geben Sie Ihre E-Mail-Adresse ein. Wir senden Ihnen einen Login-Link.\n      <\/p>\n      <div class=\"abo-field\">\n        <label class=\"abo-label\">E-Mail-Adresse <span class=\"abo-pflicht\">*<\/span><\/label>\n        <input type=\"email\" id=\"login-email\" class=\"abo-input\" placeholder=\"ihre@email.ch\">\n      <\/div>\n      <button class=\"abo-btn\" onclick=\"aboLogin()\">Login-Link anfordern<\/button>\n      <div class=\"abo-meldung\" id=\"login-meldung\"><\/div>\n    <\/div>\n\n  <\/div>\n<\/div>\n\n<script>\nconst ABO_BASE = \"https:\/\/www.drugshortage.ch\";\nconst ABO_API  = ABO_BASE + \"\/api\/api_abo_registrierung.php\";\nlet aboFormularZeit = Math.floor(Date.now() \/ 1000); \/\/ Zeitstempel beim Laden\n\nfunction aboTab(tab) {\n  document.querySelectorAll('.abo-tab').forEach(function(t) { t.classList.remove('aktiv'); });\n  document.querySelectorAll('.abo-panel').forEach(function(p) { p.classList.remove('aktiv'); });\n  document.querySelector('[onclick=\"aboTab(\\'' + tab + '\\')\"]').classList.add('aktiv');\n  document.getElementById('abo-panel-' + tab).classList.add('aktiv');\n}\n\nasync function aboRegistrieren() {\n  const email = document.getElementById('reg-email').value.trim();\n  const tel   = document.getElementById('reg-tel').value.trim();\n  const ds    = document.getElementById('reg-datenschutz').checked;\n  const msg   = document.getElementById('reg-meldung');\n\n  if (!email || !\/\\S+@\\S+\\.\\S+\/.test(email)) {\n    zeigeMeldung(msg, 'error', 'Bitte eine g\u00fcltige E-Mail-Adresse eingeben.'); return;\n  }\n  if (!ds) {\n    zeigeMeldung(msg, 'error', 'Bitte den Datenschutz-Hinweis akzeptieren.'); return;\n  }\n\n  try {\n    const res = await fetch(ABO_API + \"?action=registrieren\", {\n      method: 'POST', headers: {'Content-Type': 'application\/json'},\n      body: JSON.stringify({\n        email,\n        telefon:  tel,\n        website:  document.getElementById('reg-website').value, \/\/ Honeypot\n        ts:       aboFormularZeit  \/\/ Zeitstempel\n      })\n    });\n    const d = await res.json();\n    if (d.bereitsRegistriert) {\n      zeigeMeldung(msg, 'error', d.message);\n      setTimeout(function() {\n        aboTab('login');\n        const loginEmail = document.getElementById('login-email');\n        if (loginEmail) loginEmail.value = email;\n      }, 2000);\n    } else {\n      zeigeMeldung(msg, d.ok ? 'success' : 'error', d.message);\n    }\n  } catch(err) {\n    zeigeMeldung(msg, 'error', 'Fehler: ' + err);\n  }\n}\n\nasync function aboLogin() {\n  const email = document.getElementById('login-email').value.trim();\n  const msg   = document.getElementById('login-meldung');\n\n  if (!email || !\/\\S+@\\S+\\.\\S+\/.test(email)) {\n    zeigeMeldung(msg, 'error', 'Bitte eine g\u00fcltige E-Mail-Adresse eingeben.'); return;\n  }\n\n  try {\n    const res = await fetch(ABO_API + \"?action=login\", {\n      method: 'POST', headers: {'Content-Type': 'application\/json'},\n      body: JSON.stringify({email})\n    });\n    const d = await res.json();\n    zeigeMeldung(msg, d.ok ? 'success' : 'error', d.message);\n  } catch(err) {\n    zeigeMeldung(msg, 'error', 'Fehler: ' + err);\n  }\n}\n\nfunction zeigeMeldung(el, typ, text) {\n  el.className = 'abo-meldung ' + typ;\n  el.textContent = text;\n  el.style.display = 'block';\n}\n\n\/\/ Enter-Taste\ndocument.addEventListener('DOMContentLoaded', function() {\n  document.getElementById('reg-email').addEventListener('keydown', function(e) { if(e.key==='Enter') aboRegistrieren(); });\n  document.getElementById('login-email').addEventListener('keydown', function(e) { if(e.key==='Enter') aboLogin(); });\n});\n<\/script>\n\n","protected":false},"excerpt":{"rendered":"<p>&#x1f514; Medikamenten-Benachrichtigung Erhalten Sie eine E-Mail wenn ein Lieferengpass f\u00fcr Ihre Medikamente gemeldet wird. Neu registrieren Bereits registriert E-Mail-Adresse * Telefon (optional) &#x26a0;&#xfe0f; Datenschutz-Hinweis F\u00fcr diesen Service speichern wir Ihre E-Mail-Adresse, optional Ihre Telefonnummer sowie die GTIN-Codes Ihrer abonnierten Medikamente. Bitte beachten Sie: \u2022 Die \u00dcbertragung erfolgt verschl\u00fcsselt (HTTPS) \u2022 Die Daten werden auf einem&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"parent":0,"menu_order":0,"comment_status":"closed","ping_status":"closed","template":"","meta":{"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_kad_post_classname":"","footnotes":""},"class_list":["post-21349","page","type-page","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21349","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/comments?post=21349"}],"version-history":[{"count":4,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21349\/revisions"}],"predecessor-version":[{"id":21389,"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/pages\/21349\/revisions\/21389"}],"wp:attachment":[{"href":"https:\/\/www.drugshortage.ch\/index.php\/wp-json\/wp\/v2\/media?parent=21349"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}