I’ll keep this nice and short.
I’m trying to post a value to a remote form.
This code is working perfectly:
$url = "http://eirestudio.net/blog/"; // URL to POST FORM.
$post_fields = "s=test";
$ch = curl_init(); // Initialize a CURL session.
curl_setopt($ch, CURLOPT_URL, $url); // Pass URL as parameter.
curl_setopt($ch, CURLOPT_POST, 1); // use this option to Post a form
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); // Pass form Fields.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Return Page contents.
$result = curl_exec($ch); // grab URL and pass it to the variable.
curl_close($ch); // close curl resource, and free up system resources.
echo $result; // Print page contents.
But when I test it out on another domain it fails:
$url = "http://jobbank.fas.ie/servlet/Watis?SESS=50306_1&TEMPLATE=WWW_JS_VAC_TEXTSEARCH.HTM&BACK=TEMPLATE%3DWWW_JS_VAC.HTM"; // URL to POST FORM.
$post_fields = "TEXTSEARCH.JOBNAME=$search"; //
$ch = curl_init(); // Initialize a CURL session.
curl_setopt($ch, CURLOPT_URL, $url); // Pass URL as parameter.
curl_setopt($ch, CURLOPT_POST, 1); // use this option to Post a form
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields); // Pass form Fields.
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); // Return Page contents.
$result = curl_exec($ch); // grab URL and pass it to the variable.
curl_close($ch); // close curl resource, and free up system resources.
echo $result; // Print page contents.
Can you spot anything wrong with the second piece of code?
UPDATE: Here is an example: http://www.keithdonegan.com/labs/
UPDATE 2: Live HTTP Headers
http://www.keithdonegan.com/labs/process.php
POST /labs/process.php HTTP/1.1
Host: www.keithdonegan.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.keithdonegan.com/labs/
Cookie: __utma=168444603.2571244565690463700.1247813169.1247813169.1247813169.1; __utmb=168444603.1.10.1247813169; __utmc=168444603; __utmz=168444603.1247813169.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
Content-Type: application/x-www-form-urlencoded
Content-Length: 24
search=web&submit=Search
HTTP/1.x 200 OK
Date: Fri, 17 Jul 2009 07:02:17 GMT
Server: Apache/2.0.52 (Red Hat) PHP/4.4.7 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.5
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html
----------------------------------------------------------
http://www.keithdonegan.com/watis1.css
GET /watis1.css HTTP/1.1
Host: www.keithdonegan.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)
Accept: text/css,*/*;q=0.1
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.keithdonegan.com/labs/process.php
Cookie: __utma=168444603.2571244565690463700.1247813169.1247813169.1247813169.1; __utmb=168444603.1.10.1247813169; __utmc=168444603; __utmz=168444603.1247813169.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
If-Modified-Since: Fri, 17 Jul 2009 06:46:20 GMT
HTTP/1.x 404 Not Found
Date: Fri, 17 Jul 2009 07:02:17 GMT
Server: Apache/2.0.52 (Red Hat) PHP/4.4.7 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.5
X-Pingback: http://www.keithdonegan.com/xmlrpc.php
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
Last-Modified: Fri, 17 Jul 2009 07:02:17 GMT
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
----------------------------------------------------------
http://www.keithdonegan.com/pictures1/ndplogo.gif
GET /pictures1/ndplogo.gif HTTP/1.1
Host: www.keithdonegan.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.keithdonegan.com/labs/process.php
Cookie: __utma=168444603.2571244565690463700.1247813169.1247813169.1247813169.1; __utmb=168444603.1.10.1247813169; __utmc=168444603; __utmz=168444603.1247813169.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
HTTP/1.x 404 Not Found
Date: Fri, 17 Jul 2009 07:02:17 GMT
Server: Apache/2.0.52 (Red Hat) PHP/4.4.7 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.5
X-Pingback: http://www.keithdonegan.com/xmlrpc.php
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
Last-Modified: Fri, 17 Jul 2009 07:02:17 GMT
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
----------------------------------------------------------
http://www.keithdonegan.com/pictures1/eurologo.gif
GET /pictures1/eurologo.gif HTTP/1.1
Host: www.keithdonegan.com
User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.9.0.11) Gecko/2009060215 Firefox/3.0.11 (.NET CLR 3.5.30729)
Accept: image/png,image/*;q=0.8,*/*;q=0.5
Accept-Language: en-gb,en;q=0.5
Accept-Encoding: gzip,deflate
Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7
Keep-Alive: 300
Connection: keep-alive
Referer: http://www.keithdonegan.com/labs/process.php
Cookie: __utma=168444603.2571244565690463700.1247813169.1247813169.1247813169.1; __utmb=168444603.1.10.1247813169; __utmc=168444603; __utmz=168444603.1247813169.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)
HTTP/1.x 404 Not Found
Date: Fri, 17 Jul 2009 07:02:17 GMT
Server: Apache/2.0.52 (Red Hat) PHP/4.4.7 FrontPage/5.0.2.2635
X-Powered-By: PHP/5.2.5
X-Pingback: http://www.keithdonegan.com/xmlrpc.php
Expires: Wed, 11 Jan 1984 05:00:00 GMT
Cache-Control: no-cache, must-revalidate, max-age=0
Pragma: no-cache
Last-Modified: Fri, 17 Jul 2009 07:02:18 GMT
Keep-Alive: timeout=15, max=100
Connection: Keep-Alive
Transfer-Encoding: chunked
Content-Type: text/html; charset=UTF-8
----------------------------------------------------------
started another answer because of new knowledge. I was bored and decided to investigate. Your postvars have to contain ALL the input fields, where you’ve only got TEXTSEARCH.JOBNAME. The site must require them all or default back to the template page.
so:
if you fill it out like that, then you’ll get a response that includes something like “your search got x results” or whatever