Call to a member function fetch()
Ik heb een script gedownload ergens waar volgende code in staat:
Code (php)
1
2
3
4
5
6
2
3
4
5
6
<?php
function dbRow($query) {
$q = dbQuery($query);
return $q->fetch(PDO::FETCH_ASSOC);
}
?>
function dbRow($query) {
$q = dbQuery($query);
return $q->fetch(PDO::FETCH_ASSOC);
}
?>
wanneer ik het script nu uitvoer, krijg ik de volgende error:
Ik heb al op google gezocht of ik ergens een of ik ergens een oplossing kan vinden, maar deze vind ik niet.
Hebben jullie misschien een oplossing om dit te verhelpen?
Mvg Jules
Een functie maken voor iets wat al bestaat slaat natuurlijk nergens op.
basics.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
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
<?php
session_start();
function __autoload($name) {
require $name . '.php';
}
function dbAll($query,$key='') {
$q = dbQuery($query);
$results=array();
while($r=$q->fetch(PDO::FETCH_ASSOC))$results[]=$r;
if(!$key)return $results;
$arr=array();
foreach($results as $r)$arr[$r[$key]]=$r;
return $arr;
}
function dbInit(){
if(isset($GLOBALS['db']))return $GLOBALS['db'];
global $DBVARS;
$db=new PDO('mysql:host='.$DBVARS['hostname'].';dbname='.$DBVARS['db_name'],$DBVARS['username'],$DBVARS['password']);
$db->query('SET NAMES utf8');
$db->num_queries=0;
$GLOBALS['db']=$db;
return $db;
}
function dbOne($query, $field='') {
$r = dbRow($query);
return $r[$field];
}
function dbLastInsertId() {
return dbOne('select last_insert_id() as id','id');
}
function dbQuery($query){
$db=dbInit();
$q=$db->query($query);
$db->num_queries++;
return $q;
}
function dbRow($query) {
$q = dbQuery($query);
return $q->fetch(PDO::FETCH_ASSOC);
}
define('SCRIPTBASE', $_SERVER['DOCUMENT_ROOT'] . '/');
require SCRIPTBASE . '.private/config.php';
if(!defined('CONFIG_FILE'))define('CONFIG_FILE',SCRIPTBASE.'.private/config.php');
set_include_path(SCRIPTBASE.'ww.php_classes'.PATH_SEPARATOR.get_include_path());
?>
session_start();
function __autoload($name) {
require $name . '.php';
}
function dbAll($query,$key='') {
$q = dbQuery($query);
$results=array();
while($r=$q->fetch(PDO::FETCH_ASSOC))$results[]=$r;
if(!$key)return $results;
$arr=array();
foreach($results as $r)$arr[$r[$key]]=$r;
return $arr;
}
function dbInit(){
if(isset($GLOBALS['db']))return $GLOBALS['db'];
global $DBVARS;
$db=new PDO('mysql:host='.$DBVARS['hostname'].';dbname='.$DBVARS['db_name'],$DBVARS['username'],$DBVARS['password']);
$db->query('SET NAMES utf8');
$db->num_queries=0;
$GLOBALS['db']=$db;
return $db;
}
function dbOne($query, $field='') {
$r = dbRow($query);
return $r[$field];
}
function dbLastInsertId() {
return dbOne('select last_insert_id() as id','id');
}
function dbQuery($query){
$db=dbInit();
$q=$db->query($query);
$db->num_queries++;
return $q;
}
function dbRow($query) {
$q = dbQuery($query);
return $q->fetch(PDO::FETCH_ASSOC);
}
define('SCRIPTBASE', $_SERVER['DOCUMENT_ROOT'] . '/');
require SCRIPTBASE . '.private/config.php';
if(!defined('CONFIG_FILE'))define('CONFIG_FILE',SCRIPTBASE.'.private/config.php');
set_include_path(SCRIPTBASE.'ww.php_classes'.PATH_SEPARATOR.get_include_path());
?>
en de error komt voor wanneer je probeert in te loggen, je word dan doorgestuurd naar login.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
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
<?php
require 'login-libs.php';
login_check_is_email_provided();
// check that the password is provided
if(!isset($_REQUEST['password']) || $_REQUEST['password']==''){
login_redirect($url,'nopassword');
}
// check that the email/password combination matches a row in the user table
$password=md5($_REQUEST['email'].'|'.$_REQUEST['password']);
$r=dbRow('select * from user_accounts where
email="'.addslashes($_REQUEST['email']).'" and
password="'.$password.'" and active'
);
if($r==false){
login_redirect($url,'loginfailed');
}
// success! set the session variable, then redirect
$_SESSION['userdata']=$r;
$groups=json_decode($r['groups']);
$_SESSION['userdata']['groups']=array();
foreach($groups as $g)$_SESSION['userdata']['groups'][$g]=true;
if($r['extras']=='')$r['extras']='[]';
$_SESSION['userdata']['extras']=json_decode($r['extras']);
login_redirect($url);
?>
require 'login-libs.php';
login_check_is_email_provided();
// check that the password is provided
if(!isset($_REQUEST['password']) || $_REQUEST['password']==''){
login_redirect($url,'nopassword');
}
// check that the email/password combination matches a row in the user table
$password=md5($_REQUEST['email'].'|'.$_REQUEST['password']);
$r=dbRow('select * from user_accounts where
email="'.addslashes($_REQUEST['email']).'" and
password="'.$password.'" and active'
);
if($r==false){
login_redirect($url,'loginfailed');
}
// success! set the session variable, then redirect
$_SESSION['userdata']=$r;
$groups=json_decode($r['groups']);
$_SESSION['userdata']['groups']=array();
foreach($groups as $g)$_SESSION['userdata']['groups'][$g]=true;
if($r['extras']=='')$r['extras']='[]';
$_SESSION['userdata']['extras']=json_decode($r['extras']);
login_redirect($url);
?>
Gewijzigd op 25/12/2012 20:53:33 door Jules Kreutzer
Al de functies die daarin gedeclareerd worden heb je al tot je beschikking met PDO.
en hoe kan ik het dan het beste oplossen dat ik die fatal error niet meer krijg wanneer ik me probeer in te loggen en wordt doorgestuurd naar login.php?
De oplossing is om zelf PHP te leren (vergeef me mijn cynisme op deze 1e kerstdag)
Opgelost ;)