Probléme avec la creation des classes

Mammouth du PHP | 19672 Messages

08 oct. 2010, 19:31

En fait il ne doit rien se passer : vérifie donc que la directive display_error dans le php.ini est bien à ON parce qu'il y a une grosse erreur dans ta classe SGBD.

Le truc, c'est d'indenter correctement ton code pour éviter ça : il y a une accolade fermante mal placée qui ferme la classe juste après le constructeur. Donc aucune des méthodes suivantes ne peut être exécutée à partir de l'instance.

Accessoirement, je te signale que PHP4 est obsolète, écris donc tes classes avec la syntaxe PHP5 directement.

Correctif rapide :
<?php
/**
 * Fichier : SGBD.class.php elle nous permettra de nous connecter au serveur
 */
class SGBD
{
    /**
     * Attribut du login du SGBD
     *
     * @var String
     */
    private $SGBD_login;
    /**
     * Attribut du password du SGBD
     *
     * @var String
     */
    private $SGBD_password;
    /**
     * Attribut de l'hôte du SGBD
     *
     * @var String
     */
    private $SGBD_host;
    /**
     * Attribut du nom de la base de données
     *
     * @var String
     */
    private $SGBD_base;
    /**
     * Attribut de connection
     *
     * @var Resource
     */
    private $connect;
    /**
     * Attribut de requête
     *
     * @var String
     */
    private $requete;


    /**
     * Définition du constructeur
     *
     * @param String    $login
     * @param String    $password
     * @param String    $host
     * @param String    $base
     */
    public function __construct($login, $password, $host, $base)
    {
        // Vérification des variables
        if (empty ($login) || empty ($host) || empty ($base))
        {
            // Affichage du message d'erreur
            echo "<b>Erreur :</b> Une ou plusieurs variable(s) n'ont pas été renseignées.";
            exit ();
        }
        else
        {
            // Initialisation des attributs
            $this->SGBD_login = $login;
            $this->SGBD_password = $password;
            $this->SGBD_host = $host;
            $this->SGBD_base = $base;
        }
    }

    /**
     * Definition de la fonction de connexion
     */
    public function connect()
    {
        // Connection à MySQL
        $connect = mysql_pconnect ($this->SGBD_host, $this->SGBD_login, $this->SGBD_password);
        // Vérification de la connection
        if (! $connect)

        {
            // Affichage du message d'erreur
            echo "<b>Erreur :</b> Connexion à MySQL impossible.";
            exit ();
        } // Connexion à la base de données
        if (! mysql_select_db ($this->SGBD_base, $connect))

        {
            // Affichage du message d'erreur
            echo "<b>Erreur :</b> Connection à la base de données impossible.";
            exit ();
        } // Initialisation de l'attribut de connection
        $this->connect = $connect;
    }

    /**
     * Fonction permettant d'executer des requetes
     *
     * @param String $requete
     */
    public function requete($requete)
    {
        // Exécution de la requête
        $result = mysql_query ($requete, $this->connect);

        // Vérification de la requête
        if (! $result)
        {
            // Affichage du message d'erreur
            echo "<b>Erreur :</b> Impossible d'effectuer la requête au serveur.";
            exit ();
        }
        else
        {
            // Initialisation de l'attribut de requête
            $this->requete = $result;
        }
    }

    /**
     * Fonction de deconnexion
     *
     */
    public function deconnect()
    {
        // Déconnection de la base de données
        mysql_close ($this->connect);
    }
}
?>
Modifié en dernier par Cyrano le 08 oct. 2010, 19:32, modifié 1 fois.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

ViPHP
ViPHP | 5462 Messages

08 oct. 2010, 19:32

tu sais comment on fais un phpinfo ?

Eléphant du PHP | 86 Messages

08 oct. 2010, 19:36

non je debute

ViPHP
ViPHP | 5462 Messages

08 oct. 2010, 19:45

tu creer un fichier nommer : phpinfo.php
et dedans tu mets
<?php
    phpinfo();

ensuite tu vas dire les valeur de display_errors et error_reporting ?
tu tests en local ?

Eléphant du PHP | 86 Messages

08 oct. 2010, 19:51

j'ai cherché le fichier PHP.ini avec la commande whereis je l'ai edité mais je vois pas de display_error

Mammouth du PHP | 19672 Messages

08 oct. 2010, 19:54

Ce serait une première, vérifie à nouveau, cette directive est assez importante.

À toutes fins pratiques, as-tu une indication sur les deux directives citées par stealth35 dans le phpinfo ? (juste au cas où, tu mets les deux lignes de codes qu'il t'a montré, tu enregistres le fichier à la racine de ton serveur et tu appelles http://localhost/phpinfo.php : ça va t'afficher une belle page avec toute ta configuration actuelle.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 86 Messages

08 oct. 2010, 19:59

j'ai pas de serveur web en local

Eléphant du PHP | 86 Messages

08 oct. 2010, 20:00

en mettant 10.xx.xx.xx qui est l'adresse rien ne se passe

Mammouth du PHP | 19672 Messages

08 oct. 2010, 20:03

Je sens que ça va être laborieux.... bon, reprenons. D'abord, on va partir du principe (tu confirmeras) que le serveur n'est pas sur la même machine mais une autre machine sur ton réseau. Donc, tous les fichiers utilisés par le serveur sont sur cette autre machine. Pour les urls, au lieu de localhost, tu utilises une adresse IP, ça fonctionnera aussi bien.

Si tu arrives à afficher une page index.php quelque part en faisant simplement http://10.x.x.x/index.php, mets ton fichier phpinfo.php dans le même répertoire que ce fichier index.php et appelle http://10.x.x.x/phpinfo.php : il se passe quoi dans ce cas là ?
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 86 Messages

08 oct. 2010, 20:05

il ne passe rien j'ai fait cette operation

ViPHP
ViPHP | 5462 Messages

08 oct. 2010, 20:14

au début de ton code fais
error_reporting(-1);

Mammouth du PHP | 19672 Messages

08 oct. 2010, 20:21

J'ai un doute....

On va tenter un truc : renomme temporairement ton fichier index.php en index_tmp.php et renomme ton phpinfo.php en index.php et appelle ta page index.php. (tu remettras dans l'ordre quand on aura résolu ça)

Si tu n'as toujours rien, fais nous donc un copier/coller de ce que tu as mis dedans, parce que là ce n'est vraiment pas normal.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphant du PHP | 86 Messages

08 oct. 2010, 20:34

dans le fichier phpinfo.php je fais

Code : Tout sélectionner

<?php phpinfo(); ?>

ViPHP
ViPHP | 5462 Messages

08 oct. 2010, 20:36

t'as deja lancer une page php qui marche au moins sur ton serveur ?

Eléphant du PHP | 86 Messages

08 oct. 2010, 20:36

c'est bon j'ai la page