Class in functie

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Dutchcamel

dutchcamel

28/02/2005 18:16:00
Quote Anchor link
Ik zit met een beetje vaag probleem.
In mijn index.php require ik require.inc.php met daarin alle standaard zooi, oa dit:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
require('r/config.inc.php');
require('r/classes.inc.php');
require('r/functions.inc.php');
$db = new dbclass();
$db->dbc_connect(DB_SERVER, DB_USERNAME, DB_PASSWORD) or die($db->dbc_error().' ('.$db->dbc_errno().')');
$db->dbc_select_db(DB_DATABASE_NAME) or die($db->dbc_error().' ('.$db->dbc_errno().')');
define('IP', ip());
if (banned(IP)) {
    die('Je bent (tijdelijk) geweigerd op de site');
}

?>


Alle variabelen enzo kloppen dus daar ligt het niet aan. Nu gebruik ik in veel functies queries die ik dus eigenlijk met die class wil doen. Daarvoor zal ik in de functie de class moeten gebruiken, maar dit wil niet werken. Als ik het niet in een functie zet werkt het gewoon, maar zodra de query in een functie wordt uitgevoerd krijg ik foutmeldingen.

Eén van de functies, de eerst waarbij het dus al mis gaat:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function banned($ip) {
    $db->dbc_query("SELECT id FROM banned WHERE ip = '".$ip."' AND (date > NOW() OR date = '0000-00-00 00:00:00') LIMIT 0, 1") or die($db->dbc_error().' ('.$db->dbc_errno().')');
    if (mysql_num_rows($db->dbc_get('result')) == 0) {
        return FALSE;
    }

    else {
        return TRUE;
    }
}

?>


Dit levert de volgende melding op:
Quote:
Fatal error: Call to a member function on a non-object in /var/www/html/dutchcamel/r/functions.inc.php on line 3


Als ik de functie iets aanpas tot:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
function banned($ip) {
    global $db;
    $db->dbc_query("SELECT id FROM banned WHERE ip = '".$ip."' AND (date > NOW() OR date = '0000-00-00 00:00:00') LIMIT 0, 1") or die($db->dbc_error().' ('.$db->dbc_errno().')');
    if (mysql_num_rows($db->dbc_get('result')) == 0) {
        return FALSE;
    }

    else {
        return TRUE;
    }
}

?>


Krijg ik vervolgens deze melding:
Quote:
Fout in query (1)

Dat is dus een foutmelding die ik zelf heb ingevoegd in die class. Maar de query is niet fout want hij werkt perfect en als de code dus niet in de functie wordt uitgevoerd maar gewoon normaal werkt alles wel.

Ik ben niet echt een expert met classes enzo dus het kan zijn dat de oplossing heel eenvoudig is, heeft iemand een idee hoe mijn probleem op te lossen is?
 
PHP hulp

PHP hulp

25/04/2024 14:55:28
 
Mitch X

Mitch X

28/02/2005 19:10:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
<?php
function banned($ip) {
    dbclass::dbc_query("SELECT id FROM banned WHERE ip = '".$ip."' AND (date > NOW() OR date = '0000-00-00 00:00:00') LIMIT 0, 1") or die(dbclass::dbc_error().' ('.dbclass::dbc_errno().')');
    if (mysql_num_rows(dbclass::dbc_get('result')) == 0) {
        return FALSE;
    }

    else {
        return TRUE;
    }
}

?>


Zoiets?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.