[risolto] Modo migliore per collegare sito esterno al database

Gioweb

Nuovo Utente
2 Apr 2014
21
0
0
Ciao a tutti, ho un sito realizzato da me in asp/php (un po misto :)) che si appoggia su db mysql. Ho la necessità di far leggere una tabella di questo db in sola lettura ad un sito esterno. In pratica il sito esterno deve legere delle anagrafiche e mostrarle in più punti come sito esterno e app per smartfone. Cosa mi conviene fare per permettere questo passaggio in tutta sicurezza? Ringrazio per eventuali interventi!
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Personalmente non fornirei mai un accesso esterno ad un db mysql per un altra applicazione e ti consiglierei pertanto di pensare alla realizzazione di un sistema di webservices così chem strutturando delle apposite API, permetti alle applicazioni esterne di usufruire dei contenuti che decidi di mettere a disposizione e in totale controllo (se ad esempio decidi di costruire delle regole di autenticazione e permettere solo a determinati client di usufruire della risorsa).
 

Gioweb

Nuovo Utente
2 Apr 2014
21
0
0
Grazie, in parole povere mi consigli di distribuire i dati tramite una pagina (ad esempio php) che pesca dalla tabella del db esattamente i dati che voglio che siano visibili? In passato avevo utilizzato lo script sotto che restituiva i dati per uno storelocator. Così può essere efficace e sicuro?

PHP:
<?php
require("phpsqlajax_XXXXXXXXXXXXXXXXX.php");

function parseToXML($htmlStr) 
{ 
$xmlStr=str_replace('<','&lt;',$htmlStr); 
$xmlStr=str_replace('>','&gt;',$xmlStr); 
$xmlStr=str_replace('"','&quot;',$xmlStr); 
$xmlStr=str_replace('“','&quot;',$xmlStr); 
$xmlStr=str_replace('”','&quot;',$xmlStr); 
$xmlStr=str_replace("'",''',$xmlStr); 
$xmlStr=str_replace("’",''',$xmlStr);
$xmlStr=str_replace("&",'&amp;',$xmlStr);
$xmlStr=str_replace("°",'°',$xmlStr);
$xmlStr=str_replace("à",'à',$xmlStr); 
$xmlStr=str_replace("á",'á',$xmlStr); 
$xmlStr=str_replace("ò",'ò',$xmlStr);
$xmlStr=str_replace("ó",'ó',$xmlStr); 
$xmlStr=str_replace("è",'è',$xmlStr); 
$xmlStr=str_replace("é",'é	',$xmlStr); 
$xmlStr=str_replace("ì",'ì	',$xmlStr);
$xmlStr=str_replace("í",'í	',$xmlStr); 
$xmlStr=str_replace("ù",'ù	',$xmlStr);
$xmlStr=str_replace("ú",'ù	',$xmlStr); 
$xmlStr=str_replace("À",'À',$xmlStr); 
$xmlStr=str_replace("Á",'Á',$xmlStr); 
$xmlStr=str_replace("È",'È',$xmlStr); 
$xmlStr=str_replace("É",'É',$xmlStr); 
$xmlStr=str_replace("Ì",'Ì',$xmlStr); 
$xmlStr=str_replace("Í",'Í',$xmlStr); 
$xmlStr=str_replace("Ò",'Ò',$xmlStr); 
$xmlStr=str_replace("Ó",'Ó',$xmlStr); 
$xmlStr=str_replace("Ù",'Ù',$xmlStr); 
$xmlStr=str_replace("Ú",'Ú',$xmlStr);
$xmlStr=str_replace("«",'«',$xmlStr); 
$xmlStr=str_replace("»",'»',$xmlStr); 
$xmlStr=str_replace("¯",'¯',$xmlStr); 
$xmlStr=str_replace("®",'®',$xmlStr); 
$xmlStr=str_replace("©",'©',$xmlStr); 
$xmlStr=str_replace("…",'...',$xmlStr);
$xmlStr=str_replace("â",'â',$xmlStr);
$xmlStr=str_replace("Â",'Â',$xmlStr);
$xmlStr=str_replace("ê",'ê',$xmlStr);
$xmlStr=str_replace("î",'î',$xmlStr);
$xmlStr=str_replace("Î",'Î',$xmlStr);
$xmlStr=str_replace("ô",'ô',$xmlStr);
$xmlStr=str_replace("Ô",'Ô',$xmlStr);
$xmlStr=str_replace("û",'û',$xmlStr);
$xmlStr=str_replace("Û",'Û',$xmlStr);

return $xmlStr; 
} 

// Opens a connection to a MySQL server
$connection=mysql_connect ("mysql.XXXXXXXXXXXXXXX.it", $username, $password);
if (!$connection) {
  die('Not connected : ' . mysql_error());
}

// Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
  die ('Can\'t use db : ' . mysql_error());
}

// Select all the rows in the markers table
$query = "SELECT * FROM _markers_XXXXXXXXXXXXX WHERE 1";
$result = mysql_query($query);
if (!$result) {
  die('Invalid query: ' . mysql_error());
}

// header("Content-type: application/json");

$code = '';
$code .= 'var data = {"Store": ['; 

while ($row = @mysql_fetch_assoc($result)){  
  $code .= '{"id":' . $row['id'] . ', ';  
  $code .= '"name":"' . parseToXML($row['name']) . '", ';  
  $code .= '"address":"' . parseToXML($row['address']) . '", ';  
  $code .= '"lat":' . $row['lat'] . ', ';  
  $code .= '"lng":' . $row['lng'] . '}';  
  $code .= ', ';  
}; 
$code = substr($code, 0, -2); // questo se vuoi eliminare l'ultima "," 

$code .= ']}'; 

print $code;
?>
 

flameseeker

Utente Attivo
27 Nov 2013
699
0
0
Dal momento che il tuo script non usa connessioni esterne e non accetta parametri in input lato utente direi che sia più che affidabile.
A questo punto dipende da te se ti interessa fare in modo che i dati possono essere distribuiti solo ai client che imponi tu o meno (se i dati sono particolarmente critici o sensibili, la cosa migliore da fare sarebbe quella di farli passare cifrati per la rete).

Per il resto, secondo me ti converrebbe produrre un output json puro, che php integra in maniera nativa senza grossi problemi:

PHP:
#> la generazione dell'output del tuo codice diverrebbe così..
$code = array();

while ($row = @mysql_fetch_assoc($result)){  
  $code[] = $row;  
}

header("Content-type: application/json");
echo json_encode($code);



L'applicazione che invece ha bisogno dei dati potrebbe richiederli in questa maniera:
PHP:
<?php

$data = file_get_contents("url dello script di distribuzione");
$code = json_decode($data, true);

#> Da qui in poi $code è uguale a come è stato composto nell'altro script


ps: ho spostato la discussione in una sezione più appropriata a questo punto ;)
 
Ultima modifica:
Discussioni simili
Autore Titolo Forum Risposte Data
L (risolto) MySQL 0
B getElementById su piu id(Risolto) Javascript 7
L Esercitarsi con Js [RISOLTO] Javascript 4
C [RISOLTO]Inserimento variabile php in input html PHP 20
L risolto visualizzazione e ordinamento dati PHP 1
moustache [RISOLTO] SQL PHP IIS PHP 8
Sergio Unia Ricezione email con destinatari multipli [Risolto] PHP 2
L update tabelle in php mysql [risolto] PHP 6
M Semplice visualizzatore di immagini [risolto con plugin wp] PHP 7
L [RISOLTO] Stampa a video risultato count in html PHP 13
L [RISOLTO] Eliminare una discussione creata PHP 3
tomorc [HTML] Problema con scroll bar (risolto) HTML e CSS 0
A [PHP] Problema query insert [RISOLTO] PHP 14
B [PHP] recuperare IP dei server in load balancing [RISOLTO] PHP 3
K [RISOLTO] Problema Griglia Php+Mysql PHP 13
S [RISOLTO] aggiorna tabella da select option asp classic Classic ASP 7
elpirata [RISOLTO][Javascript] Datapicker e autocompletamento campo input Javascript 2
elpirata [RISOLTO][Mysql] Problema insert valori apostrofati MySQL 1
elpirata [RISOLTO][Mysql] Contare le occorrenze in un campo tipo varchar MySQL 2
G [MS Access] Gestione biglietti [RISOLTO] MS Access 2
G [MS Access] Casella combinata & Query [RISOLTO] MS Access 4
G [MS Access] Query mese corrente con conteggio [RISOLTO] MS Access 2
M [RISOLTO]Windows media player non mi funziona più su win 10 pro 64 bit Windows e Software 2
C [RISOLTO][PHP] Errore di sintassi PHP 8
IT9-Gpp [RISOLTO] Leggere variabile restituita da success Ajax 3
Kolop [RISOLTO][PHP] Problema Pagination PHP 2
C [RISOLTO][PHP] Funzione ONclick PHP 14
C [RISOLTO][PHP] Conteggio righe di una tabella PHP 4
N [PHP] Utilizzo variabili di sessione [Risolto] PHP 13
Tommy03 [RISOLTO][PHP] Webserver o devserver? PHP 2
Sergio Unia Recupero dati da una vecchia versione MySql [Risolto] MySQL 4
spider81man [PHP] Problemi cancellazione dato su DB [RISOLTO] PHP 1
A [RISOLTO]Inserimento Immagini da pc a MySql PHP 15
A [PHP] RISOLTO Invio Mail con Tabella PHP 2
felino Risolto - [Wordpress][WooCommerce] PayPal Checkout e campi di fatturazione WordPress 2
elpirata [PHP][RISOLTO] Sommare gli importi estratti da un ciclo while PHP 3
elpirata [PHP][RISOLTO] Effettuare la somma dei tempi di lavorazione PHP 3
elpirata [PHP] [RISOLTO]Sovrascrivere testo in una tabella PHP 2
A [RISOLTO]Recuperare dati inviati con json tramite php PHP 4
C [RISOLTO][PHP] Passaggio variabili senza refresh di pagina PHP 7
elpirata [PHP][RISOLTO] Errore di tipo Notice: Undefined index - Come risolvere quando si hanno tante var PHP 10
S Problema in PHP per invio file XML - RISOLTO- PHP 8
A [Javascript] [RISOLTO] Doppio "submit", in uno stesso "Form" , che puntino ad "action" diversi Javascript 1
marino51 [Risolto]videochat di messenger ha smesso di funzionare sul telefonino Smartphone e tablet 1
A [Javascript] [HTML] RISOLTO...Allungare un box all'apertura della pagina No Mouse over Javascript 9
ken_korn [Javascript][Risolto] browser.tab.Tabs.favIconUrl non funziona Javascript 5
A [RISOLTO] HighChart e PHP PHP 4
A [RISOLTO] PHP Selezionare tutti i file con stessa estensione PHP 2
A [RISOLTO] Table elaborata da codice PHP con dati da DB non visualizzata in IFRAME PHP 15
T [Photoshop] Problema creazione pennello personalizzato [RISOLTO] Photoshop 3

Discussioni simili