PDA

View Full Version : dialogo vb -> php


Black
05-02-2004, 23:53
ho la necesità di far dialogare una procedura visual basic 6 (stand alone sul pc) con uno script php su un server remoto che usa mysql.

Potrei fare benissimo fare l'apertura del db da vb e fare le query necessarie sempre da vb ma non mi sembra molto "sicuro".

Vorrei quindi :

lanciare da vb un URL dove risiede il php
esempio http://www.mio_sito.com/script.php?operazione=apridb

fare magari delle query
esempio http://www.mio_sito.com/script.php?query=select * from tabella

e ricevere in vb il risultato.

Qualcosa sa darmi qualche dritta per favore?
:rolleyes:

cionci
06-02-2004, 08:56
Perchè non ti sembra sicuro ?!?!!? E' sicuramente più sicuro che in questo modo...
MySQL permette la conenssione da remoto tramite il driver MyODBC...
I parametri di sicurezza di MySQL permettono di impostare su una certa tabella o DB i vari permessi solo a certi utenti...
Ogni utente può essere identificato non solo da username e password, ma anche tramite l'host o l'indirizzo ip...
In questo modo chiunque non provenga dalla amcchina su cui gira il programma VB non può accedere con quell'utente...

Black
06-02-2004, 09:08
mi sai dire dove posso trovare queste informazioni?

Il mio problema è appunto una eventuale "clonazione" del programma vb. Se riuscissi a dare i permessi solo a quel pc sarebbe la manna

Calcola però che potrei avere un numero spassionato di client che si collegano ad un unico db.

Grazie

cionci
06-02-2004, 09:12
La clonazione del programma non consentirebbe comunque la clonazione del DSN fatto con il driver MyODBC (le informazioni di accesso restano sul DSN)...
Comunque trovi come si fa con il comando GRANT di MySQL...

Black
06-02-2004, 09:21
ora leggo il manuale di mysql e vedo come farlo.

Nell'eventualità che questa soluzione non risultasse "comoda", non posso fare un discorso del tipo:

rs.open http://www.ciccio.com/script.php?operazione=apridb ?

(rs = recordset ado)

Ho trovato un esempio che usa questo metodo ma la comunicazione era tra vb -> asp e in asp usava l'xml per ritornare il dato (se vuoi ti allego questo esempio)

Black
06-02-2004, 09:29
Pensandoci però la questione del grant non mi sembra ottimale.

Probabilmente questo client va installato su 50 pc.
dovrei crearmi 50 user?

cionci
06-02-2004, 09:47
No, puoi specificare solo un parte dell'inidirizzo... Ad esempio puoi permettere di accedere aq 192.168.0.% (che indica tutta la rete 192.168.0.1-255)...

Black
06-02-2004, 09:48
il fatto è che questi pc non faranno parte di una rete.
saranno autonomi e si devono collegare ad un db su un server internet per reperire o aggiornare delle informazioni

cionci
06-02-2004, 10:07
Meglio allora fare un utente per ogni PC...
Inoltre quale sarebbe la sicurezza in più usando il PHP ? Non avresti comunque gli stessi problemi ?

Black
06-02-2004, 10:18
beh penso che siano assai i vantaggi:

- non avrei la connessione all'interno di vb con nome host, db e pwd in chiaro.
Ok che viene distribuito un eseguibile ma sappiamo tutti che le tecniche di reverse engineer ci sono ;)
Addirittura ci sono tool per riformare i sorgenti da un eseguibile :eek:

- posso cambiare nome db, user e pwd senza dover aggiornare tutti i client

- Gestirei meglio la concorrenza di più pc su un singolo record di una tabella.

cionci
06-02-2004, 13:15
Originariamente inviato da Black
- non avrei la connessione all'interno di vb con nome host, db e pwd in chiaro.
Non li avresti comunque in VB, anche con MySQL... Li avresti nel DSN che crei su MyODBC...
Originariamente inviato da Black
- posso cambiare nome db, user e pwd senza dover aggiornare tutti i client
Questo è vero (ma puoi studiare comunque un sistema dinamico di password)...
Ad esempio puoi fare in modo che la password venga aggiornata ogni tot giorni... Oppure semplicemente pui fare in modo che ci sia una sola password per ogni utente...
Originariamente inviato da Black
- Gestirei meglio la concorrenza di più pc su un singolo record di una tabella.
Falso...la concerrenza la puoi gestire anche MyODBC e sicuramente con meno overhead...

Ma mi spiegheresti come puoi fare in modo che un esterno non esegua il link al server php dal di fuori di VB ? Se copiassero l'eseguibile saresti non avresti comunque eliminato il problema...