Re: How to cURL a JSP page [message #179431 is a reply to message #179429] |
Sun, 28 October 2012 08:43 |
J.O. Aho
Messages: 194 Registered: September 2010
Karma:
|
Senior Member |
|
|
On 28/10/12 04:12, Ankur Sinha wrote:
> I am trying to cURL my university login page. I want users to enter their university id and pass in my website,
> my website will curl to university website, authenticate and then allow them to login or give error accordingly.
There are quite many people who won't do that, login in to a site from a
third party page, as this can cause login credentials be stolen.
> But my university portal is a jsp page.
This don't make any difference how curl works.
> And after having posted in StackOverflow and other forums before, this
> is what I came up with. I need further help on where I am going wrong and how to rectify it.
>
> [/color]
[color=blue]> <form class="form-horizontal" action="curl.php" method="POST">[/color]
[color=blue]> <div class="control-group">[/color]
[color=blue]> <label class="control-label" for="inputEmail">Username</label>[/color]
[color=blue]> <div class="controls">[/color]
[color=blue]> <input type="text" id="inputEmail" placeholder="Username">[/color]
You will not send any useful data to your curl page, see examples at
w3schools: http://www.w3schools.com/html/html_forms.asp
[color=blue]> </div>[/color]
[color=blue]> </div>[/color]
[color=blue]> <div class="control-group">[/color]
[color=blue]> <label class="control-label" for="inputPassword">Password</label>[/color]
[color=blue]> <div class="controls">[/color]
[color=blue]> <input type="password" id="inputPassword" placeholder="Password">[/color]
You will not send any useful data to your curl page, see examples at
w3schools: http://www.w3schools.com/html/html_forms.asp
[color=blue]> </div>[/color]
[color=blue]> </div>[/color]
[color=blue]> <div class="control-group">[/color]
[color=blue]> <div class="controls">[/color]
[color=blue]> <label class="checkbox">[/color]
[color=blue]> <input type="checkbox"> Remember me[/color]
[color=blue]> </label>[/color]
[color=blue]> <button type="submit" class="btn">Sign in</button>[/color]
[color=blue]> </div>[/color]
[color=blue]> </div>[/color]
[color=blue]> </form>[/color]
[color=blue]> [/color]
>
> Now this is my curl.php file:
>
> [/color]
[color=blue]> <?php[/color]
[color=blue]> $address = "http://evarsity.srmuniv.ac.in/srmswi/usermanager/youLogin.jsp"; //site URL[/color]
[color=blue]> $post = "username=txtRegNumber&pass=txtPwd"; //Parameters to be sent. Written like GET.[/color]
You need to set the login name and password, in this case you just using
static values txtRegNumber / txtPwd, you need to assign those dynamically.
See http://www.php.net/manual/en/language.variables.basics.php
[color=blue]> $welcomeMessage = "Welcome..."; //This is the message that is displayed when a login is successful[/color]
[color=blue]> [/color]
[color=blue]> $options = array([/color]
[color=blue]> CURLOPT_USERAGENT => 'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)',[/color]
[color=blue]> CURLOPT_POST => true, //using post[/color]
[color=blue]> CURLOPT_URL => $address, //where to go[/color]
[color=blue]> CURLOPT_POSTFIELDS => $post, //input params[/color]
[color=blue]> CURLOPT_RETURNTRANSFER => true, //Returns a string value of the request[/color]
[color=blue]> CURLOPT_SSL_VERIFYPEER => false, //Avoid SSL problems[/color]
[color=blue]> CURLOPT_COOKIEFILE => 'cookie.txt', //Save cookies[/color]
[color=blue]> CURLOPT_COOKIEJAR => 'cookies.txt' //Cookies located[/color]
[color=blue]> CURLOPT_USERPWD ==> [username]:[password]);[/color]
[color=blue]> [/color]
You need to make the connection to the site, see example at php.net:
http://www.php.net/manual/en/function.curl-init.php
[color=blue]> if (strpos($content, $welcomeMessage) !== false){[/color]
[color=blue]> /*[/color]
[color=blue]> Do whatever,I don't know what to do here though[/color]
[color=blue]> */[/color]
[color=blue]> }[/color]
You should make error checks, see examples at php.net:
http://www.php.net/manual/en/function.curl-errno.php
http://www.php.net/manual/en/function.curl-error.php
When you confirm that you have logged in, you have to be sure that the
string you look for don't include HTML tags.
[color=blue]> curl_close($ch); //close connections[/color]
[color=blue]> ?>[/color]
[color=blue]> [/color]
>
> Please let me know where I am going wrong, why I am not able to login and after logging in, how to log out.
Drop the cookie, if you want the university web server to know it, make
a curl request to the logout link/page.
Good luck with your school assignment.
--
//Aho
|
|
|