Une classe qui ne voudrait pas s'initialiser

Ferdi
Invité n'ayant pas de compte PHPfrance

10 sept. 2005, 15:33

Désolé de vous décevoir mais je crois que je vais encore vous demander un peu d'aide.

Donc en fait je viens de modifier mon fichier header.php comme ceci:
<?php
function __autoload($classe)
{
	include_once("./charge_classes.php");
}
?>
<html>
<head>
<title>Suivi des inscriptions au jeu Driving Management</title>
</head>
<body>
Ma classe Inscription ressemble à ceci:
<?php
class Inscription
{
    private $identifiant;
    private $password;
    private $email;
    private $ecurie;
    private $nom_patron;
    private $nation;
    private $description_ecurie;
    /**
     * Constructeur PHP5
     */
    function __construct( $identifiant, $password, $email, $ecurie, $nom_patron, $nation, $description_ecurie )
    {
        $this->identifiant = $identifiant;
        $this->password = $password;
        $this->email = $email;
        $this->ecurie = $ecurie;
        $this->nom_patron = $nom_patron;
        $this->nation = $nation;
        $this->description_ecurie = $description_ecurie;
    }
    /**
     * Constructeur PHP4
     */
    function Inscription( $identifiant, $password, $email, $ecurie, $nom_patron, $nation, $description_ecurie )
    {
        $this->__construct($identifiant, $password, $email, $ecurie, $nom_patron, $nation, $description_ecurie);
    }
    /**
     * Enter description here...
     *
     */
    function enregistrer()
    {
        $bdd = new MySql();
        $bdd->connecter();
        $requete  = "INSERT INTO kart_saison1 (identifiant, password, email, ecurie, nom_patron, nation, description_ecurie) VALUES (";
        $requete .= "'" . mysql_escape_string($this->identifiant) . "', ";
        $requete .= "'" . mysql_escape_string($this->password) . "', ";
        $requete .= "'" . mysql_escape_string($this->email) . "', ";
        $requete .= "'" . mysql_escape_string($this->ecurie) . "', ";
        $requete .= "'" . mysql_escape_string($this->nom_patron) . "', ";
        $requete .= "'" . mysql_escape_string($this->nation) . "', ";
        $requete .= "'" . mysql_escape_string($this->description_ecurie) . "' )";
        $bdd->executerRequete( $requete );
        $bdd->deconnecter();
    }
}
?>
Mon fichier charge_classes.php à ceci:
<?php
include_once('./classes/Inscription.php');
include_once('./classes/MySql.php');
include_once('./classes/IBaseDeDonnees.php');
include_once('./classes/configBdd.php');
?>
Et le fichier suivi_inscription à ceci:
<?php
include("header.php");
$_POST["identifiant"] = stripslashes($_POST["identifiant"]);
$_POST["password"] = stripslashes($_POST["password"]);
$_POST["email"] = stripslashes($_POST["email"]);
$_POST["ecurie"] = stripslashes($_POST["ecurie"]);
$_POST["nom_patron"] = stripslashes($_POST["nom_patron"]);
$_POST["nation"] = stripslashes($_POST["nation"]);
$_POST["description_ecurie"] = stripslashes($_POST["description_ecurie"]);
$souvenir_info = $_GET["souvenir_info"];
if ($souvenir_info = oui)
{
$_cookieUnName="identifiant";
$_cookieDeuxName="password";
$_cookieUnValue="identifiant";
$_cookieDeuxValue="password";
$_expire=14*24*3600;
}
$c = new inscription($_POST["identifiant"], $_POST["password"], $_POST["email"], $_POST["ecurie"], $_POST["nom_patron"], $_POST["nation"], $_POST["description_ecurie"]);
$c -> enregistrer();
$destinataire = $_POST["email"];
$sujet = "Récapitulatif de vos informations à propos de l\'inscription sur le site de jeu Driving Management";
$corps="à remplir";
mail ( $destinataire, $sujet, $corps);
print("Votre inscription a bien été validée!<br/>Vous allez recevoir un message récapitulant les informations que vous venez d\'entrer à l\'adresse email que vous venez d\'indiquer.<br/>Vous allez maintenant être redirigé sur la page d\'accueil de la catégorie pour laquelle vous venez d\'être inscrit.");
print("<meta HTTP-EQUIV=\"refresh\" CONTENT=20;URL=\"kart_saison1.htm\">");
include("footer.php");
?>
Malheureusement, j'ai encore et toujours la même erreur.
Est ce que j'ai écris mon code convenablement?
Merci de m'aider

Mammouth du PHP | 19672 Messages

10 sept. 2005, 15:41

Bon, on va simplifier: modifie ton fichier header.php comme ceci:
<?php
/* On vérifie quelle version de PHP est installée */
if(substr(phpversion(),0,1) == 5)
{
    /* PHP5 est la version utilisée, on utilise autoload */
    function __autoload($classe)
    {
        include_once("./classes/". $classe .".php");
    }
}
else
{
    /* PHP4 ou inférieur est utilisé, on fait des inclusions de fichier classiques */
    include_once('./classes/Inscription.php');
    include_once('./classes/MySql.php');
    include_once('./classes/IBaseDeDonnees.php');
    include_once('./classes/configBdd.php');
}
?>
<html>
<head>
<title>Suivi des inscriptions au jeu Driving Management</title>
</head>
<body>
Et tu peux supprimer le fichier charge_classes.php tout simplement.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Ferdi
Invité n'ayant pas de compte PHPfrance

10 sept. 2005, 15:58

Je te remercie Cyrano pour toute l'attention que tu me portes.
J'ai compris le principe et ai fait comme tu m'as dit.
conclusion: ça avance!! En effet, le nouveau problème que j'ai est autre:
la portée private de mes variables dans inscription.php pose problème:
j'ai cette erreur:
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/drivingman/domains/drivingmanagement.yi.org/public_html/classes/Inscription.php on line 4
J'ai essayé de les mettre en global, mais j'ai le même type d'erreur.
Sais tu d'où le problème pourrait venir?
Merci d'avance

Mammouth du PHP | 19672 Messages

10 sept. 2005, 16:42

Mouais, j'avais soulevé le problème un peu plus tôt: j'ai peur que tu doives dédoubler tes classes dans deux répertoires distincts et avoir une version PHP4 et l'autre PHP5 : il faudra donc modifier le header.php en conséquence. Mais ça veut dire que la copie que tu mettra en PHP4 devra être un peu modifiée : tu devras remplacer private par var
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Ferdi
Invité n'ayant pas de compte PHPfrance

10 sept. 2005, 17:27

Super ça marche
Bon j'ai réussi un premier truc en php.
Mais bon j'ai pas encore fini: j'ai pas réglé les problèmes de cookies,
et je sens que je vais devoir batailler uncore un peu avec ma bdd
Mais bon merci pour tout
ciao

A classer en Résolu

Mammouth du PHP | 19672 Messages

10 sept. 2005, 17:30

A classer en Résolu
C'est fait, mais si tu t'inscris au forum, d'une part ça coute pas un rond, ensuite tu pourras le faire toi-même et enfin tu seras averti par courriel de toutes les réponses postées dans les sujets où tu participes sans devoir les surveiller toi-même ;)
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe: