String uit andere site
Is het mogelijk dat ik op enkele domeinnamen op een andere server gegevens uit de database daarvan haal, maar dat ik op de domeinnaam van de database bepaal welke gegevens en dat de mensen die de gegevens eruit halen NIET de inloggegevens van de database kunnen halen.
Ik dacht aan een API, maar hoe te werk?
Heb je zelf het beheer over de website op de andere domeinnaam?
Ik heb het beheer over de andere domeinnamen, maar anderen het hoofdbeheer, die kunnen mij de toegang ontzeggen.
Opzich is een API bouwen niet heel lastig, je moet gewoon aan de hand van GET-requests de juiste query kunnen generen, en de juiste output leveren. Dit kan gewoon HTML zijn, maar ook XML of JSON.
Het laatste wordt veel gebruikt tegenwoordig.
Gewijzigd op 09/09/2015 16:15:09 door - Ariën -
Toevoeging op 09/09/2015 16:51:41:
Overigens wil ik ook controleren of diegene wel toegang heeft tot mij, door een unieke code, dat kan gewoon in de url meegegeven worden waar die het haalt toch? api.php?key=4898292982982
Kan je wat meer concreter vertellen waar de data vandaan komt, en het het opgeslagen en geformatteerd is?
De data komt uit een database, en is platte tekst en 1 kolom is html.
Ikzelf zou geen HTML meegeven naar de bezoeker, omdat hij vast zijn eigen opmaakt wilt gebruiken. Als je diverse soorten data hebt (productnamen, beschrijving, prijzen etc..) dan kan je die elk in een eigen array-element plaatsen.
Hoe kan ik nu met de code van eddy op mijn domeinnaam die data weer ophalen bij de andere site?
En kan het niet gewoon met een string inplaats van json?
Ja, je kan het ook als losse string meegeven. Verder kan je met de basic MySQLi-functies wel een query maken en deze fetchen, naar een zichtbaar resultaat.
Toevoeging op 09/09/2015 18:38:50:
Dus de andere site
file_get_contents kun je de gegevens van je andere website halen.
met Gewijzigd op 09/09/2015 18:52:58 door Bo Ter Ham
Stel ik wil de string $price ophalen,
uit deze pagina:
Code (php)
En dan niet lettend op de waardes ;)
Niels Rietveld:
Dus je wilt van een normale pagina (met allerlei content en opmaak etc.) een specifieke waarde halen? dat is lastig want dan zul je moeten gaan filteren. Je kunt beter één aparte pagina maken waarvan je de waardes ophaalt die je nodig hebt (en als het om meerdere waardes gaat kun je beter met json werken zoals Eddy hierboven liet zien dat is dan veel gemakkelijker).Maar ik wil maar 1 string ophalen, niet alle content?
Maar ik heb gewoon geen idee, en json begrijp ik nog niet?
Toevoeging op 09/09/2015 19:10:35:
Maar ik wil niet de hele pagina, dan kan ik net zo goed iframes gebruiken haha
Toevoeging op 09/09/2015 19:11:07:
Is heir niet gewoon een kant en klaar script voor, want zelf gaat het mij niet lukken ben ik ban voor :{
Kant-en-klaar gaat niet lukken, gezien elke databasestructuur anders is en elke string anders geformatteerd kan zijn. Dus vertel eens wat specifieker hoe alles is opgeslagen, en hoe het formaat eruit ziet, omdat je over meerdere strings praat.
Gewijzigd op 09/09/2015 19:12:54 door - Ariën -
$data['price']
$data['title']
Code (php)
En op website B doe je dan:
Code (php)
1
2
3
4
5
6
7
2
3
4
5
6
7
<?php
$data = file_get_contents('http://jewebsite.nl');
if($data !== false) {
$values = json_decode($data, true);
echo $values['price'];
}
?>
$data = file_get_contents('http://jewebsite.nl');
if($data !== false) {
$values = json_decode($data, true);
echo $values['price'];
}
?>
Maar hoe krijg ik het nou voor me kaar??
Toevoeging op 09/09/2015 19:24:48:
- Hoe haal ik de gegevens uit de pagina op de andere site?