JeuWeb - Crée ton jeu par navigateur
une fonction perso non reconnue - 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 : une fonction perso non reconnue (/showthread.php?tid=5134)

Pages : 1 2 3 4 5


RE: une fonction perso non reconnue - niahoo - 11-09-2010

Hmm je ne comprends pas vraiment ce que tu cherches à faire.

pourquoi tu fais soumettre un formulaire en javascript. Y aura quoi dans ce formulaire ?

Moi je ferais ça pour enregistrer en DB juste après la vérification.
<?php
/* Fichier des fonctions */
function isVulgar ($word) {
/* Renvoie TRUE si le mot est vulgaire,
sinon renvoie FALSE */
}

function pseudonymAlreadyTaken ($pseudo) {
/* Renvoie TRUE si le pseudo existe déjà en BD,
sinon renvoie FALSE */
}

function isValidEmailAdress ($email) {
/* Renvoie TRUE si L'email est valide
sinon renvoie FALSE */
}

$pseudo = $_POST['pseudo'];
$errorMsg = array();
$pseudoOk = true;
if( isVulgar($pseudo) ) {
$errorMsg['vulgar'] = 'Votre pseudo est un mot interdit';
$pseudoOk = false;
}
if( pseudonymAlreadyTaken($pseudo) ) {
$errorMsg['taken'] = 'Votre pseudo est déjà pris';
$pseudoOk = false;
}
if( isValidEmailAdress($pseudo) ) {
$errorMsg['wrongemail'] = 'Merci d\'utiliser un email valide.';
$pseudoOk = false;
}

if($pseudoOk) {
/* Ici tu l'enregistres, etc.. */
}
else {
/* Ici tu réaffiches le formulaire d'enregistrement
* En indiquant les messages d'erreurs que tu as enregistrés
*/
}

Et encore, c'est très sommaire, il vaut mieux concevoir d'abord une architecture globale plutot que de coder linéairement.


RE: une fonction perso non reconnue - gameprog2 - 11-09-2010

En fait je faisais comme ça parce que je voulais que la page qui fait les tests de mauvais login (vulgaire, vide, etc...) n'ouvre pas la DB mais que la DB soit ouverte seulement par la page de test d'existence du pseudo dans la DB.
Je sais pas si c'est clair oO Wink
En tous cas ton code est vraiment clean et beau Wink
Dans ton code, quand le pseudo est ok, on va devoir l'enregistrer, mais il faut se connecter à la DB et comme elle n'a pas été ouverte d'avance ça ne peut pas marcher, à moins de lancer une nouvelle page php qui va ouvrir la DB mais il faut lui passer les données, je voulais faire ça avec la partie javascript de mon code, mais je trouve ça laid d'utiliser du javascript dans une page php.
Merci pour le code en tous cas, je l'adopte Wink

En fait, mon probleme c'est que je ne veux pas que la DB soit ouverte pendant le test vulgaire, vide, email.
Pour ne pas prendre du temps de connection au serveur de la DB.
Par contre qu'elle soit ouverte pour le test existe en DB, donc ça revient à lancer une autre page pour faire ça je crois.


RE: une fonction perso non reconnue - niahoo - 11-09-2010

Oui j'ai oublié un truc, en haut je mets "fichier des fonctions", mais en dessous j'ai oublié de dire "fichier d'inscription"

Il ne faut pas réfléchir en termes de "page". Bien sur qu'un seul fichier doit gérer l'accès à la base de données, plus un fichier qui va gérer les comptes, etc.

Par contre, pourquoi vouloir s'empêcher d'utiliser se fichier avant l'affichage de différentes pages à l'utilisateur ?


RE: une fonction perso non reconnue - gameprog2 - 11-09-2010

Citation :Par contre, pourquoi vouloir s'empêcher d'utiliser se fichier avant l'affichage de différentes pages à l'utilisateur ?
Bein pour ça :
Citation :En fait, mon probleme c'est que je ne veux pas que la DB soit ouverte pendant le test vulgaire, vide, email.
Pour ne pas prendre du temps de connection au serveur de la DB.
Par contre qu'elle soit ouverte pour le test "existe en DB", donc ça revient à lancer une autre page pour faire ça je crois.

Dans ma tête, une page php c'est un fichier Wink


RE: une fonction perso non reconnue - atra27 - 11-09-2010

heu pour économiser le temps de connexion a la bdd, tu fait charger 2 pages?

Pas pertinent comme optimisation Confused


RE: une fonction perso non reconnue - gameprog2 - 11-09-2010

mais non ces pages ne se connectent pas au serveur de DB Wink
(tu n'as pas suivi)

Je veux que seule la deuxieme page s'y connecte pour vérifier si le pseudo existe en DB Wink
Mais ça y est j'ai trouvé une solution qui m'arrange, la premiere page va créer un cookie contenant le pseudo et le pass du joueur après avoir passé les tests de vide et de vulgarité, puis la deuxieme page se connecte à la DB, lit le cookie en sort le pseudo et le pass et vérifie sur la DB s'ils existent et dans ce cas commence la session du joueur Wink sinon elle renvoie vers la page d'inscription (premiere page).

Par contre il faut que je me débrouille pour que le cookie soit effacé juste apres Wink


RE: une fonction perso non reconnue - Sephi-Chan - 11-09-2010

Diantre ! Qu'est ce que le développement from scratches peut être compliqué, sale et inefficace…


RE: une fonction perso non reconnue - popayan - 11-09-2010

Pour amener un peu d'eau au moulin de Sephi, développer en anglais est quasi obligatoire quand on utilise des frameworks. par exemple pour ne pas se planter avec les conventions de nommage des classes dans CakePhp, etc...


RE: une fonction perso non reconnue - atra27 - 11-09-2010

(11-09-2010, 07:46 PM)Sephi-Chan a écrit : Diantre ! Qu'est ce que le développement from scratches peut être compliqué, sale et inefficace…

Étant parti de rien je me dois de réfuter une telle affirmation.



Cela dis, j'avoue que partir from scratch quand on a un bagage technique aussi peu volumineux (hooo la belle tournure de phrase) risque vraiment de mener a la catastrophe...

Sérieux, a quoi sa sert tes deux pages???

Limite si tu veux faire une inscription en deux parties, utilise les session, because si entre ta verif et ton inscription en db je modifie le cookie, et bien ton système n'a servis a rien.

De même, appeler deux pages juste pour cette histoire de bdd c'est vraiment vraiment nul!

Au pire tu met la ligne qui fait la connexion a la fin!

Sinon tu fait comme moi:
Récupération form (j'entend par la addslash et sécurisations diverses)
Connexion a la bdd->calculs diverses et stockages en variable
Ferme bdd
Génération depuis template avec les variables
(cache? useless dans ton cas mais ma fonction est située ici au ca ou! :p)
Envoi au navigateur

Base tout ton système la dessus sinon c'est mort d'avance! ou passe par un framework!

Si tu n'a pas la rigueur ni les connaissances pour partir de rien, alors part de quelque chose qui te forcera a coder proprement! :o


RE: une fonction perso non reconnue - gameprog2 - 11-09-2010

Perso je ne vois pas le probleme de personnifier en français le nom de ses fonctions et classes personnelles, tant que l'on n'utilise pas des noms réservés il ne risque pas d'y avoir d'erreurs, enfin c'est mon avis.

Bon c'est vrai qui n'aime pas les codes propres ?
Moi aussi, mais je suis débutant en PHP, attendez^^
Me faut le temps d'analyser ce que tu me dis là Wink

Alors un framework, oui je vais en utiliser un prochainement, dés que j'aurais appris à m'en servir^^ ça m'a l'air super !

Citation :Limite si tu veux faire une inscription en deux parties, utilise les session, because si entre ta verif et ton inscription en db je modifie le cookie, et bien ton système n'a servis a rien.
C'est la page 1 qui appelle la page 2 donc tu n'a pas le temps d'effacer le cookie.
Dans la page 2, le traitement est fait sur le cookie avant même que tu valide un truc sur la page, puis le cookie est effacé.

Citation :De même, appeler deux pages juste pour cette histoire de bdd c'est vraiment vraiment nul!
Peut-etre mais je connais que ça pour éviter de connecter la DB tout le temps que le joueur remplit son formulaire, c'est pas top comme ça, et donc il me faut deux pages, une pour le test "vulgarité, et champ vide et taille mini du pseudo" et une page pour le test d'existence du pseudo en DB et celle-là se connecte donc.

Citation :Sinon tu fait comme moi:
Récupération form (j'entend par la addslash et sécurisations diverses)
Connexion a la bdd->calculs diverses et stockages en variable
Ferme bdd

Tu veux dire que la premiere page php lit le formulaire, teste les champs, se connecte à la DB teste si le pseudo et passe existent en DB, puis ferme la DB ?

Citation :Génération depuis template avec les variables
(cache? useless dans ton cas mais ma fonction est située ici au ca ou! 10)
Envoi au navigateur
ça je comprend rien Wink

Citation :Base tout ton système la dessus sinon c'est mort d'avance! ou passe par un framework!
Oui je vais voir à propos des frameworks Wink