Classes return -> true
Heey mensen,
Ik zit met een probleem: Ergens in mijn scriptje vraag ik of een bepaalde functie (check_sessions) true is. Jammergenoeg werkt dit niet, of ik doe iets fout. Hier het stukje code:
classes.inc.php
index.php
Dit geeft bij mij continue JA2 terug. Dit duidt dus op een return: false...
Wat doe ik fout???
Bij voorbaat dank voor jullie reacties!
Ik zit met een probleem: Ergens in mijn scriptje vraag ik of een bepaalde functie (check_sessions) true is. Jammergenoeg werkt dit niet, of ik doe iets fout. Hier het stukje code:
classes.inc.php
Code (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
58
59
60
61
62
63
64
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
<?php
session_start();
class database {
var $user = "********";
var $pass = "********";
var $host = "*********";
var $name = "********";
function connect() {
return mysql_select_db($this->name, mysql_connect($this->host, $this->user, $this->pass) or die("Cannot connect to database because: " . mysql_error()));
}
function get_single($sql) {
$this->connect();
$res = mysql_query($sql);
$data = mysql_fetch_array($res);
mysql_close();
return $data;
}
}
class head {
function check_sessions() {
echo "JA5";
$gebruikersnaam = $_SESSION['gebruikersnaam'];
$wachtwoord = $_SESSION['wachtwoord'];
$pers_id = $_SESSION['id'];
$database = new database;
$sql = "SELECT wachtwoord FROM members WHERE pers_ID='$pers_id'";
$database->get_single($sql);
if($data == $wachtwoord){
echo "ja";
return true;
}else{
echo "nee";
return false;
}
}
}
?>
session_start();
class database {
var $user = "********";
var $pass = "********";
var $host = "*********";
var $name = "********";
function connect() {
return mysql_select_db($this->name, mysql_connect($this->host, $this->user, $this->pass) or die("Cannot connect to database because: " . mysql_error()));
}
function get_single($sql) {
$this->connect();
$res = mysql_query($sql);
$data = mysql_fetch_array($res);
mysql_close();
return $data;
}
}
class head {
function check_sessions() {
echo "JA5";
$gebruikersnaam = $_SESSION['gebruikersnaam'];
$wachtwoord = $_SESSION['wachtwoord'];
$pers_id = $_SESSION['id'];
$database = new database;
$sql = "SELECT wachtwoord FROM members WHERE pers_ID='$pers_id'";
$database->get_single($sql);
if($data == $wachtwoord){
echo "ja";
return true;
}else{
echo "nee";
return false;
}
}
}
?>
index.php
Code (php)
Dit geeft bij mij continue JA2 terug. Dit duidt dus op een return: false...
Wat doe ik fout???
Bij voorbaat dank voor jullie reacties!
Gewijzigd op 01/01/1970 01:00:00 door Tim
in classes.inc.php staat dit
if($data == $wachtwoord){
Alleen $data staat nergens, dus hij geeft altijd de else terug, false dus.
Oplossing: $data maken en dat die var het wachtwoord wordt
if($data == $wachtwoord){
Alleen $data staat nergens, dus hij geeft altijd de else terug, false dus.
Oplossing: $data maken en dat die var het wachtwoord wordt
Han, ik was nog even bezig met het aanpassen van het scriptje, dus zie nu hierboven ;)
classes.inc.php <= dit niet zo doen maar:
classes_inc.php <= anders wordt hij niet altijd gefarst en liggen je gegevens alsnog op straat
ook al is het maar een classe, je weet nooit wat een heacker er uit peuters.
classes_inc.php <= anders wordt hij niet altijd gefarst en liggen je gegevens alsnog op straat
ook al is het maar een classe, je weet nooit wat een heacker er uit peuters.
Oke,
maar dan moet het nog wel zo :)
maar dan moet het nog wel zo :)
Code (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
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
<?PHP
function check_sessions() {
echo "JA5";
$gebruikersnaam = $_SESSION['gebruikersnaam'];
$wachtwoord = $_SESSION['wachtwoord'];
$pers_id = $_SESSION['id'];
$database = new database;
$sql = "SELECT wachtwoord FROM members WHERE pers_ID='$pers_id'";
$data = $database->get_single($sql);
if($data['wachtwoord'] == $wachtwoord){
echo "ja";
return true;
}else{
echo "nee";
return false;
}
}
}
?>
function check_sessions() {
echo "JA5";
$gebruikersnaam = $_SESSION['gebruikersnaam'];
$wachtwoord = $_SESSION['wachtwoord'];
$pers_id = $_SESSION['id'];
$database = new database;
$sql = "SELECT wachtwoord FROM members WHERE pers_ID='$pers_id'";
$data = $database->get_single($sql);
if($data['wachtwoord'] == $wachtwoord){
echo "ja";
return true;
}else{
echo "nee";
return false;
}
}
}
?>
Oke, ty... Dan nog een vraagje: als $data wordt gereturned, moet ik dan dus ook nog eens $data voor het aanroepen van de functie zetten?
Edit: Ook dit werkt niet... het lijkt sowieso wel aslof hij de functie niet aanroept, want hij echo't niet dat 'JA5'.
Edit: Ook dit werkt niet... het lijkt sowieso wel aslof hij de functie niet aanroept, want hij echo't niet dat 'JA5'.
Gewijzigd op 01/01/1970 01:00:00 door Tim
Zet bovenaan je script eens:
En ga dan eens aan het debuggen ...
En ga dan eens aan het debuggen ...
Ik heb de fout eindelijk gevonden (Nog zonder die error display trouwens)...
Bij iedere $head->check_sessions had er nog () bij moeten staan, dus: $head->check_sessions() ;)
Bij iedere $head->check_sessions had er nog () bij moeten staan, dus: $head->check_sessions() ;)
'bart:
classes.inc.php <= dit niet zo doen maar:
classes_inc.php <= anders wordt hij niet altijd gefarst en liggen je gegevens alsnog op straat
ook al is het maar een classe, je weet nooit wat een heacker er uit peuters.
classes_inc.php <= anders wordt hij niet altijd gefarst en liggen je gegevens alsnog op straat
ook al is het maar een classe, je weet nooit wat een heacker er uit peuters.
Maar wel een class met z'n mysql gegevens ;)




