PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2025 → PHP4WD
PHP4WD
Débuté par leal, 16 jan. 2013 00:41 - 9 réponses
Posté le 16 janvier 2013 - 00:41
Bonjour,

J’espère que certain d'entre vous utilisent php4wd pour accéder à une mysql car je rencontre de gros problèmes.

Je n'ai aucun problème à utiliser php4wd depuis windev17 mais depuis windev mobile j'ai systématiquement une erreur "Function name must be a string in php4wd.php on line 121.

Pourquoi je n'ai pas cette erreur depuis Windev? L'unique différence est le paramètre mySQL4WD:PocketPC = Vrai en windev mobile.

P.S. Si je ne met pas mySQL4WD:PocketPC = Vrai la connexion ne se fais jamais et le sablier tourne sans fin.

Avez-vous déjà eut ce genre de problème?

Meilleures salutations et bon dev

Bioley Léal
Posté le 16 janvier 2013 - 15:23
Bonjour

en mobile, les chaines sont unicodes... Je suppose que ca ne plait pas à
php4wd... Déclare tes chaines spécifiquement comme chaines ANSI et réessaye

Cordialement


--
Fabrice Harari
Consultant WinDev, WebDev et WinDev Mobile International

Plus d'information sur http://fabriceharari.com/index_FR.html


On 1/15/2013 6:41 PM, Bioley Léal wrote:
Bonjour,

J’espère que certain d'entre vous utilisent php4wd pour accéder à une mysql car je rencontre de gros problèmes.

Je n'ai aucun problème à utiliser php4wd depuis windev17 mais depuis windev mobile j'ai systématiquement une erreur "Function name must be a string in php4wd.php on line 121.

Pourquoi je n'ai pas cette erreur depuis Windev? L'unique différence est le paramètre mySQL4WD:PocketPC = Vrai en windev mobile.

P.S. Si je ne met pas mySQL4WD:PocketPC = Vrai la connexion ne se fais jamais et le sablier tourne sans fin.

Avez-vous déjà eut ce genre de problème?

Meilleures salutations et bon dev

Bioley Léal
Posté le 08 février 2013 - 07:43
Vous trouvez ci_joint La résoluion de votre probléme ;).


http://helouardi.blogspot.com/p/blog-page.html

Bonne dev.
Posté le 09 février 2013 - 12:24
Merci helouardi,

Sous Android il n'y a pas de problème. c'est Windows mobile qui pose problème.
Fabrice Harari à raison, c'est un problème entre ansi et unicode. Après avoir perdu 2h pour essaye des modifier PHP4WD je suis repartit sur une page blanche et j'ai recréer une classe qui fais la même chose et qui fonctionne sous windev et windev mobile avec un petit script php. Le tout ne m'a pas prit plus de 5h donc je ne vais pas réessayer PHP4WD et perdre encore du temps.
Posté le 18 février 2013 - 07:40
Pouvez vous partager votre script avec nous ?
Posté le 21 février 2013 - 17:12
Bonjour je viens de tester PHP4WD sous android avec les script fournis ici: http://helouardi.blogspot.com/p/blog-page.html
Mais impossible que cela fonctionne php4wd.php me retourne des erreurs dans error.log d'apache
Voici le log d'erreur:
[Thu Feb 21 15:53:15 2013] [error] [client *.*.*.*] PHP Notice: Undefined index: requete in /var/www/php4wd.php on line 23
[Thu Feb 21 15:53:15 2013] [error] [client *.*.*.*] PHP Notice: Undefined index: methode in /var/www/php4wd.php on line 24
[Thu Feb 21 15:53:15 2013] [error] [client *.*.*.*] PHP Notice: Undefined index: crypteretour in /var/www/php4wd.php on line 25
[Thu Feb 21 15:53:15 2013] [error] [client *.*.*.*] PHP Notice: Undefined index: typeBase in /var/www/php4wd.php on line 26
[Thu Feb 21 15:53:15 2013] [error] [client *.*.*.*] PHP Notice: Undefined index: bind in /var/www/php4wd.php on line 28
[Thu Feb 21 15:53:15 2013] [error] [client *.*.*.*] PHP Notice: Undefined index: bindLen in /var/www/php4wd.php on line 29
[Thu Feb 21 15:53:15 2013] [error] [client *.*.*.*] PHP Notice: Undefined index: bindVal in /var/www/php4wd.php on line 30
[Thu Feb 21 15:53:15 2013] [error] [client *.*.*.*] PHP Notice: Undefined index: bindType in /var/www/php4wd.php on line 31
[Thu Feb 21 15:53:15 2013] [error] [client *.*.*.*] PHP Notice: Undefined variable: func_connect in /var/www/php4wd.php on line 121
[Thu Feb 21 15:53:15 2013] [error] [client *.*.*.*] PHP Fatal error: Function name must be a string in /var/www/php4wd.php on line 121

Code windev pour la connexion:
serv = "http://www.******.**/php4wd.php";
user = "******";
pass = "*****";
base = "*****";
v_retCode = monAccess:mySQLConnecte(serv,user,pass,base)
Posté le 22 février 2013 - 07:56
Salam,
en fait n'oublie pas d'heberger les deux fichier sur ton serveur.
et essayer avant de les heberger de changer la configuration du fichier connect.php.
cordialement.
Posté le 19 juillet 2013 - 22:22
Je viens d'"avoir la version 18 et j'ai eu les mêmes soucis
1- ca tourne en boucle ---> solution : dans MySQLexcec (classe php4Wd),
remplacer
v_chaineResult =HTTPDonneRésultat() par
v_chaineResult = AnsiVersUnicode(HTTPDonneRésultat())


2- problème de ligne 121:

dans php4wd.php ajouter la ligne

$typeBase="MYSQL"; avant le case.

avec cela fonctionne

Bien à vous
Posté le 05 août 2013 - 11:49
Bonjour,

"Boumghar" a écrit dans le message de groupe de discussion :
2013812f50a9ed9276226411e688f4e03b50@news.pcsoft.fr...

Je viens d'"avoir la version 18 et j'ai eu les mêmes soucis
1- ca tourne en boucle ---> solution : dans MySQLexcec (classe php4Wd),
remplacer
v_chaineResult =HTTPDonneRésultat() par
v_chaineResult = AnsiVersUnicode(HTTPDonneRésultat())

cela n'est valable que pour certain cas donc attention suivant l' OS de la
base et l'interclasement de la base
si votre base est unicode oui sinon cela fera exactement la meme chose avec
ce code sur une base non unicode que la boucle sur une base unicode sans le
Ansi VersUicode


2- problème de ligne 121:
dans php4wd.php ajouter la ligne
$typeBase="MYSQL"; avant le case.
avec cela fonctionne

le parametre type base est controler par la classe windev et ce message se
produit si on envoie le script dans un navigateur
si vous mettez cette ligne avant le case vous n'aurez plus le message dans
le nnavigateur mais la base sera bloqué sur mySQL
et donc pour ceux qui veulent changer de base a la volée (exemple
recplication entre mySQL et SQLserveur, vous ne pourrez plus changer la base
car elle sera systhematiquement sur mySQL
dans le fonctionnement normale le typeBase est envoyé en POST par la classe
donc vous n'aurez pas le message dans les log apache ou IIS mais si vous
lancer le script depuis un navigateur simplement alors vous aurez ce message



Bien à vous
Posté le 05 mars 2026 - 16:31
a écrit :
Bonjour,

"Boumghar" a écrit dans le message de groupe de discussion :
2013812f50a9ed9276226411e688f4e03b50@news.pcsoft.fr...

Je viens d'"avoir la version 18 et j'ai eu les mêmes soucis
1- ca tourne en boucle ---> solution : dans MySQLexcec (classe php4Wd),
remplacer
v_chaineResult =HTTPDonneRésultat() par
v_chaineResult = AnsiVersUnicode(HTTPDonneRésultat())
cela n'est valable que pour certain cas donc attention suivant l' OS de la

base et l'interclasement de la base
si votre base est unicode oui sinon cela fera exactement la meme chose avec
ce code sur une base non unicode que la boucle sur une base unicode sans le
Ansi VersUicode


2- problème de ligne 121:
dans php4wd.php ajouter la ligne
$typeBase="MYSQL"; avant le case.
avec cela fonctionne
le parametre type base est controler par la classe windev et ce message se

produit si on envoie le script dans un navigateur
si vous mettez cette ligne avant le case vous n'aurez plus le message dans
le nnavigateur mais la base sera bloqué sur mySQL
et donc pour ceux qui veulent changer de base a la volée (exemple
recplication entre mySQL et SQLserveur, vous ne pourrez plus changer la base
car elle sera systhematiquement sur mySQL
dans le fonctionnement normale le typeBase est envoyé en POST par la classe
donc vous n'aurez pas le message dans les log apache ou IIS mais si vous
lancer le script depuis un navigateur simplement alors vous aurez ce message



Bien à vous