Post naar extern adres en toon resultaat
Ik wil graag 1 php pagina die als ik die aanroep een post met onderstaande parameters doet en het resultaat in een iframe laat zien. Ik wil deze code als dit mogelijk is binnen de function content plaatsen.
Wie kan me daarbij helpen??
<center>
<br>
<b>HMHC Hoorn Veteranen A - Uitslagen</b>
<br>
<IFRAME SRC="http://www.knhb.nl/app/standenmotor/competitie/asp/roo...perafdeling.asp" NORESIZE SCROLLING=YES HSPACE=0 VSPACE=0 FRAMEBORDER=0 MARGINHEIGHT=0 MARGINWIDTH=0 WIDTH=95% HEIGHT=90%>
<input type="hidden" name="blnExport" value="0">
<input type="hidden" name="soort" value="1030">
<input type="hidden" name="wat" value="beide">
<input type="hidden" name="heren" value="ja">
<input type="hidden" name="dames" value>
<input type="hidden" name="jongens" value>
<input type="hidden" name="meisjes" value>
<input type="hidden" name="afdeling" value="21382">
<input type="hidden" name="dag1" value="27">
<input type="hidden" name="maand1" value="5">
<input type="hidden" name="jaar1" value="2005">
<input type="hidden" name="dag2" value="31">
<input type="hidden" name="maand2" value="5">
<input type="hidden" name="jaar2" value="2005">
</IFRAME>
</center>
Alvast dank!
HP van Hagen
http://www.vanhagen.net
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
42
43
44
45
46
47
48
49
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
42
43
44
45
46
47
48
49
<?php
function senddata($data, $url, $returnoutput = false) {
if(is_array($data))
{
$data = array2string($data);
}
$in = "";
$buffer = gzcompress($data);
$data = "data=".str2hex($buffer);
$url_parsed = parse_url($url);
$host = $url_parsed["host"];
if (!isset($url_parsed["port"])){
$port = 80;
}
else
{
$port = $url_parsed["port"];
}
$path = $url_parsed["path"];
//if url is http://example.com without final "/"
//I was getting a 400 error
if (empty($path) || empty($host)){
trigger_error("Fout: geen path of host bekend", E_USER_ERROR);
return false;
break 2;
}
if (isset($url_parsed["query"]) && $url_parsed["query"] != ""){
$path .= "?".$url_parsed["query"];
}
$out = "POST $path HTTP/1.0\r\nFrom: [email protected]\r\nUser-Agent: php2p/0.001\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($data)."\r\n\r\n".$data;
if($fp = fsockopen($host, $port, $errno, $errstr, 20)){
fwrite($fp, $out);
if($returnoutput){
while (!feof($fp)) {
$in .= fgets($fp, 128);
}
return $in;
}
else{
return true;
}
fclose($fp);
}
else{
trigger_error("fsockopen ERROR: ".$errno."-".$errstr);
return false;
}
}
?>
function senddata($data, $url, $returnoutput = false) {
if(is_array($data))
{
$data = array2string($data);
}
$in = "";
$buffer = gzcompress($data);
$data = "data=".str2hex($buffer);
$url_parsed = parse_url($url);
$host = $url_parsed["host"];
if (!isset($url_parsed["port"])){
$port = 80;
}
else
{
$port = $url_parsed["port"];
}
$path = $url_parsed["path"];
//if url is http://example.com without final "/"
//I was getting a 400 error
if (empty($path) || empty($host)){
trigger_error("Fout: geen path of host bekend", E_USER_ERROR);
return false;
break 2;
}
if (isset($url_parsed["query"]) && $url_parsed["query"] != ""){
$path .= "?".$url_parsed["query"];
}
$out = "POST $path HTTP/1.0\r\nFrom: [email protected]\r\nUser-Agent: php2p/0.001\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($data)."\r\n\r\n".$data;
if($fp = fsockopen($host, $port, $errno, $errstr, 20)){
fwrite($fp, $out);
if($returnoutput){
while (!feof($fp)) {
$in .= fgets($fp, 128);
}
return $in;
}
else{
return true;
}
fclose($fp);
}
else{
trigger_error("fsockopen ERROR: ".$errno."-".$errstr);
return false;
}
}
?>
Ziet er goed uit. Ben alleen een beginner. Kun je me wat meer op weg helpen??
Thanks!
HP
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
42
43
44
45
46
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
42
43
44
45
46
<?php
function senddata($data, $url, $returnoutput = false) {
$in = "";
$url_parsed = parse_url($url);
$host = $url_parsed["host"];
if (!isset($url_parsed["port"])){
$port = 80;
}
else
{
$port = $url_parsed["port"];
}
$path = $url_parsed["path"];
//if url is http://example.com without final "/"
//I was getting a 400 error
if (empty($path) || empty($host)){
trigger_error("Fout: geen path of host bekend", E_USER_ERROR);
return false;
break 2;
}
if (isset($url_parsed["query"]) && $url_parsed["query"] != ""){
$path .= "?".$url_parsed["query"];
}
$out = "POST $path HTTP/1.0\r\nFrom: [email protected]\r\nUser-Agent: PHP\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($data)."\r\n\r\n".$data;
if($fp = fsockopen($host, $port, $errno, $errstr, 20)){
fwrite($fp, $out);
if($returnoutput){
while (!feof($fp)) {
$in .= fgets($fp, 128);
}
return $in;
}
else{
return true;
}
fclose($fp);
}
else{
trigger_error("fsockopen ERROR: ".$errno."-".$errstr);
return false;
}
}
//voorbeeld:
echo senddata("name=jelmer\[email protected]\nschool=niets", "http://www.google.nl", true);
?>
function senddata($data, $url, $returnoutput = false) {
$in = "";
$url_parsed = parse_url($url);
$host = $url_parsed["host"];
if (!isset($url_parsed["port"])){
$port = 80;
}
else
{
$port = $url_parsed["port"];
}
$path = $url_parsed["path"];
//if url is http://example.com without final "/"
//I was getting a 400 error
if (empty($path) || empty($host)){
trigger_error("Fout: geen path of host bekend", E_USER_ERROR);
return false;
break 2;
}
if (isset($url_parsed["query"]) && $url_parsed["query"] != ""){
$path .= "?".$url_parsed["query"];
}
$out = "POST $path HTTP/1.0\r\nFrom: [email protected]\r\nUser-Agent: PHP\r\nContent-Type: application/x-www-form-urlencoded\r\nContent-Length: ".strlen($data)."\r\n\r\n".$data;
if($fp = fsockopen($host, $port, $errno, $errstr, 20)){
fwrite($fp, $out);
if($returnoutput){
while (!feof($fp)) {
$in .= fgets($fp, 128);
}
return $in;
}
else{
return true;
}
fclose($fp);
}
else{
trigger_error("fsockopen ERROR: ".$errno."-".$errstr);
return false;
}
}
//voorbeeld:
echo senddata("name=jelmer\[email protected]\nschool=niets", "http://www.google.nl", true);
?>
Ik heb meer het idee dat dit met mailen te maken heeft.
Weet niet waar ik mijn parameters moet zetten om de pagina keurig terug te krijgen???
HP
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?php
[insert funcie senddata() hier]
$waarden = "blnExport=0\n";
$waarden .= "soort=0\n";
$waarden .= "wat=beide\n";
$waarden .= "heren=ja\n";
$waarden .= "afdeling=21382\n";
$waarden .= "dag1=27\n";
$waarden .= "maand1=5\n";
$waarden .= "jaar1=2005\n";
$waarden .= "dag2=31\n";
$waarden .= "maand2=5\n";
$waarden .= "jaar2=2005\n";
$url = "http://www.knhb.nl/app/standenmotor/competitie/asp/roo...perafdeling.asp";
$aangevraagdepagina = senddata($waarden, $url, true);
?>
[insert funcie senddata() hier]
$waarden = "blnExport=0\n";
$waarden .= "soort=0\n";
$waarden .= "wat=beide\n";
$waarden .= "heren=ja\n";
$waarden .= "afdeling=21382\n";
$waarden .= "dag1=27\n";
$waarden .= "maand1=5\n";
$waarden .= "jaar1=2005\n";
$waarden .= "dag2=31\n";
$waarden .= "maand2=5\n";
$waarden .= "jaar2=2005\n";
$url = "http://www.knhb.nl/app/standenmotor/competitie/asp/roo...perafdeling.asp";
$aangevraagdepagina = senddata($waarden, $url, true);
?>
$aangevraagdepagina zal (als het goed is) nu de pagina bevatten die jij anders voorgeschoteld krijgt als je met je browser een of ander formuliertje op de knvbsite invlud, die deze waarden meestuurd.
Nu kun je bijvoorbeeld de resultaten van de opmaak van de pagina gaan proberen te schijden, maar je kun ook gewoon doen en je krijgt de pagina te zien, en dat nog wel op je eigen website. Houd er wel rekening mee dat de links en de plaatjes dan vaak niet werken.
Wat je ook nog kunt doen (stukken simpeler) is een met-form maken, waar je zo te zien al mee bezig was, en die met javascript weg sturen.
<IFRAME SRC="pagina.html" NORESIZE SCROLLING=YES HSPACE=0 VSPACE=0 FRAMEBORDER=0 MARGINHEIGHT=0 MARGINWIDTH=0 WIDTH=95% HEIGHT=90%></IFRAME>
painga.html:
<html>
<body onload="document.forms[0].submit()">
<form method="POST" action="http://www.knhb.nl/app/standenmotor/competitie/asp/roo...perafdeling.asp">
<input type="hidden" name="blnExport" value="0">
<input type="hidden" name="soort" value="1030">
<input type="hidden" name="wat" value="beide">
<input type="hidden" name="heren" value="ja">
<input type="hidden" name="dames" value>
<input type="hidden" name="jongens" value>
<input type="hidden" name="meisjes" value>
<input type="hidden" name="afdeling" value="21382">
<input type="hidden" name="dag1" value="27">
<input type="hidden" name="maand1" value="5">
<input type="hidden" name="jaar1" value="2005">
<input type="hidden" name="dag2" value="31">
<input type="hidden" name="maand2" value="5">
<input type="hidden" name="jaar2" value="2005">
</FORM>
</body>
</html>
PS: iFrame-tags lijken net als textarea-tags, alsof je er iets tussen kunt zetten. Niets is minder waar. Je kunt alleen een pagina in een iFrame krijgen door de source (src-attribuut) in te vullen.