GameOgame

Démarré par misterbusiness, 12 Janvier 2013, 01:41:33

« précédent - suivant »

misterbusiness

Bonjour, voila j'ai installé le mod "GameOgame" et j'ai un petit problème.
Lorsque je veux entrer un nouveau RC je le rentre et il me marque "Rapport de combat invalide"
je suis donc aller voir le fichier Report.php et il se trouve que l'erreur se trouve ici :

if (!preg_match('#Lessflottesssuivantesssessontsaffrontéessles(d{2})-(d{2}) (d{2}):(d{2}):(d{2}) :#',$data,$date))
{
echo 'Rapport de combat invalide';
}
else
{

Ceci est une erreur puisque apres les combats la première ligne est ceci :
Les flottes suivantes s'affrontent (05.09.2012 18:32:05):

Et le probleme est que je débute en PHP donc je ne connais pas preg_match et ses manipulations, j'ai tester 2-3 choses mais rien a faire :s Aidez moi SVP

DarkNoon

Les Regex sont toujours un petit peu délicates...

s : Espace

d : un chiffre

d{2} : 2 chiffres

est le caractère d'échappement

http://www.regular-expressions.info/reference.html

Avec tout ça tu devrais avancer et pour tester tu as un super site :

http://www.functions-online.com/preg_match.html
Héberger votre OGSpy : Hébergement

misterbusiness

12 Janvier 2013, 17:24:22 #2 Dernière édition: 12 Janvier 2013, 17:27:03 par misterbusiness
Voici déja ce que j'ai fait depuis hier :
if (!preg_match('#LESsFLOTTESsSUIVANTESsS'AFFRONTENTs((d{2}).(d{2}).(d{4}) (d{2}):(d{2}):(d{2})) :#',$data,$date))
{
echo 'Rapport de combat invalide';
}
else
{

Mais le probleme est qu'il y a une parenthèse autour de l'heure et des dates, ce qui fait une double parenthèse dans la fonction c'est pas grave ? il me marque encore erreur mais je vois pas d'ou elle vien l'erreur :(

EDIT : Grace a ton site, j'ai remarqué que cela me doublait mes slash, voici le rapport d'erreur :
result:
$matches:


your call:
$matches = null;
$returnValue = preg_match('#LES\sFLOTTES\sSUIVANTES\sS\'AFFRONTENT\s((\d{2})\.(\d{2})\.(\d{4}) (\d{2}):(\d{2}):(\d{2})) :#', 'LES FLOTTES SUIVANTES S`AFFRONTENT (12.01.2013 05:52:52)

DarkNoon

La parenthèse il faut l'échapper ( ou mettre un . à la place

Par contre évite les majuscules et suit la casse du vrai texte :-)
Héberger votre OGSpy : Hébergement

misterbusiness

Salut c'est de nouveau moi ^^ Bon alors j'ai fais ma ligne de regex qui marche tres bien sur le site que tu m'a envoyé mais sur ogspy toujours pareil ^^
Voici la ligne de commande :
#LESsFLOTTESsSUIVANTESsS`AFFRONTENTs.(d{2}).(d{2}).(d{4}) (d{2}):(d{2}):(d{2}).#
Voici le résultat sur http://www.functions-online.com :
result :
1
$matches
array (
  0 => 'LES FLOTTES SUIVANTES S`AFFRONTENT (12.01.2013 05:52:52)',
  1 => '12',
  2 => '01',
  3 => '2013',
  4 => '05',
  5 => '52',
  6 => '52',
)

Et sur ogspy bah toujorus rapport de combat invalide.
Alors que la il me met result 1, cela logiquement devrait vouloir dire que c'est bon ?? Non ?

machine

voui, dans preg_match la première valeur ( le 0 renvoi ce qui est trouvé ... )
donc sur le site c bon ...


maintenant histoire de t aider, il faut que tu places des var_dump() un peu partout ( c'est l arme anti bug ... )


ajoute avant le passage des exreg
var_dump($data);

au moins tu seras sur de la chaine envoyer par la variable $data ...
si elle correspond parfaitement a ce que tu penses, c que soucis avec exreg ...

donc la tu recommences :p
mais en y allant progressivement ... ( tu ajoutes mot a mots pour voir ou viens ton erreur ... )








Framework php sécurisé et simple à prendre en main avec générateur web http://mkframework.com/

misterbusiness

15 Janvier 2013, 13:56:53 #6 Dernière édition: 15 Janvier 2013, 14:50:36 par misterbusiness
Donc si j'ai bien compris, je dois refaire ma phrase du preg match mot a mot jusqu'a tomber sur une erreur ??
J'ai aussi ajouté le var_dump($data); avant le preg match et voici ce qu'il me retourne maintenant :
string(523) "LES FLOTTES SUIVANTES S`AFFRONTENT (14012013 23:22:54) MISTERBUSINESS VS PINK Attaquant MisterBusiness [6:151:12] Armes: 110% Bouclier: 110% Coques: 130% TYPE GTRANSP Nombre 17 Armes 11 Bouclier 53 Coque 2760 Défenseur Pink détruit L`attaquant a gagné la bataille ! Il emporte 167745 unités de métal, 47353 unités de cristal et 26226 unités de deutérium L`attaquant a perdu au total 0 unités Le défenseur a perdu au total 0 unités Un champ de débris contenant 0 de métal et 0 de cristal se forme dans l`orbite de la planète" Rapport de combat invalide
Je ne comprend plus rien ^^

EDIT : C'est bon j'ai trouver le problème :D
J'explique : grâce a ce fabuleux message, j'ai remarquer que la date du rapport n'avais pas de points entre les JJ/MM/AAAA.
j'ai donc enlever les . Entre les données ce qui fait que maintenant cela marche :)
Pour ceux qui souhaitent installer Gameogame sur leurs ogspy, voici la manip a suivre :

-Ouvrez le fichier report.php puis descendez à la ligne 28 vous y verrez ceci :
if (!preg_match('#Lessflottesssuivantesssessontsaffrontéessles(d{2})-(d{2}) (d{2}):(d{2}):(d{2}) :#',$data,$date))

Remplacez la par ceci :
if (!preg_match('#LESsFLOTTESsSUIVANTESsS`AFFRONTENTs.(d{2})(d{2})(d{4}) (d{2}):(d{2}):(d{2}).#',$data,$date))

Enregistrez, sauvegardez, transférez sur votre serveur puis entrez un rapport de combat DETAILLER dedant et normalement il vous affichera le nombre de points gagnés :)

Alderande

pour un débutant en PHP c'est pas mal déjà si t'as réussi à faire fonctionner ce mod ^^

Je ne l'ai pas installer mais je verrai avec un admin d'un autre serveur s'il peut le tester ^^

Moi j'ai suivi le conseil de dark...J'suis sur le site du zero...Mais bon j'en suis qu'aux explications de la création du HTML et CSS  :P ...Faut bien reprendre depuis le début!  ;D et une phrase par jour sinon ça va me gaver ^^
***Au 03/07/2013***
Windows Vista service pack 2
FF 21.0
OGSPY 3.1.3 + Autoupdate 2.0.9 (version tip)sous Hostinger (hébergement gratuit)  PHP Version 5.4.14
Toolbar Xtense 2.5.2
Mod Xtense: 2.4.3 (version tip)
Ogspy Android
Ogame 5.5.1  - Uni 64/Leo/Sirius
---
GM V 1.8
AntiGameOrigin V 5.4.6
InfoCompte V 3.11.6

misterbusiness

je suis pas débutant débutant ^^ j'ai de grosses bases ^^ mais les preg match je n'en n'avais jamais fait auparavent ^^