Aller au menu - Aller au contenu

[Plan du site] Vous êtes ici --- > Le Site du Zéro > Les forums > Site Web > PHP > Vos Fonctions ou astuces > Lecture du sujet

Vos Fonctions ou astuces

Vous devez être inscrit pour pouvoir poster des messages

Page : Précédente  1  2  3  ...  65  66  67  68  69  70  71  ...  97  98  99  100  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  65  66  67  68  69  70  71  ...  97  98  99  100  Suivante
Hors ligne Talus # Posté le 02/02/2008 à 21:38:54
タルス
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
Vous êtes au courant que srand() ne sert plus à grand chose dans PHP ?

Et pourquoi vouloir faire hash comme celui là, alors qu'un truc du genre suffit :

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. $hash = sha1(uniqid(mt_rand(), true));
  3. ?>
 
Hors ligne Nephthys # Posté le 02/02/2008 à 22:40:44
Infini = 1 puis 2 puis 3 ...
Avatar
Groupe : Membres
Je viens juste d'apprendre le PHP donc en cherchant on m'a dit que srand était obligatoire. J'ai aussi commencer ce code alors que je ne connaissais pas encore uniqid.
Je ne le poste juste par information.

Merci pour l'info sur srand.
Hors ligne Savageman # Posté le 02/02/2008 à 23:11:04
Insa : If inside
Avatar
Groupe : Membres
srand() et uniqid() n'ont rien à voir. En fait c'est surtout que srand() est obsolète et qu'on utilise mt_rand() maintenant.
 
Hors ligne BiDOrD # Posté le 02/02/2008 à 23:15:42
Et ça c'est beau !
Avatar
Groupe : Membres
Hors ligne Jeremie78 # Posté le 02/02/2008 à 23:30:31
Powered by GNU/Linux
Groupe : Membres
Oui et non :)
Cette fonction n'est dispo que sur php5 ;)

Web-Modules : outils pour webmasters (compteurs, tchat, news ...) à installer sur son site, générateur de bannières, de userbars, ...
 
Hors ligne BiDOrD # Posté le 02/02/2008 à 23:35:05
Et ça c'est beau !
Avatar
Groupe : Membres
Dans ce cas, il faut au minimum lui donner un titre du style "str_split sous php < 5"...

Image utilisateur
 
Hors ligne Dutiona # Posté le 02/02/2008 à 23:47:18
Vis pour être heureux !
Avatar
Groupe : Membres
Citation : Jeremie78
Un petit truc a corriger quand meme, evite les appels au shell ...
'unlink' fait aussi bien ce boulot

Si tu avais lu la fonction, tu aurais vu que shell est utilisé si unlink ne fonctionne pas.

Citation : Talus
Et aussi, evite de faire appel à al fonction clearstatcache en boucle, car elle consomme pas mal. Une seule fois suffit (genre à la fin).


C'est pour que la vérification des is_file ne soient pas eronnées après des suppressions via le shell.
Pour la lourdeur du script, j'ajouterai qu'un ramasse miette n'a jamais été économique en ressources... C'est pour ça qu'il y a un appelle aléatoire (comme dans mon exemple).

Utilisable en prod.


Bisous, Nyu

Défiez ma brute !
Eclipse user | Ubuntu (KDE) user | php/sql/xhtml/css/xml/xsl/javascript/java/python/perl/c/scheme coder.
Framework in use: Seraframework (my own one).
In Microeisti staff.
 
Hors ligne strucky # Posté le 02/02/2008 à 23:54:14
Jamais content !
Avatar
Modérateurs
Citation : BiDOrD

Pour moi, cette fonction est inutile, car je ne vois pas dans quel genre de cas elle pourrait servir, et de plus un preg_split() pourrait faire la même chose.

Code : PHP - Afficher / masquer les numéros de ligne
  1. preg_split('`(.{10})`', $chaine, -1, PREG_SPLIT_DELIM_CAPTURE | PREG_SPLIT_NO_EMPTY);
Hors ligne BiDOrD # Posté le 02/02/2008 à 23:57:21
Et ça c'est beau !
Avatar
Groupe : Membres
C'est gentil de reformuler mes posts. :-°
Encore que le "je ne vois pas dans quel genre de cas elle pourrait servir", je ne suis pas d'accord par contre. str_split est une fonction utile.
Édité le 03/02/2008 à 11:54:28 par BiDOrD

Image utilisateur
 
Hors ligne strucky # Posté le 03/02/2008 à 00:08:42
Jamais content !
Avatar
Modérateurs
Bah j'ai jamais dit que preg_split() était une fonction inutile, t'as mal interprété ce que j'ai dit.

La fonction à laquelle tu faisais allusion, c'est celle-là qui sert à rien, enfin avis subjectif.
Hors ligne BiDOrD # Posté le 03/02/2008 à 00:15:57
Et ça c'est beau !
Avatar
Groupe : Membres
Donc tu ne faisais que citer mon post pour ensuite le reformuler ? ... :)

Image utilisateur
 
Hors ligne Jeremie64 # Posté le 03/02/2008 à 00:21:05
Get over it !
Avatar
Groupe : Membres
Citation : BiDOrD
Citation : Jérémie64
C'est conseillé d'utiliser HTMLSPECIALCHARS à la sortie seulement ;)

Si je puis me permettre, ce n'est pas exact non plus... htmlspecialchars n'est pas à utiliser systématiquement à la sortie de la bdd comme ta phrase en donne l'impression... on l'utilise avant d'afficher une donnée textuée dans un contexte (x)html (ou même xml).

Si je récupère des infos de configuration du site sur ma bdd qui ne servent qu'à être stockées dans une variable utilisée par mes codes php mais pas affichées, je ne vais pas m'amuser à échaper les caractères html...
Idem si je renvoie une images gd avec le texte affiché sur l'image...

Bon, je suppose que ce n'est pas ce que tu voulais dire, et que toi tu sais te servir de ces fonctions. Mais ta phrase peut être mal interprétée... Beaucoup de gens appliquent les fonctions de sécurité sans les comprendre et ce genre de "phrases de simplification" y contribuent. Certains se disent "Ok, je met un htmlspecialchars à la sortie et je n'ai plus à me soucier de la sécurité !"...

Bye.

Effectivement, je me suis mal exprimé, mais je suis content qu'on se soit compris ;)

Bye & bonne soirée.


Coding is more than a job, more than hobby, more than activity, it's a lifestyle !

PHP is a powerful programming language, if you know how to use it...



 
Hors ligne strucky # Posté le 03/02/2008 à 00:35:29
Jamais content !
Avatar
Modérateurs
Citation : BiDOrD
Donc tu ne faisais que citer mon post pour ensuite le reformuler ? ... :)


Oui, t'as bien compris.

D'ailleurs je pense qu'il faudrait faire un tri dans toutes ces fonctions que met powange, car pour moi certaines là-dedans n'ont pas vraiment d'utilité et parfois des alternatives bien plus simples sont possibles.
Hors ligne Talus # Posté le 03/02/2008 à 02:55:47
タルス
Avatar
Groupe : Membres
T'es modo, tu te demerdes pas mal en PHP, t'as de bonnes idées, fais toi plez :D
 
Hors ligne strucky # Posté le 03/02/2008 à 14:20:08
Jamais content !
Avatar
Modérateurs
Moui :p

Sauf que je suis pas la science infuse et je voudrais pas que l'on dise que j'use de mon statut de modo pour imposer mes idées sur l'utilité ou non des fonctions postées par les membres, certaines pourront me paraître totalement absurde et à quelqu'un d'autre être très utile.

Je pense que je vais créer un nouveau sujet pour débattre ou pas de l'utilité de certaines de ces fonctions, ou voir si une amélioration de celles-ci n'est pas envisageable.

Hors ligne Talus # Posté le 03/02/2008 à 14:58:13
タルス
Avatar
Groupe : Membres
Je me doutais un peu de ta réponse :p

MAis oui, sica te botte, perso, pour moi y'a pas de probs (tu fais ce que tu veux). Comme c'est toi lemodo, si tu enfreins des règles, on pourra te jeter des cailloux :p
Édité le 03/02/2008 à 14:59:00 par Talus
 
Hors ligne Nephthys # Posté le 03/02/2008 à 18:27:15
Infini = 1 puis 2 puis 3 ...
Avatar
Groupe : Membres
Citation : JaKhris
Mmmm, en fonction, ça ira ça :

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. function hash_spec($pseudo) {
  3. $nombreCaracterePseudo = strlen($pseudo);
  4. $nombrePassageBoucle = 0;
  5. $timestamp = time();
  6. $hash = 0;
  7.  
  8. $nombreAleatoireFin = rand(1, 1000);
  9.  
  10. while ($nombrePassageBoucle <= $nombreCaracterePseudo-1)
  11. {
  12.     srand();
  13.     $nombreAleatoire = rand(1, 100000000);
  14.        
  15.         $i = 0;
  16.        
  17.         if ($nombrePassageBoucle <= $nombreCaracterePseudo-1)
  18.         {              
  19.             $caractereAscii = ord($pseudo{$nombrePassageBoucle});
  20.         }
  21.        
  22.     $hash = $hash + $nombreAleatoire + $caractereAscii;
  23.        
  24.        
  25.         $nombrePassageBoucle++;
  26. }
  27.  
  28. $hash = $hash + $timestamp + $nombreAleatoireFin;
  29.  
  30. $hash = sha1($hash);
  31.  
  32. return $hash;
  33. }
  34. ?>


Et hash_spec('Pseudo');


Merci, depuis le temps que je cherchais
Hors ligne Lynix # Posté le 03/02/2008 à 18:41:20
Graphiste 3D
Avatar
Groupe : Membres
Citation : Nephthys
Citation : JaKhris
Mmmm, en fonction, ça ira ça :

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. function hash_spec($pseudo) {
  3. $nombreCaracterePseudo = strlen($pseudo);
  4. $nombrePassageBoucle = 0;
  5. $timestamp = time();
  6. $hash = 0;
  7.  
  8. $nombreAleatoireFin = rand(1, 1000);
  9.  
  10. while ($nombrePassageBoucle <= $nombreCaracterePseudo-1)
  11. {
  12.     srand();
  13.     $nombreAleatoire = rand(1, 100000000);
  14.        
  15.         $i = 0;
  16.        
  17.         if ($nombrePassageBoucle <= $nombreCaracterePseudo-1)
  18.         {              
  19.             $caractereAscii = ord($pseudo{$nombrePassageBoucle});
  20.         }
  21.        
  22.     $hash = $hash + $nombreAleatoire + $caractereAscii;
  23.        
  24.        
  25.         $nombrePassageBoucle++;
  26. }
  27.  
  28. $hash = $hash + $timestamp + $nombreAleatoireFin;
  29.  
  30. $hash = sha1($hash);
  31.  
  32. return $hash;
  33. }
  34. ?>


Et hash_spec('Pseudo');


Merci, depuis le temps que je cherchais


t'es pas tombé sur la meilleure fonction, sans vouloir vexer l'auteur

Utopy Bientot :D
 
Hors ligne JaKhris # Posté le 03/02/2008 à 19:22:26
Wait & See
Avatar
Groupe : Membres
Citation : Talus
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. $hash = sha1(uniqid(mt_rand(), true));
  3. ?>


C'est vrai que le code de Talus ci-dessus est légèrement moins lourd. :)
Édité le 03/02/2008 à 19:23:28 par JaKhris

Mes sites : JAKPRO ~ URPRO ~ page Flickr
XHTML, CSS, JS, PHP, MySQL, Graphics, Music & Video Games : This is living ! =D
 
Hors ligne Nephthys # Posté le 03/02/2008 à 20:44:09
Infini = 1 puis 2 puis 3 ...
Avatar
Groupe : Membres
Oui, je sais, mais quand j'ai commencé ce code je ne connaissais pas encore uniqid, donc comme dit plus haut, je le poste uniquement par information.

Merci encore de ton aide JaKhris pour la fonction :D
Hors ligne w0se # Posté le 04/02/2008 à 07:56:53
Avatar
Groupe : Membres
intérêt de la dernière fonction sur le topic de listing!?!? oO
Hors ligne Talus # Posté le 04/02/2008 à 10:09:43
タルス
Avatar
Groupe : Membres
C'est pas une fonction c'est une astuce -.-

Astuce très utile par ailleurs.
 
Hors ligne robocop # Posté le 05/02/2008 à 22:14:24
Avatar
Groupe : Membres
Fonctions qui génèrent des keywords à partir d'une variable, un texte par exemple.
Pratique pour les métas :
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2.  
  3.  
  4. $texte = 'Lorsqu\'on se lance dans l\'univers PIC, il faut commencer par réaliser un programmateur. Le schéma de ce programmateur est celui qui a été proposé par Electronique Pratique, il s\'agit du programmateur Propic2 auquel j\'ai ajouté un connecteur ICSP. Ce programmateur peut être piloter par Icprog, ce logiciel programme la totalité des PICs même les 18Fxxx.';
  5.  
  6.  
  7. function supprime_mots_inutiles($texte) {
  8. $texte = strtolower($texte);
  9. $motsinutiles = array(' le ', ' la ', ' les ', ' un ', ' une ', ' des ', ' de ',' ce ',' qui ',' a ',' est ', ' celui ',' je ', ' j\'ai ', ' tu ',' il ',' elle ',' nous ',' vous ',' ils ',' elles ',' on ', ' par ', ' être ', ' été ', 'du ', ' auquel ', ' dans ', ' faut ', ' se ', ' peut ', ' tel ', ' que ', ' s\'', ' même ', ' totalité ', ' l\'', '.', ',');
  10. $texte = str_replace($motsinutiles, ' ', $texte);
  11. return $texte;
  12. }
  13. function genere_keywords($texte) {
  14. $texte = supprime_mots_inutiles($texte);
  15. $texte = str_replace(' ', ', ', $texte);
  16. $texte = str_replace(', , ', ', ', $texte);
  17. $texte = substr($texte, 0, -2);
  18. return $texte;
  19.  
  20. echo genere_keywords($texte);?>
  21. }

Rendu : lorsqu'on, lance, univers, pic, commencer, réaliser, programmateur, schéma, programmateur, proposé, electronique, pratique, agit, programmateur, propic2, ajouté, connecteur, icsp, programmateur, piloter, icprog, logiciel, programme, pics, 18fxxx


Faudrait éffacer les doublons. Y'a une fonction pour ça ?

Édité le 05/02/2008 à 22:48:38 par robocop
 
Hors ligne Diti # Posté le 05/02/2008 à 22:54:14
Manchot empereur
Avatar
Groupe : Membres
Citation : robocop
Fonctions qui génèrent des keywords à partir d'une variable, un texte par exemple.

Fonction relativement inutile.
 
Hors ligne robocop # Posté le 05/02/2008 à 22:57:18
Avatar
Groupe : Membres
Ouais, je sais, mais je le fait quand même, ça coute rien.
 
Hors ligne Lynix # Posté le 05/02/2008 à 23:07:57
Graphiste 3D
Avatar
Groupe : Membres
Si je me mettais a coder toutes les fonctions inutiles qui me viennent par la tête, je pourrais renoncer a la vie
Édité le 05/02/2008 à 23:08:12 par Lynix

Utopy Bientot :D
 
Hors ligne robocop # Posté le 05/02/2008 à 23:10:41
Avatar
Groupe : Membres
Ca fait longtemps que j'ai renoncé à la vie :D .
Bon, bon, okey, je me retire.
Mais la première fonction peut être ineteressante pour la génération d'url (url_rewriting).
Par contre, si on pouvais me donner le nom de la variable (si elle existe) qui supprime les doublons dans une chaine, moi, je veux bien :D .
 
Hors ligne Dentuk # Posté le 05/02/2008 à 23:15:53
Yamo...
Avatar
Groupe : Membres
Tu peux passer par explode + array_unique + implode.

Image utilisateur
 
Hors ligne powange # Posté le 06/02/2008 à 00:31:29
Avatar
Groupe : Membres
bon je viens de lire rapidement les réponses concernant le listing.. n'hésitez pas à me mp, car je suis pas un ultra méga expert en php, j'essaye juste d'allier utilité (pour débutant ou non), optimisation (performance ressources ou syntaxe) par rapport à ceux que vous dites...
Donc même si c'est moi qui reprend le sujet de A à Z pour lister les fonction dedans, c'est à vous de continuer à critiquer sur des fonctions même déjà poster, afin d'avoir un listing de qualité!
Je suis pour l'idée de strucky de faire un autre sujet relatant le listing... vous en pensez quoi?

Image utilisateurImage utilisateur

Prouty, Prouta! 2 et 2 ne font pas 3!

Extreme Jonglerie : Association de jongle sur Marseille
Monopoz : Association de monocycle sur Marseille
 
Hors ligne Lcf.vs # Posté le 14/02/2008 à 02:28:08
Gaea's mats!!!
Avatar
Groupe : Membres
bonjour à tous,

voilà, je poste cette idée suite à la lecture du tuto de M@teo21 lorsqu'il parle des includes et de leur faille

à mon sens, sa façon brutale n'est pas optimale:

il devrait être, je pense mais pas testé, assez facile de la contourner en remplaçant ses includes de tête et de pied de page par ce que l'on veut voir à la place, enfermant, par exemple, son corps dans une frame réduite à 0*0 et le tour est joué

alors, bon, voici mon idée, qui est des plus simples et efficaces:

lien d'exemple de passage de variable:

www.mon_site.com/?la_page_qui_contient_l_include.php=ma_variable

code à ajouter dans "la_page_qui_contient_l_include.php"

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. //
  3. //on met toutes les variables "légales" dans le tableau "test"
  4. //
  5. $test=array($var1,$var2);
  6. //
  7. //si la variable transmise est légale
  8. //
  9. if (in_array("$ma_variable", $test))
  10. {
  11. //
  12. //on inclut l'include désigné par la variable "ma_variable"
  13. //
  14. include("$ma_variable.php");
  15. }
  16. //
  17. //sinon, s'il n'y a pas de variable "ma_variable" (les autres variables n'en seront pas affectées)
  18. //
  19. elseif($ma_variable=="")
  20. {
  21. //
  22. //sympa, non? on ne fait rien... ^^
  23. //
  24. }
  25. //
  26. //sinon,
  27. //
  28. else
  29. {
  30. //
  31. //on prie gentillement cet humble visiteur malintentionné de bien vouloir cesser...  :D
  32. //
  33. echo"Arrête ça tout de suite, espèce de $#*@%!!!";  //:p
  34. //
  35. //ensuite, on demande à php d'arrêter d'éxécuter le script, il mérite pas de voir, s'il essaie de me hacker  :colere2:
  36. //
  37. }
  38. ?>
Édité le 14/02/2008 à 04:32:25 par Lcf.vs

The greatests innovations are born of deceases and suffering...
 
Hors ligne Talus # Posté le 14/02/2008 à 04:20:37
タルス
Avatar
Groupe : Membres
Ce... C'est quoi ces double quotes entourant une variable ? >_<

Et puis, c'est tout aussi sécurisé que l'autre manière... voir en moins optimisié, et pourquoi pas en moins sécurisé aussi >_<
 

Retour au forum "PHP" ou à la liste des forums

Vous devez être inscrit pour pouvoir poster des messages

Changer de design | En savoir plus | Plan du site | Politique d'accessibilité | Règles | RSS tutoriels | RSS news
Édité par Simple IT SARL : Nous contacter | Notre blog | Revue de presse | Publicité

Y'a plus rien à lire, faut remonter maintenant !

Hébergement web - Correction de tutoriels - Créer un site
Vous souhaitez apparaître ici ? Contactez-nous.

Nombre de connectés 95 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.1447s (0.1272s)