Login mot de passe
 
Menu Principal
Soutenir SQLManagerX
Certains nous ont demandés comment nous aider voici un lien pour nous soutenir


SQLManagerX
Dossiers
Accès SQLManagerX
Découvrez



SQLManagerX Pro


Qui est en ligne
5 utilisateur(s) en ligne (dont 1 sur Suite SQLManagerX)

Membre(s): 0
Invité(s): 5

plus...
Partenaires

http://www.TeeCod.fr
TeeCod


http://www.microsystem.fr
Microsystem


http://www.dag-system.fr/?lang=fr#
DAG SYSTEM


Suite SQLManagerX
[Retour | Afficher cette page en format imprimable]

Page soumise par Firetox - [Note : 9.00 (13 votes) | Noter ça !]


PHP4WD


Vidéos

https://www.youtube.com/channel/UCRCQH7SEudK1duTH7mIauuA

Version unique PHP4WX pour windev 19 et superieures


Telechargez PHP4WDX :Version 9.2.0.4

Cette version devient unique, pour mobile et windev il suffit d'intégrer la classe dans le projet
les scripts ont ete modifié pour recuperer le fonctionnement de cryptRetour et Zip : il n'y a plus que 2 fichiers : PHP4WD.PHP et CONNECT.PHP la fonction zip est maintenant incluse dans php donc plus la peine d'avoir un autre fichier include

pour cexu qui utilise windev mobile 19 il faudra mettre en commentaire les erreur sur les methode mySQLTable qui n'est pas autorisé, a partir de la 20 windev mobile sait gérer les tables donc pas de probleme particulier

pour les utilisateur de ADO ou ODBC : dans windev il existe un membre :typeBaseADO qui faut postionner au type de base (ex typeBase="ADO" :TypeBaseADO = 'MSSQL" pour un acces SQLserver par ADO)

Introduction

[9.2.0.4] ajout des membres :
dataHexa : pour activer ou desactiver le retour en hexa
modeUTF8 = vrai ou faux pour activer ou desactiver le retour en UTF8
methodeZip = retour en zip ou non
CryptRetour : Crypte les données au retour
normalement les mebres peuvent etre cumulable le code des methode a simplifier la methode mySQLExec et permet de gerer chaque membre simplement dans le code et de façon presque autonome
au final les 4 membres permettant de gerer au mieux les differents retour ou config du script

[9.2.0.0]
Modification des scripts : suppression du fichier pkzip.php
Modification de la classe (1 seule classe pour windev et windev mobile voir meme pour webDev)
Modification de la methode mySQLExec (CryptRetour et MethodeZip fonctionnent)
Modification aussi de la recuperation des erreur (connexion, SQL, etc...) ce code empeche mainteant le bouclage infini parfois constaté
Ajout du membre typeBaseADO pour identifier la base si on passe par un acces ADO ou ODBC pour les 2 il faut remplir le mebre dans windev

[9.1.0.0] et [8.6.0.0]
Modification des script et ajout des acces par ADO et ODBC pour toutes les bases non listées (test fait en mobile ou windev sur SQLserver = tout fonctionne bien
donc maintenant php4WD permet a windev mobile de ce connecter a n'importe quelle base de données accessible par php. l'ouverture s'agrandie

[8.5.0.0]
Ajout du membre globale :alphabet pour pouvoir le changer a lavolée et pour la classe et surtout la methode mySQLExec il suffit de position le membre par
MonAcces:alphabet = AlphabetAnsi
par exemple

[7.0.0.6]
Modification du script php4wd.
modification pour PDO (MySQL, SQLServer) et modification pour php7

[7.0.0.4]
Modification du script php4wd.
Ajout d'une methode de test
Refonte du code pour opitmisation et ajout des nouveaux acces PDO mysql, PDO SQLserver, MySQLi
Detection du bon moteur mySQL de php par le script (utilisera dans l'ordre mysq,, mysqlLi, PDOMysql)
Modification des classes windev et windev Mobile pour optimisation

[6.0.0.1]
modification des methodes pour optimisation (mySQLExec, cryptage) suppression de extraitchaine qui ralenti beaucoup sur le Exec par des  positions (on divise le temps par 10 et +  !!!!)

Bug sur methode zip + crypteRetour reglé . les mode sont maintenant tous
valident et fonctionnent parfaitement

[5.0.0.5]
mise a jour des scripts pour eviter les messages d'erreur et warning sur les versions php5

[5.0.0.4]
Modification pour SQLite Sqlite_fetch_row est remplace par sqlite_fetch_array. en php5 fetch_row n'existe plus

[5.0.0.3]: mise a jour pour acceder a firebird depuis php4wd. pour l'instant ni les procedures stockées, ni les blob sont actif dans la classe. mais les requetes et SQLManagerX fonctionnent tres bien avec cette version. testée sur apache, php5, FireBird 1.5

[5.0.0.2] : mise a jours des scripts. avec certaines configuration de php il pouvait être renvoyé un warning sur les requetes SQL update, delete et autres requetes ne revoyant pas de résultat. le nouveau script php4wd.php regle ce probleme.

Ce projet permet un accès à aux bases de données SQL sur des sites déportés au travers d'une couche php. Il est composé d'une fenêtre de test, d'une classe et de 3 scripts php.

ATTTENTION les scripts et la classe doivent avoir tous le meme numero de version. Si ce n'est pas le cas contactez nous un lien ne doit pas etre a jour.

POUR LA CONNEXION VOUS DEVEZ SPECIFIER LA BASE :
mySQLConnecte("www.SQLManagerX.com/php4wd.php","","","maBase")

Exemple Appel de procedure sous oracle :

i est un entier
v_res est une chaîne

// procedure avec 1 parametre en entree et 3 en sortie

CONVSQL:mysqlCloseBind()
CONVSQL:MySQLDefBind(1,"TESTPIN",CONVSQL:PS_VARIN,CONVSQL:PS_TYPEINTEGER,20)
CONVSQL:MySQLDefBind(2,"TESTCHA",CONVSQL:PS_VAROUT,CONVSQL:PS_TYPECHAINE)
CONVSQL:MySQLDefBind(3,"TESTINT",CONVSQL:PS_VAROUT,CONVSQL:PS_TYPEINTEGER)
CONVSQL:MySQLDefBind(4,"TESTDAT",CONVSQL:PS_VAROUT,CONVSQL:PS_TYPECHAINE)
CONVSQL:MySQLDefBind(5,"TESTDBL",CONVSQL:PS_VAROUT,CONVSQL:PS_TYPEDOUBLE)

SI CONVSQL:MySQLExec("TESTPS(:TESTPIN,:TESTCHA,:TESTINT,:TESTDAT,:TESTDBL)",1) ALORS
 
 // recuperation des parametres envoyés
 POUR i=2 A 5
  CONVSQL:mySQLGetBind(i,v_res)
  Trace(v_res)
 FIN

 // recuperation du recordSet renvoyé par la procedure si il y en a un
 CONVSQL:mySQLPremier(1)
 TANTQUE PAS CONVSQL:mySQLendehors
  Trace(CONVSQL:MySQLLitLigne(1))
  CONVSQL:mySQLSuivant(1)
 FIN 
FIN
CONVSQL:mysqlferme(1)
CONVSQL:mysqlCloseBind()

 

Exemple d'appel d'une procedue sous SQLServer :
v_reponse est une chaîne
i est un entier

CONVSQL:MySQLCloseBind()

//premier parametre :@IN1
CONVSQL:mySQLDefBind(1,"@sval",CONVSQL:PS_VARINOUT,CONVSQL:PS_TYPECHAINE,"Franck")

// deuxieme parametre : en entree / sortieentier
CONVSQL:mySQLDefBind(2,"@intval",CONVSQL:PS_VARINOUT,CONVSQL:PS_TYPEINTEGER,50)

// troisiem eparametre en entee sortie maischaine
CONVSQL:mySQLDefBind(3,"@floatval",CONVSQL:PS_VARINOUT,CONVSQL:PS_TYPEDOUBLE,2.1416)

v_req est une chaîne

v_req += "TestPSSQLServer"

IF(CONVSQL:MySQLExecPS(v_req,1)) THEN

 // recuperation des parametres envoyés
 CONVSQL:mySQLGetBind(1,v_reponse)
 Trace(v_reponse)
 CONVSQL:mySQLGetBind(2,v_reponse)
 Trace(v_reponse)
 CONVSQL:mySQLGetBind(3,v_reponse)
 Trace(v_reponse)
 
 // recuperation du recordSet renvoyé par la procedure si il y en a un
 CONVSQL:mySQLPremier(1)
 TANTQUE PAS CONVSQL:mySQLendehors
  Trace(CONVSQL:MySQLLitLigne(1))
  CONVSQL:mySQLSuivant(1)
 FIN
ELSE
 Erreur(CONVSQL:mySQLGetErrorMessage())
END
CONVSQL:MySQLCloseBind()
CONVSQL:mySQLFerme(1)

 

Ce projet est maintenu par Frédéric Emprin.

Principe

Le fonctionnement est assez simple. Il reprend le principe de l'accès natif mySQL puisque depuis windev, la classe possède les même méthodes. La classe envoie les requêtes cryptées par une clé publique et privée au script php se trouvant sur le site web permettant l'accès a la base MySQL. Le script exécute la requête et récupère le résultat et le transmet au programme windev par http. La classe du programme windev lit le résultat et le conserve en mémoire (ce que font les dll des accès natif). Ensuite la classe Php4Wd gère ce résultat. la cle public est celle qui sert pour l'élaboration de la cle privée, qui permet le cryptage et le décryptage. les requetes sont envoyé cryptée et le resultat envoyé par le script PHP egalement. Ne transitent sur le reseau que des chaines cryptees permettant ainsi une securite maximum sur les données envoyées et recues. les cles n'etant pas envoyées sur le reseau il est impossible de decrypter les chaines tansitant entre le programme windev et les script php. 

Pré-requis : Il y a une constante dans la classe K_PUBLIC_KEY que vous pouvez modifier : attention il y a la même public key dans les 2 scripts.

Méthode pour intégrer PHP4WD à votre projet :

  1. Ouvrir le fichier connect.php et changez les infos de connexions
  2. Mettre les 2 fichiers sur votre site internet (penser à éditer le php4wd.php si vous changer le chemin du fichier connect - dans un répertoire privé par exemple
  3. Intégrer la classe php4WD dans votre projet, elle se présente comme un acces natif et a les mêmes méthodes
    Info : la méthode connect attend une adresse URL ex: convSQL:mySQLConnecte(" http://www.monsite.com/php4wd.php ") c'est l'adresse du script php

Compléments

PHP4WD permet de travailler avec toutes bases se trouvant sur un serveur HTTP et pour laquelle il existe un connecteur PHP disponible et installé.

 

L’utilité de PHP4WD n’est plus à démontrer dans le cadre d’accès aux bases de données sur les sites Internet pour lesquels les bases sont accessibles uniquement à partir du site WEB.

La puissance de PHP4WD est décuplée dans le cadre d’utilisation d’application sur une architecture type WEB.

 

Couche Client

Couche Transport http

Serveur WEB/BASE

 

Les avantages de PHP4WD sont multiples :

·         Accès à la base géré au niveau du serveur HTTP/PHP (connexion, déconnexion en fonction de l’activité…).

·         Sécurisation des données par l’utilisation du protocole HTTPS.

·         Fonctionnement des applications en mode Wifi/Bluetooth.

·         Fonctionnement des applications sur le réseau Internet ou Intranet.

·         Accès indépendant de la base.

·         WinDevMobile peut profiter du même accès que WinDev pour accéder à toutes les bases sur le serveur.

 

 

Utiliser PHP4WD

c’est faire du client riche sur une architecture WEB

Tout en conservant ses habitudes de programmation sur WinDev.



[Retour | Afficher cette page en format imprimable]

Page soumise par Firetox - [Note : 9.00 (13 votes) | Noter ça !]
Copyright: © 2004 By SQLManagerX
WinDev©, WebDev© et HyperFile© sont des marques déposées par PCSoft.
By Firetox
IMAGO:THEMES Theme Design by IMAGO DESIGN CORP.