Eh bien si, justement, si tu n'utilises pas pconnect, les connexions se ferment automatiquement à la fin du script
Eh bien si, justement, si tu n'utilises pas pconnect, les connexions se ferment automatiquement à la fin du script
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Vous me rendez fous !! lol
okok merci beaucoup
Je suis plutôt de l'avis de fermer la connexion à la base de données dès la dernière requête effectuée, autrement dit dès qu'on en a terminé avec la couche Models de l'application.
Ca ne sert à rien, et peut même devenir nuisible de la laisser ouverte pendant le traitement des données puis la génération de la vue, qui si elle est conséquente, peut durer de 1 à plusieurs secondes.
Faux. La connexion se ferme à la fin du parsage du script PHP. Il y a pas de liaison permanente entre le navigateur et le serveur. Ce dernier envois ça page au navigateur et il ne le connait plus du tout. Heureusement que c'est ainsi parce qu'il faudrait des bases de données ayant la possibilité d'ouvrir des milliers de connexion en même temps.
Mon avatar ? Ce n'est rien, c'est juste la tête que je fais lorsque je vois un code complètement frappa dingue !...
C'est bien ce que je disais plus haut : Si tu as de tels temps de réponse, alors l'optimisation du nombre de requêtes ouvertes est bien le dernier de tes soucis... Si ta vue met effectivement plus d'une seconde à s'afficher, alors il faut que tu te renseignes de toute urgence sur les techniques de mise en cache, mais tu peux tout de suite laisser tomber les sujets aussi triviaux que ce dont il est question ici
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Et bien tant que j'y suis , je vais vous introduire une nouvelle question qui me trotte si vous voulez bien..
J'en profite vu qu'en même temps nous sommes dans un sujet qui traite l'optimisation ^^
Alors voila , j'ai fais un site (de vente mais peu importe) où en faite je n'ai qu'une page "officielle" , c'est l'index.php..
j'utilise des modules donc , ce qui me donne quelque chose comme :
Et dans mes modules , j'ai parfois d'autres modules, des genres de sous modules en quelques sortes..
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <head> .. </head> <body> header(); if(isset($_GET['section']) && in_array($_GET['section'], $sections)) include('mod/' . $_GET['section'] . '.inc.php'); else code de la page d'accueil footer(); </body>
Est-ce là un bon procédé?
J'ai noté pas mal d'avantages , notamment dans la lisibilité et la structure, et par exemple un avantage : je ne dispose que d'une balise body , donc que d'une seul possibilité de "onload" pour le JS.
J'aimerais avoir votre avis.. merci !
@libuma : Oui, c'est ce que l'on appelle un script de bootstrap, c'est une technique utilisée par tous les frameworks modernes.
Les noms de fichiers viennent en effet d'une variable client $_GET['section'], mais tu supprimes le risque en utilisant une "liste blanche" avec un tableau local $sections. Ta méthode est donc correcte et sécurisée
Mes articles - Zend Certified Engineer (PHP + Zend Framework)
Ressources PHP - Ressources Zend Framework - Cours et tutoriels pour apprendre PHP - Forum PHP
Dans le cas d'un magazine en ligne, où on aurait par exemple une quinzaine de requete SQL SELECT pour afficher différents éléments sur la home, ne serait-ce pas plus malin de :
1/ Créer une table pour la home, où dynamiquement à chaque modification coté back office, ça update cette table qui contient uniquement les éléments à afficher sur la home
2/ Appeler avec une seule requete SQL SELECT tout le contenu de cette table et afficher son contenu au fur et à mesure de la page.
J'ai jamais lu ce genre de proposition qui en plus de faire des tables par type de données fait aussi des tables par page.
Vous pensez que dans le cas de sql select c'est une solution pertinente ?
Bah si tu construits ta page avec 15 requêtes SQL ça commence à faire. Plutôt que de créer un autre table sous prétexte que c'est la page d'accueil et donc qu'elle est appelée plus souvent, il faut plutôt la mettre en cache. Si ta page est affichée 1 fois par seconde et que tu mets un cache d'une minute, les 15 requêtes ne seront exécutées que 1 fois sur 60, ce qui est largement acceptable.
En plus c'est super facile à faire !
Tout dépend de quel type de mise en cache tu parles. Si c'est avec un système de template, c'est lourd à mettre en place. Tu parles de quel type de mise en cache ?
Quelqu'un aurait-il récemment fait un bench foreach() vs array_map() vs array_map+create_function() ?
Il me semble que les lenteurs de array_map() ont été fixées, non ?
j'ai aussi vus et entendu qu'il etait preferable d'utilisé directement les variable
exemple :
exemple:1
mieu que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $_POST['champ'];
exemple2
;
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 $champ=$_POST['champ']; echo $cahmp;
a confirmé car je ne sait pas dutout si il y a une grosse diference
oui c'est vrais stealth35 mai peut on pas proteger une variable directement meme si elle n'es pas defini? par exemple :
mysql_real_escap_string($_POST['champ']);
je dis sa comme sa mai en meme temp vous etes plus experimenter que moi dans le domaine
si $_POST['champ'] n'existe pas oui tu vas avoir une erreur,
mais je te conseil d'oublier le mysql_real_escap_string, et de vite passé sous mysqli ou PDO_MySQL
mysql_real_escape_string() c'est pour protéger une chaîne de caractère qui va être utilisée dans une requête SQL via mysql_query() d'une injection SQL.
Passer à mysqli ou à PDO ne résoudra pas le problème. Il y a des fonctions équivalentes à utiliser.
Sinon il faut passer par des requêtes préparée, ce que les fonction mysql_ ne permettent pas.
htmlentities() / htmlspecialchars() permettent de protéger le code HTML qui sera envoyé au navigateur. (failles XSS, etc..)
Apres, le fait de passer par une variable intermédiaire plutôt que d'utiliser $_POST directement ne sert pas à grand chose à part consommer un peu plus de mémoire inutilement.
Zend Certified PHP Engineer
« Crois-tu comprendre le monde juste en matant le 20H Ou connaître l'histoire en ayant lu que l'angle des vainqueurs ? » Keny Arkana
ne faite JAMAIS ça
Une des options de PHP pour faciliter la vie du développeur était de justement le faire de façon automatique.
il existe donc des Hack pour tenter de corrompre les scripts.
Donc si vous affectez un champs d'un POST à une variable
évitez que cette variable ait pour nom la clef du champ
;...[/QUOTE]
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 $n_importe_quoi_d_autre_que_champ=$_POST['champ']; echo $n_importe_quoi_d_autre_que_champ;
A+JYT
bonjour: svp mon français est trop faible mais j'essaye de m'exprimer pour mieux poser ma question .
dans un forum ou chat on trouve généralement une zone de texte je veux copier coller
dans cette zone une application visual basic et dans cette application un bouton si on clic sur ce bouton un texte apparait. b1 sur ce texte est préalablement programmer dans l'application par l'utilisateur de application et pas par l'utilisateur du chat ou du forum ,j'espère que c'est clair merci de votre compréhension .
Bonjour,
Cette approche bien qu'elle soit juste dans l'intention n'est pas bonne du tout dans la forme, car c'est ainsi que fonctionnent la plupart des CMS et qui dans le cas présent constiste à utiliser la BD pour faire de la persistance de classe ce qui est à proscrire dans un contexte où les performances et la disponibilité en charge doivent être garantis.Envoyé par alekusu
Dans le cas d'un site ecommerce il faut que la BD soit fortement normalisée et par conséquent qu'elle intègre les spécificités métier et fonctionnelles de l'applicatif Web.
Pour ce qui est de l'affichage, appliquer votre vision est la bonne méthode à ceci près qu'il faille le faire avec des vues, bien qu'avec MySQL des requêtes dédiées soient le plus souvent les plus appropriées.
++
_______________________________________
Azure Data Engineer & Azure DBA
Blog TSE sur developpez.com : Architectures web hautes performances en PHP
Les meilleurs tutoriels PHP sur developpez.com
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager