OGSteam

OGSpy - Le Serveur pour partager les informations du jeu avec votre Alliance => OGSpy - Mods => Discussion démarrée par: Guiliguili le 17 Janvier 2012, 09:51:10

Titre: Quimesonde 1.7.1 -- ereg_replace
Posté par: Guiliguili le 17 Janvier 2012, 09:51:10
Bonjour,

Sachant que l'instruction PHP ereg_remplace et obsolète, je l'ai remplacé par preg_replace...

Dans le mod quimsonde/pages/own_details.php

Chercher : (ligne 405 ^^ )
return ereg_replace("<[^>]*>","",$text);

Remplacer par :
return preg_replace("/<[^>]*>/g","",$text);

C'est tout de même plus joli que d'avoir un NOTICE en bas de page :)

Voilou
Bonne journée :)
Guiliguili
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Gilga le 17 Janvier 2012, 10:11:31
ben, je viens de regardr mon mod qui me sonde et je n'ai pas cette "notice" dont tu parles

peux tu faire capture et donner version php

merci
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Guiliguili le 17 Janvier 2012, 10:47:57
Sur un serveur, il y a les NOTICE et les WARNING.

Ceci est lié à la configuration php.ini

Ainsi, si tu caches toutes les erreurs, bloquantes ou non, tu ne sais jamais si tu programme fonctionne.
Si tu cache juste les WARNING, tu ne vois pas les erreurs bloquantes (fatales) mais tu vois si tu vois tous les autres message comme l'utilisation d'une variable non définie par exemple.

Citation;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
; Error handling and logging ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

; This directive informs PHP of which errors, warnings and notices you would like
; it to take action for. The recommended way of setting values for this
; directive is through the use of the error level constants and bitwise
; operators. The error level constants are below here for convenience as well as
; some common settings and their meanings.
; By default, PHP is set to take action on all errors, notices and warnings EXCEPT
; those related to E_NOTICE and E_STRICT, which together cover best practices and
; recommended coding standards in PHP. For performance reasons, this is the
; recommend error reporting setting. Your production server shouldn't be wasting
; resources complaining about best practices and coding standards. That's what
; development servers and development settings are for.
; Note: The php.ini-development file has this setting as E_ALL | E_STRICT. This
; means it pretty much reports everything which is exactly what you want during
; development and early testing.
;
; Error Level Constants:
; E_ALL             - All errors and warnings (includes E_STRICT as of PHP 6.0.0)
; E_ERROR           - fatal run-time errors
; E_RECOVERABLE_ERROR  - almost fatal run-time errors
; E_WARNING         - run-time warnings (non-fatal errors)
; E_PARSE           - compile-time parse errors
; E_NOTICE          - run-time notices (these are warnings which often result
;                     from a bug in your code, but it's possible that it was
;                     intentional (e.g., using an uninitialized variable and
;                     relying on the fact it's automatically initialized to an
;                     empty string)
; E_STRICT          - run-time notices, enable to have PHP suggest changes
;                     to your code which will ensure the best interoperability
;                     and forward compatibility of your code
; E_CORE_ERROR      - fatal errors that occur during PHP's initial startup
; E_CORE_WARNING    - warnings (non-fatal errors) that occur during PHP's
;                     initial startup
; E_COMPILE_ERROR   - fatal compile-time errors
; E_COMPILE_WARNING - compile-time warnings (non-fatal errors)
; E_USER_ERROR      - user-generated error message
; E_USER_WARNING    - user-generated warning message
; E_USER_NOTICE     - user-generated notice message
; E_DEPRECATED      - warn about code that will not work in future versions
;                     of PHP
; E_USER_DEPRECATED - user-generated deprecation warnings
;
; Common Values:
;   E_ALL & ~E_NOTICE  (Show all errors, except for notices and coding standards warnings.)
;   E_ALL & ~E_NOTICE | E_STRICT  (Show all errors, except for notices)
;   E_COMPILE_ERROR|E_RECOVERABLE_ERROR|E_ERROR|E_CORE_ERROR  (Show only errors)
;   E_ALL | E_STRICT  (Show all errors, warnings and notices including coding standards.)
; Default Value: E_ALL & ~E_NOTICE
; Development Value: E_ALL | E_STRICT
; Production Value: E_ALL & ~E_DEPRECATED
; http://php.net/error-reporting
; error_reporting = E_ALL & ~E_DEPRECATED
error_reporting = E_ALL | E_STRICT

; This directive controls whether or not and where PHP will output errors,
; notices and warnings too. Error output is very useful during development, but
; it could be very dangerous in production environments. Depending on the code
; which is triggering the error, sensitive information could potentially leak
; out of your application such as database usernames and passwords or worse.
; It's recommended that errors be logged on production servers rather than
; having the errors sent to STDOUT.
; Possible Values:
;   Off = Do not display any errors
;   stderr = Display errors to STDERR (affects only CGI/CLI binaries!)
;   On or stdout = Display errors to STDOUT
; Default Value: On
; Development Value: On
; Production Value: Off
; http://php.net/display-errors
display_errors = on

De fait, en local, je vois toutes les erreurs et avertissements, alors qu'en production, rien n'apparaît.

Voilou

PS : version PHP => PHP Version 5.3.6-13ubuntu3.3
Mysql : 5.1.58
Systeme : Ubuntu 11.10 (Oneiric), Noyau 3.0.0.15-generic, 4Go de ram, Processeur : AMD Sempron(tm) Processor LE-1250
Serveur : Cherokee web server 1.2.101 (Ubuntu) (Plus rapide qu'Apache et plus facile pour moi à paramétrer ^^)
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Gilga le 17 Janvier 2012, 10:50:19
merci de m'éclairer
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Dudule le 17 Janvier 2012, 10:53:47
D'ailleurs au sujet de ce mod.

J'ai fait des tests, avec des amis d'alliance. Soit plusieurs utilisateurs. Tout fonctionne bien, import, stat etc ormis une chose.

Le cadre récapitulatif : "Tes espionnages en 2 lignes :"
Les infos qu'il donne sont pas toutes exactes :
Citation de: Mes espionnages en 2 lignes:
Il y a actuellement 11 espionnages enregistrés, dont 2 du joueur bobo, et 2 à destination de ta planète 3:98:10.
J'ai donc bien 11 espionnage au total on est d'accords.
C'est bien le joueur bobo qui m'as espionné le plus de fois.
Ceci dit il ma pas espionné 2 fois mais 4 ! Il y a une erreur ici.
Ensuite même chose, c'est bien ma planète en 3:98:10 qui est le plus espionné.
Mais elle a été espionné 4 fois et non 2 !

Avez vous ce problème vous aussi ?
Sinon tous est niquel.
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Gilga le 17 Janvier 2012, 10:55:20
as tu vérifier et modifier ton seuil de nbr d'espionnage

svp test un peu cela pour voir ce qui se passe
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Guiliguili le 17 Janvier 2012, 10:58:22
Je n'ai pas de soucis de ce coté, mais attention au plage de date...

Je regarde une nouvelle fois, le nombre d'espionnage chez moi est assez conséquent xD

EDIT : Je confirme : Tout est juste
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Dudule le 17 Janvier 2012, 11:20:59
C'est marrant car tout la partie statistiques est bonne.
On m'indique bien le nombres exact d'espionnage le plus élevé sur ma planète et tout, mais le résumé en deux lignes n'est pas bon.

Alors j'ai vérifier les dates, c'était bon, et j'ai carrément mis du 01/01/2011 au 01/01/2013 ça à rien changé.
Mais j'avoue avoir du mal à les changer ! La période en jour aussi j'ai essayer rien y fait.

Bon je viens de voir d'autre problème. Si je fait une analyse de mes espionnages, tout remonte comme il faut. Si je fait les analyse " de tout le serveur " j'ai qu'une info qui remonte et c'est tout. Un espionnage d'un de mes collègue.

Troisième soucis que je viens de remarquer, c'est que quelque soit la distance de l'espionnage, il y à toujours marqué 1000 dans qui me sonde.
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Gilga le 17 Janvier 2012, 11:27:07
wouai, pour la distance c'est un bug connu

pour le reste,  j'ai aussi des imprécisions mais je n'ai pas testé en profondeur

est ce que tu as accès à jira ?

si oui, déclare tes bugs (1 à la fois si indépendant) là bas
merci
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Dudule le 17 Janvier 2012, 11:41:51
Je crois que je me suis inscrit.

Mais bon peut tu me dire avant si ton cadre dans la page accueil est réellement bon ?
Regarde dans la page  " Mes détails " le joueur qui t'espionne le plus, le nombres de fois ainsi que la planette la plus espionné et le nombres de fois. (fait aussi attention aux dates ;) )
Vérifie que tes infos sont cohérentes avec la page accueil !

Si toi c'est bon, c'est que ça viens de mon côté et que c'est pas un bug ! Du coup je signale pas, tu comprend !

Edit dans ma base de donnée, j'avais 2 espionnages avec un id sender à 0, je l'ai est viré du coup l'analyse par alliance marche ;)
Ceci dit ca n'as pas résolue le reste
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Gilga le 17 Janvier 2012, 12:01:05
bon, j'ai regardé entre mes différentes pages, et les dates !!!

en fait je n'ai aucune idée de la période prise en compte pour l'affichage des données de la page d'accueil. ( pour moi en testant cela correspond à 5 jours)

par ex : page accueil le jour x qui m'a espionné 6 fois
mes détails : si je régle dates depuis toujours a today: j'ai 17  re du joueur x

si je fais differents reglage de date pour faire correspondre les 6 re de l'accueil avec 6 re ds details, la période est du 13 au 17/1  (par ex)
donc test aussi stp

pour ce quiest du nombre de message entre accueil et detail c'est ok (mais attention si tu fais des suppressions de rapport ds qi me sonde, il faut ressortir du mod pour que cela soit pris en compte ds accueil)
Titre: Re : Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Dudule le 17 Janvier 2012, 12:36:35
Citation de: Gilga le 17 Janvier 2012, 12:01:05
en fait je n'ai aucune idée de la période prise en compte pour l'affichage des données de la page d'accueil. ( pour moi en testant cela correspond à 5 jours)
Je vais essayer de voir dans les fichiers php, et je reviens ici.

Citation de: Gilga le 17 Janvier 2012, 12:01:05
par ex : page accueil le jour x qui m'a espionné 6 fois
mes détails : si je régle dates depuis toujours a today: j'ai 17  re du joueur x

si je fais differents reglage de date pour faire correspondre les 6 re de l'accueil avec 6 re ds details, la période est du 13 au 17/1  (par ex)
donc test aussi stp
Prenant la même période que toi du 13 au 17, personne m'as espionné... Donc je n'ai aucun rapport d'espionnage...
Donc ça a pas l'air d'être ça !

Ormis peut être un truc. Vu qu'on peut se dire que si j'ai pas de valeur, il garde la dernière en mémoire.
C'est à dire la dernière plage de date ou j'avais des espionnage, dans mon cas c'était du 12 au 16, j'avais bien 2 espionnages.
Mais pas sur la planètes en question.
Je vais demander de me faire espionner ingame pour vois ce que ça donne !

Edit : Pour les espionnage, on viens de m'espionner 4 fois. Je n'ai plus 2 mais bien 4 dans ma page d'accueil. Donc tu as l'air d'avoir raison pour ça et moi aussi par la même occasion quand on as pas d'espionnage.
Seulement le script me dit que la planètes à été espionner 3 fois, et cela c'est faux. Les 4 espionnages portes sur 2 planetes différents et leur lune.

Je vais voir un peu plus d'info sur la page d'accueil, et je reviens ici...

Edit : Il y a pas de date pour l'acceuil ( c'est bien ce qu'il me semblais de souvenir ! ) :

Voici la ligne qui affiche le cadre d'acceuil :

echo sprintf($lang['qms_resume_2_lignes'],$max_spy,$most['joueur_cnt'],$most['joueur'],$most['cible_cnt'],$most['cible']);


Je ne mi connais absolument pas en php. Donc bon j'arrive a peine à déchiffrer...
Et voici la récupération de donnée :

// On récupére les données
$table_spy=get_spies($user_data['user_id'],"","");
$max_spy=count($table_spy['cible']);
$temp1=array('cible','joueur');
foreach($temp1 as $temp2)
{
$temp3 = get_most($temp2,$table_spy);
$most[$temp2] = $temp3['data'][0];
$most[$temp2."_cnt"]=isset($temp3['cnt'][1])?$temp3['cnt'][1]:0;
}
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Gilga le 17 Janvier 2012, 12:54:49
es tu admin de l'ogspy ?

est ce que ton pseudo ig correspond a ton pseudo de connection ogspy et / ou le pseudo ig des reglages de ton profil ?

est ce que ton pseudo est particulier ? (espace, tiret ou autre machin ?)

comment as tu configurer le panneau config du mod et le panneau admin ? (capture peut etre plus simple)

Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Superbox le 17 Janvier 2012, 14:15:14
C'est déjà signalé sous Jira, ici : jira.ogsteam.fr/browse/MODQMS-1

Bon j'avoue, c'est très générique, ça englobe toutes les erreurs de calculs de statistiques du mod^^
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Dudule le 17 Janvier 2012, 14:17:39
Alors, oui je suis admin ogspy.
Mon pseudo ig correspond à mon pseudo de connexion. Et il n'as pas de particularité. Mon pseudo est Dudule.

Pour la config, j'ai un soucis au niveau des dates, je n'arrive pas à les changer dans la partie Admin et config...
J'ai du modifier en dur dans la database...

Voici des captures ;)

(https://forum.ogsteam.eu/proxy.php?request=http%3A%2F%2Fi44.servimg.com%2Fu%2Ff44%2F11%2F54%2F58%2F21%2Fimg110.png&hash=b0f3f45852f19e0924b1330aec7d66f46365e61b)

(https://forum.ogsteam.eu/proxy.php?request=http%3A%2F%2Fi44.servimg.com%2Fu%2Ff44%2F11%2F54%2F58%2F21%2Fimg2_110.png&hash=7c5feb326dcb05d5b8a9b3d63c3384df6dc9268e)

(https://forum.ogsteam.eu/proxy.php?request=http%3A%2F%2Fi44.servimg.com%2Fu%2Ff44%2F11%2F54%2F58%2F21%2Fimg2_210.png&hash=85c189df5b9069579751d968b6c9b78bce28abd8)


Edit suite au message de Superbox :

Ah ok, je viens d'aller voir.
Les stats du mod sont pas trop mal encore, juste la page d'acceuil et les distances :)
On sait si quelqu'un bosse dessus ?
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Guiliguili le 17 Janvier 2012, 17:11:31
Si je me souviens bien, j'ai eu au départ le même soucis... j'ai juste réinitialisé les cache

Pour les dates, il y a dans un fichier du mod, une notion de readonly que j'ai supprimé...
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Superbox le 17 Janvier 2012, 22:48:27
Personne bosse dessus actuellement
Je m'étais assigné la tâche, mais il y en a d'autres bien plus importantes^^
Là, la "base" di mode fonctionne (coordonnées, joueur), donc c'est déjà bien^^

Après si quelqu'un veut s'y coller, why not^^
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Gilga le 17 Janvier 2012, 22:53:52
superbox, et si on virait l'ecran d'accueil et les trucs qui merdouillent pour la sortie ogspy v3.1
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Guiliguili le 17 Janvier 2012, 23:22:02
Je vais tenté de regarder tout ça, mais je ne promet rien ;)
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Dudule le 19 Janvier 2012, 14:33:49
Si tu as besoin d'un testeur Guiliguili, je peut t'aider.
Mais je peut faire que ca car je mi connais que très peu malheureusement.

Par contre dans mon précédent post javais montré un bout de code

// On récupére les données
$table_spy=get_spies($user_data['user_id'],"","");
$max_spy=count($table_spy['cible']);
$temp1=array('cible','joueur');
foreach($temp1 as $temp2)
{
    $temp3 = get_most($temp2,$table_spy);
    $most[$temp2] = $temp3['data'][0];
    $most[$temp2."_cnt"]=isset($temp3['cnt'][1])?$temp3['cnt'][1]:0;
}


For each, si je comprend bien, c'est une condition "pour chaque" apparament temp1 et temp2, je me demande bien si c'est pas les dates justement... Donc pour que le module marche bien, étant donné que les stats dans la pages stats remonté sont bonne, faudrait juste faire péter cette condition...
Ou du genre hein ^^ j'y connais peu...
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Superbox le 19 Janvier 2012, 18:06:37
Foreach, en gros : Pour chaque élément de $temp1, il le met dans $temp2 (après, tu fais ce que tu veux avec, à l'intérieur de ta boucle), puis il recommence la boucle avec le 2e élément de $temp1, puis le 3e, etc jusqu'à la fin

($temp1 est bien sûr un tableau (=array))

Donc ici, au 1er tour de boucle, $temp2 sera égal à la chaine 'cible', et au 2e tour, à 'joueur'
Titre: Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Guiliguili le 19 Janvier 2012, 19:27:52
Bonjour,

Je te remercie Dudule :)

Pour les fonctions de calcul de distance, j'en ai trouvé deux (?) formulées chacune de façon différente, mais bonne.

Je pense que c'est plus dans la reprise d'info dans la base que ça pêche où alors un petit bug genre une variable mal orthographiée...
En effet, les éléments sont bien déposés dans la base.

Je ne suis pas rapide faiute de temps d'une part, mais aussi du fait que je découvre ce mod de l'intérieur :P

Voilou, je recherche toujours ;)
Titre: Re : Re : Quimesonde 1.7.1 -- ereg_replace
Posté par: Dudule le 20 Janvier 2012, 12:13:41
Citation de: Superbox le 19 Janvier 2012, 18:06:37
Foreach, en gros : Pour chaque élément de $temp1, il le met dans $temp2 (après, tu fais ce que tu veux avec, à l'intérieur de ta boucle), puis il recommence la boucle avec le 2e élément de $temp1, puis le 3e, etc jusqu'à la fin

($temp1 est bien sûr un tableau (=array))

Donc ici, au 1er tour de boucle, $temp2 sera égal à la chaine 'cible', et au 2e tour, à 'joueur'

Ouais donc précédemment, j'ai dit de grosses bêtises ^^
Merci pour ces précision Super Box ! Si je veut vraiment pouvoir y piper quelque chose, va falloir que j'ouvre mon bouquin de php moi ^^

Guililguili, j'avais aussi trouvé les formules de calcul qui avait l'air ma fois correcte. Après disons que ça restait logique, j'ai pas la connaissance pour dire qu'il manque tel ou tel chose.

La prise d'info, c'est fort possible, car dans la base on à bien les positions de départ et de cible. Donc pas de soucis niveau récupération de donnée, et inscription de la base de donnée.

Bref, si il y à besoin de test je reste à votre écoute !