Versio

OOP aanroepen classe

Overzicht Reageren

Pepijn Schildkamp

Pepijn Schildkamp

04/05/2009 18:03:00
Quote Anchor link
Ik heb een classe (begin) gemaakt en wil deze aanroepen in een ander bestand. Echt krijg ik de volgende error:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
Fatal error: Class 'Auth' not found in C:\domains\mediaflux.nl\wwwroot\klanten\zsp+\website\ajax\auth.ajax.php on line 14


Stuk code uit auth.ajax.php
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
<?php    
error_reporting(E_ALL);
ini_set("display_errors", 1);

    require_once '../config.php';
        require_once($config['root'].'classes/auth.php');
            
            $user = new Auth();
?>


In de config staat de root van het systeem, die word voor het classe linkje geplakt. Ik heb die require_once om de classe in te voegen getest en die staat goed gelinkt.

Ik heb wel eens vaker iets OOP gemaakt, ook in C#. Ik heb op php.net gekeken, alles gechecked of ik een fout heb gemaakt. Maar ik zie het echt niet.

Heb dit stukje om 2/3 uur 's nachts gemaakt, dus ik denk dat ik iets over het hoofd heb gezien. Echter zie ik het nu nog steeds niet.

De classe
Code (php)
PHP script in nieuw venster Selecteer het PHP script
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
<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

class Auth
{
    var
$salt;
    var
$pepper;
    
    var
$userID;
    var
$username;
    
    public function __construct()
    {

        $db = new PDO('mysql:host=localhost;dbname=****','******','******');
        $this->salt = '%fyg#h74$gS6F/e%sC^^$fd';
        $this->pepper = '#$fe3êr#%^Dgt54fgD$%53D$';
    }

    
    public function login ($username, $password)
    {

        $qAttempt = $db->exec('INSERT INTO login_attempts (ip_address,
                                                            username,
                                                            password,
                                                            date)
                                                            VALUES
                                                            ('
.$_SERVER['REMOTE_ADDR'].',
                                                            '
.$db->quote($username).',
                                                            '
.$db->quote($password).',
                                                            NOW())'
);
            if($qAttempt == 1)
            {

                return 'Attempt toegevoegd.';
            }

            else
            {
                return 'Attempt niet toegevoegd.';
            }
    }

    
    private function hash ($password)
    {

        return sha1($this->salt.$password.$this->pepper);
    }

}

?>


Iemand een idee waarom die foutmelding blijft komen? Zie ik iets dom's over het hoofd?

Mvg.
Gewijzigd op 01/01/1970 01:00:00 door Pepijn Schildkamp
 
PHP hulp

PHP hulp

25/05/2012 12:46:28
Gesponsorde koppelingen:
 
Midas

Midas

04/05/2009 18:12:00
Quote Anchor link
Er gaat simpelweg iets fout bij het includen, dus je path klopt gewoon niet.
Gewijzigd op 01/01/1970 01:00:00 door Midas
 
Midas

Midas

04/05/2009 18:12:00
Quote Anchor link
Tsja, 2 keer.
Gewijzigd op 01/01/1970 01:00:00 door Midas
 
Pepijn Schildkamp

Pepijn Schildkamp

04/05/2009 18:16:00
Quote Anchor link
Ik steek mijn hand in het vuur dat het path wel goed is.

Ik heb van require_once($config['root'].'classes/auth.php'); een echo gemaakt, die in mijn url balk gekopieerd en een echo gemaakt boven de classe. Gecontroleerd en werkt. Dat is het niet. Require_once geeft ook een fatal error als het bestand niet bestaan (unlike include).
 
Jesper Diovo

Jesper Diovo

04/05/2009 18:29:00
Quote Anchor link
En als je in het bestand van je class onderaan een echo zet, en dan in je browser het bestand van je class opvraagt, krijg je die echo dan te zien?
 
Pepijn Schildkamp

Pepijn Schildkamp

04/05/2009 19:04:00
Quote Anchor link
En ook dan krijg ik gewoon de echo te zien. zowel als ik naar de classe ga, en in het bestand waar ik de classe bestand require_once. Toch nog de foutmelding.
 
Karl Karl

Karl Karl

04/05/2009 19:06:00
Quote Anchor link
Gooi de aanroep en de class eens in een bestand. Kijk dan of het werkt.
Probeer het uit in een IDE zoals Nusphere PHPed.
 
Pepijn Schildkamp

Pepijn Schildkamp

04/05/2009 19:12:00
Quote Anchor link
Als ik dat doe, krijg ik geen foutmeldingen.
 
Karl Karl

Karl Karl

04/05/2009 19:13:00
Quote Anchor link
Pepijn schreef op 04.05.2009 19:12:
Als ik dat doe, krijg ik geen foutmeldingen.

Als je het in één bestand gooit?
Tja, dan gaat er toch wat mis met het require'en denk ik...
Daarom zeg ik dat je het effe in een IDE moet testen, dan kan je het zo allemaal nalopen.
 
Pepijn Schildkamp

Pepijn Schildkamp

04/05/2009 19:19:00
Quote Anchor link
Ben die IDE aan het downloaden. En ja in 1 bestand gaat het goed. Toch staat die require_once goed, anders zou hij een foutmelding geven en ik heb het na gechecked.
 



Overzicht Reageren

Get Adobe Flash player