Gegevens uit andere site halen
Ik zou graag willen weten hoe ik d.m.v. van php en/of javascript gegevens van een andere site kan halen.
Op een website kan ik d.m.v. een barcode gegevens opvragen die achter de barcode bevinden. Maar ik wil dit gaan automatiseren, dus dat PHP de website bezoekt de input veldjes invult en dan op submit drukt en volgens de gegevens die in een div je worden gepost kopiëren en gebruiken voor mijn eigen site.
De eigenaar van de website heb ik toestemming gevraagd om het op deze wijze te doen omdat hij geen api had.
Hebben jullie een idee hoe ik dit kan fixen?
Groetjes!
cURL.
Kijk eens naar Ha! Wat een knakuh site. Zouden ze weten hoe het eruit ziet in FF?
haha, inderdaad die website is echt bagger, maar goed! Het gaat natuurlijk niet op de lay-out maar om de techniek. Heb je een idee Bart?
ruliezz schreef op 19.09.2009 18:22:
Heb je een idee Bart?
Karl schreef op 19.09.2009 16:50:
Kijk eens naar cURL.
Zoals Karl al zei: cURL. Daar doe je dat soort zaken mee. Dat je dat te lastig vindt is weer een ander probleem....
Ik zal wel eens verder in duiken, iedergeval bedankt!
In de voorbeelden zijn steeds twee post variabelen wat nou als je er meer hebt kun je dat blijven scheiden met &?
teuneboon schreef op 19.09.2009 18:35:
Of je zoekt de script database eens door: http://phphulp.nl/php/scripts/11/1436/
Dat werkt dus niet, want er most eerst nog data worden gepost.
Is er nog een mogelijkheid om de gegevens te posten?
Alle informatie die ik post komt uit de input velds van de website. Zie broncode
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
<?php # Script 9.4 - curl.php
/**
* Deze pagina gebruikt cURL om een combinatie van gebruikersnaam
* en wachtwoord te posten naar een beveiligde webpagina.
*/
// URL instellen:
$url = 'http://gepir.gs1.nl/gepir_V3/client/default.aspx#go';
// Start het proces:
$ch = curl_init($url);
// Vertel cURL te falen als er een fout optreedt:
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
// Doorverwijzingen toestaan:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// Wijs de geretourneerde gegevens toe aan een variabele:
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
// Stel de time-out in:
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
// Gebruik POST:
curl_setopt($ch, CURLOPT_POST, 1);
// Stel de POST-gegevens in:
curl_setopt($ch, CURLOPT_POSTFIELDS, 'LoginPanel_ScriptManager_HiddenField=&rblGLN=owner&__EVENTTARGET=&__EVENTARGUMENT=&__EVENTVALIDATION=/wEWBwKSlvnBCQK00p21AQLj7YbyBgKn0Mh+Ar7E3foGAoSdi9AFApD0z+sF88Aj1dMiWgTPSA5a1RU5evqacQo=&__VIEWSTATE=/wEPDwUJMTE0MDIyODYyD2QWAgIBD2QWCmYPDxYCHgdWaXNpYmxlaGRkAgEPZBYCAgMPZBYCAgMPPCsACgEADxYCHhJEZXN0aW5hdGlvblBhZ2VVcmwFDn4vRGVmYXVsdC5hc3B4ZGQCBg8PFgIeBFRleHQFBlNlYXJjaGRkAggPDxYCHwBoZGQCCQ8PFgIfAGhkZGRonUm/uOTjjoeRxjAPVCXIP0TCng==&txtGtin=8712345005504&btnGetGtin=Go&btnGtin=GTIN');
// Voer de transactie uit:
$r = curl_exec($ch);
// Sluit de verbinding:
curl_close($ch);
// Geef de resultaten weer:
echo $r;
?>
/**
* Deze pagina gebruikt cURL om een combinatie van gebruikersnaam
* en wachtwoord te posten naar een beveiligde webpagina.
*/
// URL instellen:
$url = 'http://gepir.gs1.nl/gepir_V3/client/default.aspx#go';
// Start het proces:
$ch = curl_init($url);
// Vertel cURL te falen als er een fout optreedt:
curl_setopt($ch, CURLOPT_FAILONERROR, 1);
// Doorverwijzingen toestaan:
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
// Wijs de geretourneerde gegevens toe aan een variabele:
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
// Stel de time-out in:
curl_setopt($ch, CURLOPT_TIMEOUT, 5);
// Gebruik POST:
curl_setopt($ch, CURLOPT_POST, 1);
// Stel de POST-gegevens in:
curl_setopt($ch, CURLOPT_POSTFIELDS, 'LoginPanel_ScriptManager_HiddenField=&rblGLN=owner&__EVENTTARGET=&__EVENTARGUMENT=&__EVENTVALIDATION=/wEWBwKSlvnBCQK00p21AQLj7YbyBgKn0Mh+Ar7E3foGAoSdi9AFApD0z+sF88Aj1dMiWgTPSA5a1RU5evqacQo=&__VIEWSTATE=/wEPDwUJMTE0MDIyODYyD2QWAgIBD2QWCmYPDxYCHgdWaXNpYmxlaGRkAgEPZBYCAgMPZBYCAgMPPCsACgEADxYCHhJEZXN0aW5hdGlvblBhZ2VVcmwFDn4vRGVmYXVsdC5hc3B4ZGQCBg8PFgIeBFRleHQFBlNlYXJjaGRkAggPDxYCHwBoZGQCCQ8PFgIfAGhkZGRonUm/uOTjjoeRxjAPVCXIP0TCng==&txtGtin=8712345005504&btnGetGtin=Go&btnGtin=GTIN');
// Voer de transactie uit:
$r = curl_exec($ch);
// Sluit de verbinding:
curl_close($ch);
// Geef de resultaten weer:
echo $r;
?>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
var var1 = 'inhoud invoerveld 1';
var var2 = 'inhoud invoerveld 2';
function pakWaardeVanEenAnderePagina()
{
document.getElementById('hostPagina').contentWindow.document.getElementById('inputID1').value=var1;
document.getElementById('hostPagina').contentWindow.document.getElementById('inputID2').value=var2;
document.getElementById('hostPagina').contentWindow.document.getElementById('submitButtonID').click();
var resultaat = document.getElementById('hostPagina').contentWindow.document.getElementById('inputResultaat').value;
document.getElementById('inputResultaat').value=resultaat;
}
//-->
</script>
</head>
<body onload="pakWaardeVanEenAnderePagina();">
<input id="inputResultaat" type="text" />
<iframe id="hostPagina" src="hostpagina.php" style="display:none;"></iframe>
</body>
</html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
var var1 = 'inhoud invoerveld 1';
var var2 = 'inhoud invoerveld 2';
function pakWaardeVanEenAnderePagina()
{
document.getElementById('hostPagina').contentWindow.document.getElementById('inputID1').value=var1;
document.getElementById('hostPagina').contentWindow.document.getElementById('inputID2').value=var2;
document.getElementById('hostPagina').contentWindow.document.getElementById('submitButtonID').click();
var resultaat = document.getElementById('hostPagina').contentWindow.document.getElementById('inputResultaat').value;
document.getElementById('inputResultaat').value=resultaat;
}
//-->
</script>
</head>
<body onload="pakWaardeVanEenAnderePagina();">
<input id="inputResultaat" type="text" />
<iframe id="hostPagina" src="hostpagina.php" style="display:none;"></iframe>
</body>
</html>
Gewijzigd op 01/01/1970 01:00:00 door repelsteeltje
heej hoe maken jullie van die witte invoervlakken?
repelsteeltje schreef op 19.09.2009 23:06:
heej hoe maken jullie van die witte invoervlakken?
Je code tussen en zetten
Gewijzigd op 01/01/1970 01:00:00 door Michael -
thanx :)
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
var var1 = '8712345012007';
var var2 = '13';
function pakWaardeVanEenAnderePagina()
{
document.getElementById('hostPagina').contentWindow.document.getElementById('txtGtin').value=var1;
document.getElementById('hostPagina').contentWindow.document.getElementById('radioButton13').value=var2;
document.getElementById('hostPagina').contentWindow.document.getElementById('btnGetGtin').click();
var resultaat = document.getElementById('hostPagina').contentWindow.document.getElementById('inputResultaat').value;
document.getElementById('inputResultaat').value=resultaat;
}
//-->
</script>
</head>
<body onload="pakWaardeVanEenAnderePagina();">
<input id="inputResultaat" type="text" />
<iframe id="hostPagina" src="http://gepir.gs1.nl/gepir_V3/client/default.aspx" style="display:block;"></iframe>
</body>
</html>
<head>
<script language="JavaScript" type="text/javascript">
<!--
var var1 = '8712345012007';
var var2 = '13';
function pakWaardeVanEenAnderePagina()
{
document.getElementById('hostPagina').contentWindow.document.getElementById('txtGtin').value=var1;
document.getElementById('hostPagina').contentWindow.document.getElementById('radioButton13').value=var2;
document.getElementById('hostPagina').contentWindow.document.getElementById('btnGetGtin').click();
var resultaat = document.getElementById('hostPagina').contentWindow.document.getElementById('inputResultaat').value;
document.getElementById('inputResultaat').value=resultaat;
}
//-->
</script>
</head>
<body onload="pakWaardeVanEenAnderePagina();">
<input id="inputResultaat" type="text" />
<iframe id="hostPagina" src="http://gepir.gs1.nl/gepir_V3/client/default.aspx" style="display:block;"></iframe>
</body>
</html>
Waar moet hij het resultaat laten zien?
en hij drukt de submit knop niet in, zie mijn script
maar als hij de submitknop niet aan klikt dan is er natuurlijk geen resultaat.
volgens jou zou btnGetGtin de id zijn van de submit button in de form van de andere pagina?
Of het zo simpel kan werken zoals in mijn code is ook afhankelijk van, of het resultaat meteen na 't submitten van die zelfde pagina gehaald kan worden.
't is maar een ideetje (niet getest) .. ik weet verder natuurlijk ook niet hoe die andere pagina werkt :)
P.S. en die radio button gaat zo niet werken.
Je moet dan de radiobutton de waarde 'checked=true' geven als ik me niet vergis.
Code (php)
1
document.getElementById('hostPagina').contentWindow.document.getElementById('radioButton13').checked='true';
en var2 komt dan te vervallen
Gewijzigd op 01/01/1970 01:00:00 door repelsteeltje
http://members.home.nl/megaflop/test.html
ik heb gemerkt dat de pagina wel online moet staan want anders werkt het niet (of allebij offline)
Maar bij die pagina van jou lukt het me dus ook niet.
succes!
Gelieve Niet Bumpen::
Gewijzigd op 01/01/1970 01:00:00 door repelsteeltje
http://gepir.gs1.nl/gepir_V3/client/voorwaarden.aspx?lang=0 en vertel me dan of het mag wat je doet?
lees eens dit Webmakerij: miss moet je wat beter dit topic lezen. Zoals ik schreef, ik heb toestemming.
[zondag 20-09-2009]
Jongens, het is gelukt! Via een andere url is het mogelijk om de database te benaderen. Ik bedank jullie allemaal voor jullie hulp! Ik heb indergeval er weer veel van geleerd.
Bedankt!
Gewijzigd op 01/01/1970 01:00:00 door ruliezz