Führen Sie eine HTTP-Authentifizierung mit PHP Curl durch
-
Einführung in
php-curl
-
Installation der Bibliothek
php-curl
in Ubuntu - Führen Sie die grundlegende HTTP-Authentifizierung über das HTML-Formular durch
-
Führen Sie die grundlegende HTTP-Authentifizierung mit
cURL
durch
Dieses Tutorial zeigt, wie Sie eine HTTP-Authentifizierung mit PHP cURL
in Ubuntu durchführen.
Einführung in php-curl
cURL
(Client URL) ist ein Befehlszeilenprogramm, das Daten und Dateien sendet oder empfängt. Es verwendet die URL-Syntax und unterstützt Protokolle wie FTP, FTPS, DICT, HTTP, HTTPS usw.
Die cURL
-Bibliothek ist in PHP unter dem Namen php-curl
verfügbar. Wir können diese Bibliothek verwenden, um mit Servern zu kommunizieren, indem wir HTTP-Anforderungen in PHP senden.
Wir können verschiedene Aufgaben ausführen, wie das Setzen von Cookies, die Verwendung von Proxys, die Weitergabe von Daten über SSL-Verbindungen und sogar die Authentifizierung mit php-curl
.
Schauen wir uns die grundlegenden php-curl
-Funktionen an.
-
curl_init()
– Initialisiert einecURL
-Sitzung. -
curl_close()
– Schließt einecURL
-Sitzung. -
curl_setopt(handle, option, value)
– Legt die Option für diecURL
-Sitzung fest.handle
ist hier der voncurl_init()
zurückgegebene Wert.Der Parameter
option
kann einen breiten Wert von Optionen haben. Die Liste der Optionen finden Sie hier.Es wird nach Bedarf eingesetzt. Der Parameter
value
hat den Wert für die Option. -
curl_exec()
– Führt die vordefiniertecURL
-Sitzung aus.
Installation der Bibliothek php-curl
in Ubuntu
Vor Durchführung der Authentifizierung müssen wir überprüfen, ob php-curl
in unserem System installiert ist. Wir können es mit dem folgenden Befehl tun.
php -m
Der Befehl listet die kompilierten PHP-Module auf. Wenn Sie curl
in der Liste finden, bedeutet dies, dass php-curl
installiert ist.
Sie können die Installation auch überprüfen, indem Sie die Ausgabe der Funktion phpinfo()
überprüfen. Falls installiert, erscheint in der Ausgabe eine Tabelle für curl
.
Falls php-curl
nicht installiert ist, können Sie es über den folgenden Befehl installieren.
sudo apt-get install php-curl
Öffnen Sie nach der Installation die Datei php.ini
und suchen Sie die folgende Zeile.
;extension=curl
Entkommentieren Sie die obige Zeile wie unten.
extension=curl
Der letzte Schritt besteht darin, den Server mit einem dieser Befehle neu zu starten.
sudo systemctl start apache2
sudo /etc/init.d/apache2 start
Führen Sie die grundlegende HTTP-Authentifizierung über das HTML-Formular durch
Zuerst führen wir eine grundlegende Authentifizierung nur mit der HTTP-Methode POST
durch. Wir erstellen ein HTML-Anmeldeformular, das Benutzername und Passwort akzeptiert.
Wir überprüfen die Benutzereingabe mit einer Reihe vordefinierter Anmeldedaten. Als nächstes führen wir die HTTP-Authentifizierung mit cURL
-Methoden durch.
Erstellen Sie zum Beispiel ein Verzeichnis curl
im /var/www/html
und erstellen Sie dann eine Datei login.php
. Erstellen Sie in der PHP-Datei ein Anmeldeformular mit HTML.
Schreiben Sie die Attribute name
als uname
und pass
für Benutzername und Passwort, wie im Beispiel unten gezeigt.
Codebeispiel:
<form action="login.php" method="post">
<input type="text" placeholder="Enter Username" name="uname" required><br>
<input type="password" placeholder="Enter Password" name="pass" required><br>
<button type="submit" >Login</button>
</form>
Als nächstes öffnen Sie das PHP-Tag und prüfen mit der Funktion isset()
, ob Benutzername und Passwort gleich user123
und password123
sind. Verwenden Sie die if
-Bedingung, um die Meldung entsprechend anzuzeigen, wie im folgenden Beispiel gezeigt.
if(isset($_POST['uname'])&& isset($_POST['pass']))
if($_POST['uname']=='user123' && $_POST['pass']=='password123'){
echo "login successful";
}
else{
echo "login failed";
}
Öffnen Sie nun die Datei vom Server und füllen Sie die Anmeldeinformationen wie folgt aus.
username=user123
password=password123
Ausgang:
Sie können die HTTP-Anforderung auf der Registerkarte Netzwerk
der Option Element prüfen
überprüfen, wie unten gezeigt.
Sie können die Authentifizierung testen, indem Sie die falschen Anmeldeinformationen an das Formular übermitteln und die Meldung Anmeldung fehlgeschlagen
anzeigen. Die falschen Zugangsdaten sind auch auf der Registerkarte Anfrage
zu sehen, wie im Bild oben.
Führen Sie die grundlegende HTTP-Authentifizierung mit cURL
durch
Wir können die HTTP-Authentifizierung mit den oben aufgeführten cURL
-Methoden durchführen. Zuerst müssen wir eine Nutzlast erstellen, um die HTTP-Anforderung an den Server zu senden.
Erstellen Sie beispielsweise eine Datei post.php
im Verzeichnis curl
. Erstellen Sie in der PHP-Datei ein Array $data
und speichern Sie die korrekten Anmeldeinformationen, wie unten gezeigt.
$data = array(
"uname" => "user123",
"pass" => "password123",
"form" => "submit"
);
Erstellen Sie als nächstes eine Variable ch
, um die Sitzung cURL
zu speichern. Weisen Sie ch
die Funktion curl_init()
mit der URL http://localhost/curl/login.php
zu.
Verwenden Sie danach die Funktion curl_setopt()
, um die verschiedenen Optionen für die cURL
-Sitzung festzulegen. Setzen Sie CURLOPT_FOLLOWLOCATION
, CURLOPT_POST
und CURLOPT_RETURNTRANSFER
auf TRUE
.
Geben Sie die Payload $data
für die Option CURLOPT_POSTFIELDS
an. Schreiben Sie für die Option CURLOPT_COOKIEJAR
den Cookie-Dateinamen cookie.txt
.
Sie müssen eine leere cookie.txt
-Datei erstellen, um das Cookie im Projektverzeichnis zu speichern.
http://localhost/curl/login.php
ist die Ziel-URL, an die wir die Anfrage mitcURL
senden.- Die auf
TRUE
gesetzte OptionCURLOPT_FOLLOWLOCATION
folgt jeder Header-Position, die vonLocation: header()
umgeleitet wird. - Die auf
TRUE
gesetzte OptionCURLOPT_POST
teilt der Session mit, dass es sich um einePOST
-Anfrage an den Server handelt. - Die Option
CURLOPT_POSTFIELDS
definiert die in der Anfrage gesendete Nutzlast. - Die Option
CURLOPT_COOKIEJAR
speichert die Cookies nach dem Beenden dercURL
-Session in der Dateicookie.txt
. - Die auf
TRUE
gesetzte OptionCURLOPT_RETURNTRANSFER
gibt die Antwort dercurl_exec()
statt der direkten Eingabe zurück.
Schreiben Sie abschließend die Funktion curl_exec()
mit ch
als Parameter, um die cURL
-Session auszuführen und schliessen Sie die Session mit curl_close()
. Zeigen Sie zuletzt die Ausgabe der Funktion curl_exec()
an.
Codebeispiel:
$ch = curl_init('http://localhost/curl/login.php');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
$result = curl_exec($ch);
curl_close($ch);
echo $result;
Führen Sie dann das Skript post.php
aus. Die folgende Ausgabe wird empfangen, wenn die Anmeldeinformationen in der Nutzlast korrekt sind.
Die Ausgabe lautet Anmeldung fehlgeschlagen
, wenn wir die falschen Anmeldeinformationen verwenden.
Daher hat dieses Tutorial gezeigt, wie man eine grundlegende cURL
-Authentifizierung in PHP durchführt.
Subodh is a proactive software engineer, specialized in fintech industry and a writer who loves to express his software development learnings and set of skills through blogs and articles.
LinkedIn