Zouden jullie mij uit willen leggen waarom $access alleen in de functie zelf werkt?
En waarom helpt het niet als ik return $access; plaats boven de } van het be-eindigen van de functie?
// hier werkt echo $access...
door;
En waarom helpt het niet als ik return $access; plaats boven de } van het be-eindigen van de functie?
PHP:
Bij het vervangen van 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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
| <?php // include.php // parsetime: 0.03 seconds require "$DOCUMENT_ROOT/connect.php"; if ($_COOKIE["username"] == "" AND $_COOKIE["memberid"] == "") { $select = "SELECT * FROM banned WHERE ip = '" . $REMOTE_ADDR . "'"; $query = mysql_query($select) or die(mysql_error()); if(mysql_num_rows($query) == 1) { // banned $banned = 1; } } else { $select = "SELECT * FROM `members` WHERE `username` = '" . $_COOKIE["username"] . "'"; $query = mysql_query($select) or die(mysql_error()); $list = mysql_fetch_array($query); if($list[status] == "banned") { $banned = 1; $update = "UPDATE `banned` SET `ip`='" . $REMOTE_ADDR . "'"; $query = mysql_query($update); } } if($banned == 1) { echo "Banned!"; exit; } function protect($status) { global $_COOKIE; if ($_COOKIE["username"] == "" AND $_COOKIE["memberid"] == "" AND $_COOKIE["hash"] == "") { if($status == "all") { $access = 1; } else { $access = 0; } } else { if($status == "admin") { $query = mysql_query('SELECT `status` FROM `members` WHERE `username`="' . $_COOKIE['username'] . '" AND `id`="' . $_COOKIE['memberid'] . '" AND `password`="' . $_COOKIE[hash] . '" AND `status`="admin"'); $number = mysql_num_rows($query); if($number != 1) { $access = 0; } else { $access = 1; } } elseif($status == "elite") { $query = mysql_query('SELECT `status` FROM `members` WHERE `username`="' . $_COOKIE['username'] . '" AND `id`="' . $_COOKIE['memberid'] . '" AND `password`="' . $_COOKIE[hash] . '" AND (`status`="admin" OR `status`="elite")'); $number = mysql_num_rows($query); if(!mysql_num_rows($query)) { $access = 0; } else { $access = 1; } } elseif($status == "member") { $query = mysql_query('SELECT `id` FROM `members` WHERE `username`="' . $_COOKIE['username'] . '" AND `id`="' . $_COOKIE['memberid'] . '" AND `password`="' . $_COOKIE[hash] . '"'); $number = mysql_num_rows($query); if($number != "1") { $access = 0; } else { $access = 1; } } else { if($status == "all" OR !isset($status)) { $access = 1; } } } if ($error_page!="true") { if($access == "0") { echo "<b>ERR: Must be logged in</b> ---"; exit; } } return $access; // hier werkt echo $access nog wel } function beveiliging($status) { protect($status); } protect(all); echo $access; // resultaat van $access wordt niet gegeven $var = protect(all); echo $var; // dit returnt de waarde van $access normaal // resultaat wordt nu wel gegeven! ?> |
// hier werkt echo $access...
door;
PHP:
krijg ik bij de 1e wel gewoon 1 (output: 1), maar bij de 2e niet (bij // hier werkt echo $access niet meer).
1
2
3
4
5
6
| <?php if($access) { echo $access; } ?> |
[ Voor 134% gewijzigd door Verwijderd op 30-10-2003 17:52 ]