JeuWeb - Crée ton jeu par navigateur
[Résolu] Soucis avec script POO d'inscription et connexion - 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 : [Résolu] Soucis avec script POO d'inscription et connexion (/showthread.php?tid=7249)

Pages : 1 2


[Résolu] Soucis avec script POO d'inscription et connexion - toche - 11-11-2014

Bonsoir je vous explique j'ai un soucis au niveaux du traitement de l'inscription , j'ai toute mes fonctions pour l'inscription et au moment du traitement une erreur page blanche , mais je n'arrive pas a voir a quelle niveaux , je vous met le code d'inscriptions et le code du traitement , merci pour votre aide.
script inscription

<!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>Mon Inscription</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="style.css" />
</head>

<body>
<h1>titre / Inscription !</h1>

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

<fieldset>
<legend>Vos coordonnées</legend>
<p>
<label>Pseudo <input type="text" name="compte" size="25" maxlength="25" tabindex="20" /></label>
<br />
<br />
<label> Email <input type="text" name="mail" size="25" maxlength="25" tabindex="20" /></label>
<br />
<br />
<label> pass <input type="password" name="mot_de_passe" size="25" maxlength="25" tabindex="20" /></label>
</p>
</fieldset>
<fieldset>
<legend>Votre Race</legend>
<p>
Veuillez choisir votre race :<br />
<label><input type="radio" name="race" value="race1" tabindex="50" />Les Wraiths</label><br />
<label><input type="radio" name="race" value="race2" tabindex="50" />Les Lantiens</label><br />
<label><input type="radio" name="race" value="race3" tabindex="50" />Les Terriens</label><br />
</p>

<br />
<label>Nom de votre Planète <input type="text" name="Nom_planète" size="70" maxlength="50" tabindex="90" /></label>
</p>
</fieldset>
<p>
<input type="submit" value="Valider" />
</p>
</form>
</body>

</html>
Ensuite le code du traitement de l'inscription


<?php

// on inclut les fichiers de nos classes pour pouvoir les utiliser.
include 'class/AnalyseDonnees.class.php';
include 'class/TraitementDonnees.class.php';

// On donne les identifiants pour une connexion a la base de donnée. Pensez a les adapter à votre serveur.
$host = 'localhost';
$user = 'root';
$password = '';
$database = 'ma-base';

$VerifInscriptionObj = new AnalyseDonnees($host, $user, $password, $database); // on construit l'objet pour la vérification des champs du formulaire.


// On utilise nos différentes méthodes contenu dans la classe VerifInscription pour vérifier le remplissage du formulaire.

$VerifInscriptionObj->VerificationRemplissageCompte($_POST['compte']);
$VerifInscriptionObj->VerificationRemplissageMail($_POST['mail']);
$VerifInscriptionObj->VerificationRemplissageMotdepasse($_POST['mot_de_passe']);
$VerifInscriptionObj->VerificationRemplissagerace($_POST['race']);
$VerifInscriptionObj->VerificationRemplissageNomplanète($_POST['nom_planète']);


$EnvoiInscriptionObj = new TraitementDonnees($host, $user, $password, $database); // on construit l'objet pour l'envoi des données du formulaire.

//Cryptage du mot de passe a l'aide de la méthode de cryptage
$EnvoiInscriptionObj->CryptagePass($_POST['mot_de_passe']);
// On envoie les données dans la BDD à l'aide de la méthode d'envoi de donnée
$EnvoiInscriptionObj->EnvoiDonneeVerifie($_POST['compte'], $_POST['mail'], $EnvoiInscriptionObj->mot_de_passe_crypte, $_POST['race'], $_POST['nom_planète']);

header("location: ../index.php"); // on renvoit l'utilisateur vers la page d'accueil (index.php, ici), une fois que l'inscription a été traitée.
?>



RE: soucis avec script Poo , inscription et connexion - Xenos - 12-11-2014

Salut,

l'un des principes de la POO est l'encapsulation, dont une conséquence est la suivante:
A partir d'un extrait de code, on ne peut pas résoudre un problème du type "ça marche pas"

Tout à l'air correct ici du point de vue fonctionnel (point de vue méthode, je n'aurai pas mélangé des "new" avec d'autres actions comme des appels de méthode; j'aurai utilisé un encodage UTF8 et évité les accents dans les noms des champs du formulaire); mais comme le code repose (ou "dépend") de classes que l'on ne peut voir (et qui, certainement, ne sont pas prouvées comme étant 100% fonctionnelles, ni ne pouvant être considérée comme fonctionnelle, voire même pas testées), alors on ne peut pas dire d'où vient le soucis.

Une page blanche peut venir d'un dépassement de la mémoire maximale allouée à PHP.

Ah, et merci de relire les messages postés, pour voir que les balises [ code ] sont mal entrées.


RE: soucis avec script Poo , inscription et connexion - toche - 12-11-2014

(12-11-2014, 12:10 AM)Xenos a écrit : Salut,

l'un des principes de la POO est l'encapsulation, dont une conséquence est la suivante:
A partir d'un extrait de code, on ne peut pas résoudre un problème du type "ça marche pas"

Tout à l'air correct ici du point de vue fonctionnel (point de vue méthode, je n'aurai pas mélangé des "new" avec d'autres actions comme des appels de méthode; j'aurai utilisé un encodage UTF8 et évité les accents dans les noms des champs du formulaire); mais comme le code repose (ou "dépend") de classes que l'on ne peut voir (et qui, certainement, ne sont pas prouvées comme étant 100% fonctionnelles, ni ne pouvant être considérée comme fonctionnelle, voire même pas testées), alors on ne peut pas dire d'où vient le soucis.

Une page blanche peut venir d'un dépassement de la mémoire maximale allouée à PHP.

Ah, et merci de relire les messages postés, pour voir que les balises [ code ] sont mal entrées.
Bonjour Xenos oki merci pour ta réponse , je te met les classes Wink
Sa c'est l'analyse des données.


<?php
// Il s'agit d'une classe d'analyse des données.
class AnalyseDonnees
{
// Déclaration des attributs
public $compte;
public $mail;
public $mot_de_passe;
public $race;
public $nom_planète;
private $link;

//Voici les méthodes
public function __construct($host, $user, $password, $database) // permet la connexion avec la base de donnée
{
// on va chercher les identifiants de connexion ou sinon on affiche un message d'erreur.
$this->link = mysql_connect($host, $user, $password) or die('impossible de se connecter a la base de donnée locale');
// On selectionne la base de donnée ou sinon on affiche un message d'erreur.
mysql_select_db($database, $this->link) or die('La base de donnée est introuvable');
}

public function VerificationRemplissagepseudo($compte) // Vérifie le remplissage du champ de formulaire: Compte
{
if(empty($compte)) // Si la variable est vide
{
echo 'Vous n\'avez pas renseigner votre nom de compte !<br />'; // On ecrit ce message a l'utilisateur
echo '<a href="inscription.php">Retour au formulaire d\'inscription</a>'; // on lui met un lien pour retourner au formulaire.
exit();
}
}

public function VerificationRemplissageMail($mail) // Vérifie le remplissage du champ de formulaire: Mail. Ainsi que la validité de l'email donné.
{
if (isset($mail))
{
if (!preg_match("#^[a-z0-9._-]+@[a-z0-9._-]{2,}\.[a-z]{2,4}$#", $mail))
{
echo 'L\'adresse email n\'est pas valide, veuillez recommencer !<br />';
echo '<a href="inscription.php">Retour au formulaire d\'inscription</a>';
exit();
}
}
else
{
echo 'Vous n\'avez pas renseigner votre email !<br />';
echo '<a href="inscription.php">Retour au formulaire d\'inscription</a>';
exit();
}
}

public function VerificationRemplissageMotdepasse($mot_de_passe) // Vérifie le remplissage du champ de formulaire: Mot de Passe.
{
if(empty($mot_de_passe))
{
echo 'Vous n\'avez pas renseigner de mot de passe !<br />';
echo '<a href="inscription.php">Retour au formulaire d\'inscription</a>';
exit();
}
}

public function VerificationRemplissagerace($race) // Vérifie qu'un race a bien été choisi.
{
if(empty($race))
{
echo 'Vous n\'avez pas choisi votre race !<br />';
echo '<a href="inscription.php">Retour au formulaire d\'inscription</a>';
exit();
}
}

public function VerificationRemplissageNomChef($nom_planète) // Vérifie que le champ de formulaire: Nom_planète a bien été rempli par l'utilisateur.
{
if(empty($nom_planète))
{
echo 'Vous n\'avez pas renseigner le nom de votre planète !<br />';
echo '<a href="inscription.php">Retour au formulaire d\'inscription</a>';
exit();
}
}

}
?>
Ensuite vient le Traitements des Données que voici.



<!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>Mon Inscription</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="style.css" />
</head>

<body>
<h1>titre / Inscription !</h1>

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

<fieldset>
<legend>Vos coordonnées</legend>
<p>
<label>Pseudo <input type="text" name="compte" size="25" maxlength="25" tabindex="20" /></label>
<br />
<br />
<label> Email <input type="text" name="mail" size="25" maxlength="25" tabindex="20" /></label>
<br />
<br />
<label> pass <input type="password" name="mot_de_passe" size="25" maxlength="25" tabindex="20" /></label>
</p>
</fieldset>
<fieldset>
<legend>Votre Race</legend>
<p>
Veuillez choisir votre race :<br />
<label><input type="radio" name="race" value="race1" tabindex="50" />Les Wraiths</label><br />
<label><input type="radio" name="race" value="race2" tabindex="50" />Les Lantiens</label><br />
<label><input type="radio" name="race" value="race3" tabindex="50" />Les Terriens</label><br />
</p>

<br />
<label>Nom de votre Planète <input type="text" name="Nom_planète" size="70" maxlength="50" tabindex="90" /></label>
</p>
</fieldset>
<p>
<input type="submit" value="Valider" />
</p>
</form>
</body>

</html>

Merci de votre Aide Wink


RE: soucis avec script Poo , inscription et connexion - Xenos - 12-11-2014

Je dirais:
- Il y a des "exit()" un peu partout: es-tu sûr que la page de réponse soit vide, et non pas simplement un HTML "cassé" (cad que tu reçois une réponse, mais que le balisage est mauvais rendant la page de réponse apparemment blanche)
- La redirection vers "index.php" s'est peut-être faite, mais la page en question est vide
- Le code de traitement de données, c'est un C/C du code HTML et non le code PHP correspondant
- Eviter les accents dans les noms de variable et de méthode ("planète")
- Corriger les fautes ("vous avez renseigné")
- C'est pas encore ça pour ce qui est du premier message ("[ [ /code ] code=php ]" qui traine au début), utilise [ code=html ] et [ code=php] suivant le langage du code

Pour la méthodologie générale en POO, on verra plus tard...
Note qu'il existe filter_var pour vérifier la validité d'une entrée ($mail) plutôt que des expressions régulières qui ne respectent pas du tout le standard des adresses mail ou seraient trop strictes.


RE: soucis avec script Poo , inscription et connexion - toche - 12-11-2014

oki Xenos je vais regarder a sa , merci et voila j'ai mit de la couleur lol . je pense avoir trouver , je te direz ce qu'il en est et l'erreur Wink si sa fonctionne lol


RE: soucis avec script Poo , inscription et connexion - Xenos - 12-11-2014

Ah, les développeurs et les fautes d'orthographe... :heu:


RE: (Résolu)soucis avec script Poo , inscription et connexion - @lucard - 12-11-2014

est-ce que :
faut d'orthographe sur le Français = faute d'orthographe dans le code ?
qui amène a faire des erreurs "toutes bêtes", mais qui foirent entièrement le code ?


RE: (Résolu)soucis avec script Poo , inscription et connexion - Aedius - 12-11-2014

(12-11-2014, 04:54 PM)@lucard a écrit : est-ce que :
faut d'orthographe sur le Français = faute d'orthographe dans le code ?
qui amène a faire des erreurs "toutes bêtes", mais qui foirent entièrement le code ?

Oh oui ><"

Quand tu passes 2h sur un bug pour trouver que le nom du champs dans ta base a une faute d'orthographe qui fait qu'une donnée vitale pour l'archivage n'est pas sauvegardé ... Pendant 10 jours tu écris bien tes mails ( mais ça ne dure jamais bien longtemps )

Des exemples du genre, tout le monde doit en avoir ^^


RE: [Résolu] Soucis avec script POO d'inscription et connexion - Xenos - 12-11-2014

J'aurai plutôt mis ce genre d'erreur sur l'étourderie (qui fait quand même bien perdre du temps et de la patience!).
Je ne parlais ici ni d'erreur d'inattention/étourderie, ni d'erreur de typo, ni même de néologisme (pourquoi pas, cf mot suivant), mais bien du savatage orthographique que j'observe parfois (pas forcément qu'ici).

J'ai d'ailleurs entendu une remarque là dessus, il y a peu, que l'on peut synthétiser en L'écriture chez certains se résume à recopier des mots déjà vus et phonétiquement les mêmes que ce qu'ils auraient dit à l'oral. D'où les mélanges de "er/é", "is/it/ie", "ant/ent" etc (certains vont jusqu'à écrire "j'ai les gangs de lion gonflés" au lieu de "ganglions").

Ce qui me surprend le plus, c'est de voir que certains développeurs sont censés comprendre les langages informatiques, alors qu'ils ne comprennent même pas leur "langage" humain: ils ne font que recopier les mots qu'ils ont vu, sans chercher les accords, sans chercher à comprendre ce que le mot veut dire dans la phrase, ni à quoi il sert.

En informatique, la plupart des massacreurs d'orthographe se contentent bêtement de recopier des bouts de code déjà vus.
Ils appliquent le Cargo-Coding à l'informatique, mais aussi au Français...
Les cours de codage prévus par M Hollande me font peur...



/Fin de digression. Si la solution a été trouvée, elle est la bienvenue.


RE: [Résolu] Soucis avec script POO d'inscription et connexion - toche - 15-11-2014

bonjour en effet ses bien du a certaine faute que j'ai corriger et également les accents ^^ ces vrai que des fois sur le codage on ne fait pas toujours attentions, encore merci Wink