Note de ce sujet :
  • Moyenne : 0 (0 vote(s))
  • 1
  • 2
  • 3
  • 4
  • 5
Composant PHP4WD
#1
Bonjour à tous,

je voudrais savoir si quelqu'un avait déjà utiliser PHP4WD dans une de ses application.

Merci.
Répondre
#2
Bonjour,

personnellement je l'utilise dans :

Emiprotect : <!-- m --><a class="postlink" href="http://emidev.sqlmanagerx.com/index.php?option=com_content&task=view&id=20&Itemid=22">http://emidev.sqlmanagerx.com/index.php ... &Itemid=22</a><!-- m -->
EmiProtect est une bibliothèque a ajouter dans vos programmes pour avoir un contrôle de licence et une activation par internet.

Data Center : <!-- m --><a class="postlink" href="http://www.sqlmanagerx.com/websqlx/html/modules/mydownloads/singlefile.php?lid=27">http://www.sqlmanagerx.com/websqlx/html ... php?lid=27</a><!-- m -->
le frontal permet de se connecter a une base par php4wd dans les connections il faut choisir tunnel. c'est comme cela que j'administre toutes mes bases sur le domaine SQLManagerX (au nombre de 5). il permet de faire des requetes des editions des exports etc ... un peu comme WDMap de windev mais en un peu mieux.

SQLManagerX Suivi : <!-- m --><a class="postlink" href="http://www.sqlmanagerx.com/websqlx/html/modules/mydownloads/visit.php?cid=4&lid=21">http://www.sqlmanagerx.com/websqlx/html ... d=4&lid=21</a><!-- m -->
Nous avons cree une petite application qui permet de suivre le site SQLManagerX a distance. le site SQLManagerX est fait avec XOOPS et une base de données MySQL.Cette base n'est bien entendu pas accessible directement et seul l'espace web permet de s'y connecter. pourtant notre application est sur windows :pas de navigateur, rien de tel.
simplement l'acces php4wd nous permet de lancer des requetes sur la base et d'en optenir le resultat.
vous pouvez ainsi etre prevenu qu'une nouvelle version de nos acces ou SQLManagerX est disponible par une fenetre qui se placera devant vos autres applications.
de meme vous avez acces aux derniers messages du forum, ou a la derniere actualite et si vous avez un login, vous avez acces a votre dernier message prive,

et de façon eterieure (il y a des developpeurs qui nous avaient demandé des renseignements)

Inventaires : nous l'avons utiliser aussi pour gerer des inventaires avec des appareil mobiles directement reliés a la base oracle pour un client. l'appareil mobile avait en temps réel le stock et faisait donc ces mise a jours aussi en temps réel (pas de synchro ni de stockage dans l'appareil). cela permet d'avoir un inventaire fiable et rapide car l'appareil mobile etait directement en connection avec la base de gestion

JOOMLA Content : <!-- m --><a class="postlink" href="http://www.fensch-info.fr/telechargement/index.php?act=view&id=17">http://www.fensch-info.fr/telechargemen ... view&id=17</a><!-- m -->
Joomla Content permet de modifier, d'ajouter ou supprimer une News sur un site Joomla ou Mambo
le gros avantage est que la maintenance et l'administration du site (même de plusieurs) se fait sous window. c'est agreable de pouvoir modifier le site sans passer par l'interface web qui demande a chaque clic de recharger une page.

CollectiX : <!-- m --><a class="postlink" href="http://www.philatelix.fr/produits/cdrom/collectix.cfm">http://www.philatelix.fr/produits/cdrom/collectix.cfm</a><!-- m -->
gestion des collection. il y a un module qui permet les echange sur internet et qui utlise php4wd. a l'epoque le createur avait fait une formation sur SQLManagerX et les acces dont php4wd et nous avions mis en place l'acces pour echanger les données (certaines données) par internet depuis le programme.

voila comme j'ai une vingtaine de developpeurs differents qui on posé des question sur le forum je pense qu'il y a en a plus et qu'ils pourronts mettre leur eperience dans le domaine (tous ne veulent pas apparaitre dans la partie reference de SQLManagerX ) j'en connais aussi d'autre qui ne frequente pas ce forum (dommage) et qui sont plus sur les news (fr.comp.developpement.agl.windev) ou sur developpez.net
.

une erreur peut s'avérer exacte ! il suffit que celui qui la commise se soit trompé...

Bon dev
[b]@+[/b]

[url]http://www.Emidev.fr[/url]
Répondre
#3
Ok. En fait j'essaye de l'utiliser dans mon appli mais je n'y arrive pas et pourtant j'ai passer pas mal de temps dessus.

Si tu connais quelqu'un qui pourrais me guider j'en serais vraiment très content. En attendant je vais galérer dessus et persister car c'est le seul moyen apparemment en windev pour avoir un accès sécurisé à une base SQL et que les id ne soient pas dans le logiciel.

Merci pour ta réponse Firetox.
Répondre
#4
IL y a un forum sur le site mais sinon comme j'en suis le createur tu peux poser tes questions je pourrais surement te repondre.

petit tuto rapide

Code :
editer le fichier connect.php pour mettre les elements de connexion et la cle de cryptage (eviter les numeriques dans la cle)
deposer les 3 fichiers : php4wd.php, connect.php, phpzip.php sur l'espace web

ensuite dans le projet windev (incorporer la classe c_php4wd)
et dans l'init du porjet
Code :
monAcces est un c_php4wd()

// suivant le type de base (ORACLE,MSSQL,SQLITE,FB,POSTGRESQL)
monAccess:TypeBase = "MYSQL"

// mettre ici la meme cle que dans le fichier connect
monAccess:CleCryptage = "AABBCCDDEEFF"

ensuite il ne reste plus qu'a ce connecter
Code :
v_retCode = monAccess:mySQLConnecte("http://monsite.com/php4wd.php","","","NomDeLaBase")
IF (v_retCode = True) THEN
       info("Connexion ok")
ELSE
    Erreur("Impossible de se connecter à la base de donnée .", "Erreur n° " + monAccess:mySQLErreur, monAccess:mySQLGetErrorMessage())
END

et executer des requetes
Code :
// on peut envoyez des scripts SQL en separant les requetes par ;
// la derniere enverra son resultat en lecture
retCode = monAccess:mySQLExec("SELECT work_list, lnotes  FROM work_list  LIMIT 100 ; SELECT work_list  FROM work_list  LIMIT 10 ", 0)
IF (retCode=1) THEN
    monAccess:mySQLPremier(0)
    WHILE (NOT monAccess:mySQLEnDehors)
        custom_ID = monAccess:mySQLCol(0,1)
        custom_Name = monAccess:mySQLCol(0,2)
        TableAjoute("TABLE1", custom_ID + TAB + custom_Name + TAB + custom_date)
        monAccess:mySQLSuivant(0)
    END
ELSE
    Erreur("Erreur n° " + monAccess:mySQLErreur, monAccess:mySQLGetErrorMessage())
END

voila ensuite une fois ce principe connu tu vois que cela ne change pas des commandes SQLexec de windev

disponible sur <!-- w --><a class="postlink" href="http://www.SQLManagerX.com">www.SQLManagerX.com</a><!-- w -->
.

une erreur peut s'avérer exacte ! il suffit que celui qui la commise se soit trompé...

Bon dev
[b]@+[/b]

[url]http://www.Emidev.fr[/url]
Répondre
#5
Merci pour ta réponse aussi rapide.

Je vais essayer tout ça, en fait la chose qui m'as perturber c'est que dans le tuto pdf fourni avec le dl il parle d'une dll qui se trouverais dans le dossier "windev7", que je ne trouve pas. Ensuite il y est marqué d'importer toute les classes du projet... En bref ton petit tuto à l'air beaucoup plus simple Smile

Je vais essayer tout ça en rentrant du boulo cette nuit, et je te tiens au courant.

Merci pour ton aide et surtout merci de proposer des solutions comme celle ci pour les personnes comme moi qui n'ont pas un niveau d'expert et qui veulent faire des choses complexes comme ça.
Répondre
#6
J'ai tester ça dessuite et j'ai "Connexion ok" donc un grand merci à toi Firetox.

Il me reste plus qu'a faire les requêtes pour remplir mes tables et c'est ok.

Je ne manquerais pas de mettre les remerciements pour SQLmanagerX et son créateur dans le logiciel (qui sera distribuer gratuitement à 8000 membres).

Encore merci Smile
Répondre
#7
Je n'arrive pas à remplir ma table avec la requête :

Code :
Custom_ID est un numérique

V_retCode = monAcces:mySQLExec("SELECT id_pseudo FROM membre LIMIT 100 ",0)

SI (V_retCode=1) ALORS
    monAcces:mySQLPremier(0)
    TANTQUE (PAS monAcces:mySQLEnDehors)
        Custom_ID = monAcces:mySQLCol(0,1)
        //    custom_Name = monAcces:mySQLCol(0,2)
        TableAjoute("TABLE_Table1", Custom_ID)
        monAcces:mySQLSuivant(0)
    FIN
SINON
    Erreur("Erreur n° " + monAcces:mySQLErreur, monAcces:mySQLGetErrorMessage())
FIN
Quant je clic sur le bouton rien ne se passe sur la table et je n'ai aucun message d'erreur...
Répondre
#8
et en mode trace
avec un point d'arret sur mySQLExec pour voir le retour de httpRequete dans la classe pour voir le message du serveur
.

une erreur peut s'avérer exacte ! il suffit que celui qui la commise se soit trompé...

Bon dev
[b]@+[/b]

[url]http://www.Emidev.fr[/url]
Répondre
#9
Salut,
En mode Trace j'ai 1

Le point d'arrêt :

v_retCode : vrai

monAcces :
Membre Valeur
mySQL4WDInst 0
myOldQuery "SHOW Tables from XXXXXX"
myMaxRequestNumber 5
myInsertStatement ""
myInsertBuffer ""
myBase "XXXXXX"
mySQLEstConnecte Vrai
Resultat1 tableau de 0 chaîne
Resultat2 tableau de 0 chaîne
Resultat3 tableau de 0 chaîne
Resultat4 tableau de 0 chaîne
Resultat5 tableau de 0 chaîne
bindres tableau de 0 chaîne
bind ""
bindVal ""
BindLen ""
BindType ""
colonne tableau de 5 entier
ligne tableau de 5 entier
indiceEncour tableau de 5 entier
URL "XXXXXXXXXXXXXXXXXXXXXXXXXXX"
tailleCleAjuste 24
session ""
PocketPC Faux
proxiServeur ""
proxiPort 0
proxiUser ""
proxiPAss ""
methodeZip Faux
CryptRetour Vrai
CleCryptage "XXXXXXXXXXXXXXXXXXXXX"
mySQLErreur 0
mySQLEnDehors Vrai
mySQLDebugMode Faux
mySQLTransactionEnCours Faux
MysqlNbFois 20
ErreurText ""
TypeBase "MYSQL"
mySQLDebut 1
mySQLFin 2
mySQLAnnule 3
PS_VARIN 1
PS_VAROUT 2
PS_VARINOUT 3
PS_TYPECHAINE 1
PS_TYPEINTEGER 2
PS_TYPEDOUBLE 3
PS_TYPEREF 4

HNumEnr : -1
HEnDehors: vrai
Htrouve : Faux
HErreur : 0
Répondre
#10
Bonjour,

le point d'arret est a mettre dans mySQLexec a la ligne 56
Code :
    //On récupère un fichier zip crypté
    SI :PocketPC ALORS
        v_chaineResult = AnsiVersUnicode(HTTPDonneRésultat())
    SINON
        v_chaineResult = HTTPDonneRésultat()
    FIN
// point d'arret ici pour voir ce qu'il y a dans v_chaineResult
    SI Position(v_chaineResult,"Failed - err") > 0 ALORS
        :ErreurText = Remplace(ExtraitChaîne(v_chaineResult,2,"Failed - err"),"</p>","")
        RENVOYER Faux
    FIN

car mySQLendehors est a vrai donc soit il est pas reellement connecté soit il y a une erreur dans la requete (attention aux minuscule/ majuscule si le serveur mySQL est sous unix)

en regardant ce qu'il y a dans v_chaineResult on voit ce que le serveur http a renvoyé donc ce que le script php4wd a fait et quel resultat on a recuperé
.

une erreur peut s'avérer exacte ! il suffit que celui qui la commise se soit trompé...

Bon dev
[b]@+[/b]

[url]http://www.Emidev.fr[/url]
Répondre


Sujets apparemment similaires…
Sujet Auteur Réponses Affichages Dernier message
  Problème avec Composant 'WDGPU' MarcoPolo 11 5,979 01-07-2016, 09:36 AM
Dernier message: Daniel-Québec
  Composant interne ou Externe katikaden 2 2,659 30-06-2014, 02:55 PM
Dernier message: katikaden
  centrer composant externe bruno 2 1,481 24-06-2014, 08:53 AM
Dernier message: bruno
  Accès au code contenu dans un composant. gaymath2 0 954 02-07-2013, 08:46 AM
Dernier message: gaymath2
  Composant (ensemble de procédures) pouvant insérer,modifier gaymath2 4 2,159 26-06-2013, 01:17 PM
Dernier message: gaymath2
  Composant CCMenu ABDOU 6 1,656 06-09-2012, 04:32 PM
Dernier message: Daniel-Québec
  Composant Etiquette heazeN 2 1,182 07-08-2012, 09:50 AM
Dernier message: heazeN
  Au sujet du composant BalloonTip JAMESDEV 0 1,630 04-07-2012, 04:18 PM
Dernier message: JAMESDEV
  Création Composant Interne zighoud64 1 1,264 10-06-2012, 11:20 PM
Dernier message: Daniel-Québec
  Composant tactile driveflange 1 1,059 31-01-2012, 03:21 PM
Dernier message: Daniel-Québec

Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)