1

ウェブサイトにログインするためのコードがあります。ワードプレスのようなサイトでは動作しますが、ログインしたいサイトでは何も起こりません。エラーメッセージなどはどこにもありません。これが私のコードです:

<?php
print" <head>
        <base href='http://www.example.com/'/>
    </head>";

$url = 'http://www.example.com/login.php?';                        
$postdata = 'username=dasds&password=frkm'; 
$referer = $url; 
$cookie = "cookie.txt" ;
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, true);
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:13.0) Gecko/20100101 Firefox/13.0");
curl_setopt($ch,CURLOPT_COOKIESESSION,false); 
curl_setopt ($ch, CURLOPT_TIMEOUT, 60); 
curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, false); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie);
curl_setopt ($ch, CURLOPT_POSTFIELDS, $postdata); 
curl_setopt ($ch, CURLOPT_POST, 1); 
$result = curl_exec ($ch);
print $result;
curl_close($ch);
?>

およびそれらのhtmlフォーム:

<form name="form" method="post" action="/login.php">
<label class="registration" for="username">
<span>Username</span>
<input name="username" type="text" id="username" size="30"/>
</label>
<label class="registration" for="password">
<span>Password</span>
<input name="password" type="password" id="password"/>
</label>
<input type="submit" name="Login" value="Login"/>
</form>
4

1 に答える 1

0

これを試してください

  • 末尾を削除しますか?URLで。
  • との両方COOKIEJARを指定COOKIEFILEし、Cookieファイルへの絶対パスを設定します。

コード

curl_setopt ($ch, CURLOPT_COOKIEJAR, __DIR__.'/'.$cookie);
curl_setopt ($ch, CURLOPT_COOKIEFILE, __DIR__.'/'.$cookie);

と:

  • ログインを試みる前にホームページを一度ロードして、Cookieが提供される可能性があります。
  • キャプチャが含まれていないことを確認してください。ブラウザ(FireFox + HttpFox)でPOSTプロセスを追跡します。

ブラウザでログイン要求と応答を追跡する場合、失敗することはありません。

于 2012-10-28T20:24:08.007 に答える