


Key Takeaways
- Die Windows-Registrierung, auf eine hierarchisch strukturierte Datenbankspeicherkonfigurationsinformationen, kann mit der Win32std-Erweiterung mit PHP zugegriffen werden, die als vorgefertigte Bibliothek aus downloads.php.net/pierre/. heruntergeladen werden kann
- Die Windows -Registrierung ist in fünf Hauptgruppen unterteilt, die als Schlüssel bekannt sind: hkey_current_config, hkey_local_maachine, hkey_users, hkey_classes_root und hkey_current_user. Jeder Schlüssel enthält Unterkaser, die wiederum andere Unterkaser, Konfigurationswerte oder beides enthalten.
- Die Funktion reg_open_key () öffnet eine Verbindung zur Registrierung und gibt eine Ressource zurück, die mit anderen Registrierungsfunktionen verwendet werden kann, um auf diese Verbindung zu reagieren. Die Funktion rEG_CLOSE_KEY () schließt die Verbindung. Die Funktion reg_set_value () wird verwendet, um einen Wert in die Registrierung zu schreiben, vorhandene Werte zu überschreiben oder neue zu erstellen.
- Die Windows-Registrierung kann für praktische Anwendungen verwendet werden, z. B. für das Speichern von Konfigurationsinformationen für webbasierte Anwendungen, das Speichern von Anwendungsdaten und Benutzereinstellungen für Desktop-Anwendungen oder Überprüfung des Vorhandenseins von Hardwaregeräten wie einem USB-Dongle. Das Ändern der Registrierung sollte jedoch mit Vorsicht erfolgen, da dies den Betrieb des Systems beeinflussen kann.
Das Registrierungslayout
Das Register hat den Ruf, ein dunkler, gefährlicher und beängstigender Ort im Betriebssystem zu sein. Dies ist wahrscheinlich eine übertriebene Angst, aber ich wiederhole Microsoft's Registry Mantra: „Bevor Sie die Registrierung ändern, stützen Sie sie und stellen Sie sicher, dass Sie verstehen, wie Sie sie wiederherstellen können, wenn ein Problem auftritt. Ungesetzte Änderungen können zu ernsthaften Problemen führen, bei denen Sie möglicherweise Ihr Betriebssystem neu installieren müssen. “ Wie sieht dieser dunkle, beängstigende Ort aus? Die Windows -Registrierung ist in 5 Hauptgruppen unterteilt, die als Schlüssel bekannt sind: hkey_current_configIn diesem Schlüssel wird Informationen über die Hardware des Computers wie Überwachungsauflösung und Lautsprechereinstellungen gespeichert. Möglicherweise sehen Sie, dass dieser Schlüssel als HKCC abgekürzt wird. hkey_local_maachine
Dieser Schlüssel enthält Konfigurationsinformationen für den Computer wie Drucker, Software- und Netzwerkinformationen. Der Schlüssel wird zuerst geladen und dann die Einträge aus dem Profil des Benutzers überschreiben verschiedene Werte. Sie werden diesen Schlüssel als HKLM sehen. hKey_users
Dieser Schlüssel enthält alle Profile für die lokalen Benutzerkonten auf der Maschine. Solche Dinge wie die Bildschirmschonerauswahl des Benutzers, die Themeninformationen und andere Einstellungen werden hier gespeichert. Dieser Schlüssel wird als HKU abgekürzt. hKey_classes_root
Dieser Schlüssel ist ein Alias, der auf hkey_local_maachinesoftware verweist, die Informationen zu Datei-Assoziationen und MIME-Typen speichert. Die Abkürzung ist HKCR. hKey_current_user
Dieser Schlüssel ist ein Alias, der auf das Profil in HKEY_USERS für den derzeit angemeldeten Benutzer hinweist. Sie werden diesen Schlüssel als HKCU sehen. Jeder Schlüssel enthält Unterkaser, die wiederum andere Unterkaser, Konfigurationswerte oder beides enthalten. Das Arbeiten unter hkey_current_user reicht aus, um mit ein paar CLI -Skripten und einem Sandkasten herumzuspielen. Verwenden Sie nur HKEY_LOCAL_MACHINE für systemweite Anwendungsdaten und Situationen, in denen Sie sich wohl mit den Sicherheitsberechtigungen von Microsoft arbeiten. Verstehen Sie, was für Ihre Situation richtig ist, wissen Sie, welches Konto PHP ausführt, und erstellen Sie Ihre Schlüssel angemessen.
eine Sandbox machen
Ich empfehle, einen speziellen Schlüssel für die Verwendung in Ihren Skripten für die Sicherheit einzurichten, insbesondere bei der Entwicklung. Zu irrt, ist menschlich und wir wollen nichts Wichtiges versehentlich überschreiben. Die Organisation ist ein weiterer Grund für die Einrichtung eines benannten Schlüssels. In der Registrierung werden viele Informationen gespeichert, und wir möchten in der Lage sein, unsere eigenen Werte leicht zu finden. Registrierungseditor ist ein Microsoft -Programm, mit dem die Registrierung angezeigt und bearbeitet wird. Um unsere Sandbox zu erstellen, geben Sie in der Suchleiste „regelmäßig“ ein und wählen Sie in der angezeigten Ergebnisliste regeledit.exe aus. Das linke Bereich zeigt eine Baumstruktur der vorhandenen Tasten, während der rechte Bereich Werte zeigt, die in ihnen gespeichert sind. Erweitern Sie den Knoten hkey_current_user, klicken Sie mit der rechten Maustaste auf den Softwareschlüssel und wählen Sie im Popup-Kontextmenü neue> Schlüssel. Alternativ hätten wir mit den Pfeiltasten auch durch den Baum durchquert werden, damit der Softwareschlüssel hervorgehoben wird, und im Menü Bearbeiten neu> Schlüssel auszuwählen. Geben Sie einen Namen für die Taste an und drücken Sie die Eingabetaste.
Lesen aus der Registrierung
Die Funktion reg_open_key () öffnet eine Verbindung zur Registrierung und gibt eine Ressource zurück. Diese Ressource wird dann mit anderen Registrierungsfunktionen verwendet, um auf diese Verbindung zu reagieren. Die Funktion rEG_CLOSE_KEY () schließt die Verbindung. reg_open_key () nimmt zwei Argumente ein: zuerst eine vordefinierte Konstante, die eine der fünf primären Registrierungsgruppen darstellt, dann der Rest des Pfades zum gewünschten Schlüssel.<span><span><?php </span></span><span><span>$keyConst = HKEY_CURRENT_USER; </span></span><span> </span><span><span>// backslash is used as an escape so it must be escaped itself </span></span><span><span>$key = "Software\Intel"; </span></span><span> </span><span><span>// open the registry key HKCUSoftwareIntel </span></span><span><span>if (!($reg = @reg_open_key($keyConst, $key))) { </span></span><span> <span>throw new Exception("Cannot access registry."); </span></span><span><span>} </span></span><span><span>... </span></span><span> </span><span><span>reg_close_key($reg);</span></span></span>Nachdem Sie eine offene Verbindung haben, können Sie Informationen aus der Registrierung mit den Funktionen reg_enum_key (), reg_enum_value () und reg_get_value () abrufen. Wenn nur die Ressource an reg_enum_key () übergeben wird, wird ein Array von SubKeys unter den aktuellen Schlüssel zurückgegeben. Ein ganzzahliger Wert kann auch übergeben werden, um den Unterschlüssel in einem bestimmten Index abzurufen.
<span><span><?php </span></span><span><span>// retrieve an array of subkeys under the current key </span></span><span><span>$subkeys = reg_enum_key($reg); </span></span><span><span>foreach ($subkeys as $index => $subkey) { </span></span><span> <span>echo "The subkey at " . $index . " is " . $subkey . "n"; </span></span><span><span>} </span></span><span> </span><span><span>// retrieve a specific subkey </span></span><span><span>$index = 2; </span></span><span><span>$subkey = reg_enum_key($reg, $index); </span></span><span><span>echo "The subkey at " . $index . " is " . $subkey . "n";</span></span></span>ASR_ENUM_KEY () gibt Tasten zurück, Reg_enum_Value () gibt die Werte der Tasten zurück. Die Funktion akzeptiert die Ressource und einen optionalen Index. Der Wertname kann an reg_get_value () übergeben werden, um den Wert des Wertes abzurufen (ist das nicht ein Schluck!).
<span><span><?php </span></span><span><span>// retrieve an array of values under a given key </span></span><span><span>$values = reg_enum_value($reg); </span></span><span><span>foreach ($values as $index => $value) { </span></span><span> <span>echo "The value at " . $index . " is " . $value . " and stores "; </span></span><span> <span>echo reg_get_value($reg, $value) . "n"; </span></span><span><span>} </span></span><span> </span><span><span>// retrieve a specific value given the index </span></span><span><span>$index = 1; </span></span><span><span>$value = reg_enum_value($reg, $index); </span></span><span><span>echo "The value at " . $index . " is " . $value . " and stores "; </span></span><span><span>echo reg_get_value($reg, $value) . "n";</span></span></span>
Schreiben in die Registrierung
Es gibt eine Handvoll Datentypen, aus denen Sie beim Lesen und Schreiben in die Registrierung auswählen können. Sie sind im Allgemeinen aufgrund der dynamischen Natur von PHP von geringer Folge, aber Sie müssen den Typ angeben, wenn Sie einen Wert schreiben. Meistens verwenden Sie Reg_SZ oder Reg_DWORD, aber hier finden Sie eine Liste der Datentypen, die durch die Erweiterung ausgesetzt sind:- reg_dword-Wert wird als 32-Bit-lange Ganzzahl gespeichert
- reg_sz-Der Wert wird als String mit fester Länge gespeichert
- reg_expand_sz-Der Wert wird als String für variable Länge gespeichert
- reg_multi_sz - Wert ist eine Liste der Elemente, die von einem Trennzeichen wie einem Raum oder einem Komma getrennt sind
- reg_binary - Wert ist eine binäre Zeichenfolge
- reg_none - Wert hat keinen bestimmten Datentyp zugeordnet
<span><span><?php </span></span><span><span>$keyConst = HKEY_CURRENT_USER; </span></span><span> </span><span><span>// backslash is used as an escape so it must be escaped itself </span></span><span><span>$key = "Software\Intel"; </span></span><span> </span><span><span>// open the registry key HKCUSoftwareIntel </span></span><span><span>if (!($reg = @reg_open_key($keyConst, $key))) { </span></span><span> <span>throw new Exception("Cannot access registry."); </span></span><span><span>} </span></span><span><span>... </span></span><span> </span><span><span>reg_close_key($reg);</span></span></span>
Ein Beispiel - USB Drive Dongle
Möglicherweise fragen Sie sich, ob es eine praktische Verwendung für die Arbeit mit der Registrierung gibt. In einer webbasierten Anwendung können Sie Ihre Konfigurationsinformationen in der Registrierung speichern. Wenn Sie eine Desktop -Anwendung geschrieben haben, kann die Registrierung ein guter Ort sein, um alle Arten von Informationen von Anwendungsdaten zu Benutzereinstellungen zu speichern. Windows selbst schreibt alle möglichen interessanten Hardware- und staatlich verwandten Informationen in die Registrierung, und ein Teil davon könnte nützlich sein, wenn Sie kreativ genug sind. Angenommen, unsere PHP -Anwendung wurde so lizenziert, dass ein USB -Dongle an den Server angeschlossen werden muss, um ihn auszuführen. Wie kann PHP das Vorhandensein des Dongle erkennen? Die Antwort unter Windows liegt in der Registrierung! Jedes Gerät verfügt über eine eindeutige Kennung, sodass das Skript die entsprechenden Schlüssel für die Kennung durchsuchen kann, wenn es startet, um festzustellen, ob der Dongle angeschlossen ist oder nicht. Der erste Schritt besteht darin, die Kennung des Geräts zu bestimmen. In diesem Beispiel verwende ich einen Rohstoff -Thumbdrive. Schließen Sie das Laufwerk einfach an einen USB -Anschluss auf dem Computer an und geben Sie dann zu Start ein, geben Sie "Gerät" in die Suchleiste ein und wählen Sie Geräte -Manager in der angezeigten Ergebnisliste. Suchen Sie das Gerät im Geräte -Manager, klicken Sie mit der rechten Maustaste auf den Eintrag und wählen Sie im Kontextmenü Eigenschaften. Gehen Sie dann zur Registerkarte Details des Eigenschaftenfensters und wählen Sie in der Dropdown -Liste "Geräteinstanzpfad" aus. Die Abfolge der hexadezimalen Zahlen gegen Ende des Wertes ist die Geräte -ID (in Rot markiert).
<span><span><?php </span></span><span><span>$keyConst = HKEY_CURRENT_USER; </span></span><span> </span><span><span>// backslash is used as an escape so it must be escaped itself </span></span><span><span>$key = "Software\Intel"; </span></span><span> </span><span><span>// open the registry key HKCUSoftwareIntel </span></span><span><span>if (!($reg = @reg_open_key($keyConst, $key))) { </span></span><span> <span>throw new Exception("Cannot access registry."); </span></span><span><span>} </span></span><span><span>... </span></span><span> </span><span><span>reg_close_key($reg);</span></span></span>Diese einfache Überprüfung eröffnet auch einige andere interessante Möglichkeiten. Sie können einfach eine sensible Administratorschnittstelle codieren, die den Dongle überprüft, und die Anforderung wird vom Server selbst gesendet, indem Sie $ _server ["remote_addr"] überprüfen. Für diese Einrichtung muss der Benutzer physisch auf dem benannten Server und eine Form der physikalischen Authentifizierung bereitstellen.
Abschließend
Im Laufe dieses Artikels haben wir gesehen, wie sich die Windows -Registrierung befindet und welche Informationen darin enthalten sind. Sie können Ihre eigenen Konfigurationsdaten schreiben oder Informationen unter Verwendung der Funktionen der Win32std -Erweiterung zurücklesen. Übrigens bietet die Win32std -Erweiterung mehr als nur Zugang zur Registrierung. Wenn Sie interessiert sind, schauen Sie sich wildphp.free.fr/wiki/doku.php?id=win32std:Index an, um zu sehen, was es sonst noch bietet. Bild über Fotolienhäufig gestellte Fragen (FAQs) zum Zugriff auf die Windows -Registrierung von PHP
Wie kann ich von PHP auf die Windows -Registrierung zugreifen? Mit dieser Klasse kann PHP mit allen COM -Objekten interagieren, einschließlich der Windows -Registrierung. Sie können eine neue Instanz der COM -Klasse erstellen und dann mit der Regeldethode einen Wert aus der Registrierung lesen. Bitte beachten Sie jedoch, dass für diese Methode die richtigen Berechtigungen erforderlich sind, um auf die Registrierung zuzugreifen. Dadurch werden Einstellungen auf niedriger Ebene für das Betriebssystem und für Anwendungen gespeichert, die sich für die Verwendung der Registrierung entscheiden. Möglicherweise müssen Sie aus verschiedenen Gründen von PHP darauf zugreifen, z. B. um Systeminformationen abzurufen, auf das Vorhandensein bestimmter Software zu überprüfen oder die Systemeinstellungen zu ändern. Das Ändern der Registrierung sollte jedoch mit Vorsicht erfolgen, da dies den Betrieb des Systems beeinflussen kann. PHP unter Verwendung der RegWrite -Methode der COM -Klasse. Dies sollte jedoch mit äußerster Vorsicht erfolgen, da falsche Änderungen schwerwiegende Probleme verursachen können, bei denen Sie möglicherweise Ihr Betriebssystem neu installieren müssen.
Welche Berechtigungen muss ich von PHP auf die Windows -Registrierung zugreifen, um von PHP auf die Windows -Registrierung zugreifen zu können. Dies liegt daran, dass die Registrierung kritische System- und Anwendungseinstellungen enthält. Wenn Sie Ihr Skript von einem Webserver ausführen, muss das Benutzerkonto des Servers auch über die erforderlichen Berechtigungen verfügen. Hierarchisch als Baum organisiert, mit Schlüsseln und Werten. Tasten ähneln den Ordnern, und Werte sind die Dateneinträge innerhalb der Tasten. Jeder Schlüssel kann Unterkollegen enthalten, und jeder Unterschlüssel kann weitere Unterkämpfe enthalten und eine Baumstruktur bilden.
Wie kann ich beim Zugriff auf die Windows -Registrierung von Php? PHP, Fehler können mit den Standardfunktionen der Standard -PHP -Fehler behandelt werden. Beispielsweise können Sie die Funktion set_error_handler verwenden, um einen benutzerdefinierten Fehlerhandler zu definieren. Registrierung von PHP auf einem Nicht-Windows-System. Die Windows-Registrierung ist eine Funktion, die für das Windows-Betriebssystem spezifisch ist. Com Objekte. COM (Komponentenobjektmodell) ist ein Binary-Interface-Standard für Softwarekomponenten, die von Microsoft eingeführt wurden. Es ermöglicht PHP, mit allen COM -Objekten zu interagieren, einschließlich der Windows -Registrierung. . Dies kann unter Verwendung der RegDelete -Methode der COM -Klasse erfolgen. Dies sollte jedoch mit äußerster Vorsicht erfolgen, da das Löschen des falschen Schlüssels schwerwiegende Probleme verursachen kann. Falsche Änderungen können schwerwiegende Probleme verursachen, bei denen Sie möglicherweise Ihr Betriebssystem neu installieren müssen. Daher wird empfohlen, die Registrierung zu sichern, bevor Sie Änderungen vornehmen, und nur Änderungen vorzunehmen, wenn Sie sicher sind, was Sie tun.
Das obige ist der detaillierte Inhalt vonPHP Master | Greifen Sie mit PHP auf die Windows -Registrierung zu. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Die Absolute -Sitzungs -Zeitlimit startet zum Zeitpunkt der Erstellung der Sitzung, während eine Zeitlimit in der Leerlaufsitzung zum Zeitpunkt der No -Operation des Benutzers beginnt. Das Absolute -Sitzungs -Zeitlimit ist für Szenarien geeignet, in denen eine strenge Kontrolle des Sitzungslebenszyklus erforderlich ist, z. B. finanzielle Anwendungen. Das Timeout der Leerlaufsitzung eignet sich für Anwendungen, die die Benutzer für lange Zeit aktiv halten, z. B. soziale Medien.

Der Serversitzungsausfall kann durch Befolgen der Schritte gelöst werden: 1. Überprüfen Sie die Serverkonfiguration, um sicherzustellen, dass die Sitzung korrekt festgelegt wird. 2. Überprüfen Sie die Client -Cookies, bestätigen Sie, dass der Browser es unterstützt und korrekt senden. 3. Überprüfen Sie die Speicherdienste wie Redis, um sicherzustellen, dass sie normal arbeiten. 4. Überprüfen Sie den Anwendungscode, um die korrekte Sitzungslogik sicherzustellen. Durch diese Schritte können Konversationsprobleme effektiv diagnostiziert und repariert werden und die Benutzererfahrung verbessert werden.

Session_Start () iscrucialinphPFormAnagingUSSERSIONS.1) ItinitiatesanewSessionifnoneExists, 2) Wiederaufnahmen und 3) setaSessionCookieforContinuityAcrossRequests, aktivierende Anwendungen wie

Das Festlegen des HTTPonly -Flags ist für Sitzungscookies von entscheidender Bedeutung, da es effektiv verhindern und die Informationen zur Benutzersitzung schützen kann. Insbesondere 1) Das Httponly -Flag verhindert, dass JavaScript auf Cookies zugreift, 2) Das Flag kann durch SetCookies eingestellt werden und in PHP und Flasche 3), obwohl es nicht von allen Angriffen von allen Angriffen verhindert werden kann, Teil der Gesamtsicherheitsrichtlinie sein sollte.

PhpSsionSsionSolvetheProblemofMaintainingStateAcrossmultipehttprequestsBoringDataontheserverandassociatingitittprequests.1) Sie starteten die Stundeataserver-Seite, typischerweise infileSordatabasen, undusaSasionIdinacookookookotenData

PHPSSIONS CANSTORESTRINGEN, ZUGNALTEN, ARRAYS, ANDOBjekte.1.

TostartaphpSession, useSession_start () atthescript'Sbeginning.1) PlaCEITBEFOREANYOUTPUTTOTHESESSIONSCOOKIE.2) useSsionsforuserDatalikeloginStatusOrShopingCarts

Die Sitzung der Sitzung bezieht sich auf die Generierung einer neuen Sitzungs -ID und die Ungültigmachung der alten ID, wenn der Benutzer sensible Vorgänge bei festgelegten Sitzungsangriffen ausführt. Die Implementierungsschritte umfassen: 1. Erkennen sensibler Vorgänge, 2. Erstellen neuer Sitzungs-ID, 3..


Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Dreamweaver CS6
Visuelle Webentwicklungstools

ZendStudio 13.5.1 Mac
Leistungsstarke integrierte PHP-Entwicklungsumgebung

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

SAP NetWeaver Server-Adapter für Eclipse
Integrieren Sie Eclipse mit dem SAP NetWeaver-Anwendungsserver.
