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  ...  66  67  68  69  70  71  72  ...  97  98  99  100  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  66  67  68  69  70  71  72  ...  97  98  99  100  Suivante
Hors ligne Talus # Posté le 14/02/2008 à 04:20:37
タルス
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
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 >_<
 
Hors ligne Lcf.vs # Posté le 14/02/2008 à 04:35:33
Gaea's mats!!!
Avatar
Groupe : Membres
voilà, je l'ai modifié pour les doubles quotes... :)

mais dis-moi, en quoi serait-ce moins sécurisé?

au moins, avec ma méthode, il est impossible de remplacer/faire disparaître mon contenu.

pas dans celui de M@teo21

The greatests innovations are born of deceases and suffering...
 
Hors ligne Sowhat # Posté le 14/02/2008 à 07:17:46
Redlime >3
Avatar
Groupe : Membres
Citation : Lcf.vs
voilà, je l'ai modifié pour les doubles quotes... :)

mais dis-moi, en quoi serait-ce moins sécurisé?

au moins, avec ma méthode, il est impossible de remplacer/faire disparaître mon contenu.

pas dans celui de M@teo21

Lis tout : http://frederic.bouchery.free.fr/?2004/09/21/20-Include-Gouffre-Ou-Felure

lala.
 
Hors ligne Lcf.vs # Posté le 14/02/2008 à 07:32:06
Gaea's mats!!!
Avatar
Groupe : Membres
ok, je viens de lire et y a une astuce très semblable à la mienne...

mais la mienne est plus simple pour le même résultat, puisque si le nom de ma variable ne correspond pas exactement à une qui se trouve dans le tableau, le fichier n'est pas inclu

donc, avec ceci, par exemple:

http://www.emarketstudy.com/?menu=http://www.emarketstudy.com/inscription.php


ben, ... y'a qu'à tester ^^


ps: de plus, si vous regardez bien, l'extension ".php" n'est ajoutée qu'après, ce qui fait que d'après ce que je viens de lire, ça ne pourrait fonctionner, puisque cette technique de hack ne permet pas une extension ".php" en fin d'adresse... ;)

et 2 points pour le noob... :D
Édité le 14/02/2008 à 07:43:02 par Lcf.vs

The greatests innovations are born of deceases and suffering...
 
Hors ligne metalking # Posté le 14/02/2008 à 14:36:22
Knowledge is Power
Avatar
Groupe : Membres
Hors ligne Lcf.vs # Posté le 14/02/2008 à 14:40:57
Gaea's mats!!!
Avatar
Groupe : Membres
oui, ça, je suis d'accord, encore heureux, sinon on saurait plus accéder à ma page :lol:

mais par-contre, tu sais rien y inclure... ;)

The greatests innovations are born of deceases and suffering...
 
Hors ligne strucky # Posté le 14/02/2008 à 14:56:31
Jamais content !
Avatar
Modérateurs
Euh, je voudrais pas te décevoir, mais t'as rien inventé du tout :p

Et puis comme le dit Talus c'est pas plus sécurisé que des includes dynamique avec existence de fichiers.
Hors ligne Lcf.vs # Posté le 14/02/2008 à 15:03:22
Gaea's mats!!!
Avatar
Groupe : Membres
j'ai po dit l'avoir inventé, c'est juste que je l'ai faite de moi-même et que je me suis dit que ça peut servir

et à mon sens, plus sécurisée que la méthode "brutale" qu'explique M@teo21, on peut toujours y inclure un autre haut de page et un autre pied de page, et vive les dégâts ^^

The greatests innovations are born of deceases and suffering...
 
Hors ligne strucky # Posté le 14/02/2008 à 15:18:31
Jamais content !
Avatar
Modérateurs
Euh non, suffit de bien contrôler la valeur.
-> basename()

Et même mieux, vérifier que la chaîne est de type alpha-numérique, car le caractère null peut poser problème.
Hors ligne Lcf.vs # Posté le 14/02/2008 à 15:30:18
Gaea's mats!!!
Avatar
Groupe : Membres
:lol:

et avec tout ça, t'as le même résultat en version longue :-°

'fin, bon, c'est le résultat qui compte, pas la technique... ;)

hier, j'venais de me faire ça pour mon site, et comme j'ai vu qu'il y avait quelqu'un qui demandais et qu'il n'y avait pas de fonction identique dans le tuto, ni dans les brêves d'ici, ben, j'pense aux autres, maintenant, si ça dérange...

The greatests innovations are born of deceases and suffering...
 
Hors ligne Sowhat # Posté le 14/02/2008 à 18:26:05
Redlime >3
Avatar
Groupe : Membres
Citation : Lcf.vs
ok, je viens de lire et y a une astuce très semblable à la mienne...

mais la mienne est plus simple pour le même résultat, puisque si le nom de ma variable ne correspond pas exactement à une qui se trouve dans le tableau, le fichier n'est pas inclu

donc, avec ceci, par exemple:

http://www.emarketstudy.com/?menu=http://www.emarketstudy.com/inscription.php


ben, ... y'a qu'à tester ^^


ps: de plus, si vous regardez bien, l'extension ".php" n'est ajoutée qu'après, ce qui fait que d'après ce que je viens de lire, ça ne pourrait fonctionner, puisque cette technique de hack ne permet pas une extension ".php" en fin d'adresse... ;)

et 2 points pour le noob... :D

Conclusion : tu n'as pas tout lu/compris.

lala.
 
Hors ligne Dentuk # Posté le 14/02/2008 à 19:37:15
Yamo...
Avatar
Groupe : Membres
Citation : Lcf.vs
ps: de plus, si vous regardez bien, l'extension ".php" n'est ajoutée qu'après, ce qui fait que d'après ce que je viens de lire, ça ne pourrait fonctionner, puisque cette technique de hack ne permet pas une extension ".php" en fin d'adresse... ;)
Le but de l'auteur n'étant pas de former des pseudos-hackers-kikoosava, il ne l'a pas précisé (mais j'imagine qu'il le sait), mais il suffit de faire un simple affichage du code via echo dans un fichier .php / ne pas installer php / faire soi-même la réponse HTTP / etc... faut pas croire.
Sinon les includes dynamiques je trouve déjà ça moche mais avec ton code ça me dégoûte encore plus, avec la non-indentation et les guillemets inutiles. :p

Sowhat > Tant qu'il ne met pas de http://hacker.com/hack ou fichier_a_ne_pas_mettre dans son array il n'y a pas de réelle faille à priori, puisqu'il y a vérification de la présence dans l'array (ou alors j'ai mal regardé).

Image utilisateur
 
Hors ligne Lynix # Posté le 14/02/2008 à 23:22:13
Graphiste 3D
Avatar
Groupe : Membres
Auteur: Lynix
Type: Fonction
But: Executer un bout de code à intervalle régulier (afin d'executer une requête toutes les 5min par exemple)
Code:
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. function timed_function($name,$delay)
  3. {
  4.         if ( is_file('.timed/' . $name . '.temp') )
  5.         {
  6.                 if (time() - filemtime('.timed/' . $name . '.temp') >= $delay)
  7.                {
  8.                         touch('.timed/' . $name . '.temp');
  9.                         return true;
  10.                }
  11.                 else
  12.                         return false;
  13.         }
  14.         else
  15.         {
  16.                 $fichier = fopen('.timed/' . $name . '.temp', 'w');
  17.                 fclose($fichier);
  18.                 return true;
  19.         }
  20. }
  21. ?>

Exemple:
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2.         if (timed_function('clean_session',300)) // Le premier argument est le nom, le second est le temps
  3.         {
  4.                 $query = 'DELETE FROM session WHERE session_timestamp_update < ' . time()-300
  5.                 mysql_query($query);
  6.         }
  7. ?>

Attention, vous devez créer un dossier .timed la où se trouve le fichier contenant la fonction !

Cette fonction me sert pour executer mes fonctions de vidage des sessions périmées ainsi que les brute force (et aussi une fonction qui supprime les membres non actif depuis 3jour)
Résultat j'ai 3 requête en moins dans mon script :D
Édité le 15/02/2008 à 01:18:31 par Lynix

Utopy Bientot :D
 
Hors ligne Talus # Posté le 15/02/2008 à 00:36:07
タルス
Avatar
Groupe : Membres
Yo,

Autant utiliser un cron... :)
 
Hors ligne A-spec59 # Posté le 15/02/2008 à 00:38:03
Réfléchissez !
Avatar
Groupe : Membres
Citation : Talus
Yo,

Autant utiliser un cron... :)
Ou alors optimiser la fonction en faisant un touch et pas fopen, fclose

Green Searches, 1ère bêta. Pourquoi faire des recherches de façon écologique devrait-il se réduire à des recherches web. Green Searches vous permet aussi de faire des recherches d'images, de vidéos (à venir), de livres, dans les actualités ....
Je cherche des petit trucs à faire contre petite rémunération (traduction, codage de script, graphisme, ... ) Plus de détails => me contacter
What I can do
 
Hors ligne Lynix # Posté le 15/02/2008 à 00:40:40
Graphiste 3D
Avatar
Groupe : Membres
Ah merde normalement il y a un touch, j'ai oublié de l'écrire :D

Je corrige ça

EDIT : Fait

Cette fonction est faite pour éviter les crons, d'ailleurs je ne pense pas que des sites web t'offrent des crons a 5min d'intervalle
Édité le 15/02/2008 à 00:42:27 par Lynix

Utopy Bientot :D
 
Hors ligne A-spec59 # Posté le 15/02/2008 à 00:43:14
Réfléchissez !
Avatar
Groupe : Membres
Citation : Lynix
Ah merde normalement il y a un touch, j'ai oublié de l'écrire :D

Je corrige ça
Edit : Je t'annonce que ton script va toujours retourner true maintenant si on rentre dans le premier if (is_file )

Edit 2 : c'que je peux dire comme conneries le soir
Édité le 15/02/2008 à 00:50:10 par A-spec59

Green Searches, 1ère bêta. Pourquoi faire des recherches de façon écologique devrait-il se réduire à des recherches web. Green Searches vous permet aussi de faire des recherches d'images, de vidéos (à venir), de livres, dans les actualités ....
Je cherche des petit trucs à faire contre petite rémunération (traduction, codage de script, graphisme, ... ) Plus de détails => me contacter
What I can do
 
Hors ligne Lynix # Posté le 15/02/2008 à 00:52:09
Graphiste 3D
Avatar
Groupe : Membres
Bah vu que le fichier n'existe pas forcément (première utilisation de la fonction par exemple) il faut bien le créer (toucher du vide ça ne fonctionne pas :D )

Pourquoi est-ce que ma fonction retournera true?

Il prend le timestamp actuel, il enlève le timestamp de dernière modification et vérifie si c'est plus grand que le délai (exemple simple : 1000 - 900 >= 110 retournera false)

EDIT : Ha jme disais bien :D
Édité le 15/02/2008 à 00:52:36 par Lynix

Utopy Bientot :D
 
Hors ligne A-spec59 # Posté le 15/02/2008 à 00:57:22
Réfléchissez !
Avatar
Groupe : Membres
Regarde bien, mais si j'me souviens bien, quand y a pas d'accolades après un if, seule la première fonction sera comprise dans le if. Ici tu souhaites en inclure deux dans le if, sans accolades, donc ton return true ; sera considéré comme hors de la condition (time() - .....), d'où ça retournera toujours true.

Edit : Citation : `Haku
A-spec59 à raison pour le return.

J'suis pas le seul qui soit fatigué ^^
Édité le 15/02/2008 à 01:03:45 par A-spec59

Green Searches, 1ère bêta. Pourquoi faire des recherches de façon écologique devrait-il se réduire à des recherches web. Green Searches vous permet aussi de faire des recherches d'images, de vidéos (à venir), de livres, dans les actualités ....
Je cherche des petit trucs à faire contre petite rémunération (traduction, codage de script, graphisme, ... ) Plus de détails => me contacter
What I can do
 
Hors ligne anonyme # Posté le 15/02/2008 à 00:59:50
Groupe :
A-spec59 à raison pour le return.
Hors ligne Lynix # Posté le 15/02/2008 à 01:01:52
Graphiste 3D
Avatar
Groupe : Membres
J'avais omis ce détail, merci, je crois que c'est bon maintenant

EDIT : Je reposte le code complet ici :
Citation : Lynix
Auteur: Lynix
Type: Fonction
But: Executer un bout de code à intervalle régulier (afin d'executer une requête toutes les 5min par exemple)
Code:
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. function timed_function($name,$delay)
  3. {
  4.         if ( is_file('.timed/' . $name . '.temp') )
  5.         {
  6.                 if (time() - filemtime('.timed/' . $name . '.temp') >= $delay)
  7.                {
  8.                         touch('.timed/' . $name . '.temp');
  9.                         return true;
  10.                }
  11.                 else
  12.                         return false;
  13.         }
  14.         else
  15.         {
  16.                 $fichier = fopen('.timed/' . $name . '.temp', 'w');
  17.                 fclose($fichier);
  18.                 return true;
  19.         }
  20. }
  21. ?>

Exemple:
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2.         if (timed_function('clean_session',300)) // Le premier argument est le nom, le second est le temps
  3.         {
  4.                 $query = 'DELETE FROM session WHERE session_timestamp_update < ' . time()-300
  5.                 mysql_query($query);
  6.         }
  7. ?>

Attention, vous devez créer un dossier .timed la où se trouve le fichier contenant la fonction !

Cette fonction me sert pour executer mes fonctions de vidage des sessions périmées ainsi que les brute force (et aussi une fonction qui supprime les membres non actif depuis 3jour)
Résultat j'ai 3 requête en moins dans mon script :D
Édité le 15/02/2008 à 01:03:45 par Lynix

Utopy Bientot :D
 
Hors ligne anonyme # Posté le 15/02/2008 à 01:11:32
Groupe :
Tu pouvais aussi faire un return touch(); au lieu de touch(); return true;. ^^
touch() retourne true si tout se passe bien, false sinon.
Hors ligne Lynix # Posté le 15/02/2008 à 01:19:43
Graphiste 3D
Avatar
Groupe : Membres
Retourner false dans la situation de cette fonction lorsque touch échoue ne sert a rien, et elle risque de retarder les évenements donc il vaut mieux retourner true quand même, enfin toute façon il y a peu de chances pour que ça arrive

Utopy Bientot :D
 
Hors ligne Lcf.vs # Posté le 15/02/2008 à 11:33:52
Gaea's mats!!!
Avatar
Groupe : Membres
bonjour à vous,

Lynix>

elle est bien sympa, ta fonction, mais au niveau du résultat, quelle est la différence avec ceci?

dans le fichier clean.php:

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. echo'<meta http-equiv="refresh" content="300;url=clean.php">';
  3. ?>


quand même beaucoup plus court, non? ^^ 73/575b

'fin, si ta fonction offre des possibilités que la meta ne fait pas, je suis, bien évidemment, impatient de l'apprendre... ;)
Édité le 15/02/2008 à 11:46:34 par Lcf.vs

The greatests innovations are born of deceases and suffering...
 
Hors ligne Talus # Posté le 15/02/2008 à 12:12:21
タルス
Avatar
Groupe : Membres
Ton truc, là, il redirige au bout de 5minutes... Ce qui n'est pas adapté >_<

Et puis, Lynix, Si on est bien dans le cas ou le fichie de cache existe... Tu "touches" le cache, et alors, dans ce cas, le cache n'est plus valide, puisqu'il prend le timestamp actuel. Il ne sera donc jamais regénéré :p

Personnellement, ce que je fais, c'est...

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. // -- On ne vide la table de sessions que toutes les 5 min.
  3. if( (file_get_contents('./cache/sessions') + TIME_CONNECTED) <= NOW ){
  4.         $sql = 'DELETE'
  5.                 .       '       FROM sessions'
  6.                 .       '       WHERE s_date <= DATE_SUB(FROM_UNIXTIME(' . NOW . '), INTERVAL ' . TIME_CONNECTED . ' SECOND);';
  7.        
  8.         #REQ START_6
  9.         Instances::$db->query($sql, 'START', 6, E_USER_WARNING);
  10.        
  11.         // -- Regénération du cache
  12.         file_put_contents('./cache/sessions', NOW);
  13. }
  14. ?>


Je stocke juste le timestamp actuel dans le fichier de cache (NOW == Timestamp actuel, TIME_CONNECTED == Temps de connexion, soit le temps d'expiration du cache). Simple et efficace, pas besoin de fonctions :)
Édité le 15/02/2008 à 12:14:45 par Talus
 
Hors ligne A-spec59 # Posté le 15/02/2008 à 12:13:01
Réfléchissez !
Avatar
Groupe : Membres
Lcf.vs => sa fonction est, comment dire, 1 00000000000000000000000000000000000000000000 fois mieux que la tienne !
Pourquoi ? Parce que la tienne demande que la page soit constamment ouverte, qu'il y est toujours un visiteur dessus qui reste plus de 300 secondes (voire plus, voire quelques jours d'ailleurs) sur la même page, sans rien faire, et je doute que tu es une page avec un attrait et un contenu suffisamment conséquent pour ça.. De plus l'exécution de sa fonction sera transparente pour le visiteur, il ne verra rien, ne saura rien (bon à part si y a une erreur et que sa fonction retourne un gros Warning, mais sinon non), alors que dans ton cas, il verra la page se recharger sans aucune raison.

Green Searches, 1ère bêta. Pourquoi faire des recherches de façon écologique devrait-il se réduire à des recherches web. Green Searches vous permet aussi de faire des recherches d'images, de vidéos (à venir), de livres, dans les actualités ....
Je cherche des petit trucs à faire contre petite rémunération (traduction, codage de script, graphisme, ... ) Plus de détails => me contacter
What I can do
 
Hors ligne Lcf.vs # Posté le 15/02/2008 à 12:17:47
Gaea's mats!!!
Avatar
Groupe : Membres
euh...

Talus> elle se redirige sur elle-même, donc, en soi, c'est pas uun problème, tu y inclus le code que tu veux éxécuter et voilà...

A-spec59> je ne savais pas que la sienne continue seule, mais sinon, avec la meta, c'est évidemment pas destiné au visiteur du site, tu l'ouvres toi même, ta page, après tout, ton serveur supportera bien une page ouverte pendant qu'il tourne, non?

The greatests innovations are born of deceases and suffering...
 
Hors ligne A-spec59 # Posté le 15/02/2008 à 12:22:12
Réfléchissez !
Avatar
Groupe : Membres
Ce qui nécessite, excusez du peu, que tu es ton ordi qui tourne 24/24 et 7/7, et si ce n'est pas le cas, ton site ne fonctionne plus correctement. Personnellement je reposerai jamais le bon fonctionnement de mon site sur la supposition que mon ordinateur pourra tourner 24/24 et 7/7, avec mon navigateur qui a autant d'onglets ouverts que d'opérations périodiques à effectuer. Si toi tu peux, tant mieux pour toi.

Green Searches, 1ère bêta. Pourquoi faire des recherches de façon écologique devrait-il se réduire à des recherches web. Green Searches vous permet aussi de faire des recherches d'images, de vidéos (à venir), de livres, dans les actualités ....
Je cherche des petit trucs à faire contre petite rémunération (traduction, codage de script, graphisme, ... ) Plus de détails => me contacter
What I can do
 
Hors ligne Lcf.vs # Posté le 15/02/2008 à 12:25:23
Gaea's mats!!!
Avatar
Groupe : Membres
désolé, mais je parle du serveur avec lequel tu héberges ton site... s'il tourne pas en 24/24, le script sert à rien puisque le site n'est pas online... ^^

The greatests innovations are born of deceases and suffering...
 
Hors ligne Diti # Posté le 15/02/2008 à 12:30:06
Manchot empereur
Avatar
Groupe : Membres
Ah ouais, mais dans ce cas il faut posséder un serveur dédié et faire tourner un navigateur en arrière-plan. Ça pue, quoi.
Édité le 15/02/2008 à 12:30:22 par Diti
 
Hors ligne Lcf.vs # Posté le 15/02/2008 à 12:41:15
Gaea's mats!!!
Avatar
Groupe : Membres
Talus> dis, une tite question, j'vais peut-être dire une *****rie mais je suis curieux:

comme il y a une fraction de seconde entre ton delete et ta régen, qu'arriverait-il à une session créée pendant cette fraction de seconde?

d'autant plus que vos sessions peuvent être crashées par l'utilisateur entre les deux aussi, bug ou pas?
Édité le 15/02/2008 à 12:48:35 par Lcf.vs

The greatests innovations are born of deceases and suffering...
 

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 55 Zéros connectés | Requêtes SQL 8 requêtes | Temps de génération de la page : Total (SQL) 0.2542s (0.2385s)