views:

34

answers:

1

Hi Everyone!

I'm new to using CURL, but I have successfully got it to submit ordinary forms in the past. I'm working with a website that uses an AJAX Request to perform a login, I can get the form to fill out the username and password but since the login button is actually a link I can't get the form to submit, is there some other way I could login?

I actually looked into how users log into the site when javascript is disabled, thinking that they may have offered an alternative login route. However, the developers responded with the statement that the site is not functional when the user has javascript disabled. Since this is the case, perhaps this is not even possible with cURL?

Any advice on how I should proceed would be MUCH appreciated, thanks alot!

+2  A: 

Figure out where the AJAX method submits to. It might be in the action parameter of a form tag, or it could potentially be buried in javascript somewhere.

You could use a firefox extension like FireBug or HttpFox to observe what the browser does when you click the "log in" link. It probably generates some kind of POST request. Examine what that post does, figure out how to send an equivalent request via curl, and you're done.

timdev
Thank you, sir!
Pete Herbert Penito
I have found a seperate login page that the AJAX uses to login, but when I try to manually login to this page it doesn't do anything, I noticed that in the URL of the AJAX request, a variable called ajax is set to "1" but when i manually put that in the url the page fails to load, so I'm thinking only an ajax request can perform the login, and that somehow the login page can tell if the request is an ajax one or a normal one.
Pete Herbert Penito
It depends on what you expect to happen after a login. You should make sure that your curl code is keeping track of any cookies the site is sending, and is passing them back with each request (just like a web browser would do). Once you're cookied, and you've submitted a valid login request, further requests to protected resources should start working.
timdev