Posts in der Kategorie PHP

CloudflareEntwicklungPHPWordPress
WordPress: bei neuem Beitrag Drone CI Pipeline ausführen

Wenn ich auf meinem Blog einen neuen Beitrag erstelle, oder einen aktualisiere/lösche, möchte ich gerne eine CI/CD-Pipeline auf meinem Drone Build-Server starten. Dazu habe ich folgendes Plugin geschrieben: Den Drone CI-Token bekommt man, indem man mit seinem Benutzer links unten auf „Account“ klickt. Das Plugin wird einfach im WordPress wp-content/plugins z.B. als start-build.php abgespeichert, und […]

DockerPHP
MediaWiki und LDAP/Active Directory in Docker

Projektziel: einen Docker-Container bauen, der automatisch die erforderlichen Sachen hat, die MediaWiki braucht um eine LDAP-Anmeldung an einem Domänencontroller hinzubekommen. Annahmen in diesem Projekt: wir haben eine ldap.json und eine angepasste LocalSettings.php nach der offiziellen Anleitung. Wir erstellen also erst einmal beide Dateien (z.B. mit dem regulärem MediaWiki-Docker-Container) und passen uns die dann an.Das Image […]

PHPSoftware
MySQL Charset gerade biegen

Ein Kunde hat eine MySQL-Tabelle, in der alle Felder sauber mit Charset utf8_general_ci angelegt wurden. Leider hat die PHP-Anwendung, die in die Tabelle schreibt, Daten in ISO 8859-1 in die Tabelle geschrieben; was dazu geführt hat, dass die Anwendung die Daten sauber lesen und schreiben konnte, andere Programme aber nicht. Diese gingen nämlich davon aus, […]

PHP
Arbeiten mit Phar-Archiven

Ich nutze für meine Seiten eine Art selbstgeschriebenes Framework; die selbe Codebase für alle Anwendungen, in der alles enthalten ist, was ich standardmäßig brauche. Session Handling, Anbindungen an Datenbanken, eine kleine Templateengine, etc. Die Anwendungen an sich wurden bei mir bisher immer nur im „app“-Verzeichnis abgelegt. Hatte ich ein Update für eine Seite, habe ich […]

PHPWordPress
PHP: Zugriff auf Adminpanel für Benutzer verhindern

Um zu verhindern, dass nicht-Administratoren auf das Admin-Dashboard zugreifen können, registrieren wir zuerst einen Listener, der triggert, sobald jemand dieses abrufen möchte: add_action(‚admin_init‘, ‚dashboard_for_admins_only‘); Der Code für die Funktion dashboard_for_admins_only sieht wie folgt aus: function dashboard_for_admins_only() { // Trotzdem Zugriff auf Admin-AJAX zulassen if($_SERVER[‚PHP_SELF‘] == ‚admin-ajax.php‘) return; // Administratoren den Zugriff erlauben if(current_user_can(‚manage_options‘)) return; // […]

PHPWordPress
PHP: Einen Benutzer einloggen

Möchten wir einen Benutzer einloggen, benötigen wir erst einmal seine ID. Ein Beispiel, wie wir einen Benutzer über seine Email auslesen können: $user = get_user_by(‚email‘, ‚[email protected]‘); Um den Benutzer dann einzuloggen, wenn er erfolgreich aus der Datenbank geladen wurde: if($user) { wp_set_current_user($user->ID, $user->user_login); wp_set_auth_cookie($user->ID); do_action(‚wp_login‘, $user->user_login); }

PHPWordPress
PHP: WordPress Passwörter erstellen / validieren

In der wp-includes/pluggable.php finden wir die Funktion wp_hash_password, welche (ohne den Code für die Plugins) wie folgt aussieht $s = new PasswordHash(8, true); echo $s->HashPassword(‚test‘); In selbiger Datei finden wir ebenfalls die Funktion wp_check_password, welche auf folgende Art und Weise Passwörter validiert: $s = new PasswordHash(8, true); $s->CheckPassword(‚test‘, ‚$P$123456789012345678901234567890‘); Der String, der mit „$P$“ anfängt, […]