Ich würde gern einen PHP-Resource-Datentypen für eine Session speichern.
Genaugenommen möchte ich mich per Login-Screen im Browser "richtig" an einer Postgres-DB anmelden und dann bis zum Logout das gleiche DB-Handle benutzen. Leider können Resource-Typen nicht serialisiert werden, und ich will auch nicht Usernamen und Passwort (bzw. den ganzen Connection-String) im Cookie speichern.
Auch die Anmeldung mit einem technischen User und darunterliegender eigener User-Verwaltung ist für mich indiskutabel.
Irgendwelche Ideen, wie/ob man das hinbekommt?
Beim Speichern des Connection-Strings im Cookie habe ich gefühlsmäßig irgendwie Sicherheitsbedenken...
PHP: DB-Resource für Session speichern
Hmm, vielleicht stehe ich ja auf'm Schlauch , aber wenn ich in aaa.php eine Zeile wie
habe, dann kann ich in bbb.php $conn nur schlecht weiter benutzen. Mir ist klar, daß php die gleiche Verbindung benutzt, wenn ich das pg_connect mit gleichem String wie in aaa.php aufrufe (steht jedenfalls in der Doku) nur wie kann ich die Resource $conn aus aaa.php in bbb.php benutzen
Code: Alles auswählen
$conn = pg_connect("host=hier db=bla user=ich pw=hurliburli");
warum willst du denn die ressourcedatei benutzen?
du bekommst doch automatisch die gleiche ressource zugeteilt (denke ich):
aaa.php:
$conn = pg_connect("host=hier db=bla user=ich pw=hurliburli");
var_dump($conn);
bbb.php:
$conn = pg_connect("host=hier db=bla user=ich pw=hurliburli");
var_dump($conn);
Wenn ich das manual richtig verstanden habe, dann musst du dich um das sharen der ressource nicht kümmern.
du bekommst doch automatisch die gleiche ressource zugeteilt (denke ich):
aaa.php:
$conn = pg_connect("host=hier db=bla user=ich pw=hurliburli");
var_dump($conn);
bbb.php:
$conn = pg_connect("host=hier db=bla user=ich pw=hurliburli");
var_dump($conn);
Wenn ich das manual richtig verstanden habe, dann musst du dich um das sharen der ressource nicht kümmern.
Perl macht Spass.
Ich will, wie gesagt, das Passwort nicht zwischenspeichern und/oder mitschleppen. Ich möchte mich, wie ich es mit einer normalen Desktop-Anwendung kann, einmal an der DB anmelden (mit Username und Passwort) und dann das erhaltene DB-Handle benutzen, um so viele Queries auszuführen wie ich will.
Wenn ich fertig bin (oder serverseitig nach einem Timeout) schmeiße ich das Handle weg und alles ist sicher.
Es geht mir nicht darum, daß ich aus Performance-Gründen die gleiche Connection brauche. Persitent oder nicht ist also egal. Und überhaupt:
Ich find's nur einfach sch$%&§ und unprofessionell, ein Passwort im Speicher zu halten. Implizit ist bei meinem Vorhaben sicherlich EINE (folglich persistente) Verbindung nötig... Die (wahrscheinlich) alles entscheidende Frage bleibt, wie ich eine Variable vom Typ Resource, die in Skript X angelegt wurde auch in den Skripts Y, Z, usw. verwenden kann.
Wenn ich fertig bin (oder serverseitig nach einem Timeout) schmeiße ich das Handle weg und alles ist sicher.
Es geht mir nicht darum, daß ich aus Performance-Gründen die gleiche Connection brauche. Persitent oder nicht ist also egal. Und überhaupt:
(PHP-Manual, Chapter 41)In fact, to be extremely clear about the subject, persistent connections don't give you any functionality that wasn't possible with their non-persistent brothers. ... An important summary. Persistent connections were designed to have one-to-one mapping to regular connections. That means that you should always be able to replace persistent connections with non-persistent connections, and it won't change the way your script behaves. It may (and probably will) change the efficiency of the script, but not its behavior!
Ich find's nur einfach sch$%&§ und unprofessionell, ein Passwort im Speicher zu halten. Implizit ist bei meinem Vorhaben sicherlich EINE (folglich persistente) Verbindung nötig... Die (wahrscheinlich) alles entscheidende Frage bleibt, wie ich eine Variable vom Typ Resource, die in Skript X angelegt wurde auch in den Skripts Y, Z, usw. verwenden kann.