View Full Version : [VB + PHP] @@@ Interfacciamento tra i due linguaggi @@@
Come posso fare per interfacciare un CLIENT in VB.NET ed un SERVER in PHP ???
Cioe':
Io ho un software di "Gestione Magazzino in VB.NET e SQL Server 2000",
ed
un "sito internet in un server web Linux con PHP e MySQL",
vorrei aggiornare il mio e-commerce tramite il mio Software di gestione magazzino, come posso fare ???
WebServis in PHP gestito da VB.NET ???
se si come posso fare ??? ...segnalatemi alcuni link !!!
Dovrebbe bastare richiamare un link del PHP con VB...il problema è che i dati passano in chiaro...
I database MySQL è accessibile dall'esterno ?!?!?! In quel caso potresti fare direttamente l'aggiornamento tramite MyODBC...
E' quello il problema!!!
non tutti i Server ti danno l'accesso dall'esterno al Database e quindi e' un andicap.
voglio un metodo univoco per tutti i Server, che vado a colpo sicuro...
...come e' il metodo del Link ma i dati scoperti ???
Richiamando il link PHP...
http://www.tuoserver.it/pagina.php?azione=aggiungi&.... e successivamente gli passi tutti i dati da inserire (nella forma attributo=valore&)...
Ovviamente pagina.php la devi creare te ed a seconda dell'azione fare una query o un'altra su DB...
Come richaimare il link in VB.Net non lo so... Ci sarà qualcosa tipo HTTPConnection ?
Il problema è che in questo modo non solo i dati passano in chiaro, ma qualsiasi utente potrebbe aggiornare il database conoscendo i parametri da passargli...
C'è un altro metodo:
1) Crei con VB un file di testo contenente tutte le varie query da fare (con gli eventuali lock delle tabelle)...e lo chiami ad esempio query.txt... Tanto per creare più problemi a chi potrebbe leggere questo file potresti codificarlo anche con un algoritmo semplice (ad esempio con il base64...l'algoritmo di decodifica base64 è già presente in PHP)...
2) Ottieni la stringa md5 dal file e te la metti da parte (questa è utile per la sicurezza)...ti spiego dopo...
3) Fai l'upload di query.txt sul sito tramite un FTP magari sulla Home del sito...
4) Da VB richiami il programma PHP che si occuperà di fare l'aggiornamento... Si chiamerà ad esempio aggiorna.php:
http://tuoserver.it/aggiorna.php?nomefile=prova.txt&sign=stringa-md5
Ovviamente ti leggi i tuoi parametri da aggiorna.php...e dovrai fare :
1) calcoli la stringa md5 del file prova.txt e verifichi che sia uguale a quella passata dal link:
md5_file("prova.txt");
2) aprire il file e decodificarlo tramite la funzione base64_decode e magari puoi scrivertelo decodificato in un file intermedio (ad esempio tmp.txt) e cancelli prova.txt
3) ottieni il path assoluto per tmp.txt:
$path = realpath("./tmp.txt");
4) apri la connessione al DB MySQL, selezioni il DB ed esgui la query:
$query = "source ".$path.";"
Ed in questo modo hai fatto le operazioni che volevi sul database ;)
E' un po' complicato, ma è abbastanza sicuro... L'unico punto debole è la codifica base64... Per aumentare la sicurezza potresti implementare la codifica RC5 usando una password standard (o che varia secondo n algoritmo ben preciso da implementare su ambo i lati)...
http://freephp.html.it/articoli/view_articolo.asp?id=79
XML è solo un formato di scambio dei dati... I dati passano comunque in chiaro e non conviene... Passare la lista delle query o un file XML che contiene i dati è la stessa identica cosa ;)
L'unica cosa che cambia è che lasci al PHP l'onere di interpretare i dati XML e di trasformarlo nelle query...mentre nell'altro modo fai tutto tramite il programma in VB...
Questo ti può garantire una certa indipendenza di VB dal server usato da PHP...ma in ogni caso implica modifiche molto consistenti sul codice PHP nel caso che tu debba cambiare DBMS... Mentre nel caso del file con la lista delle query sarebbero necessarie modifiche sia al codice VB che a quello PHP (anche se solamente piccole modifiche)...
A te la scelta di passare un file XML o direttamente il file delle query...io preferisco il secondo che ti consente una totale libertà di azione sul server senza fare una sola modifica al cdice PHP (nel caso di XML se il progetto non è appropriato, se io volessi aggiungere una nuova operazione sul database ci sarebbe bisogno di modificare il codice PHP)...
Ad esempio con la lista delle query sarebbe semplicissimo creare backup delle tabelle da poter scaricare tramite FTP il tutto senza modificare una linea del codice PHP...
Riguardo alla sicurezza passare il file XML tramite HTTP non è una scelta vincente...anche se insieme al file viene passata una password (la password rimarrebbe in chiaro)... Con il metodo che ti avevo detto io l'autentificazione era automatica tramite la stringa md5 corrispondente al file...
In ogni caso il problema si risolverebbe se mi potessi connettere direttamente al Database MySQL da VB.NET !!!
grazie ai Driver MyOLEDB3 che installero nel mio PC Portatile dove gira l'applicazione Client, solo che (ARUBA :muro: ) non da il permesso di connessione dall'esterno al Database.....
mi dici un server che lo permette, ma economico !!!
cosi risolvo il problema.
Con MyOLEDB non credo tu possa fare una connessione remota...bastano i MyODBC ;)
Purtroppo non ne conosco...
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.