Page 1 sur 2

Programmation PHP ( et autres ), Conseils, trucs & astuces.

MessagePosté: Sam Juil 17, 2010 5:38 pm
de PodBlake
Bonjour à vous programmeurs et programmeuses.

Depuis plusieurs mois ( voir plus d'un an je ne me souviens plus ), je me suis lancé dans la programmation PHP ( après avoir appris le xHTML/CSS ) et j'ai fais un peu de Javascript ( avec quelques notions de la librarie JQuery ) et bien sûr la SQL. ( J'utilisais mysql_ mais je suis passé à la PDO ).

Je me lance dans la création ( en local d'abord ) d'un petit jeu par navigateur ( Non concurrent de Celestus car n'étant pas du tout du même genre / thème )
Je viens donc poser quelques questions à vous tous, joueurs de Celestus, mais aussi Véovis sur le PHP et les serveurs :
  1. Quels sont vos conseils concernant la sécurité ? ( Fonctions / librairies etc.)
  2. Programmez-vous orienté Objet ? ( POO ) Si oui, avez vous un exemple d'utilisation ? Car je connais le principe, j'ai lu plusieurs cours, mais j'ai du mal à voir l'intérêt par rapport à une programmation dite procédurale.
  3. Quel type de serveur est nécessaire au minimum pour faire tourner un jeu navigateur ? ( Moins gourmant que Celestus ^^ )
  4. Quel hébergeur conseillez-vous ?
  5. Que sont les Frameworks ?
  6. Avez vous des adresses sur des cours concernant le développement WEB ?
  7. Comment structurez vous vos pages ? Tableaux ? position : absolute / fixed ?

Voila pour l'instant je n'ai que ces question, j'en ajouterai si d'autres me viennent à l'esprit ^^

Merci d'avance et bon jeu à vous, amis de l'elePHPant !
Image

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Dim Juil 18, 2010 1:23 pm
de PodBlake
Nos amis programmeurs et amies programmeuses sont tous et toutes en vacances ?

Dommage :(

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Dim Juil 18, 2010 2:05 pm
de PodBlake
Merci beaucoup pour ces réponses.

Pour l'instant je vais l'hoster en local pour les test, je verrais après pour tester peut-être sur free, je me renseignerai sur 1&1, mais lorsque l'on commande, l'on paye pour 1 ans. Mais si l'hébergement ne suffit pas, on peut améliorer ou on doit attendre la fin de l'année commandée ?

Pour les frameworks, j'en ai entendu parler, mais je ne sais pas tellement en quoi cela consiste... C'est là ma question ^^
Pour la sécurité j'ai entendu parler de PHPIDS ( http://php-ids.org/ ) tu connais ?

Pour la POO, tu me rassure, car j'ai un peu de mal ! Certains font des objet en POO pour créer des formulaires facilement des trucs comme ça, mais c'est pas la mort de taper un formulaire...

Pour la structure, alors c'est parti pour des position absolute / fixed et des float :mrgreen:

Encore merci pour tes réponses, je continue la programmation ( après 1H30 de bataille à cause d'un foutu espace lorsque j'ai rentré le password hashé dans la BDD pour tester la connexion '-_- ):D

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Dim Juil 18, 2010 2:16 pm
de Jenkins
Etrange sentiment que celui qui m'envahit quand je lit ce texte, sans difficulté aucune, mais sans arriver à piper un mot de ce qu'ils racontent... :mrgreen:

Voilà, c'était la pause flood de Tonton Jenk'!

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Dim Juil 18, 2010 8:55 pm
de Morphée
6) Mis à part le SdZ, il y a autrement le site Alsacréation qui est pas mal si tu veux être au courant de l'actualité en matière de dev web (principalement concernant les normes W3C, le XHTML/CSS et le JS).
Le site regorge de petites astuces pour faire face à certains problèmes qu'on peut couramment rencontrer. Me semble aussi qu'ils font quelques tutos, mais je sais pas trop ce que ça donne.

Pour 1&1, me semble que c'est gratuit le premier mois... Ca laisse le temps d'essayer quoi !

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Dim Juil 18, 2010 9:30 pm
de PodBlake
Oui le premier mois est peut-être gratuit, mais l'engagement est d'un an ! ;)

Véo, sans être indiscret, pour avoir comme exemple, l'hébergement de Celestus est lequel ? Enfin je parle de l'hébergement du début de Celestus . Tu as choisi quelle formule ?

EDIT : 60 Jours Satisfait ou remboursé >.< Pardon !

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Dim Juil 18, 2010 9:43 pm
de Morphée
Pas forcément : ils te remboursent si tes pas satisfait !
L'hébergeur de celestus je suppose que c'est tout simplement onlinehome.


Edit : grillé !

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Dim Juil 18, 2010 10:44 pm
de fmarie
Pour avoir quelques sites derrière mes fesses, je me permet de répondre également.
Beaucoup de points rejoindront ceux de Véovis.

PodBlake a écrit:Quels sont vos conseils concernant la sécurité ? ( Fonctions / librairies etc.)

Attention aux injections SQL mais aussi aux détournements de fichiers. Il y a des tonnes de sites qui permettent d'avoir accès aux fichiers de config d'Apache, MySql et autre. Ce qui veut dire bien souvent la possibilité de récupérer les mots de passe root. Il y a aussi les problèmes de DDOS, mail et autres attaques.
Donc si tu héberges, gère la sécurité du serveur également et pas uniquement le code PHP/MySql
PodBlake a écrit:Programmez-vous orienté Objet ? ( POO ) Si oui, avez vous un exemple d'utilisation ? Car je connais le principe, j'ai lu plusieurs cours, mais j'ai du mal à voir l'intérêt par rapport à une programmation dite procédurale.

Le PHP5 permet la POO. Certains sont des fanas de ça. L'avantage principal est l'utilisation de classes et de fonctions qui s'utilisent vite dans le code. Par contre, la construction est longue... trop longue parfois !
Lorsque tu as un site de recherche (google ? ), tu as tout le temps la même requête et le même process : je recherche le mot ou les mots x y z dans ma base. Au lieu de refaire mon parcours de base et donc de réécrire ma requête à chaque fois (surtout que l'on peut parfois la faire sur des serveurs différents), je fais un objet qui gère la connexion au serveur et qui lance ma requête en écrivant dans mon code de page un truc du style recherche(form.search.this);
Pour un jeu, les actions sont trop différentes sauf pour des mini jeux du style labrute où là, oui, la POO est recommandée.
PodBlake a écrit:Quel type de serveur est nécessaire au minimum pour faire tourner un jeu navigateur ? ( Moins gourmant que Celestus ^^ )

Tu peux commencer sur un auto-hébergé pour les tests mais pour du live, il faut un dédié.
Le bas de gamme suffit à tous les coups pour le démarrage ;)
PodBlake a écrit:Quel hébergeur conseillez-vous ?

En dehors des noms donnés, il y a aussi ovh. Le technique est light mais mes serveurs fonctionnent bien et j'arrive toujours à avoir quelqu'un par mail.
PodBlake a écrit:Que sont les Frameworks ?

Pour quoi faire ?
PodBlake a écrit:Avez vous des adresses sur des cours concernant le développement WEB ?

Site du Zéro mais aussi LE plus important : php.net ! Ne rigole pas mais c'est LA mine d'or du programmeur que je suis. Après tu as aussi asp-php.net, phpdebutant.org, ...
PodBlake a écrit:Comment structurez vous vos pages ? Tableaux ? position : absolute / fixed ?

Je fais en général un cadre central ou tout vient ce mettre.
J'évite désormais les tableaux et je ne fais plus que du CSS. Plus chiant au départ mais quand tu dois modifier ton site, quel bonheur !



Par contre, avant de te poser toutes ces bonnes questions, la primordiale est :
Est-ce que mon jeu intéressera mes joueurs et aurai-je le temps de travailler dessus ?

Bon courage ! :)

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Dim Juil 18, 2010 11:16 pm
de PodBlake
Merci fmarie pour ta réponse complète.

La dernière question est évidemment importante.
Pour ma part, j'espère que des gens seront intéressés, sinon en tout cas, je me serais beaucoup entraîné !

Cependant, si tu peux m'aider, j'ai un gros soucis là !

Dans ma BDD, j'ai les infos sur le joueurs donc les ressources ( l'argent ).
Type : BIGINT.
lorsque je fais une requête, si je fais exit($argent) , il m'affiche le nombre.
Cependant, si je multiplie cet argent par 2, si je fais un exit($argent) simple, il n'affiche rien par contre si je fais exit('$argent vaut :'.$argent) il m'affiche le nombre multiplié par 2 !
Voici le code en question, sachant que ce soucis arrive à d'autres endroit du site :

Code: Tout sélectionner
   $prepare = $bdd->prepare('SELECT * FROM joueurs WHERE id=?');
   $prepare->execute(array($_SESSION['id']));
   $query = $prepare->fetch();
   $prepare->closeCursor();
   $argent = $query['argent'];
        // exit($argent) donne le nombre
   $argent = $argent*2;
   // exit($argent) donne rien.
        // exit('Test : '.$argent) donne le bon résultat

:shock: :shock: J'ai pas pigé pourquoi ! On peut m'aider S.V.P ? C'est génant si je veux faire des comparaisons !

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Dim Juil 18, 2010 11:51 pm
de Norian
A la base, exit() n'est pas fait pour afficher un message quelconque, il est utilisé pour sortir du script php en affichant un status passé en paramètre.

Essaye avec echo, peut être que...

Edit : Quand tu fais une requête SQL, évite l'étoile dans ta requête. Met les colonnes que tu veux récupérer.
Ca permet à l'optimiseur SQL de trouver un plan d'exécution plus rapide en ramenant seulement les infos utile.

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Dim Juil 18, 2010 11:54 pm
de PodBlake
effectivement, avec echo tout marche...

Mais pourquoi cela déconne avec exit ?
Enfin pour moi, exit est ma commande débug ^^ !
Merci beaucoup à toi Norian ;)

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Lun Juil 19, 2010 12:03 am
de Norian
exit doit seulement être utilisé pour sortir d'un script php en levant une erreur. Elle n'est pas fait pour un affichage sur la page.
Dans ton code, si tu met deux exit à la suite, le deuxième ne sera pas pris en compte car le script se sera arrêté après le premier. C'est l'équivalent du exit, abort ou shutdown en C.

Si tu veux faire du debug, il y a la commande echo ou print.
Par contre ça peut être lourd a les utiliser car quand ton jeu sera en production, il faudra les enlever.
La solution pour éviter de tout reprendre ton code, c'est de créer une fonction global avec ton echo et une condition sur un variable globale. Tu remplace tes echo par cette fonction et tu positionne la variable globale à true. Quand ton jeu sera en prod, suffira de positionner ta variable globale à false.

EDIT :
Code: Tout sélectionner
void exit  (  int $status  )
Termine le script courant. Les fonctions d'extinction et les destructeurs d'objets seront toujours exécutés même si exit() est appelé.

Liste de paramètres
status
    Si status est une chaîne de caractères, cette fonction affichera le status juste avant de sortir.
    Si le paramètre status est un entier, cette valeur pourra être utilisée comme statut de sortie et ne sera pas affichée. Le statut de sortie peut être dans l'intervalle 0-255, le statut de sortie 255 est réservé par PHP et ne doit pas être utilisé. Le statut 0 est utilisé pour terminer le programme avec succès.

http://php.net/manual/fr/function.exit.php

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Lun Juil 19, 2010 12:16 am
de PodBlake
Norian a écrit:Si tu veux faire du debug, il y a la commande echo ou print.
Par contre ça peut être lourd a les utiliser car quand ton jeu sera en production, il faudra les enlever.
La solution pour éviter de tout reprendre ton code, c'est de créer une fonction global avec ton echo et une condition sur un variable globale. Tu remplace tes echo par cette fonction et tu positionne la variable globale à true. Quand ton jeu sera en prod, suffira de positionner ta variable globale à false.


Effectivement, moi je m'en servait ( à tort ) pour voir la valeur des variables là où ça bloque ...

Par contre, j'ai pas du tout compris ton idée de la fonction globale et de l'echo ... :shock:

Merci pour tes réponses argumentées et ta recherche dans la doc ( je sais pas pourquoi j'y ai pas pensé ! )

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Lun Juil 19, 2010 9:16 am
de fmarie
function DebugPodBlake($variableatester){
if($debugsite==1){
echo 'Debug : ' .$variableatester;
}
}

Dans ton fichier de configuration de base (en général celui qui ouvre les accès à la bdd), tu mets une variable $debugsite=0;
Quand tu voudras tester une variable, tu mettras $debugsite=1; et la fonction DebugPodBlake($toto);
Tu auras l'affichage de ta variable.

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Lun Juil 19, 2010 12:49 pm
de PodBlake
Ok merci.
Quand tu parle de fichier de base de configuration...
Pour ma part, dans chaque page, je fais 1 include au tout début, qui lui même include ce dont j'ai besoin sur chaque page.
Donc tu me dis de mettre cette fonction dans le fichier que j'include partout ?

Merci en tout cas pour la réponse, mais pourquoi le soucis de la variable debugsite et d'une fonction ? Un simple echo fais l'affaire non ? Pas besoin d'utiliser une fonction pour faire l'echo !?

Je parais peut-être nul là, mais je vois pas trop l'interêt de la fonction >.< !

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Lun Juil 19, 2010 1:01 pm
de fmarie
Oui c'est ton fichier d'include

L'intérêt de la fonction est qu'elle doit être exceptionnelle et unique.
Tu ne débug pas ton site tout le temps et partout.
Tu peux donc mettre la fonction debug à l'endroit désiré facilement.
De plus le jour ou, pressé, tu laisses ta fonction debug dans un fichier inclus ou tu ne sais trop où, la recherche sera facile, tu pourras supprimer ton debug.

Un echo direct d'une variable n'est pas vraiment top à mon goût !

Si vraiment tu ne veux pas d'une fonction, tu peux aussi faire un div dans ta page qui sera invisible et afficher le debug :
Code: Tout sélectionner
<div id="debug" style="visibility:hidden "><?php echo $debug; ?></div>

Il te suffira dans le fichier que tu veux débugger de faire un $debug=$mavariable ou $debug=$marequete;
En visualisant le code de ta page générée, tu auras ce que tu recherches.

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Lun Juil 19, 2010 1:07 pm
de PodBlake
Alors rectification, il vaut mieux un display : none qu'un visibility : hidden ( histoire que la place ne soit pas prise ).

Mais le truc c'est que lorsque ça bug quand je teste, je debug en regardant la variable et une fois que c'est réglé, j'enlève l'echo de la variable !
Alors oui mettre une fonction me permettrait de faire que lorsque je l'appelle, je vois de manière clair la variable à débuguer, mais une fois que j'aurai vu le soucis, je supprime l'appel de la fonction !
On continue par MP si tu veux, pour ne pas gâcher le topic ;)

EDIT :
fmarie a écrit:Mais je ne trouve pas que l'on soit HS et que l'on "gâche" le topic :)

=> Pas faux ! :D

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Lun Juil 19, 2010 2:19 pm
de fmarie
Comme tu veux ;)
Mais je ne trouve pas que l'on soit HS et que l'on "gâche" le topic :)

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Mer Juil 21, 2010 11:40 am
de PodBlake
News : J'aime le Javascript !

Car c'est l'un des seules langage où l'on peut pomper sur les autres sites :D

( Je remercie d'ailleurs le site Celestus pour le téléscripteur car pour ma part j'étais parti sur une animation JQuery bien, sauf que je savais arrêter l'animation, mais pas la faire reprendre ! J'ai opté pour la balise <marquee> ^^

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Mer Juil 21, 2010 12:34 pm
de fmarie
Marquee n'est pas valide d'un point de vue W3C et sur certains navigateurs, cela ne "bouge" pas :!:
Cependant, il y a plein de possibilités cf http://www.csvt.qc.ca/patriotes/html/code_spec/xmpl_mrq.htm

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Mer Juil 21, 2010 12:38 pm
de PodBlake
Pas valide W3C ? Zut ! C'est peut-être pour ça que Notepad ++ colore pas la balise >.< !

Bon je vais me pencher de nouveau sur l'animation JQuery ( qui est tout de même plus fluide dans le mouvement ).

Si je réussi à le faire ( ça devrais pas prendre trop de temps ) je laisse le code ici si Véo le veut ;)

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Mer Juil 21, 2010 12:55 pm
de fmarie
Pour ça, le code est très simple en effet ;)
http://remysharp.com/demo/marquee.html

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Mer Juil 21, 2010 12:56 pm
de PodBlake
Je parle de le faire sans la balise marquee ^^ Car elle n'est pas valide W3C !

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Mer Juil 21, 2010 1:06 pm
de fmarie

Re: Programmation PHP, Conseils, trucs & astuces.

MessagePosté: Mer Juil 21, 2010 1:12 pm
de PodBlake
C'est qui le :boulet: ? Toi ou moi ? xD

Merci pour le lien, je préfère faire le mieux made in my House !
Mais c'est toujours une solution de rechange ^^
D'ailleurs j'ai fini le "mien" à un soucis près, le texte s'affiche pas en entier ( au bout d'un moment ça coupe ) !

J'ai plus qu'a comparer et voir ce qui cloche ! :roll: