Een andere website wil gegevens uit mijn database hebben, hoe kan ik dat het beste mogelijk maken?

Er moet een berekening met die gegevens worden uitgevoerd en de uitkomst daarvan mag worden teruggekoppeld naar de klant (hij maakt dus geen contact met mijn DB maar moet de gegevens op een andere (enigszins) veilige manier krijgen). Ik dacht eerst aan een PHP file include maar dat kan niet extern volgens mij, of wel?

Toegevoegd na 57 minuten:
Een kleine toevoeging: liefst voer ik de berekening op mijn server uit zodat de manier waarop ik het bereken ook 'geheim' blijft. Is dat mogelijk met de gegeven antwoorden?

Weet jij het antwoord?

/2500

Het beste antwoord

Maak een XML-bestand met de gegevens. Dit bestand kun je opgezette tijden actualiseren door jouzelf, door een cronjob en een scriptje. Het XML-bestand maak je of openbaar beschikbaar of door middel van een wachtwoord en die geef je dan aan de klant door. Het voordeel is dat de klant die gegevens altijd kan ophalen zonder gedoe met direct inhaken in code of DB. Toegevoegd na 51 minuten: Het xml bestand is het resultaat van een script. Als jij in het script de berekening laat uitvoeren dan zal alleen het antwoord in het xml bestand verschijnen.

Laat nooit de buitenwereld rechtstreeks inloggen in jouw database. Dat is vragen om ellende of hackers. In de door jou geschetste situatie zou ik of regelmatig, zoals een ander als schreef, automatisch een bestand klaar zetten of ik zou (mysql???) een slave database op een andere server opzetten welke dan gelezen kan worden. Je originele database zal dan (als je de beveiliging goed heb opgezet) niet rechtstreeks benaderbaar zijn via internet. De buitenstaander kan dan een user met uitsluitend leesrechten op de slave krijgen met dan nog alleen grants op de data die die nodig heeft. Toegevoegd na 41 minuten: Op je toevoeging: Als er een volwaardige database aanwezig is kun je de berekeningen in je database zelf maken. Een database procedure voert een bewerking uit met behulp van aangeleverde parameters door de vrager. Dit hangt wel weer af van welk database systeem je gebruikt. (oracle is duur, maar kan dit uitstekend) Maar ook andere database systemen kunnen dat.Als bron een page van mysql toegevoegd. Als alternatief kun je altijd een bv in php geschreven procedure gebruiken welke opstart op aanvraag. Daarna het resultaat van die procedure terug sturen naar de aanvrager.

Bronnen:
http://dev.mysql.com/doc/refman/5.0/en/cre...

Als je zelf de data beschikbaar hebt en ook de berekening zelf kunt doen, dan kun je de uitkomst toch zelf beschikbaar stellen aan de andere website ? Die andere website stuurt hun klant een PHP pagina van jou (evt. ge-integreerd mbv een iframe) , met HUN variabelen posted , en jij levert de uitkomst af als HTML of desnoods als afbeelding of in Javascript-variabelen etc.

Je kunt een webservice gaan maken. Daarmee biedt jij een interface aan waarmee er data opgevraagd kan worden. Het is een soort van functie aanroep in programmeertalen, waarmee je argumenten kunt krijgen van de andere en een resultaat kunt teruggeven. Vraag me niet hoe je dit moet opzetten, dat is voor mij al te lang geleden. http://nl.wikipedia.org/wiki/Webservice

Inderdaad, gegeven je probleemstelling zou ik gaan voor een webservice. Sleutelwoorden zijn SOAP, REST of JSON. Let goed op de beveiliging; je wilt niet dat anderen ook jouw webservice aan kunnen roepen of het dataverkeer kunnen afluisteren. Dat afluisteren zal wel niet zo'n vaart lopen. Maar toch wil je wel iets van authenticatie. HTTPS encryptie is waarschijnlijk te duur (certificaten), dus je zou je data kunnen encrypten. Zoek een handige library die je het leven gemakkelijk maakt.

Stel zelf een vraag

Ben je op zoek naar het antwoord die ene vraag die je misschien al tijden achtervolgt?

/100