Wie integriere ich Google reCAPTCHA mit PHP?

 

Heutzutage möchte jeder Spam auf seiner Website loswerden, egal ob es sich um Spam-Kommentare, Spam-Nachrichten oder Spam-Verkehr auf Ihrer Website handelt. Um Ihre Website vor Spam zu schützen, ist die Verwendung eine der besten und einfachsten Möglichkeiten Google reCAPTCHA.

Früher hat man eine Zufallszahl oder eine Zeichenfolge auf den Bildschirm gelegt und diese auf der Serverseite überprüft. Diese Methode ist jedoch altmodisch und für viele Nutzer auch zeitaufwändig, während die reCAPTCHA-Methode von Google einfach zu verwenden ist und weniger Zeit in Anspruch nimmt, was zu einem besseren Nutzererlebnis führt. Sie brauchen nur einen einzigen Klick, um zu beweisen, dass sie Menschen und kein Roboter sind. Google reCAPTCHA lässt sich sehr einfach in einem PHP-Skript implementieren.

Empfohlen zu lesen: ,warWie integriere ich den Google ReCaptcha-Schutz in Ihren PrestaShop-Shop?

In diesem Blog erfahren Sie in unserer Schritt-für-Schritt-Anleitung, wie Sie Google reCaptcha mit PHP integrieren.

Schritt 1: So rufen Sie den Google reCAPTCHA-API-Schlüssel ab

Um einen API-Schlüssel zur Verwendung von reCAPTCHA mit PHP zu erhalten, müssen Sie Ihre Website registrieren unter – https://www.google.com/recaptcha/admin. Nachfolgend finden Sie die Screenshots zu Ihrer Hilfe:


Etikette: Verwenden Sie eine Beschriftung Ihrer Wahl, damit Sie die Website in Zukunft leicht wiedererkennen können. Sie können in diesem Feld Ihren Markennamen oder die Website-URL hinzufügen, um die Lesbarkeit des Projektnamens zu verbessern.

reCAPTCHA-Typ: Wählen Sie einen beliebigen reCAPTCHA-Typ aus, den Sie für Ihre Website bevorzugen. Derzeit sind zwei Typen verfügbar, nämlich reCAPTCHA v3 und reCAPTCHA v2. Im Beispielprojekt haben wir reCAPTCHA v2 verwendet.

Domains: Hier müssen Sie den Namen Ihrer Website eingeben, für die Sie die reCAPTCHA-Funktionalität implementieren möchten. Dies gilt für die Domains, die Sie hier eingeben, und auch für deren Subdomains. Beispielsweise wird bei einer Registrierung für abc.com auch xyz.abc.com registriert.

Aktivieren Sie nun einfach das Kontrollkästchen von Akzeptieren Sie die reCAPTCHA-Nutzungsbedingungen und klicken Sie auf die Schaltfläche „Senden“.

Jetzt haben Sie den Site-Schlüssel und den geheimen Schlüssel für Ihre Website.

Schritt 2: Um das Google reCaptcha mit PHP zu implementieren, besteht der zweite Schritt aus der Implementierung der reCAPTHA-Funktionalität auf Ihrer Website:

  • Um reCAPTCHA in PHP hinzuzufügen, müssen Sie zunächst die reCAPTCHA-JavaScript-Bibliothek in Ihren HTML-Code einbinden.
    
    
  • Fügen Sie nun diesen HTML-Code dort ein, wo Sie das reCAPTCHA-Widget anzeigen möchten.
    
    
  • Ersetzen Sie „site_key“ durch den von Google für Ihre Website bereitgestellten Website-Schlüssel.
  • Jetzt ist es fertig. Aktualisieren Sie einfach Ihre Seite und Sie sehen das reCAPTCHA-Widget auf Ihrer Website.

Schritt 3: Um die Antwort des Benutzers zu validieren

Jetzt müssen Sie die Antwort validieren, wenn ein Benutzer auf das reCAPTCHA-Widget klickt. Der PHP-Code zur Überprüfung der Benutzerantwort ist unten angegeben:

Erfolg) { $succMsg = 'Ihre Kontaktanfrage wurde erfolgreich übermittelt.'; } else { $errMsg = 'Roboterüberprüfung fehlgeschlagen, bitte versuchen Sie es erneut.'; } } ?>

Fügen Sie Ihren tatsächlichen Geheimschlüssel in den obigen Code ein und schon sind Sie fertig.

Holen Sie sich den Beispielcode hier.

Empfohlen zu lesen: Zwei effektive Module, um Spammer und Bots vom PrestaShop-Shop fernzuhalten

Knowband bietet das Google ReCaptcha Addon für verschiedene Plattformen an, darunter PrestaShop, und OpenCart. Das Google ReCaptcha-Modul ist ein leistungsstarkes Sicherheitstool, das Ihre Website vor Spam-Einträgen schützt und gleichzeitig den einfachen Zugriff für tatsächliche Benutzer ermöglicht.

Das Google ReCaptcha-Plugin kann für die Anmeldung, Registrierung, das Zurücksetzen des Passworts, bekannte Kontaktformulare und andere Dinge verwendet werden. Bilder werden im Google ReCaptcha-Add-on als Teil ihrer standardmäßigen Validierungsprozesse angezeigt, um die Identifizierung von Menschen zu erleichtern.

Dieses Google reCaptcha-Modul bietet eine hervorragende Leistung und ist äußerst anpassbar. Über das Back-End der Knowband-Module kann der E-Händler das Google reCaptcha-Add-on schnell anpassen.

Prestashop Google ReCaptcha Add-on

PrestaShop Google reCaptcha von Knowband erhöht die Sicherheit Ihres Shops durch die Integration von Google reCaptcha und verhindert so Spam und automatisierte Bots.

Jetzt einkaufen

Letzte Worte:

Die Implementierung von Google reCAPTCHA auf Websites ist aus Sicherheitsgründen unerlässlich. Es hilft dabei, echte Benutzer von Bots zu unterscheiden und verhindert so Spam und automatisierte Angriffe. Dies schützt die Benutzerdaten und gewährleistet einen reibungslosen Betrieb der Website. Durch die Blockierung schädlichen Datenverkehrs verbessert reCAPTCHA das Benutzererlebnis und macht Online-Interaktionen sicherer und zuverlässiger.

Empfohlene Lektüre – Stärken Sie die Sicherheit Ihres PrestaShop-Shops mit den besten PrestaShop-Modulen von Knowband
Darüber hinaus ist Google reCaptcha auch mit One Page Checkout von Knowband kompatibel und schützt Sie so vor Transaktionsbetrug. Dies ist die beste Möglichkeit, Ihr Geschäft vor Transaktionsbetrug zu schützen. Um die Admin-Demo und Front-End-Demo des Google reCaptcha-Moduls anzusehen, besuchen Sie unsere speichern.

Vermeiden Sie, dass Spammer Ihrem Unternehmen schaden!

 

So ändern Sie den Standardbestellstatus in WooCommerce

Manchmal müssen Sie beim Entwickeln einer E-Commerce-Website automatisch den Zahlungsstatus überprüfen und den Bestellstatus als "" markieren.Ein vollständig ausgefülltes""anstehend"oder gemäß Ihren Anforderungen. Ein Standardbestellstatus wird auf der Grundlage der erfolgten Zahlung festgelegt. Die Front-End-Benutzer können den Status ihrer Bestellung auf der Seite" Kontoverlauf "überprüfen. In diesem Blog erfahren Sie, wie Sie den Standardbestellstatus ändern können Woo Commerce als "Rechnung zum Ausdrucken" Schritt für Schritt.

Schritt 1: Erstellen Sie ein benutzerdefiniertes Plugin

Um ein benutzerdefiniertes Plugin auf Ihrer Website zu erstellen, gehen Sie folgendermaßen vor:

1. Navigieren Sie zum Ordner mit den Word Press-Plugins. In unserem Fall handelt es sich um App / Plugins. Erstelle einen Ordner als "Benutzerdefinierter Status“.

Wichtige Notiz: Geben Sie Ihrem Ordner einen eindeutigen Namen (der Name des Word Press-Standard-Plugins sollte nicht mit Ihrem Plugin-Namen in Konflikt stehen), indem Sie Kleinbuchstaben und Bindestriche verwenden.

2. Erstellen Sie nun die Haupt-PHP-Datei Ihres Plugins. Erstellen Sie dazu eine PHP-Datei in Ihrem Plugin-Ordner und geben Sie ihr den gleichen Namen wie dem Ordnernamen. In unserem Fall lautet der Ordnername "customstatus", daher lautet der Dateiname "customstatus.php".

3. Richten Sie die Informationen Ihres Plugins ein. Kopieren Sie einfach den folgenden Code und fügen Sie ihn in die Datei customstatus.php ein.

/ **
?* Plugin Name: My First Plugin
?* Plugin URI: https://www.mywebsite.com/my-first-plugin
?* Description: The very first plugin that I have ever created.
?* Version: 1.0
?* Author: Your Name
?* Author URI: https://www.mywebsite.com
?*/

Hinweis: Bearbeiten Sie die Details wie Autorenname, Plug-in-Name, Beschreibung usw. gemäß Ihren Anforderungen.

4. Das ist es! Sie haben soeben die Mindestanzahl von Schritten ausgeführt, die zum Erstellen eines Word Press-Plugins erforderlich sind. Sie können es jetzt über die Registerkarte Plugins in Word Press admin aktivieren.

Schritt 2: Fügen Sie Code in Ihr benutzerdefiniertes Plugin ein

1. Jetzt müssen wir eine Funktion erstellen und an eine bestimmte Aktion binden. Kopieren Sie einfach die unten stehende Funktion in Ihre customstatus.php.

2. Da wir den Bestellstatus bei vollständiger Zahlung aktualisieren möchten, fügen Sie dem Hook "woocommerce_payment_complete" eine Aktion hinzu, wie unten im hervorgehobenen Code angegeben. // KOPIERE DEN GANZEN CODE IN die customstatus.php DATEI.

# <editor-fold defaultstate = "collapsed" desc = "Standardstatus als zu druckende Rechnung"> function action_woocommerce_payment_complete ($ order_id) {if (! $ order_id) return; $ order = wc_get_order ($ order_id); $ order-> update_status ('wc-print-rechnung'); // Der Auftragsstatus wird auf "Zu druckende Rechnung" aktualisiert. }; // füge die Aktion add_action hinzu ('woocommerce_payment_complete', 'action_woocommerce_payment_complete', 10, 3); # </ editor-fold>

3. Speichern Sie einfach Ihre customstatus.php-Datei und fertig. Ab sofort wird der Bestellstatus auf "Rechnung zum Ausdrucken" aktualisiert, wenn die Zahlung abgeschlossen ist.

NÜTZLICHER HINWEIS: Wenn Sie den Bestellstatus aktualisieren möchten, wenn die Seite "Vielen Dank" oder "Checkout-Erfolg" geladen ist, können Sie die Aktion am Hook "woocommerce_thankyou" hinzufügen. Ersetzen Sie in customstatus.php add_action ('woocommerce_payment_complete', 'action_woocommerce_payment_complete', 10, 3); mit add_action ('woocommerce_thankyou', 'ggb_custom_change_order_status', 10,3);


Spring Omni Manifest

Wie erhalte ich den Manifestbericht der Spring Omni-Sendungen?

LÖSUNG: Wir haben eine Abfrage an spring Omni gesendet, wenn diese über eine API verfügen, mit der das Manifest der an einem bestimmten Tag erstellten Sendungen generiert werden kann.

Sie antworteten:

“Derzeit stellen wir kein Manifest zur VerfügungAlso versuchten wir, ein Manifest zu erstellen und bestätigten mit dem Abholjungen von Spring Omni, ob ein Manifestbericht für die Abholung der Pakete erforderlich ist nur die Anzahl der an sie übergebenen Etiketten (Pakete) Weitere verwandte Blogs finden Sie hier:

Spring Global (Spring Omni) Fehler: Die Eigenschaft phone_number ist erforderlich

Spring Global (Spring Omni) Fehler: Der Versand wird nicht registriert

Spring Global (Spring Omni): Abrechnungskonzept

Spring Global (Spring Omni) -Fehler: Ressource nicht gefunden

Spring Global (Spring Omni) -Fehler: Leere Antwort beim Abrufen des Etiketts


Spring Global (Spring Omni): Abrechnungskonzept

Wir möchten wissen, dass Spring Global für die von uns erstellten und registrierten Sendungen ODER Pakete, die wir ihnen zur Zustellung übergeben, Gebühren erhebt.

Wir haben ein Ticket für Spring Global gesammelt:

Welche Sendungen (Pakete) berechnen sie uns? Wird es sich um die Sendungen handeln, die wir erstellt und registriert haben, ODER um Pakete, die wir ihnen übergeben werden?

Angenommen, wir haben 10-Sendungen erstellt und registriert, übergeben ihnen jedoch nur 8-Pakete zur Zustellung (da wir nicht möchten, dass 2-Sendungen zugestellt werden). Werden sie uns nun für diesen speziellen Fall 10-Sendungen oder 8 in Rechnung stellen?

Sie antworteten:

“Spring stellt nur gescannte Etiketten in Rechnung. In deinem Beispiel wärst du es also nur“.

Wie wir sehen können, werden wir nur für die Pakete belastet, die wir ihnen zur Zustellung übergeben, unabhängig von der Anzahl der Sendungen, die wir an ihrem Ende erstellt haben.

Bitte besuchen Sie hier für verwandte Informationen:

Spring Global (Spring Omni) Fehler: Die Eigenschaft phone_number ist erforderlich

Spring Omni Manifest

Spring Global (Spring Omni) Fehler: Der Versand wird nicht registriert

Spring Global (Spring Omni) -Fehler: Ressource nicht gefunden

Spring Global (Spring Omni) -Fehler: Leere Antwort beim Abrufen des Etiketts


Spring Global (Spring Omni) -Fehler: Ressource nicht gefunden

Beim Erstellen einer Sendung mit Spring Omni wird möglicherweise eine Fehlermeldung angezeigt, die wie folgt lautet:

[status] => 404 [code] => 10002 [title] => Ressource nicht gefunden [detail] => Eine oder mehrere Regionenressourcen konnten nicht gefunden werden. Wir haben diesen Fehler beim Senden der folgenden Anfrage zum Erstellen der Sendung erhalten:

'{
  "data": {
    "type": "shipments",
    "attributes": {
      "recipient_address": {
        "street_1": "4363 N 55TH ST",
        "street_2": "Marylebone",
        "street_number": 221,
        "postal_code": "53216-1201",
        "city": "MILWAUKEE",
        "region_code": "WI",
        "country_code": "US",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Attn",
        "email": "Aparajita.singh@abc.com",
        "phone_number": "1234567890"
      },
      "return_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "Aparajita.singh@abc.com",
        "phone_number": ""
      },
      "sender_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "Aparajita.singh@abc.com",
        "phone_number": ""
      },
      "description": "Order #8008135",
      "physical_properties": {
        "height": 150,
        "width": 300,
        "length": 500,
        "volume": 22.5,
        "weight": 100
      },
      "items": [
        {
          "sku": "123456789",
          "description": "OnePlus X",
          "item_value": {
            "amount": 995,
            "currency": "EUR"
          },
          "quantity": 2,
          "hs_code": "8517.12.00",
          "origin_country_code": "GB",
          "item_weight": 135
        }
      ],
      "customs": {
        "content_type": "merchandise",
        "invoice_number": "9000",
        "non_delivery": "return",
        "incoterm": "DAP",
        "license_number": "218532158",
        "certificate_number": "12122121"
      },
      "register_at": 0
    },
    "relationships": {
      "shop": {
        "data": {
          "type": "shops",
          "id": "1a9414f0-24ef-4008-b6ad-9a75e27a879e"
        }
      },
      "service": {
        "data": {
          "type": "services",
          "id": "05aeb5e9-90be-4ec7-94c9-1a0949262577"
        }
      }
    }
  }
}'

Als wir Spring Global nach dem Grund für diesen Fehler fragten, antworteten sie, dass das Problem hier "Die Region, die nicht erkannt wird, da sie noch keine Regionen für die USA eingerichtet hat" ist. Wenn Sie die Region einfach weglassen, wird das Problem behoben. Der folgende JSON sollte funktionieren:

'{
  "data": {
    "type": "shipments",
    "attributes": {
      "recipient_address": {
        "street_1": "4363 N 55TH ST",
        "street_2": "Marylebone",
        "street_number": 221,
        "postal_code": "53216-1201",
        "city": "MILWAUKEE",
        "country_code": "US",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Attn",
        "email": "Aparajita.singh@abc.com",
        "phone_number": "1234567890"
      },
      "return_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "Aparajita.singh@abc.com",
        "phone_number": ""
      },
      "sender_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "Aparajita.singh@abc.com",
        "phone_number": ""
      },
      "description": "Order #8008135",
      "physical_properties": {
        "height": 150,
        "width": 300,
        "length": 500,
        "volume": 22.5,
        "weight": 100
      },
      "items": [
        {
          "sku": "123456789",
          "description": "OnePlus X",
          "item_value": {
            "amount": 995,
            "currency": "EUR"
          },
          "quantity": 2,
          "hs_code": "8517.12.00",
          "origin_country_code": "GB",
          "item_weight": 135
        }
      ],
      "customs": {
        "content_type": "merchandise",
        "invoice_number": "9000",
        "non_delivery": "return",
        "incoterm": "DAP",
        "license_number": "218532158",
        "certificate_number": "12122121"
      },
      "register_at": 0
    },
    "relationships": {
      "shop": {
        "data": {
          "type": "shops",
          "id": "1a9414f0-24ef-4008-b6ad-9a75e27a879e"
        }
      },
      "service": {
        "data": {
          "type": "services",
          "id": "05aeb5e9-90be-4ec7-94c9-1a0949262577"
        }
      }
    }
  }
}'

Bitte besuchen Sie hier für verwandte Informationen:

Spring Global (Spring Omni) Fehler: Die Eigenschaft phone_number ist erforderlich

Spring Omni Manifest

Spring Global (Spring Omni) Fehler: Der Versand wird nicht registriert

Spring Global (Spring Omni): Abrechnungskonzept

Spring Global (Spring Omni) -Fehler: Leere Antwort beim Abrufen des Etiketts


Spring Global (Spring Omni) -Fehler: Leere Antwort beim Abrufen des Etiketts

Bei dem Versuch, eine Sendung zu erstellen, ist ein Problem aufgetreten (Verwendung der / shipments API) und danach holten wir das Etikett (Verwenden der API / shipments / {delivery_id} / files). Das Problem war, dass wir eine leere Antwort bekamen. Als wir die Sendungen im Backoffice überprüft haben, sah es wie folgt aus:

Als wir auf die Sendung geklickt haben (mit status = "concept"), wir haben eine Nachricht als "Die Sendung wurde erstellt, ist aber (noch) nicht beim Spediteur registriert.“

Als wir das Konzept dieser neuen Versanderstellung in Spring Omni verstanden haben, haben wir erfahren, dass wir in Spring Global eine Sendung registrieren müssen, anstatt nur die Sendung zu erstellen, bevor wir das Etikett abrufen, das der Sendung entspricht. Es gibt zwei mögliche Szenarien für die Registrierung einer Sendung:

  1. Legen Sie die Sendung an und registrieren Sie sich gleichzeitig
  2. Erstellen Sie die Sendung, registrieren Sie sie jedoch zu einem bestimmten Zeitpunkt, dh in der Zukunft

1. So registrieren Sie eine Sendung sofort

Beim Senden der Sendungsanfrage müssen wir die "register_at"Parameterwert als 0 oder vergangene Zeit (UNIX-Zeitstempel) in den Anforderungsdaten. Bitte beziehen Sie sich auf den folgenden Code:

{
  "data": {
    "type": "shipments",
    "attributes": {
      "recipient_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "s.holmes@holmesinvestigations.com",
        "phone_number": "+31 234 567 890"
      },
      "return_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "s.holmes@holmesinvestigations.com",
        "phone_number": "+31 234 567 890"
      },
      "sender_address": {
        "street_1": "Baker Street",
        "street_2": "Marylebone",
        "street_number": 221,
        "street_number_suffix": "B",
        "postal_code": "NW1 6XE",
        "city": "London",
        "region_code": "ENG",
        "country_code": "GB",
        "first_name": "Sherlock",
        "last_name": "Holmes",
        "company": "Holmes Investigations",
        "email": "s.holmes@holmesinvestigations.com",
        "phone_number": "+31 234 567 890"
      },
      "pickup_location": {
        "code": "205604",
        "address": {
          "street_1": "Baker Street",
          "street_2": "Marylebone",
          "street_number": 221,
          "street_number_suffix": "B",
          "postal_code": "NW1 6XE",
          "city": "London",
          "region_code": "ENG",
          "country_code": "GB",
          "first_name": "Sherlock",
          "last_name": "Holmes",
          "company": "Holmes Investigations",
          "email": "s.holmes@holmesinvestigations.com",
          "phone_number": "+31 234 567 890"
        }
      },
      "description": "Order #8008135",
      "physical_properties": {
        "height": 150,
        "width": 300,
        "length": 500,
        "volume": 22.5,
        "weight": 5000
      },
      "items": [
        {
          "sku": "123456789",
          "description": "OnePlus X",
          "item_value": {
            "amount": 995,
            "currency": "EUR"
          },
          "quantity": 2,
          "hs_code": "8517.12.00",
          "origin_country_code": "GB",
          "item_weight": 135
        }
      ],
      "customs": {
        "content_type": "merchandise",
        "invoice_number": "9000",
        "non_delivery": "return",
        "incoterm": "DAP",
        "license_number": "218532158",
        "certificate_number": "12122121"
      },
      "register_at": 0
    },
    "relationships": {
      "service_options": {
        "data": [
          {
            "type": "service-options",
            "id": "4c675b1a-516c-4410-abff-d237fd45bcd0"
          }
        ]
      },
      "shop": {
        "data": {
          "type": "shops",
          "id": "35eddf50-1d84-47a3-8479-6bfda729cd99"
        }
      },
      "service": {
        "data": {
          "type": "services",
          "id": "175a235f-aff5-4e44-87b5-3657b75c1deb"
        }
      },
      "contract": {
        "data": {
          "type": "contracts",
          "id": "2cb32706-5762-4b96-9212-327e6afaeeff"
        }
      }
    }
  }
}

Wenn wir den register_at-Wert als aktuellen Zeitstempel senden, kann es zu Verzögerungen bei der Registrierung der Sendung kommen. Daher hat Spring Global vorgeschlagen, den register_at-Wert als 0 zu senden, damit die Zeit in der Vergangenheit berücksichtigt und die Sendung so bald wie möglich registriert wird wie möglich. Da die Sendung jetzt registriert wird, können wir sie nicht löschen / bearbeiten.

2. Registrieren Sie eine Sendung in Zukunft

Wenn wir die Sendung nach dem Erstellen bearbeiten / löschen möchten, müssen wir die Sendung nur in Zukunft oder zu einem bestimmten Zeitpunkt registrieren. Um eine Sendung zu einem späteren Zeitpunkt zu registrieren, z. B. nach 5 Stunden der Sendungserstellung, übergeben Sie einfach den Wert "register_at" als zukünftigen Zeitstempel von fünf Stunden auf der Grundlage der aktuellen Zeit. Jetzt können wir die Sendung bis 5 Stunden bearbeiten / löschen, aber das Etikett und die Handelsrechnung nicht mehr abrufen. Zum angegebenen Zeitpunkt wird die Sendung automatisch registriert und wir können das Etikett und die Handelsrechnung nach dem angegebenen Zeitpunkt abrufen.

Das sind also die beiden Möglichkeiten, die Sendung zu registrieren. Wir können beides auf Grund unserer Anforderung nutzen.

Bitte besuchen Sie hier für verwandte Informationen:

Spring Global (Spring Omni) Fehler: Die Eigenschaft phone_number ist erforderlich

Spring Omni Manifest

Spring Global (Spring Omni) Fehler: Der Versand wird nicht registriert

Spring Global (Spring Omni): Abrechnungskonzept

Spring Global (Spring Omni) -Fehler: Ressource nicht gefunden


DHL-Problem: Der Zielort ist ungültig. Bitte überprüfen Sie die Daten

Bei der Buchung des Versands bei DHL über die API (in unserem Fall war das Lieferland „Irland“), erhielten wir eine Fehlermeldung als Antwort auf die Funktionsanfrage. Der Fehler war “Der Zielort ist ungültig. Bitte überprüfen Sie die Daten“.

Lösung: �

Für dieses Problem haben wir ein Ticket bei DHL erstellt, und als Antwort haben sie wie folgt geantwortet:

Bei der Beantragung von Fähigkeiten ist es wichtig, vollständige und qualitativ hochwertige Adressdaten anzugeben. Es ist notwendig, genaue Routing-Informationen und -Funktionen für den Start- und Zielort zu bestimmen. Folgendes könnte die Ursache für den Fehler sein:

  1. Es kann vorkommen, dass es in verschiedenen Stadtteilen mehrere Städte mit demselben Namen gibt. Um also eine erfolgreiche Antwort zu erhalten, müssen wir speziell für das Lieferland “Irland” Vororte in der Zieladresse hinzufügen.
  2. Für die Zielländer, die keine Postleitzahlen haben, muss der Städtename genau geschrieben werden. Beispiel: Es gibt keine Stadt namens NORTH ROAD im Internet Explorer, die eigentliche Stadt heißt M50 NORTH ROAD.

Aus dieser Antwort ging hervor, dass die Überprüfung der Adresse nicht klar ist, woher wir wissen, ob die Adresse korrekt ist oder nicht, oder ob der Name der Stadt korrekt ist oder nicht. Wenn wir beispielsweise den Städtenamen als “Grafschaft Dublin” In der Sendungserstellungsanfrage erhalten wir einen Fehler “Ungültiger Standort”. Also haben wir erneut ein Ticket erstellt, um zu erfahren, wie wir die Adresse validieren können, und als Antwort schlug DHL ein Tool namens DHL Capability Tool vor (https://dct.dhl.com/). Geben Sie einfach die Absender- und Zieladresse in das Formular ein und klicken Sie auf die Schaltfläche „Suchen“, wie im folgenden Screenshot gezeigt:

Dieses Tool gibt das Ergebnis aus, ob die Adresse gültig ist oder nicht. Wenn Sie also einen Fehler bezüglich des Standorts erhalten, können Sie die Adresse mit diesem Funktionstool validieren.

Password Protection with?htaccess

Einführung

Es ist immer eine gute Idee, den Ordnern / Webseiten Ihrer Website einen Kennwortschutz hinzuzufügen, wenn Sie den Zugriff darauf einschränken möchten. Die Methode zum Anwenden desselben ist wichtiger. Wir können PHP verwenden, um die Informationen auf jeder Seite zu autorisieren, aber das schützt Ihre Bilder oder andere Medien nicht, oder? Wir können also eine andere Methode anwenden, die als bekannt ist htaccess Passwortschutz?or Htaccess-Authentifizierung. Es ist zuverlässig und viel einfacher.

Ziel

In diesem Blog erfahren Sie, wie Sie den Zugriff nicht autorisierter Benutzer auf die Website beschränken können.

Bitte folgen Sie den unten genannten Schritten:

Schritt 1. So verwenden Sie htaccess Passwortschutz Wir müssen zwei Dateien in dem Verzeichnis erstellen, in dem Sie den Zugriff einschränken möchten:

1) .zugang
2) .htpasswd Datei

Schritt 2. Fügen Sie den folgenden Code in die .htaccess-Datei ein, die Sie in Schritt 1 erstellt haben.

Der .htaccess-Code

AuthType Basic AuthName "Kein Zugriff" AuthUserFile C: /wamp64/www/test_project/self_stitch/.htpasswd erfordert einen gültigen Benutzer

Hinweis: Sie können "C: / wamp64 / www / test_project /" durch Ihre eigene Verzeichnisstruktur ersetzen. Der obige Code (Direktiven) ist unten beschrieben:

ich.) AuthType Mit der AuthType-Direktive können Sie die Methode auswählen, mit der der Benutzer authentifiziert wird.

ii.) AuthName Ersetzen "Kein Zugriff"auf einen beliebigen Namen gemäß Ihren Anforderungen. Dieser Name wird im Warnfeld angezeigt, wenn der Benutzer versucht, eine durch Zugriff geschützte Seite zu öffnenAuthName?directive sets the?domain?to be used in the authentication.

Once a client has passed the authentication in the?”Kein Zugriffmsgstr "" "Zone muss dann kein Kennwort eingegeben werden, um auf eine andere Datei in derselben Zone auf demselben Server zuzugreifen. Um zu verhindern, dass ein Benutzer das Kennwort immer wieder eingibt, müssen mehrere eingeschränkte Bereiche dieselbe Domäne gemeinsam nutzen.

iii.) AuthUserFile

  • Sie müssen Ihren .htpasswd-Pfad anstelle von "C: /wamp64/www/test_project/self_stitch/.htpasswd" hinzufügen.
  • Die "AuthUserFile"Wert ist immer spezifisch für Ihre Host – Konfiguration.
  • Wenn Sie nicht wissen, wie hoch der Wert sein soll, tun Sie Folgendes: a
  • Dazu müssen Sie nur die Zeile "<? Php phpinfo ();?>" In die Datei phpinfo.php einfügen. Sie finden die Datei phpinfo.php in Ihrem Stammverzeichnis (www für localhost) und führen die Datei phpinfo.php im Browser aus. Führen Sie beispielsweise auf localhost localhost / phpinfo.php aus

HINWEIS:

1.Um mehrere Dateien im selben Ordner mit einem Kennwort zu schützen, erstellen Sie einfach mehrere <Files> </ Files> -Blöcke in derselben .htaccess-Datei. Beispiel:

AuthUserFile /full/path/to/.htpasswd AuthType Basic AuthName "Meine geheime Seite" <Files "mypage.html"> Gültiger Benutzer erforderlich </ Files> <Files "myotherpage.html"> Gültiger Benutzer erforderlich </ Files>

2. Um den Benutzern nur den Zugriff auf bestimmte Dateitypen zu ermöglichen, müssen Sie den folgenden Code hinzufügen:

AuthUserFile /full/path/to/.htpasswd AuthType Basic AuthName "Meine geheime Seite" <FilesMatch ". * \. (Php | html | css | js | JS | CSS) $"> Zulassen, Zulassen von allen verweigern </ FilesMatch>

Hier beschränken wir zuerst den Zugriff auf alles mit <FilesMatch ". *"> Und erlauben danach nur den Zugriff auf bestimmte Dateien (php, html, css, js) mit <FilesMatch ". * \. (Php | html) | css | js | JS | CSS) $ "> Unser Beispiel erlaubt keinen Zugriff auf andere Dateien für zB. .jpg, .png usw. Sie können den Zugriff auch von einer bestimmten IP-Adresse aus erlauben, indem Sie "gestatten, von 12.34.56.78"anstatt zu benutzen"ermöglichen aus allen“.

3. Um ein htaccess-Kennwort nur für bestimmte Dateitypen hinzuzufügen, müssen Sie den folgenden Code hinzufügen:

AuthType Basic AuthName "Eingeschränkter Bereich" AuthUserFile C: /wamp64/www/test_project/self_stitch/.htpasswd # erlaubt jetzt aber nur * bestimmte * notwendige Dateien: <FilesMatch ". * \. (Txt) $"> require valid-user < / FilesMatch>

Mit dem obigen Code wird auf alle Dateien ohne Kennwort zugegriffen, aber für Dateien mit der Erweiterung .txt sind Benutzername und Kennwort erforderlich.

4. Wenn Sie ein htaccess-Passwort für alle Dateien außer einer anwenden müssen, fügen Sie den folgenden Code hinzu:

AuthType Basic AuthName "Eingeschränkter Bereich" AuthUserFile C: /wamp64/www/test_project/self_stitch/.htpasswd <FilesMatch ". *"> Gültiger Benutzer erforderlich </ FilesMatch> #, aber jetzt nur * bestimmte * erforderliche Dateien zulassen: <FilesMatch " . * \. (txt) $ "> Erfordert alle gewährten </ FilesMatch>

Im obigen Beispiel benötigen alle anderen Dateien außer TXT-Dateien den Benutzernamen und das Kennwort, um darauf zugreifen zu können.

iv.) erfordern

Die Linie "require valid-user"bedeutet, dass jeder in Ihrem
Schritt 3. Fügen Sie den Benutzernamen und das Passwort in die .htpasswd-Datei ein, wie unten beschrieben:

Der .htpasswd Code

john:$apr1$DObQIej5$0ZmEaLN42GEz/XJEiJXh9.

ich.) Das

ii.) Die Passwörter werden aus Sicherheitsgründen mit MD5 verschlüsselt.

iii.) Wie Sie oben sehen können, ist nur ein 1-Benutzer mit folgendem Kennwort zulässig: Tatsächliches Kennwort: egypt4721 Verschlüsseltes Kennwort: $ apr1 $ DObQIej5 $ 0ZmEaLN42GEz / XJEiJXh9. (Mit MD5 verschlüsselt).

iv.) Verwenden Sie den folgenden Link, um eine .htpasswd-Datei zu generieren:

https://www.htaccesstools.com/htaccess-authentication/

Nachdem Sie die Dateien .htaccess und .htpasswd in dem Verzeichnis erstellt haben, das Sie schützen möchten, wird beim Öffnen Ihrer Website eine Warnung angezeigt. Bitte beachten Sie den Screenshot unten:

Hier öffnen um ein Beispielprojekt mit passwortgeschütztem .htaccess herunterzuladen.