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  ...  67  68  69  70  71  72  73  ...  97  98  99  100  Suivante
Auteur Message
1 visiteur sur ce sujet (1 anonyme)
Page : Précédente  1  2  3  ...  67  68  69  70  71  72  73  ...  97  98  99  100  Suivante
Hors ligne Lcf.vs # Posté le 15/02/2008 à 12:41:15
Gaea's mats!!!
Avatar
Groupe : Membres
Reprise du dernier message de la page précédente :
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...
 
Hors ligne Talus # Posté le 15/02/2008 à 15:52:00
タルス
Avatar
Groupe : Membres
Lcf.vs > Oui, c'est une connerie.

"WHERE s_date <= DATE_SUB(FROM_UNIXTIME(' . NOW . '), INTERVAL ' . TIME_CONNECTED . ' SECOND);", ca sert à supprimer les sessions... Trop vieilles par rapport au rapport au lancement du script. Donc, les sessions qui se crééent dans la fractions de seconde, ben... OSEF, elles sont qd même créées.
 
Hors ligne Lynix # Posté le 15/02/2008 à 18:01:28
Graphiste 3D
Avatar
Groupe : Membres
Citation : Talus

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


Il prend le timestamp actuel, mais le timestamp continue a s'écouler, et quand la différence sera assez grande, elle retournera true, je vois pas ou est le problème

Utopy Bientot :D
 
Hors ligne Talus # Posté le 15/02/2008 à 18:58:54
タルス
Avatar
Groupe : Membres
J'ai dit des conneries, il était trop tôt :D
 
Hors ligne Lynix # Posté le 15/02/2008 à 19:21:01
Graphiste 3D
Avatar
Groupe : Membres
J'ai eu peur, déjà que j'avais honte d'avoir posté un code avec deux erreurs dedans, une troisième m'aurait tué :p

Utopy Bientot :D
 
Hors ligne Talus # Posté le 15/02/2008 à 20:27:32
タルス
Avatar
Groupe : Membres
Enfin, perso, pour mon cache, je préfère mon truc simple et efficace : un fcihier contenant un timestamp, un file_get_contents et un file_put_contents :D
 
Hors ligne Lcf.vs # Posté le 15/02/2008 à 20:38:19
Gaea's mats!!!
Avatar
Groupe : Membres
merci pour l'explication, mais justement, dans le cas où l'on a listé une session qui a été crashée par l'utilisateur juste avant le delete, que fait la requête?

je n'utilise ni les sessions, ni les cookies, donc pas trop l'habitude...
Édité le 15/02/2008 à 20:44:58 par Lcf.vs

The greatests innovations are born of deceases and suffering...
 
Hors ligne Talus # Posté le 15/02/2008 à 21:47:27
タルス
Avatar
Groupe : Membres
Déjà, je répertorie (ou actualise la session) que après cette requête de suppression. Et puis, mes sessions ne se reposent pas que la dessus ; en plus d'utiliser le systeme de sessions, je me sers de la BDD pour avoir un compteur de connectés.

Cette requête supprime les sessions qui ont un age inférieur à celui d'il y a 5 min. Donc si une session se créé entre temps, elle ne sera pas affectée.
 
Hors ligne Lcf.vs # Posté le 15/02/2008 à 21:56:02
Gaea's mats!!!
Avatar
Groupe : Membres
oui, ça, ok mais tu listes les sessions:
Citation : Talus
if( (file_get_contents('./cache/sessions') + TIME_CONNECTED) <= NOW ){
        $sql = 'DELETE'
                .       '       FROM sessions'
                .       '       WHERE s_date <= DATE_SUB(FROM_UNIXTIME(' . NOW . '), INTERVAL ' . TIME_CONNECTED . ' SECOND);';:)


et puis, tu fais ta requête dessus:
Citation : Talus
#REQ START_6
        Instances::$db->query($sql, 'START', 6, E_USER_WARNING);
       
        // -- Regénération du cache
        file_put_contents('./cache/sessions', NOW);
}


alors, ma question, si la session n'existe déja plus au moment de l'exécution de ta requête, on va avoir un "error"?

The greatests innovations are born of deceases and suffering...
 
Hors ligne Talus # Posté le 15/02/2008 à 22:07:57
タルス
Avatar
Groupe : Membres
Ben comme je te l'ai dit, ma requête des sessions est faite APRES ce traitement. Donc la session existera toujours :-°

Ou alors elle sera juste mise à jour.

(Plus d'infos : http://www.talus-works.net/source-php-includes-start.html)
Édité le 15/02/2008 à 22:09:28 par Talus
 
Hors ligne Lcf.vs # Posté le 15/02/2008 à 22:10:50
Gaea's mats!!!
Avatar
Groupe : Membres
ta requête, oui, mais si l'utilisateur a justement choisi de se déconnecter, donc y a plus sa session alors que tu l'as listée comme étant à deleter?

The greatests innovations are born of deceases and suffering...
 
Hors ligne Talus # Posté le 15/02/2008 à 22:16:10
タルス
Avatar
Groupe : Membres
Ben elle le sera automatiquement, oui. Au bout de 5min (un utilisateur est considéré comme connecté si il est là depuis moins de 5 min)

Facon, si l'utilisateur se déconnecte, sa session sera mise à jour ; ca ne change rien !
 
Hors ligne A-spec59 # Posté le 15/02/2008 à 22:17:14
Réfléchissez !
Avatar
Groupe : Membres
Euh, vous pouvez pas faire ça par MP, qu'on garde ce topic un poil propre ^^

Edit : tiens pour pas poster à vide, une petite astuce bien pratique :
Vous êtes un programmeur talentueux, et après avoir récupérer des données via mysql_query, vous devez d'abord vérifier une valeur via mysql_result avant de faire un while pour lister les données. Seulement voilà, vous avez beau essayer, quand vous rentrez dans votre while, vous zappez toujours la 1ère ligne de vos résultats, Dieu-du-PHP seul sait pourquoi ! La solution, re-mettre le pointeur mysql sur la première ligne !
Explicitons :
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. // On récupère nos données
  3. $req=mysql_query('SELECT truc1, truc2, truc3 FROM machin WHERE bidule="chose"') or die(mysql_error()) ;
  4.  
  5. // On utilise notre mysql_result
  6. if(mysql_result($req, 0, 'truc1')=='machinbidule' && mysql_num_rows($req)>0)
  7. {
  8.   // On repart à 0
  9.   mysql_data_seek($req, 0) ;
  10.  
  11.   // On liste
  12.   while($donnees=mysql_fetch_assoc($req))
  13.     echo $donnees['truc2'].$donnees['truc3'] ;
  14. }

Et voilà, vous venez d'apprendre la fonction mysql_data_seek !
Édité le 15/02/2008 à 22:26:46 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 Lcf.vs # Posté le 15/02/2008 à 22:21:28
Gaea's mats!!!
Avatar
Groupe : Membres
Talus> ah, oui, pardon, c'était si évident et j'y ai même pas pensé...

merci :)

A-spec59> non, ça ne fait pas plus MP que quand tu dis que tu es fatigué... :-°

au moins, c'est toujours sur le même sujet et d'être public peut servir à d'autres débutants comme moi ;)

The greatests innovations are born of deceases and suffering...
 
Hors ligne Talus # Posté le 15/02/2008 à 22:32:03
タルス
Avatar
Groupe : Membres
A-spec59 > Variante :

Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. $res = mysql_query('SELECT truc FROM chose;') or die(mysql_erro());// Une requête tout conne. Marche pour tout :D
  3.  
  4. if( $data = mysql_fetch_assoc($res) ){
  5.     do {
  6.         // -- Mes données comme je le fais habituellement...
  7.     } while( $data = mysql_fetch_assoc($res) );
  8. }
  9.  
  10.  
  11. ?>


En plus, avec cette méthode, en plus de vérifie si y'a des résultats, elle permet de faire des opérations si les donénes existe (une seule fois), etc. Plus besoin de mysql_result() et de num_rows() !

EDIT > Ah merde, me souviens plus de l'équivalent de free() en procédurale, tellement que je suis habitué à l'objet MySQLi :D

On me comprendra ^^

RE-EDIT > Trouvé :D
Édité le 15/02/2008 à 22:33:43 par Talus
 
Hors ligne A-spec59 # Posté le 15/02/2008 à 22:52:36
Réfléchissez !
Avatar
Groupe : Membres
Et le test, tu l'as mis où ?
Je vois bien là où tu vérifies qu'il y a des données, mais pas ton test sur une valeur de la BDD avant de "boucler".

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 Savageman # Posté le 15/02/2008 à 22:56:35
Insa : If inside
Avatar
Groupe : Membres
Le test, c'est là ou il y a le IF !
 
Hors ligne Dentuk # Posté le 15/02/2008 à 23:05:49
Yamo...
Avatar
Groupe : Membres
http://www.siteduzero.com/forum-83-17384-988522-vos-fonctions-ou-astuces.html#r988522
Histoire qu'on fasse pas deux fois la même conversation, et pour montrer que Talus s'est finalement plié devant mon infinie suprématie. :p

Image utilisateur
 
Hors ligne Talus # Posté le 15/02/2008 à 23:11:56
タルス
Avatar
Groupe : Membres
Mmh, je l'avais oubliée celle là. c'est `Haku qui m'avais convaincu, ceci dit :D

EDIT > Ah, tu l'attendais, hein, pour me ressortir ce lien ? :p
Édité le 15/02/2008 à 23:18:22 par Talus
 
Hors ligne A-spec59 # Posté le 15/02/2008 à 23:12:25
Réfléchissez !
Avatar
Groupe : Membres
Tan pis, j'me vengerais :D

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 16/02/2008 à 00:43:55
Gaea's mats!!!
Avatar
Groupe : Membres
technique peu élégante mais efficace pour dépasser les failles de sécurité des cookies et sessions:

http://www.siteduzero.com/forum-83-241133-2180649-htaccess-hacke-comment-mieux-etre-protege.html#r2180649

(travail de noob :-° )
Édité le 16/02/2008 à 00:44:37 par Lcf.vs

The greatests innovations are born of deceases and suffering...
 
Hors ligne anonyme # Posté le 16/02/2008 à 00:47:50
Groupe :
Ce qui est bien, c'est qu'on peut faire efficace et ... élégant.
Hors ligne Lcf.vs # Posté le 16/02/2008 à 00:50:07
Gaea's mats!!!
Avatar
Groupe : Membres
euh, oui, mais bon, j'ai développé ça tout seul en noob que je suis, si j'avais de l'aide sur le concept, ben, y aurait sûrement moyen de faire mieux

ai commencé à utiliser ce système après 7jours de php, ne voulant me résoudre à avoir des failles...
Édité le 16/02/2008 à 00:51:37 par Lcf.vs

The greatests innovations are born of deceases and suffering...
 
Hors ligne anonyme # Posté le 16/02/2008 à 00:50:53
Groupe :
Ah nan mais je parle des sessions et des cookies, pas de ton truc.
Hors ligne Lcf.vs # Posté le 16/02/2008 à 00:53:09
Gaea's mats!!!
Avatar
Groupe : Membres
ben, testes avec tes connaissances avant de cracher dessus, et vois ce que ça peut apporter... ;)

The greatests innovations are born of deceases and suffering...
 
Hors ligne A-spec59 # Posté le 16/02/2008 à 01:15:26
Réfléchissez !
Avatar
Groupe : Membres
Donne nous de quoi tester alors, une URL, un système à creuser, qu'on regarde. Le code source aussi ça peut être utile.

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 16/02/2008 à 18:13:44
Graphiste 3D
Avatar
Groupe : Membres
Auteur: Lynix
Type: Fonction
But: Traiter le magic quote (sous toute configuration) et appliquer un trim (enlever les espaces au début et a la fin de la chaine)
Code:
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. function magic_trim($message)
  3. {
  4.         if(get_magic_quotes_gpc())
  5.         {
  6.                 if(ini_get('magic_quotes_sybase'))
  7.                         return trim(str_replace("''", "'", $message));
  8.                 else
  9.                         return trim(stripslashes($message));
  10.         }
  11.         else
  12.                 return trim($message);
  13. }
  14. ?>

Exemple:
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. $login = magic_trim('  Lynix\'s '); // Simulation passage magic_quote normal sur "  Lynix's "
  3. echo $login;
  4. ?>

Citation : Rendu
Lynix's


Ce code gère aussi l'option magic_quote_sysbase, même si ce n'est pas en exemple
Édité le 16/02/2008 à 18:16:05 par Lynix

Utopy Bientot :D
 
Hors ligne anonyme # Posté le 16/02/2008 à 18:18:05
Groupe :
C'est bien triste de faire plusieurs get_magic_quotes_gpc et init_get.
Autant faire une fonction qui traitera _POST, _GET et _COOKIE d'un coup.
Hors ligne Savageman # Posté le 16/02/2008 à 18:35:03
Insa : If inside
Avatar
Groupe : Membres
Oui, même que array_walk(_recursive pour PHP 5) est le meilleur ami du monde dans ce cas ! :)
 
Hors ligne anonyme # Posté le 16/02/2008 à 18:42:33
Groupe :
Toutafé.
Hors ligne Lynix # Posté le 16/02/2008 à 18:47:05
Graphiste 3D
Avatar
Groupe : Membres
Auteur: Lynix
Type: Fonction
But: Traiter le magic quote (sous toute configuration) et appliquer un trim (enlever les espaces au début et a la fin de la chaine) sur toutes les variable globale $_POST, $_GET, $_COOKIE
Code:
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. function magic_trim_all_str_replace($value)
  3. {
  4.         return str_replace("''", "'", $value);
  5. }
  6.  
  7. function magic_trim_all()
  8. {
  9.         if(get_magic_quotes_gpc())
  10.         {
  11.                 if(ini_get('magic_quotes_sybase'))
  12.                 {
  13.                         $func = 'magic_trim_all_str_replace';
  14.                 }
  15.                 else
  16.                 {
  17.                         $func = 'stripslashes';
  18.                 }
  19.                 array_walk_recursive($_POST, $func);
  20.                 array_walk_recursive($_POST, 'trim');
  21.                 array_walk_recursive($_GET, $func);
  22.                 array_walk_recursive($_GET, 'trim');
  23.                 array_walk_recursive($_COOKIE, $func);
  24.                 array_walk_recursive($_COOKIE, 'trim');
  25.         }
  26. }
  27. ?>


Exemple:
Code : PHP - Afficher / masquer les numéros de ligne
  1. <?php
  2. $_POST['test'] = '  Lynix\'s  '; // Simulation passage magic_quote normal sur "  Lynix's "
  3. magic_trim_all();
  4. echo $_POST['test'];
  5. ?>


Citation : Rendu
Lynix's


Ce code gère aussi l'option magic_quote_sysbase, même si ce n'est pas en exemple
Édité le 16/02/2008 à 19:19:05 par Lynix

Utopy Bientot :D
 

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 86 Zéros connectés | Requêtes SQL 6 requêtes | Temps de génération de la page : Total (SQL) 0.1037s (0.0882s)