Class php
Fermé
raphael94350
Messages postés
10
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
10 avril 2013
-
9 avril 2013 à 18:30
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 - 10 avril 2013 à 16:50
Azraka Messages postés 252 Date d'inscription mercredi 11 juin 2008 Statut Membre Dernière intervention 5 juin 2014 - 10 avril 2013 à 16:50
7 réponses
Atropa
Messages postés
1940
Date d'inscription
mercredi 25 juin 2008
Statut
Membre
Dernière intervention
11 mai 2014
274
9 avril 2013 à 18:58
9 avril 2013 à 18:58
bonjour,
je dis peut être une bêtise mais je crois me souvenir qu'il faut attribuer une valeur aux variables de class à leur déclaration en php.
private $email = null; par exemple
je dis peut être une bêtise mais je crois me souvenir qu'il faut attribuer une valeur aux variables de class à leur déclaration en php.
private $email = null; par exemple
LuKro
Messages postés
4
Date d'inscription
vendredi 26 mars 2010
Statut
Membre
Dernière intervention
9 avril 2013
9 avril 2013 à 19:00
9 avril 2013 à 19:00
ou lui mettre un exemple bidon
private $email = "mail@mail.com";
private $pass = "motdepasse";
private $email = "mail@mail.com";
private $pass = "motdepasse";
raphael94350
Messages postés
10
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
10 avril 2013
9 avril 2013 à 19:22
9 avril 2013 à 19:22
j'ai deja essayer cela ne change rien au probleme
ajp55
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
23
9 avril 2013 à 19:47
9 avril 2013 à 19:47
copie la ligne avant et après la ligne 9.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
ajp55
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
23
9 avril 2013 à 19:49
9 avril 2013 à 19:49
pourquoi tu utilise # comme caractère de commentaire, tu en a marre des // ou du /* mon commentaire */ change on verra
raphael94350
Messages postés
10
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
10 avril 2013
9 avril 2013 à 19:49
9 avril 2013 à 19:49
tu veut avant la 9 et apres la 9 c'est ça ?
si oui je te met la 8 la 9 et la 10
# Credentials
private $email;
private $pass;
si oui je te met la 8 la 9 et la 10
# Credentials
private $email;
private $pass;
ajp55
Messages postés
426
Date d'inscription
dimanche 31 juillet 2011
Statut
Membre
Dernière intervention
17 février 2015
23
9 avril 2013 à 19:56
9 avril 2013 à 19:56
utilise // ou /* à la place des #
raphael94350
Messages postés
10
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
10 avril 2013
10 avril 2013 à 11:51
10 avril 2013 à 11:51
j'avais déjà fait l'essai le code modifié donne ça et toujours la même erreur en local ça marche mais en ligne toujours la même erreur
syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/116/sdb/8/c/r.chemla/Geoip.class.php on line 5
syntax error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /mnt/116/sdb/8/c/r.chemla/Geoip.class.php on line 5
<?php class Geoip { private $email = "mail@mail.com"; private $pass = "motdepasse"; public $endpoint; public function __construct() { $this->email = 'r.chemla@free.fr'; $this->pass = 'cnam2013'; $this->endpoint = "https://www.geolocalise-ip.com/api.php"; } public function setEmail($email = null){ $this->email = $email; } public function setPass($pass = null) { $this->pass = $pass; } public function query($ip) { if( empty($ip) ) { trigger_error("L'ip est vide.", E_USER_WARNING); return false; } $url = $this->endpoint.'?'.http_build_query(array( 'email' => $this->email, 'pass' => $this->pass, 'ip' => $ip )); $return['apiRequest'] = $url; $result = file_get_contents($url); if( $result == false || empty($result) ) { $return['erreur'] = 1; $return['erreur_msg'] = "API indisponible ($url)"; return $return; } $result = utf8_encode($result); $return['apiResponse'] = $result; if( preg_match('#^(.*?&erreur=.*?)<(.*)$#i', $result, $matches) ) { $result = $matches[1]; $return['erreur_msg'] = '<'.trim($matches[2]); } parse_str($result, $geo); $return = array_merge($return, $geo); return $return; } } ?>
raphael94350
Messages postés
10
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
10 avril 2013
10 avril 2013 à 11:55
10 avril 2013 à 11:55
même quand je supprime tout dans la page et que je laisse juste la class vide ça me marque une erreur c'est incomprehensible
raphael94350
Messages postés
10
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
10 avril 2013
10 avril 2013 à 12:27
10 avril 2013 à 12:27
j'ai modifier le de la classe rien n'y change pour info le fichier s'appel Geoip.class.php la fonction je l'ai renommer en class ip ! mais pourquoi en local cela marche t'il est pas sur mon ftp
Azraka
Messages postés
252
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
5 juin 2014
13
10 avril 2013 à 13:49
10 avril 2013 à 13:49
Quel sont les version de php de tes différents environnements ?
Ce que tu as fait marche très bien en php5, mais en php4 il n'y a pas de notion de visibilité, une variable de classe se déclare avec le mot-clé var.
Ce qui donnerait donc :
Ce que tu as fait marche très bien en php5, mais en php4 il n'y a pas de notion de visibilité, une variable de classe se déclare avec le mot-clé var.
Ce qui donnerait donc :
var $email = "mail@mail.com"; var $pass = "motdepasse"; var $endpoint;
raphael94350
Messages postés
10
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
10 avril 2013
10 avril 2013 à 15:14
10 avril 2013 à 15:14
oui c'était bien ça mais en fait il fallait juste mettre un .htaccess a la racine de mon ftp free .
Mais bon j'ai toujours un problème avec le http_build_query qui ne passe pas apparemment alors qu'en local tout fonctionne.
Je ne comprend vraiment pas
Mais bon j'ai toujours un problème avec le http_build_query qui ne passe pas apparemment alors qu'en local tout fonctionne.
Je ne comprend vraiment pas
Azraka
Messages postés
252
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
5 juin 2014
13
10 avril 2013 à 15:25
10 avril 2013 à 15:25
Oui, tu as activé php5 =)
Le top serait quand même de faire un echo phpversion(); histoire de voir précisément sous quelle version tu es.
Peux-tu nous dire ce qui ne va pas avec http_build_query ? As-tu un message d'erreur ?
Le top serait quand même de faire un echo phpversion(); histoire de voir précisément sous quelle version tu es.
Peux-tu nous dire ce qui ne va pas avec http_build_query ? As-tu un message d'erreur ?
raphael94350
Messages postés
10
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
10 avril 2013
10 avril 2013 à 15:35
10 avril 2013 à 15:35
alors la version c'est 5.1.3RC4-dev et le message d'erreur c'est un message personnalisé
mon code c'est
mon code c'est
# Appel de l'API $url = $this->endpoint.'?'.http_build_query(array( 'email' => $this->email, 'pass' => $this->pass, 'ip' => $ip )); $return['apiRequest'] = $url; $result = file_get_contents($url); if( $result == false || empty($result) ){ $return['erreur'] = 1; $return['erreur_msg'] = "API indisponible ($url)"; return $return; } $result = utf8_encode($result); $return['apiResponse'] = $result;
Azraka
Messages postés
252
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
5 juin 2014
13
10 avril 2013 à 16:12
10 avril 2013 à 16:12
Je me demande si le problème ne viendrait pas du file_get_contents : il est possible que free ne t'autorise pas à appeler une ressource situé sur un serveur différent (pour des raisons de sécurité)
raphael94350
Messages postés
10
Date d'inscription
mardi 9 avril 2013
Statut
Membre
Dernière intervention
10 avril 2013
10 avril 2013 à 16:39
10 avril 2013 à 16:39
oui j'ai regarder c'est ça y'a t'il un autre moyen que le file_get_contents
Azraka
Messages postés
252
Date d'inscription
mercredi 11 juin 2008
Statut
Membre
Dernière intervention
5 juin 2014
13
10 avril 2013 à 16:50
10 avril 2013 à 16:50
Oui, il faudrait utiliser cURL.
A voir si c'est disponible chez free.
Je n'ai pas trop le temps de tout expliquer mais tu devrais trouver pas mal de tutos et ce n'est pas très compliqué =)
A voir si c'est disponible chez free.
Je n'ai pas trop le temps de tout expliquer mais tu devrais trouver pas mal de tutos et ce n'est pas très compliqué =)