-
-
//link: http://bbs.it-home.org - $discuz_url = 'http://127.0.0.1/discuz/';//フォーラムAddress
- $login_url = $discuz_url .'logging.php?action=login';//ログインページのアドレス
$post_fields = array();
- //以下の2つの項目は必須ではありません変更可能です
- $post_fields['loginfield'] = 'username';
- $post_fields['loginsubmit'] = 'true';
- //ユーザー名とパスワードを入力する必要があります
- $post_fields['username'] = 'tianxin ';
- $post_fields ['password'] = '111111';
- //安全な質問
- //リンク: http://bbs.it-home.org
- $post_fields['questionid'] = 0;
- $post_fields ['answer'] = '';
- //@todo 確認コード
- $post_fields['seccoverify'] = '';
//フォームを取得
- $ch =curl_init($ login_url);
- curl_setopt ($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
- $contents =curl_exec($ch);
- curl_close($ch);
- preg_match('//i', $contents, $matches);
- if(!empty($matches)) {
- $formhash = $matches[1];
- } else {
- die('フォーラムハッシュが見つかりません。');
- }
//データをPOSTし、COOKIEを取得し、ウェブサイトの一時ディレクトリに Cookie ファイルを作成します。 次へ
- $cookie_file = tempnam('./temp','cookie');
$ch =curl_init($login_url);
- curl_setopt($ ch, CURLOPT_HEADER, 0);
- curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);
- curl_setopt($ch, CURLOPT _クッキージャー、$ cookie_file);
- curl_exec($ch) ;
- curl_close($ch);
// キー Cookie ファイルを取得した後、その Cookie ファイルを使用して投稿をシミュレートできます。フォーラムの列ID
- $send_url = $discuz_url." post.php?action=newthread&fid=2";
$ch =curl_init($send_url);
- curl_setopt($ch, CURLOPT_HEADER , 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1 );
- curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
- $contents =curl_exec($ch);
- curl_close($ch);
-
//ここのハッシュ コードとログイン ウィンドウ 通常のハッシュ コードは異なります。ここの隠しコードには追加の id 属性があります
- preg_match('//i', $contents, $matches);
- if(!empty($matches)) {
- $formhash = $matches [1];
- } else {
- die( 'フォーラムハッシュが見つかりません。');
- }
$post_data = array();
- //投稿タイトル
- $post_data['subject '] = 'test2';
- //コンテンツを投稿
- $post_data['message'] = 'test2';
- $post_data['topicsubmit'] = "はい";
- $post_data['extra'] = '';
- //投稿タグ
- $post_data['tags '] = 'test';
- //投稿のハッシュ コード、これは非常に重要です。このハッシュ コードが見つからない場合、discuz はソース ページが正しくないことを警告します
- $post_data['formhash']=$formhash;
$ch =curl_init($send_url);
- curl_setopt ( $ch, CURLOPT_REFERER, $send_url); //REFERER を偽装
- curl_setopt($ch, CURLOPT_HEADER, 0);
- curl_setopt($ch, CURLOPT_RETURNTRANSFER, 0);
- curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);
- カール_se topt( $ch, CURLOPT_POST, 1);
- curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
- $contents =curl_exec($ch);
- curl_close($ch);
/ /Cookie ファイルをクリーンアップします
- unlink($cookie_file);
- ?>
-
コードをコピー
>>> PHP シミュレートされたログインに関する記事の詳細については、トピック リンクを参照してください: PHP シミュレートログイン phpカールシミュレーション ログインチュートリアルを完了
|