使用curl登录网站

时间:2015-08-29 08:53:52

标签: php curl login

我使用php代码登录网站, 我使用curl来做到这一点,但我有一个问题:(登录到特定网站...当我使用此代码时,它不登录(这意味着如果我发布了错误的密码或错误的用户名,它'' t告诉我登录错误我认为它不会发布我的数据?!?!?!?!我不知道,请看代码打击)

<?php
$ch = curl_init();
$url = 'http://example.com/login.php';
$data = "css/style1.css";
curl_setopt($ch, CURLOPT_URL, $url.'/index.php');
curl_setopt($ch, CURLOPT_USERAGENT,'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/32.0.1700.107 Chrome/32.0.1700.107 Safari/537.36');
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, "username=something&password=something");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$answer = curl_exec($ch);
$answer = str_replace('href="','href="'.$url.'/',$answer);
echo $answer;
?>

我应该说我在其他网站上使用此代码网址但是它有效并且它向我显示错误登录但在此网站中它不起作用....

这是我登录的url html源码(登录页面):

    <!DOCTYPE html>
<!--[if lt IE 7]> <html class="lt-ie9 lt-ie8 lt-ie7" lang="en"> <![endif]-->
<!--[if IE 7]> <html class="lt-ie9 lt-ie8" lang="en"> <![endif]-->
<!--[if IE 8]> <html class="lt-ie9" lang="en"> <![endif]-->
<!--[if gt IE 8]><!--> <html lang="en"> <!--<![endif]-->
<head>
  <meta charset="utf-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
  <title>my url code</title>
  <link rel="stylesheet" href="css/style1.css">
  <!--[if lt IE 9]><script src="//html5shim.googlecode.com/svn/trunk/html5.js"></script><![endif]-->
</head>
<body>
<div id="header_outer">
</div>
  <form method="post" action="" class="login">
    <p>
      <label for="login">Username: </label>
      <input type="text" name="username" id="username" value="">
    </p>

    <p>
      <label for="password">Password: </label>
      <input type="password" name="password" id="password" value="">
    </p>

    <p class="login-submit">
      <button type="submit" name="Login" class="login-button">Login</button>
    </p>
    <p class="forgot-password"><a href="forgot.php">Forgot your password?</a></p>
		
   
  </form>

</body>
</html>

1 个答案:

答案 0 :(得分:0)

  

注意:如果您在HTML表单中使用该元素,则不同   浏览器可以提交不同的值。   从   http://www.w3schools.com/tags/tag_button.asp

这意味着该按钮也被提交,其名称参数为#34;登录&#34;,因此您必须将其包含在CURLOPT_POSTFIELDS中,以便进行处理。

curl_setopt($ch, CURLOPT_POSTFIELDS, "username=something&password=something&Login=true");