Webservice Smartping - Page 5

Mercredi 07 Mai 2014 16:09

Salut à tous,

@SMGbab16 : J'ai jeté un oeil sur ta class. C'est très complet et ça va beaucoup m'aider.

Je me débrouille en PHP, mais pas trop avec les class. Pourrais tu me fournir un exemple de code pour utiliser ta class?

Merci d'avance
Tennis de table de Saint Herblain - Site du Club : www.ttsh.fr , Outil de gestion des équipes : http://teamsgest.ttsh.fr

Mercredi 07 Mai 2014 16:15

Citation de fandusrfc :
J'ai la même, cela fonctionne en local et non en ligne. Uniquement la méthode getJoueur() qui plante, alors que la bonne URL est récupérée (quand on copie/colle l'URL cela fonctionne ...)

Ah pour moi même en local ça ne fonctionne pas, réponse vide.
Base de données bois : http://yattdb.pabuisson.com

Mercredi 07 Mai 2014 17:23

Donc ce n'est pas OVH qui merde déjà.
Soit le script de la fédé bug, soit il filtre, mais de quelle manière je ne sais pas, car perso ça fonctionne toujours en local mais c'est tout actuellement ...
fandusrfc -> jerem35 vu que l'on a pas voulu modifié mon pseudo automatiquement

Mercredi 07 Mai 2014 17:26

Citation de Calimerdo :
Salut à tous,

@SMGbab16 : J'ai jeté un oeil sur ta class. C'est très complet et ça va beaucoup m'aider.

Je me débrouille en PHP, mais pas trop avec les class. Pourrais tu me fournir un exemple de code pour utiliser ta class?

Merci d'avance


> Tu instancies la class avec le mot clef new.
> Tu appelles les méthodes que tu désires que tu enregistres dans des variables si besoin pour les réutiliser. En paramètre des méthodes, tu peux ce dont elle a besoin pour fonctionner convenablement.
fandusrfc -> jerem35 vu que l'on a pas voulu modifié mon pseudo automatiquement

Jeudi 08 Mai 2014 00:15

Minuit passé, la fonction getJoueur remarche.
On est bien bridé à un certain nombre d'appels par fonction.

Jeudi 08 Mai 2014 00:18

Exactement !

Après à combien je ne sais pas, j'ai fais quelques tests et cela fonctionne encore malgré plusieurs appels ainsi que le bot qui passe et qui prend 20/30 numéros de licence par heure donc ça a l'air de tenir.
Message modifié 1 fois, dernière modification Jeudi 08 Mai 2014 01:35 par fandusrfc
fandusrfc -> jerem35 vu que l'on a pas voulu modifié mon pseudo automatiquement

Jeudi 08 Mai 2014 11:19

Citation de fandusrfc :
Exactement !

Après à combien je ne sais pas, j'ai fais quelques tests et cela fonctionne encore malgré plusieurs appels ainsi que le bot qui passe et qui prend 20/30 numéros de licence par heure donc ça a l'air de tenir.

Étrange ce truc. Il faut que je revérifie mon système de caching mais normalement j'avais franchement pas abusé des appels... Bref, ça semble être ça malgré tout Clin d'oeil
Base de données bois : http://yattdb.pabuisson.com

Jeudi 08 Mai 2014 13:58

Non non tu avais raison, 100 appels ou un peu moins par IP et par jour ...
fandusrfc -> jerem35 vu que l'on a pas voulu modifié mon pseudo automatiquement

Samedi 10 Mai 2014 02:33

Et c'est aussi valable pour la page de joueur sur le site internet !
Comme ça, il suffit que l'on regarde trop de pages sur une journée avec notre ip, bah ... on est bloqué.
Idem pour l'application Smartping.

Ça respire l'intelligence à la fédération.
fandusrfc -> jerem35 vu que l'on a pas voulu modifié mon pseudo automatiquement

Mercredi 16 Juillet 2014 04:14

Bonjour à tous, cette classe m'intéresse beaucoup mais je ne sais pas comment récupérer les données.. Enfin, j'arrive à instancier la classe avec new, j'arrive à appeler une méthode, je mets les résultats dans une variable mais après, ca me retourne un tableau et je ne sais pas comment lire les données.. Si quelqu'un pourrait me donner un code tout simple pour me montrer comment récupérer ses valeurs, ce serait sympa Content
Merci d'avance
Maxime

Mercredi 16 Juillet 2014 14:48

Bonjour à tous,

Je suis actuellement en train de développer le site de mon club, et votre solution m'intéresse car je fais actuellement tout à la main par des requêtes SQL et base de données. Les classements départementaux; régionaux m'intéresse fortement.

Pouvez-vous m'expliquer la démarche à suivre pour récupérer ses données en PHP?

En essayant avec la class, j'ai ce problème la :
Warning: array_key_exists() expects parameter 2 to be array, boolean given

Merci d'avance pour tout aide apporté Émoticône

Mercredi 16 Juillet 2014 14:56

Citation de guigui591012 :
En essayant avec la class, j'ai ce problème la :
Warning: array_key_exists() expects parameter 2 to be array, boolean given

Merci d'avance pour tout aide apporté Émoticône

Hello Guigui,

Càd que là, sans aucun contexte ni sans savoir comment tu utilises la classe, c'est un peu difficile de t'apporter un coup de main Clin d'oeil
Base de données bois : http://yattdb.pabuisson.com

Mercredi 16 Juillet 2014 15:01

Salut pierread,

Oui désolé, en faite la j'ai copié la class de départ que j'ai appelé service.php

dedans il contient la class et en dessous j'ai juste testé ça.

$test = new Service();
$test->getJoueur(5932746);

Mercredi 16 Juillet 2014 15:23

Tu utilises quelle version de PHP ? Si tu ne sais pas, jette un phpinfo(); dans ta page pour avoir l'info, ou lance un "php -v" dans un terminal (sous réserve que tu n'aies qu'un php d'installé sur ta machine).

Je n'utilise habituellement pas la classe de SMGBab16, donc j'ai testé pour voir, et ça fonctionne chez moi. Par contre, j'imagine que tu as modifié des choses, car tu ne dois pas pouvoir créer une instance de Service sans spécifier son namespace ? Peut-être que le problème vient de là d'ailleurs. Logiquement, si tu as copié la classe de SMGbab16 telle quelle, tu devrais instancier $test avec ça :

$test = new Mping\CoreBundle\Fftt\Service();

Sinon il devrait te jeter en t'indiquant que la classe Service n'existe pas, a priori.
Base de données bois : http://yattdb.pabuisson.com

Mercredi 16 Juillet 2014 15:33

Alors j'utilise la version php 5.3.10.

Je n'ai rien touché à la classe de SMG, je l'ai juste copié dans un fichier php que j'ai appelé service.php.
Pour l'instant je veux juste testé que ça marche pour cela que j'ai fait ça.

Je comprend pas très bien le namespace à quoi il sert .. (désolé)

En mettant le test comme tu m'as dit, il me dit ça
Fatal error: Class 'Mping\CoreBundle\Fftt\Mping\CoreBundle\Fftt\Service' not found

Mercredi 16 Juillet 2014 15:46

En supprimant le namespaces et appelant la fonction comme ceci
$test = new Service();
$test->getJoueur(5932746);


on dirai qu'il detecte bien la fonction mais il y a des erreurs..
( ! ) Warning: array_key_exists() expects parameter 2 to be array, boolean given in C:\wamp\www\ppcjeumont\service.php on line 319
Call Stack
# Time Memory Function Location
1 0.0039 523896 {main}( ) ..\service.php:0
2 0.0042 524840 Service->getJoueur( ) ..\service.php:329
3 0.0042 525592 Service->getCachedData( ) ..\service.php:69
4 0.0042 525592 {closure}( ) ..\service.php:231
5 1.1550 525672 Service::getObject( ) ..\service.php:68
6 1.1550 525704 array_key_exists ( ) ..\service.php:319

Mercredi 16 Juillet 2014 16:02

Ah au temps pour moi, j'avais mal compris, si tu as mis tes 2 lignes sous la classe de SMGbab16, c'est normal qu'il reconnaisse "Service" sans le namespace, vu que tu es déjà dans ledit namespace. Pour mon cas, j'avais créé un second fichier php qui incluait la classe et j'avais donc besoin d'indiquer le namespace. Mea culpa Content

Je jette un oeil pour voir si je peux t'aider, mais PHP n'est pas mon fort donc ne t'attends pas à des miracles Clin d'oeil
Base de données bois : http://yattdb.pabuisson.com

Mercredi 16 Juillet 2014 16:05

En l'appellant dans un autre fichier php, j'ai fait comme ceci:
include_once('Service.class.php');
$test = new Service();
$test->getJoueur('5932746');


et il m'indique la même erreur:
( ! ) Warning: array_key_exists() expects parameter 2 to be array, boolean given in C:\wamp\www\ppcjeumont\service.php on line 319
Call Stack
# Time Memory Function Location
1 0.0039 523896 {main}( ) ..\service.php:0
2 0.0042 524840 Service->getJoueur( ) ..\service.php:329
3 0.0042 525592 Service->getCachedData( ) ..\service.php:69
4 0.0042 525592 {closure}( ) ..\service.php:231
5 1.1550 525672 Service::getObject( ) ..\service.php:68
6 1.1550 525704 array_key_exists ( ) ..\service.php:319


Je sais pas si l'erreur vient du fichier que j'ai copier ou alors de l'appel de la fonction car la je pense que mon code d'appelle était bon.

Merci pour ton aide en tout cas

Mercredi 16 Juillet 2014 16:11

A tout hasard, est-ce que ça ne pourrait pas être un souci avec le gestionnaire de cache ? Essaie en commentant la ligne "use Doctrine etc." au début du fichier.

Sinon il semble qu'il y ait un souci avec getData qui renvoie un booléen. Vu le code, c'est probable que tu aies un souci avec curl qui renverrait false (curl_exec renvoie false en cas de problème). Dans la méthode getData, repère la ligne suivante (autour de la ligne 285) :

$data = curl_exec($curl);

Et modifie ça pour afficher l'erreur de curl :

$data = curl_exec($curl); // déjà présent
// --- Les 3 lignes suivantes à ajouter ---
if($data === false) {
echo "Erreur Curl : ". curl_error($curl);
}
curl_close($curl); // déjà présent


S'il y a un problème au niveau de curl, ça devrait te dire de quoi il s'agit.
Message modifié 2 fois, dernière modification Mercredi 16 Juillet 2014 16:12 par pierread
Base de données bois : http://yattdb.pabuisson.com

Mercredi 16 Juillet 2014 16:16

Alors j'ai bien mis en commentaire et testé cela n'a rien changé..

Ensuite, j'ai fait les remplacements comme tu m'as dit et maintenant ça me dit:

Erreur Curl : couldn't connect to host

On avance MDR !! merci de ton aide
13
18
381 messages

Vous êtes ici : Accueil > Forums > Développement de vos sites