ik wil 2 niveau's gebruiken voor extra beveiliging, dus dat bij een select query enkel maar gelezen kan worden door de user waarmee geconnect wordt met de mysql server.
Ik heb een register klasse die een singleton (instance of) klasse is, waar dus al men variabelen inzitten.
owkey die klasse hebben we gehad, nu de rest iet of wat versimpelt
Nu ik krijg bij var_dumps effectief de waarden:
string(4) "user"
string(3) "hoi"
string(9) "localhost"
maar de isset werkt niet, alsook de empty.
Het vreemde is dat bij isset het zogezegd niet gezet is maar als ik dan een empty erop zet dan is die ook niet leeg.
Ik heb een register klasse die een singleton (instance of) klasse is, waar dus al men variabelen inzitten.
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
| interface Singleton { static public function getInstance(); } class Register implements Singleton { static private $instance; private $options = array(); function set($key, $var) { if (isset($this->options[$key]) == true) { throw new Exception('Unable to set var `' . $key . '`. Already set.'); } $this->options[$key] = $var; return true; } function remove($var) { unset($this->options[$var]); } static public function getInstance() { if( !self::$instance instanceof self ) { self::$instance = new self; } return self::$instance; } public function __get( $key ) { if( isset($this->options[$key]) ) { $return = $this->options[$key]; } else { $return = $key . " does noet exist!"; } return $return; } } $config = Register::getInstance(); $config->set("readUsername", "user"); $config->set("readPassword", "hoi"); $config->set("readServer", "localhost"); $config->set("writeUsername", "root"); $config->set("writePassword", "hoi"); $config->set("writeServer", "localhost"); $config->set("table", "table"); |
owkey die klasse hebben we gehad, nu de rest iet of wat versimpelt
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
| class mysql { var $oConfig; private static function config() { global $oConfig; $oConfig = Register::getInstance(); } private static function readConnection() { global $oConfig; if(empty($oConfig)) mysql::config(); echo "<br />"; var_dump($oConfig->readUsername); echo "<br />"; var_dump($oConfig->readPassword); echo "<br />"; var_dump($oConfig->readServer); if((isset($oConfig->readUsername) && isset($oConfig->readPassword) && isset($oConfig->readServer))) { echo "ok"; } } public static function query() { mysql::readConnection(); } } $test = mysql::query(); |
Nu ik krijg bij var_dumps effectief de waarden:
string(4) "user"
string(3) "hoi"
string(9) "localhost"
maar de isset werkt niet, alsook de empty.
Het vreemde is dat bij isset het zogezegd niet gezet is maar als ik dan een empty erop zet dan is die ook niet leeg.
[ Voor 0% gewijzigd door Precision op 20-11-2008 21:35 . Reden: poging tot wijzigen van titel, achteraf gezien ergens anders uitgekomen met vraag dan verwacht ]
Crisis? Koop slim op Dagoffer - Op zoek naar een tof cadeau?