IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Web & réseau Delphi Discussion :

Interaction Delphi et PHP [Tutoriel]


Sujet :

Web & réseau Delphi

  1. #1
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut Interaction Delphi et PHP
    Salut!

    Perso, pour mes applications non locales, je n'utilise pas de composant de bdd avec Delphi, mais j'utilise des scripts PHP (accès plus sécurisé) que j'appelle depuis mon application Delphi tout simplement via des requêtes http vers mon serveur. Les avantages sont principalement :
    • L'accès restreint aux données de ma (mes) bdd(s)
    • Le fait de ne pas avoir à fournir le login d'accès de la bdd dans le programme
    • Le fait de pouvoir mettre à jour les scripts sans avoir à redistribuer un nouvel EXE aux utilisateurs
    • La facilité du déploiement (l'utilisateur n'a rien de plus à installer)
    • Le fait de ne pas avoir à installer un composant suplémentaire Delphi ou utiliser une DLL pour l'accès SQL
    • La compatibilité du programme avec les différents systèmes existants

    Si tu veux un exemple, demande-moi, à+

    Messages déplacé

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 89
    Par défaut
    Salut Sub0,

    Alors là tu m'intéresses... Comment fais-tu pour appeler des scripts PHP depuis ton appli ?
    Et pas de login ? Donc les infos sont dans le script ?

    Un petit exemple ? Se serait nickel...
    Merci

  3. #3
    Membre confirmé Avatar de [Silk]
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2005
    Messages : 198
    Par défaut
    Salut,
    Sub0 moi aussi je suis interessé par ta technique si tu pouvais montrer quelques sources sa serait super simpa !

  4. #4
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Cela peut intérresser pas mal de développeurs effectivement car certains hébergeurs (de plus en plus ?) bloquent l'accès externe des bases de données. Les composants SGBD ne fonctionnent plus dans ce cas.

    • Le principe : La solution que j'ai adopté est d'utiliser un script PHP hébergé sur le serveur qui fait l'intermédiaire entre l'application Delphi et la BDD. En fait, c'est comme si l'on éxécutait un script PHP avec un TWebBrowser, donc rien d'exceptionnel en soi. Cependant, il est possible d'utiliser différents composants d'accès HTTP. Perso, je préfère THttpCli d'ICS, mais il existe aussi IDHttp d'INDY et bien d'autres encore... L'utilisation d'un compo HTTP permet de pouvoir ajouter une barre de progression, un TimeOut, d'effectuer des requêtes HTTP en Get ou Post, etc...

    Voici un message dans lequel cette méthode est utilisée avec un composant standart d'accès http (WinInet) :
    http://www.developpez.net/forums/sho...php?t=29073#14

    • La sécurité : L'accès aux scripts PHP est sécurisé avec un mot de passe différent de celui de la base. Pour augmenter encore la sécurité, il est même possible de faire un système d'espace membre pour les applications (inscription par mail), de donner des droits aux utilisateurs, etc. Vous pouvez même utiliser SSL si vous le désirez. Bref, tout est possible à ce niveau.

    • Les requêtes SQL peuvent être prédéfinies à l'avance dans le script PHP ce qui augmentent la sécurité. L'application Delphi envoit les paramètres de la requête au script. Ces paramètres sont vérifiés, filtrés avant d'être utilisés.

    Je vous prépare un petit article plus complet avec un script PHP sécurisé, à+

  5. #5
    Membre confirmé Avatar de [Silk]
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2005
    Messages
    198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Mai 2005
    Messages : 198
    Par défaut
    Citation Envoyé par Sub0
    Je vous prépare un petit article plus complet avec un script PHP sécurisé
    très interessant, on attends ça impatiement

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 89
    Par défaut
    Je dirais même plus : très intéressant comme concept...

  7. #7
    Membre éclairé
    Avatar de xenos
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    400
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2005
    Messages : 400
    Par défaut
    Citation Envoyé par qi130
    Il y a aussi MySQL via son API
    Ce tutorial fait référence à l'API que l'on peut télécharger là : http://www.fichtner.net/delphi/mysql.delphi.phtml.

    Malheureusement il s'agit d'une API développée pour mySQL 3.23, alors que la version 5.1 existe déjà ...

    Est-ce que malgré tout c'est 100% compatible ? Si non, où pourrait on trouver une API compatible avec la dernière version de mySQL ?

  8. #8
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    J'aimerais savoir quel genre d'applications vous plairaient pour illustrer cet article ?
    Vos idées m'aideront à trouver un exemple de code qui plaira à tous.

  9. #9
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Cela m'interesse aussi!
    Merci Sub0 pour l'article en cours de création.
    Pour ma part, je n'ai pas trop d'idée qui me vienne à l'esprit ... je laisse donc la place aux autres

    J'attends avec impatience cet article

  10. #10
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Je cherche quelque chose de très simple et qui soit fonctionnel... Je peux vous montrer par exemple, comment lister toutes les tables d'une base, et ensuite, lister tous les champs d'une table et afficher les enregistrements dans une grille pour ajouter / modifier / supprimer un enregistrement... Je pensais autrement à un petit espace membre, mais cela risque de vous faire beaucoups de code PHP à digérer. J'attend vos idées.

  11. #11
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Personnellement, je trouve que l'espace membre est une très bonne idée ! Enfin, ca c'est mon avis! Après si cela ne plait pas ... on peut changer!
    Le PHP, ne me fait pas peur

    Merci Sub0

  12. #12
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 141
    Par défaut
    Bonjour à tous,

    Je tombe par hasard sur ce topic n'ayant plus rien à voir avec la solution gratuite du début !!! A ce propos,Adel1425 aura bientôt une solution gratuite puisque la nouvelle gamme Delphi va proposer dès septembre une version gratuite avec accès aux bases de données. Voir http://www.turboexplorer.com/

    Je reviens à PHP, je pense que l'on pourrait ouvrir un nouveau topic genre accès Php sous Delphi car grâce à Sub0 on est parti sur un sujet qui intéresse beaucoup de gens. Je travaille dessus depuis qq jours et les lumières de sub0 seront vraiment les bienvenues.

    En ce qui concerne ton article Sub0, ce qui est le plus intressant c'est le passage de paramètres et la récupération des résultats dans l'appli Delphi.

    Actuellement je travaille sur une appli devant récupérer des réservations effectuées sur le web.

    Etape 1 : l'appli Delphi envoie des paramètres de dates par exemple : date debut -> 13/08/06, Date fin -> aujourd'hui

    Etape 2 : le script Php lance la requête avec les paramètres de date sur la bdd web

    Etape 3 : récupération des résultats pour mettre à jour la bdd locale à l'application Delphi

    Etape 4 : l'appli Delphi lance un nouveau script Php indiquant ds la bdd web que toutes les résas situées entre le 13/08/06 et aujourd'hui ont été récupérées et validées.

    Merci Sub0 !!!

  13. #13
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Salut giloutho !

    Ravi que ce projet intérresse autant de monde !
    Alors dans ton cas, tu mets à jour une bdd locale. C'est une bonne idée, mais que je n'utiliserai pas pour le moment, surtout que ce n'est pas valable dans le cas d'un espace membre... Non, en fait, le projet est surtout d'utiliser Delphi comme un navigateur avec une bdd distante.

    Sinon, la question que tu poses est effectivement la plus intérressante : Comment procède-t-on pour le passage des paramètres et la récupération des résultats dans l'appli Delphi ? Justement, l'espace membre répondra précisément à cette question. Je peux déjà dire que cette démo utilisera le composant web d'ICS (THttpCli) car il est gratuit contrairement à Indy (IdHttp). Il permettra de poster des paramètres et de les récupérer dans le script PHP avec le tableau $_POST. Cela dit, il est même possible d'utiliser un simple TWebBrowser (voir ce sujet).

    En ce qui concerne la récupération des données avec Delphi, j'utilise principalement la fonction echo de PHP pour fournir du texte (voir cette démo), mais on peut également envisager d'enregistrer le résultat de la requête dans un fichier puis télécharger ce fichier. Cela est par exemple valable pour les requêtes dépassant la limite de temps de réponse du serveur (généralement 30s) ou pour ajouter un mot de passe dans une archive ZIP et protéger les données...

  14. #14
    Membre confirmé
    Inscrit en
    Janvier 2005
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 103
    Par défaut
    C’est marrant que vous parliez de ce sujet, car récemment j’ai eu besoin de faire communiquer mon application, écrite en Delphi, et une base MySql à partir de scripts php. Pour cela j’ai utilisé l’un des composants Indy et fais des POST pour passer des paramètres à mon script php. Cette méthode fonctionne très bien.

    Maintenant l’exemple d’une zone membre m’intéresserait beaucoup, car j’aimerai savoir comment vérifier qu’un membre (Client Delphi) est bien identifié sur le site. J’imagine qu’il faut utiliser un système de Table qui renseigne toutes les personnes identifiées avec leur adresse IP et l’heure de connexion le tout relier un Time-out. Mais est ce que l’on peut utiliser les sessions php avec Delphi ?

  15. #15
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par rezuss
    Mais est ce que l’on peut utiliser les sessions php avec Delphi ?
    Bien entendu ainsi que les cookies aussi

  16. #16
    Membre chevronné Avatar de chtiot
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    385
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 385
    Par défaut
    Citation Envoyé par Sub0
    Je peux vous montrer par exemple, comment lister toutes les tables d'une base, et ensuite, lister tous les champs d'une table et afficher les enregistrements dans une grille pour ajouter / modifier / supprimer un enregistrement
    Salut, j'aimerai bien voir celà.

    merci à toi

  17. #17
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Citation Envoyé par chtiot
    Salut, j'aimerai bien voir celà.

    merci à toi
    Je me doutais bien que cela allait vous intéresser. Dans un 1er temps, je termine l'article contenant le code du petit espace membre, cela servira d'introduction au système. Ensuite, je réaliserai le programme d'administration de cet espace membre où l'admin pourra visualiser et modifier les données de la table. Pour info, j'ai écris l'article hier soir et je suis justement en train de coder l'espace membre à présent.

  18. #18
    Rédacteur/Modérateur
    Avatar de ero-sennin
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    2 965
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2005
    Messages : 2 965
    Par défaut
    Merci Sub!

    Bonne Continuation pour ton article ... Je sens que l'on va bien apprécier !

  19. #19
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    141
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2004
    Messages : 141
    Par défaut
    Merci Sub... je suis en plein dedans avec mon petit projet expliqué plus haut... je compte bien m'appuyer sur ton article pour avancer plus vite...

    Bon courage

  20. #20
    Membre Expert
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Par défaut
    Ce sera prêt ce soir
    Surtout en espèrant que ma méthode vous conviendra... c'est pas évident
    Dans tous les cas, rien n'est figé.

Discussions similaires

  1. [Delphi for PHP] Des avis ?
    Par MiJack dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 16/07/2007, 23h12
  2. [Delphi for PHP] En téléchargement chez Code Gear
    Par octal dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 3
    Dernier message: 03/04/2007, 14h06
  3. Interaction variable JS -> php
    Par Fooshi dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 07/03/2007, 10h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo