JeuWeb - Crée ton jeu par navigateur
Petite erreur en POO [normalement, reglé] - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : Petite erreur en POO [normalement, reglé] (/showthread.php?tid=1622)



Petite erreur en POO [normalement, reglé] - blackduty - 22-08-2007

Hello,

Voila, ça fait longtemps que je n'ai pas coder et aujourd'hui, je me suis décidé de m'y remettre doucement.
Je tente de comprendre la programmation objet en php5.

J'ai donc fait un autre projet (totalement inutile) pour comprendre cette nouvelle façon de programmer.

J'ai commencé mon schmilblick par faire mon système d'inscription.

Voici le formulaire (rien d'exceptionnel jusqu'a là)
Code PHP :
<?php 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"
>
<
html xmlns="http://www.w3.org/1999/xhtml" xml:lang="fr">

<
head>
<
title>MyMediateka</title>
<
meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<
link rel="stylesheet" media="screen" type="text/css" title="design par defaut" href="css/media.css" />
</
head>

<
body>
<
h1>Bienvenue sur MyMediateka</h1>

<
form method="post" action="traitement_inscription.php">

<
p>Veuillez remplir ce formulaire pour vous inscrire</p>
<
fieldset>
<
legend>Vos données utilisateur</legend>
<
p>
<
label>Nom de compte <input type="text" name="compte" size="20" maxlength="20" tabindex="10" /></label>
<
br />
<
label>Adresse email <input type="text" name="mail" size="30" maxlength="25" tabindex="20" /></label>
<
br />
<
label>Mot de passe <input type="password" name="mot_de_passe" size="15" maxlength="15" tabindex="30" /></label>
</
p>
</
fieldset>
<
fieldset>
<
legend>Vos coordonnées</legend>
<
p>
<
label>Prénom <input type="text" name="prenom" size="20" maxlength="45" tabindex="60"/></label>
<
label>Nom <input type="text" name="nom" size="30" maxlength="45" tabindex="70"/></label>
<
br />
<
br />
<
label>Adresse <input type="text" name="adresse" size="50" maxlength="45" tabindex="90"/></label>
<
label>Code postal <input type="text" name="cp" size="7" maxlength="50" tabindex="120" /></label>
<
label>Ville <input type="text" name="ville" size="50" maxlength="50" tabindex="130" /></label>
</
p>
</
fieldset>
<
p>
<
input type="submit" value="valider" />
</
p>
</
form>
</
body>

</
html>

Voici ma classe inscription: (mes fonctions valent ce qu'elles valent mais visiblement le problème se situe plus haut...)
Code PHP :
<?php
class Inscription
{
public
$compte;
public
$mail;
public
$mot_de_passe;
public
$prenom;
public
$nom;
public
$adresse;
public
$cp;
public
$ville;

public function
__construct($compte, $mail, $mot_de_passe, $prenom, $nom, $adresse, $cp, $ville)
{
$this->compte = $_POST['compte'];
$this->mail = $_POST['mail'];
$this->mot_de_passe = $_POST['mot_de_passe'];
$this->prenom = $_POST['prenom'];
$this->nom = $_POST['nom'];
$this->adresse = $_POST['adresse'];
$this->cp = $_POST['cp'];
$this->ville = $_POST['ville'];
}

public function
VerificationRemplissageCompte ($compte)
{
if(empty(
$compte))
{
echo
"Vous n'avez pas renseigner votre nom de compte !<br />";
exit();
}
}

public function
VerificationRemplissageMail ($mail)
{
if(empty(
$mail))
{
echo
"Vous n'avez pas renseigner votre adresse Email !<br />";
exit();
}
}

public function
VerificationRemplissageMotdepasse ($mot_de_passe)
{
if(empty(
$mot_de_passe))
{
echo
"Vous n'avez pas renseigner de mot de passe !<br />";
exit();
}
}

public function
VerificationRemplissagePrenom ($prenom)
{
if(empty(
$prenom))
{
echo
"Vous n'avez pas renseigner votre prénom !<br />";
exit();
}
}

public function
VerificationRemplissageNom ($nom)
{
if(empty(
$nom))
{
echo
"Vous n'avez pas renseigner votre nom !<br />";
exit();
}
}

public function
VerificationRemplissageAdresse ($adresse)
{
if(empty(
$adresse))
{
echo
"Vous n'avez pas renseigner votre adresse !<br />";
exit();
}
}

public function
VerificationRemplissageCp ($cp)
{
if(empty(
$cp))
{
echo
"Vous n'avez pas renseigner votre code postal !<br />";
exit();
}
}

public function
VerificationRemplissageVille ($ville)
{
if(empty(
$ville))
{
echo
"Vous n'avez pas renseigner votre ville !<br />";
exit();
}
}

public function
VerificationValiditeMail ($mail)
{
if (isset(
$_POST['mail']))
{
if (
preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $_POST['mail']))
{
}
}
else
{
echo
'L\'adresse ' . $_POST['mail'] . ' n\'est pas valide, veuillez recommencer !';
exit();
}
}

public function
InscriptionValide ($compte, $mail, $mot_de_passe, $prenom, $nom, $adresse, $cp, $ville)
{
mysql_query("INSERT INTO utilisateur VALUES('','$compte','$mail','$mot_de_passe','$prenom', '$nom','$adresse','$cp','$ville')");
}
}
?>

Enfin voici le début de page de traitement (je sais pas si vous en aurez besoin, aussi, j'anticipe un peu ^^)

Traitement_inscription.php
Code PHP :
<?php
include 'inscription.class.php';
include
'FonctionSql.class.php';

$sql = new FonctionSql();
$instance = new Inscription();

echo
$instance->compte;
echo
$instance->mail;
echo
$sql->host;
?>

Enfin voici l'erreur affichée. Normalement c'est assez bête comme erreur mais j'avoue que je n'arrive pas a la résoudre...

Citation :Parse error: parse error, expecting `T_OLD_FUNCTION' or `T_FUNCTION' or `T_VAR' or `'}'' in c:\documents and settings\hp_administrateur\mes documents\mediatheque_poo\inscription.class.php on line 4

Notons que si je retire ma classe. J'ai le meme probleme avec ma classe FonctionSql...

Merci d'avance Smile


RE: Petite erreur en POO - Roworll - 22-08-2007

J'ai rapidement inclus ta classe dans mes sources pour regarder si j'avais les mêmes soucis que toi.
Tout est bien passé de mon coté.

Essaye de vérifier si tu n'as pas des caractères parasites en début et fin de fichier (avant <?php et après ?> )
Il arrive que certains caractères posent problème.
Si tu ne vois rien de particulier, vérifie ton format de fichier.
Certains formats (comme l'UTF-8) rajoute des caractères d'encodage au début des fichiers.

Il est aussi possible que je sois complètement à coté de la plaque et que le problème ne soit pas du tout liè à ça (ouais.. je tiens une petite forme en ce moment).


RE: Petite erreur en POO - Nessper - 22-08-2007

Je ne vois pas ce que ça peut être. Par contre j'ai remarqué un petit truc dans ton constructeur qui n'est pas très POO ^^. Voilà comment je le ferais à ta place :
Code PHP :
<?php 
public function __construct($compte, $mail, $mot_de_passe, $prenom, $nom, $adresse, $cp, $ville)
{
$this->compte = $compte;
$this->mail = $mail;
$this->mot_de_passe = $mot_de_passe;
$this->prenom = $prenom;
$this->nom = $nom;
$this->adresse = $adresse;
$this->cp = $cp;
$this->ville = $ville;
}



RE: Petite erreur en POO - joshua - 22-08-2007

tout a fait! car actuellement les variables entrées en paramètre de la fonction construct ne servent pas a grand chose....


RE: Petite erreur en POO - blackduty - 22-08-2007

Le fichier est encoder en ANSI. Pas d'espace avant ou apres le <?php ?>.
Je me demande si ça vient pas de easyphp.

Sinon pour le construct, merci.


RE: Petite erreur en POO - Nessper - 22-08-2007

ah ben si, j'avais le même problème. Easyphp ne gère pas le php5.
Tourne toi vers Wamp. Il est aussi facile à utiliser


RE: Petite erreur en POO - blackduty - 22-08-2007

C'est ce que je viens de faire ^^


RE: Petite erreur en POO - joshua - 22-08-2007

J'ai fait pareil :p
Je n'y aurais pas pensé j'avoue, c'est devenu intuitif.
Sinon tu passes a xampp mais moi j'aime pas. Pascaltje prefere :p


Au passage, si tu veux travailler bien, commence par separer ce qui est classe d'analyse et classe d'enregistrement dans ta base de données.
Tu vas te rapprocher du MVC petit a petit comme ca ca sera plus propre....


RE: Petite erreur en POO [normalement, reglé] - pascal - 22-08-2007

je préfère xampp, oui, enfin...

ma dernière version de xampp contenait PHP 5.2.2, qui est bugguée pour la ligne de commande. résultat, impossible de lancer les commandes symfony => une journée de perdue.

mais je m'en fiche, je vais gagner plein de temps avec symfony! :p

A+

Pascal