Page 1 of 1

Php Curl σε Javascript forms

Posted: Tue Feb 21, 2012 11:56 pm
by Oblivion
Καλησπέρα,
αντιμερωπίζω ένα πρόβλημα καθώς προσπαθώ να στείλω με curl (σε php) τα post data που όμως αντι για submit κάνει κλήση σε μία συνάρτηση javascript...

το site ειναι το

http://www.sj.se/travel/booksearchlocation.form

Code: Select all

<?php

$curl_connection =
  curl_init('http://www.sj.se/travel/booksearchlocation.form');

   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_FOLLOWLOCATION, 1);

	 curl_setopt($curl_connection, CURLINFO_HEADER_OUT, true);
	//$post_data['firstName'] = 'Name';
//$post_data['action'] = 'Register';

curl_setopt ($curl_connection, CURLOPT_POST, 1);

//taken from captured actual POST
// method:next
// startPage:true
// mode:teaser
// travelQuery.departureLocationName:Reftele
// travelQuery.arrivalLocationName:Reimersholme
// travelQuery.outDateTime:2012-02-20+22%3A31%3A00
// travelQuery.outTimeDeparture:true
// travelQuery.returnDateTime:
// travelQuery.returnTimeDeparture:false
// travelQuery.includeX2000:on
// travelQuery.includeBuses:on
// travelQuery.viaLocationName:
// travelQuery.minimumChangeTime:0


$post_data['travelQuery.departureLocationName'] = 'Reftele';
$post_data['travelQuery.arrivalLocationName'] = 'Reimersholme';
$post_data['travelQuery.outDateTime'] = '2012-02-20+22%3A31%3A00';
$post_data['method'] = 'next';
$post_data['startPage'] = 'true';
$post_data['mode'] = 'teaser';
$post_data['travelQuery.outTimeDeparture'] = 'true';
$post_data['travelQuery.returnTimeDeparture'] = 'false';
$post_data['travelQuery.includeX2000'] = 'on';
$post_data['travelQuery.includeBuses'] = 'on';
$post_data['travelQuery.minimumChangeTime'] = '0';
$post_data['travelQuery.returnDateTime'] = '';
$post_data['travelQuery.viaLocationName'] = '';




foreach ( $post_data as $key => $value)
{
    $post_items[] = $key . '=' . $value;
}
$post_string = implode ('&', $post_items);


curl_setopt($curl_connection, CURLOPT_POSTFIELDS, $post_string);


$result = curl_exec($curl_connection);
curl_close($curl_connection);


//echo $result;
print_r(curl_getinfo($curl_connection));
echo curl_error($curl_connection);


?>
Ο παραπανω κώδικας προφανως δεν δουλευει...

και με inspect element πανω στο continue βλεπουμε πως καλει την submitTravelQueryForm, την οποια ολως περιεργως δεν μπορω να καλεσω εγω αλλά ουτε καν να βρω!

<button id="submitButton" class="to_right" type="button" onclick="return submitTravelQueryForm('next', true)">CONTINUE >></button>


Καμία ιδέα για το πως μπορώ να στείλω τα post data αυτα μέσω php?

Re: Php Curl σε Javascript forms

Posted: Wed Feb 22, 2012 12:06 pm
by cyberpython
Oblivion wrote: και με inspect element πανω στο continue βλεπουμε πως καλει την submitTravelQueryForm, την οποια ολως περιεργως δεν μπορω να καλεσω εγω αλλά ουτε καν να βρω!
Η συνάρτηση submitTravelQueryForm ορίζεται στο αρχείο BFCE8440EA185BE825DC96BFFD03CFE9.cache στη γραμμή 3956:

Code: Select all

function OQc(c){$wnd.submitTravelQueryForm=function(a,b){c.xd(a,b)};$wnd.toggleAdvancedOptions=function(){c.yd()};$wnd.updateShoppingCart=function(){c.zd()}}
Το θέμα είναι οτι το αρχείο έχει παραχθεί από το GWT compiler και είναι obfuscated οπότε θα χρειαστεί λίγο προσπάθεια για να καταλάβεις τι γίνεται.

Re: Php Curl σε Javascript forms

Posted: Wed Feb 22, 2012 3:35 pm
by Oblivion
Ωραίος ευχαριστώ. Αλλά και σε αυτή την περίπτωση δεν με βοηθάει που ξέρω που είναι αφού μέσα απο php δεν ξέρω κάποιο τροπο να καλω javascript μεθόδους. και εκει νομιζα οτι υπάρχει πρόβλημα λόγω serverside php & clientside javascript... Καμιά ιδέα πάνω σε αυτό?