Remote bestand gebruiken
Ik ben bezig met een script(je) en wil een validatie inbouwen, middels het vergelijken van een paar waarden die op een andere server staan. Ik wil daar deze querystring voor gebruiken:
Code (php)
1
include_remote('https://www.domein.nl/check.php?waarde1='.$value1.'&waarde2='.$value2.'&waarde3='.$value3);
Is het dan voldoende om een check.php bestand te maken die er zo uit kan zien:
Code (php)
1
2
3
4
5
2
3
4
5
<?php
$value1 = 'mijn waarde 1';
$value2 = 'mijn waarde 2';
$value3 = 'mijn waarde 3';
?>
$value1 = 'mijn waarde 1';
$value2 = 'mijn waarde 2';
$value3 = 'mijn waarde 3';
?>
Of gaat dit niet werken?
Guido
Gewijzigd op 11/10/2018 09:17:59 door Guido -
Gaat het enkel om een request of wil je ook de response van hun uitlezen?
Gewijzigd op 11/10/2018 09:29:49 door - Ariën -
Maar ben wel benieuwd hoe je een response kunt opvragen via deze querystring?
Lees dan op je eigen server met de functie json_decode() die JSON-string uit.
Gewijzigd op 11/10/2018 09:48:46 door - Ariën -
Ok, daar moet ik even goed voor gaan zitten. Doe ik later een keer.
Maar als ik dus alleen de 3 waarden wil opvragen uit remote bestand check.php, via de querystring, kan dat op de manier die ik in mijn eerste bericht heb geplaatst? Heb momenteel even geen mogelijkheid om het zelf te testen, vandaar ;-)
Guido
Via $_GET['waarde1'] etc in check.php.
Ik vraag de 3 waarden van check.php toch op vanuit een ander bestand.. middels include_remote, dus de GET moet ik in dat andere bestand gebruiken. Of begrijp ik iets verkeerd?
Gewijzigd op 11/10/2018 10:25:08 door - Ariën -
Met de 3 waarden uit check.php ga ik verder aan de slag in mijn bestand op server A.
Dus in dit geval hoef ik toch geen GET te gebruiken in check.php?
Je kan niet direct PHP-variabelen uitlezen van de ene naar de andere server.
Anders had ik graag $MasterPassword bij Rabobank.nl opgehaald :p
Gewijzigd op 11/10/2018 10:46:10 door - Ariën -
Daar staan dus 3 waarden in die ik wil opvragen.
Deze 3 waarden vergelijk ik dan met wat een gebruiker heeft ingevuld via een formulier op server A. Als deze 3 waarden overeenkomen, geef ik gebruiker toegang tot de rest vh script.
Dat is in het kort wat ik wil ;-)
Guido
Hij krijgt het dan binnen als: https://www.domein.nl/check.php?waarde1=mijn%20waarde%201&waarde2=mijn%20waarde%202&waarde3=mijn%20waarde%203.
(Die %20 is de code voor een spatie in een URL (URL-encoding))
Dan wil check.php die waardes weer gebruiken, en dat doet hij dan uiteraard met $_GET['waarde1'] etc...
En daar zit dan "mijn waarde 1" weer in.
Dus zoals ik al zei: Servers kunnen elkaars variabelen niet zomaar lezen. In het algemeen moet je de waardes via POST/GET doorgeven.
Gewijzigd op 11/10/2018 10:59:50 door - Ariën -
Als je zelf een (extern) bestand aanroept zul je zelf de informatie van die aanroep moeten verschaffen. Ook zie ik niet wat server A hiermee te maken heeft? Als dit gevoelige informatie betreft (authenticatie?) zou ik dat ook niet in een querystring proppen, want die kunnen mogelijk gecached worden.
Als het de bedoeling is dat je je op A ergens voor inlogt, en A moet dit zelf aan B vragen (denk aan "inloggen via Google/FaceBook" et cetera), natuurlijk kun je dan die variabelen doorsturen. Maar al die platforms maken gebruik van webdiensten met uitgebreide documentatie. We kunnen je echter niet helpen als je zo abstract blijft.
EDIT: en als je een HTTP-request wilt simuleren, gebruik cURL ofzo. Het includen van een remote bestand is op zijn minst... een opmerkelijke constructie?
Gewijzigd op 11/10/2018 11:24:41 door Thomas van den Heuvel
include_remote() is ook geen bestaande functie binnen PHP.
Dus de vraag is ook: Hoe werkt die functie? Misschien wordt er al cURL gebruikt (aanrader)?
Excuses je hebt gelijk.. include_remote is een functie binnen het script. Dus die functie doet misschien nog wel meer dan alleen een bestand opvragen.
Ok, zal het complete verhaal even vertellen.
Ik help iemand die een script heeft waar een licentie bij hoort, die hij ook gewoon heeft. Het script controleert of de ingevoerde licentie gegevens, zoals licentiesleutel en website URL, overeenkomen met de betreffende licentie. Hij benadert daarvoor een bestand op de server van de developer.
Echter, die is ermee gestopt en alles is offline gehaald. En onbereikbaar via mail. Degene die ik help kan daarom niets meer omdat de installatie gewoonweg stopt na invoeren van die gegevens.
Klinkt misschien ongeloofwaardig, maar het is de waarheid. Ik zou nooit een licentie omzeilen (want is onethisch), maar in dit geval kan ik niet anders.
Maar ik moet eerst even uitzoeken wat die functie include_remote allemaal doet. Komt weer meer achterweg als ik dacht.
Voor hetzelfde geldt zijn de rechten overgenomen door een ander bedrijf.
Dus ga eerst de formele weg in en zoek alles eens uit.
Gewijzigd op 11/10/2018 12:24:07 door - Ariën -
Oef. Tijd voor een andere oplossing. Als de "remote include" ook echt daadwerkelijk code include ga je natuurlijk nat, omdat je deze code zelf niet hebt.
De functie heeft in feite een verkeerde benaming. Omdat je niks includeert in de hoedanigheid die de remote server kent. Je doet wél een request, en de waarde daarvan wordt waarschijnlijk opgehaald. Dat is wat anders dan includeren (vertaald: insluiten)
Mja, of dit bestand "include" daadwerkelijk core functionaliteit indien de parameters horen bij een geldige licentie. Als dat om een of andere reden niet werkt is daarmee mogelijk alle functionaliteit onklaar gemaakt. Alles is dan letterlijk afhankelijk van dat bestand. Niet echt heel handig in het gebruik (single point of failure).
Over de licentie, heb alleen de handleiding en het readme bestand en daar staat helemaal niets in over rechten/plichten. Dus dat schiet niet op. Kan kijken of er nog wat te vinden is via internet archive.
Wil liever de naam vh script hier niet noemen, want dat kan alleen maar in het nadeel werken van degene die ik help. Betreft een marktplaats script.
@Thomas:
Validatie van de licentie gebeurt alleen op moment van installeren. Gelukkig wel, want dat zou idd erg onhandig zijn geweest.
Guido
Ga dat eerst even na bij de licentiehouder. En als alles gewoon safe is, kan je toch die licentie-check eruit slopen? Of is het bestand encoded?