Php Curl σε Javascript forms

Συζητήσεις για θέματα που σχετίζονται με software.
Post Reply
Oblivion
Buffer underflow exception
Buffer underflow exception
Posts: 2
Joined: Tue Feb 21, 2012 11:46 pm
Academic status: Alumnus/a
Gender:

Php Curl σε Javascript forms

Post by Oblivion » Tue Feb 21, 2012 11:56 pm

Καλησπέρα,
αντιμερωπίζω ένα πρόβλημα καθώς προσπαθώ να στείλω με 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?
User avatar
cyberpython
Mbyte level
Mbyte level
Posts: 654
Joined: Wed Nov 21, 2007 8:18 pm
Academic status: Alumnus/a
Gender:
Location: Αθηνα
Contact:

Re: Php Curl σε Javascript forms

Post by cyberpython » Wed Feb 22, 2012 12:06 pm

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 οπότε θα χρειαστεί λίγο προσπάθεια για να καταλάβεις τι γίνεται.
Oblivion
Buffer underflow exception
Buffer underflow exception
Posts: 2
Joined: Tue Feb 21, 2012 11:46 pm
Academic status: Alumnus/a
Gender:

Re: Php Curl σε Javascript forms

Post by Oblivion » Wed Feb 22, 2012 3:35 pm

Ωραίος ευχαριστώ. Αλλά και σε αυτή την περίπτωση δεν με βοηθάει που ξέρω που είναι αφού μέσα απο php δεν ξέρω κάποιο τροπο να καλω javascript μεθόδους. και εκει νομιζα οτι υπάρχει πρόβλημα λόγω serverside php & clientside javascript... Καμιά ιδέα πάνω σε αυτό?
Post Reply

Return to “Software”