Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

24 commentaire(s) de 8Tnerolf8 sur des sources sur tout CodeS-SourceS

Le : 24/09/2008 09:21:37
Source : INHIBEUR D'INJECTIONS SQL
Bonjour Willeraser

Je ne comprends pas la relation de la fonction que tu as inclus dans ton commentaire avec mon script, sachant que ton masque n'est pas correct.
Exemple :   echo preg_replace("/[^A-Z_a-z0-9-\.&=]/i",'', "C'était le temps béni de la \"Rengaine\""); donnera
CtaitletempsbnidelaRengaine, ce qui est loin de la valeur initiale.

Et, si on adapte un masque avec [[:alpha:]], cela prendra bien les caractères propres à la langue de Molière, ainsi que les apostrophes et les guillemets, ce qui nous fera retomber dans la problématique précédente.

Eclairé par toutes les informations que vous avez tous fourni, et disposant de mon propre serveur, je vais faire passer toutes mes transaction SQL via PDO.


Le : 23/09/2008 14:18:21
Source : INHIBEUR D'INJECTIONS SQL
Merci à tous deux pour vos commentaires.
Ne m'étant pas encore penché sur la classe PDO, j'ai fait avec mes connaissances reliées à la bibliothèque MySQL.
Après parcours du manuel php, je m'aperçois en effet que les fonctions que vous décrivez allient sécurité et portabilité.
Je vais donc me pencher de plus près sur l'implémentation et l'utilisation de cette classe.


Le : 17/07/2008 05:26:38
Source : EQUIVALENT DE INNERHTML JAVASCRIPT, MAIS GLOBAL
Effectivement, en testant l'indice 0 d'une chaîne de caractère, on peut utiliser isset, mais je trouve que cela revient au même que de tester sur la longueur de la chaîne.

Bonne journée.

Tnérolf


Le : 16/07/2008 19:02:08
Source : EQUIVALENT DE INNERHTML JAVASCRIPT, MAIS GLOBAL
Bonsoir

Merci pour tes précisions concernant la différence de temps d'exécution entre l'opérateur ternaire et le if classique.
A mon tour de m'expliquer :

function InnerHTML($HTML,$Balise,$Prem_val='',$Affiche_prems=true,$Nbre_bal=0)

Tu peux remarquer que $Prem_val est initialisée à vide si aucune valeur n'est passée en paramètre. Donc, la variable est déclarée et un isset($Prem_val) renverra true.

Bonne soirée.

Tnérolf


Le : 16/07/2008 05:48:02
Source : EQUIVALENT DE INNERHTML JAVASCRIPT, MAIS GLOBAL
Bonjour Kankrelune

Tout d'abord un grand merci pour ta note et le temps que tu as pris pour rédiger tes suggestions d'optimisation.

Je n'ai pas fait de comparaison typée car je n'y ai pas pensé, habitué que je suis à évoluer dans un monde VBA. Je vais me pencher sur ce sujet dès que possible afin d'optimiser mon code.

Si, au début, je fais
if(strlen($Prem_val)==0)
{
$Affiche_prems=true;
if($Nbre_bal==0) $Nbre_bal=1;
}
else
{
  $Nbre_bal=0;
}
c'est effectivement pour forcer l'affichage de la première valeur si on choisit de récupérer les lignes par nombre et pas par valeur.
Je te rejoins dans l'inutilité du else.

Je n'ai pas utilisé if(isset($Prem_val) car cette variable est affectée par défaut à une valeur vide dans la déclaration de la fonction.

Concernant les opérateurs ternaires, préconises-tu de les remplacer par
if(...)
{
...
}
else
{
...
} ?

Dès que possible, je tirerai profit de tes conseils et suggestions et adapterai le code de cette fonction en conséquence.

Bonne journée.

Tnérolf


Le : 15/07/2008 21:30:57
Source : EQUIVALENT DE INNERHTML JAVASCRIPT, MAIS GLOBAL
En fait, je ne stocke pas de html en bdd.
J'exploite une version améliorée de mon module "TRIE ET FILTRE UNIVERSEL DE REQUÊTES DANS UN FORMULAIRE À PARTIR DE SES CONTRÔLES". Cette version, au lieu d'afficher la page à la volée, stocke l'html généré dans une variable que j'exploite ensuite.
Donc, pour bénéficier de toutes les fonctionnalités offertes par ce module, je préfère extraire la valeur des champs inclus dans les <td> de la table générée plutôt que de me prendre la tête pour :
    - Récupérer les données de la base
    - Les formater comme je l'entends
    - Trouver un moyen d'intégrer ça à mon module.

Le but de cette fonction est vraiment de faire du traitement par lot en fonction des lignes renvoyées.

Bonne soirée

Tnérolf


Le : 15/07/2008 19:35:21
Source : EQUIVALENT DE INNERHTML JAVASCRIPT, MAIS GLOBAL
Bonsoir Kankrelune

Je n'utilise pas le DOM car :

- Je ne retiens pas toutes les valeurs renvoyées par la requête pour l'affichage. En effet, certaines sont présentes pour formater d'autres valeurs qui elles, seront affichées.
Exemple : Pour gérer les alliances dans mon jeu, le joueur a le choix d'afficher ou non son adresse mail dans les pages pour qu'on le contacte directement par ce biais. J'ai donc un champ booléen qui me permet de formater l'adresse du joueur soit en lien mailto, soit en un message "Ne veut pas communiquer son adresse". Le couple <td>...</td> associé à ce champ sera supprimé du html final de la table.

- J'ai un champ d'ID qui est constitué de la concaténation de l'adresse mail des joueurs. Or, pour des raisons de sécurité, je ne veux pas que l'on récupère leur adresse mail, surtout s'ils ont décidé de ne pas les afficher. Je les crypte donc pour qu'apparaisse dans la source l'ID cryptée que je décrypterai ultérieurement.

- J'ai un champ qui renvoie deux valeurs, soit 'Ami', soit 'Ennemi'. En fonction de cette valeur, je transforme le <td>[Ami|Ennemi]</td> en :

<input type="checkbox" name="Case" value="[Cryptage de l'ID cité plus haut]" checked (si la valeur est 'Ami')>

- Je ne suis pas très versé en DOM.

En espérant t'avoir correctement répondu, je te dis au revoir.

Tnérolf


Le : 19/03/2008 05:51:58
Source : GÉNÉRATEUR SQL D'INSERTION OU DE MISE À JOUR
Bonjour Alexdachri

Je ne connais pas Java, par contre, ce que tu peux faire pour récupérer la dernière ligne de tes tables est :

- Dans ton SQL de requête mettre des relations entre les tables (INNER JOIN par exemple).
- Classer par ORDER DESC ou ASC suivant si tu veux prendre la première ou dernière ligne de résultat que tu associe à un LIMIT 0,1.
- Utiliser, si c'est possible les fonctions suivantes :
    - MIN
    - MAX
    - La fonction LAST_INSERT_ID (spécifique MySQL)

En espérant avoir pu t'éclairer, je te souhaite une bonne journée.


Le : 17/03/2008 19:54:14
Source : GÉNÉRATEUR SQL D'INSERTION OU DE MISE À JOUR
Bonsoir Uni

Je n'ai pas travaillé avec un tableau associatif car le principe de ce générateur est de parcourir un tableau, et, voulant que le traitement soit généraliste, je ne voyais pas l'intérêt d'utiliser des clés autres que numériques, d'autant plus que le nom des champ est porté en indice [x][0].

Là où je te rejoins, c'est qu'il faut connaître au préalable les champs que l'on veut utiliser.

Cette fonction a été écrite pour éviter la fastidieuse rédaction du SQL standard d'insertion ou de mise à jour, surtout lorsque l'on a beaucoup de champs, ou bien si sur un même formulaire on a un bouton [Insérer] et un bouton [Modifier].


Le : 10/03/2008 21:16:18
Source : DÉTECTEUR DE PROCÉDURES ET FONCTIONS INUTILISÉES
Bonsoir Chrysostome

Merci pour ta note et tes commentaires.
Concernant MZTools, il est effectivement super, mais, d'après ce que j'en ai vu, ma fonction est complémentaire à cette application.
En effet, s'il détecte les variables locales inutilisées au sein des fonctions et procédures, je n'ai pas vu une équivalence égale à ce que fait "RechercheFonctionDansModule".



1 2


Nos sponsors

Sondage...

CalendriCode

Décembre 2008
LMMJVSD
1234567
891011121314
15161718192021
22232425262728
293031    

Consulter la suite du CalendriCode



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,156 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.