curl testen
Het volgende script zou toch 'hallo' moeten weergeven?
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
if (isset($_POST['data'])) {
echo $_POST['data'];
}
$url = 'http://www.liingerie.nl/admin/testpostdata2.php';
$data= 'hallo';
$curl_connection = curl_init($url);
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $data); //post string
$result = curl_exec($curl_connection);
?>
if (isset($_POST['data'])) {
echo $_POST['data'];
}
$url = 'http://www.liingerie.nl/admin/testpostdata2.php';
$data= 'hallo';
$curl_connection = curl_init($url);
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $data); //post string
$result = curl_exec($curl_connection);
?>
Dit doet hij helaas niet.
http://www.liingerie.nl/admin/testpostdata2.php
Volgens mij moet je een key en value hebben, maar ik be hier totaal niet in thuis.
ik ook niet daarom vraag ik het hier :-)
die url bestaat niet?
dit script dus....
Toevoeging op 09/01/2013 16:21:12:
iig als je naar de url ging bleef je een blank scherm houden
Toevoeging op 09/01/2013 16:28:04:
snap denk ik ook waarom, er moet een exit in de isset $post
anders heb ik natuurlijk een loop gemaakt.
$data heeft alleen een value, in de url moet je de key plus value zetten bijv.
Id=1
Wat Tim ook zegt: inderdaad hetzelfde opgeven als een query-string, dus als id=1&nogeen=twee etc
Heb je de error-reporting aanstaan op E_ALL? Zegt die niet iets?
Wat krijg je wel terug?
Daarbij: echo $result aan het eind om te kijken wat je terug krijgt.
Het is dat je testpagina niet meer bestaat, anders had ik even kunnen testen.
Let wel: met cURL() kan je de cURL-pagina zelf ook oproepen en dus weer een cURL-actie starten. Dan krijg je een oneindige loop die niet stopt en wel heel veel resources vraagt.
Dus maak geen curl.php die curl.php opent, want die opent curl.php weer. En die.... etc.
Na de isset kwam geen exit dus ging de curl weer in werking, dan isset, dan curl, isset etc.
De server ligt er nog steeds uit, dus ik kan ook even niet testen maar als ik echo $result aan het einde neerzet dan zie ik dit toch niet omdat de pagina wordt doorgestuurd door de curl?
error-reporting en connection time out had ik nog niet van gehoord, dat ga ik nog even googlen.
zouden jullie een voorbeeldje kunnen geven van de query-string met mijn test scriptje als achtergrond gedachte?
Het uiteindelijke script zal van een bestelling in mijn webshop een xml maken in de $data variable en dan moet deze worden doorgestuurd met een $post[data] naar de dropshipper zodat orders automatisch worden afgehandeld. Het gehele xml gedeelte heb ik al klaar,en met een submit knop werkt het. Moet nu eigenlijk alleen de laatste stap nog, het automatisch doorsturen met curl.
Ik ben nog niet zo heel veel thuis in programmeren, ben eigenlijk bouwvakker maar ben het al redelijk aan het begrijpen, ben er ook al achter gekomen dat je met wamp een server thuis kan opzetten om te testen zodat de website niet vast loopt :-) daar ga ik ook nog even flink voor googlen. Bedankt voor alle hulp, wordt zeer op prijs gesteld.
Toevoeging op 10/01/2013 04:47:07:
Ok, met behulp van deze website: http://www.html-form-guide.com/php-form/php-form-submit.html
ben ik zo ver dat het werkt !!
en wamp server heeft ingebouwde error reporting, erg handig voor de andere newbies die dit lezen.
Dit is de code
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
50
51
52
53
54
55
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
50
51
52
53
54
55
<?php
if (isset($_POST['data'])) {
echo 'de isset post data:';
echo '<br>'.$_POST['data'];
echo '<br><br>';
exit;
}
$data = 'data_curl'; //de data gepost door curl submit
//create array of data to be posted
$post_data['data'] = $data;
//traverse array and prepare data for posting (key1=value1)
foreach ( $post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);
//create cURL connection
$url = 'http://www.kb-d.nl'.$_SERVER['PHP_SELF'];
$curl_connection =
curl_init($url);
//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, false);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//perform our request
$result = curl_exec($curl_connection);
//show information regarding the request
print_r(curl_getinfo($curl_connection));
echo curl_errno($curl_connection) . '-' .
curl_error($curl_connection);
//close the connection
curl_close($curl_connection);
?>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="data" value="data_submit">
<input type="submit" name="submit" value="klik">
</form>
if (isset($_POST['data'])) {
echo 'de isset post data:';
echo '<br>'.$_POST['data'];
echo '<br><br>';
exit;
}
$data = 'data_curl'; //de data gepost door curl submit
//create array of data to be posted
$post_data['data'] = $data;
//traverse array and prepare data for posting (key1=value1)
foreach ( $post_data as $key => $value) {
$post_items[] = $key . '=' . $value;
}
//create the final string to be posted using implode()
$post_string = implode ('&', $post_items);
//create cURL connection
$url = 'http://www.kb-d.nl'.$_SERVER['PHP_SELF'];
$curl_connection =
curl_init($url);
//set options
curl_setopt($curl_connection, CURLOPT_CONNECTTIMEOUT, 30);
curl_setopt($curl_connection, CURLOPT_USERAGENT,
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)");
curl_setopt($curl_connection, CURLOPT_RETURNTRANSFER, false);
curl_setopt($curl_connection, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl_connection, CURLOPT_FOLLOWLOCATION, 1);
//set data to be posted
curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);
//perform our request
$result = curl_exec($curl_connection);
//show information regarding the request
print_r(curl_getinfo($curl_connection));
echo curl_errno($curl_connection) . '-' .
curl_error($curl_connection);
//close the connection
curl_close($curl_connection);
?>
<form method="post" action="<?php $_SERVER['PHP_SELF']; ?>">
<input type="hidden" name="data" value="data_submit">
<input type="submit" name="submit" value="klik">
</form>
voor de output/echo hier: http://www.kb-d.nl/curl_post.php