Ik probeer het mogelijk te maken dat een website die zich elders bevindt bepaalde gegevens uit mijn database kan ophalen, tot nu toe zonder het gewenste resultaat want de website kan geen verbinding maken ( Can't connect to MySQL server)

Dit is wat ik heb gedaan:
1.
 
 mysql> GRANT SELECT ON mijndatabase.mijntabel TO nieuwegebruiker@’ipadres-van-externe-website’ IDENTIFIED BY ‘wachtwoord’; 


2. open port 3306 mysql


sudo iptables -A INPUT -p tcp -s 0/0 --sport 1024:65535 -d ipadresexternewebsite --dport 3306 -m state --state NEW,ESTABLISHED -j ACCEPT
sudo iptables -A OUTPUT -p tcp -s ipexterneadreswebsite --sport 3306 -d 0/0 --dport 1024:65535 -m state --state ESTABLISHED -j ACCEPT


config van *.php pagina op de externe website die contact gaat maken met mijn server

$host = "ipadres van mijn server";
$user ="nieuwegebruiker";
$passwd = "wachtwoord"';
$db = "mijndatabase";


Vergeet ik iets of wat doe ik verkeerd?
Dank. Het gaat om dit stukje (wat staat op mijn https-site):
echo '<a href="'."http://website.com/".$row['Naam'].".html".'">
            <img src="'."http://website.com/" .$row['Naam'].".jpg".'" ></a>';

Ik kan de image ook vanaf mijn site laden:
echo '<a href="'."http://website.com/".$row['Naam'].".html".'">
            <img src="'."https://mijneigenwebsite.com/" .$row['Naam'].".jpg".'" ></a>';


en dan geeft hij niet aan dat het onveilig is, maar het linkt dan nog steeds naar de http site? Ik snap het niet. Waarom is dit wel veilig?
Het gaat om de resources die je laadt. Wanneer je over https laadt moeten al je resources ook https zijn. Links zijn geen resource, en het zou natuurlijk idioot zijn om niet naar http te mogen linken.
En bovendien heeft niet iedere site SSL (poort 443) aangezet. Zo kwam ik recentelijk nog een webshop tegen die geen SSL had.
Aha, het is dan wellicht nog geen -op maat gemaakte- API geworden maar met mijn -op maat gemaakte- curl ben ik ook heel tevreden.
cURL is niets meer dan een bibliotheek met functies waarvan je de techniek theoretisch ook in browsers vindt. In dit geval gaat het dan puur om de techniek. Zo kan je met cURL bijvoorbeeld cookies plaatsen tijdens een request, controleren of er geen 'redirect infinite loop' is, uit de headers opmaken wat de uiteindelijke locatie van een hostname is of zelfs de header meesturen voor de Auth-realm gegevens van een met een inlog beveiligde pagina.

Deze functie-bibliotheek is ideaal te gebruiken voor het connecten met API's. En dan puur alleen het connecten ermee. Uitlezen doe je voornamelijk met de toegewezen functies voor XML of JSON.
Ik dacht dat alles werkte maar de images laden niet (ondanks dat ik een wachtwoord meegeef in de curlpagina). Lokaal op xampp werkt het wel en zie ik gewoon de de images, maar live dus niet. Als ik de paginabron bekijk kloppen de url's dus daar ligt het niet aan.
De site waaraan ik de images onttrek heeft basic auth. Het rare is: de rest van de pagina laadt wel (de inhoud van txtfiles met fopen op de curlpagina zie je wel, de databaseinhoud ook) alleen de images uit mn loop dus niet. Daarvan zie je alleen de alttekst en dan volgt het inlogscherm van de website (waar de images staan).
Hoe kan dat nou? Waarom moet je inloggen om de fotos te kunnen zien terwijl de rest wel zichtbaar is?
Dit is mijn curlscript:

curl_setopt($curl, CURLOPT_USERPWD, "mijninlognaam:mijnwachtwoord");
    curl_setopt ($curl, CURLOPT_URL, "https://mijnwebsite.nl/curlpagina.php");
	
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
	
    $result = curl_exec ($curl);
	// echo curl_error($curl);
    curl_close ($curl);
    print $result;
Haal je die plaatjes van je eigen site af?
Deze output
echo '<a href="'."http://website.com/".$row['Naam'].".html".'">
            <img src="'."https://mijneigenwebsite.com/" .$row['Naam'].".jpg".'" ></a>'
wil ik van


https website met plaatjes en basic auth---->naar http website waar de curlpagina het ophaalt.

Als ik
."http://website.com/"
weghaal dan ben ik dat inlogscherm kwijt maar heb ik nog steeds geen plaatjes.
Dat was niet helemaal mijn vraag ... de vraag was of het jouw eigen website is waar die plaatjes vandaan komen, of is die website van een derde?

Reageren