libcurl は、HTTPS 認証、HTTP POST、HTTP PUT、FTP アップロード (これは PHP の FTP 拡張機能を使用して完了することもできます)、HTTP フォームベースのアップロード、プロキシ、Cookie、ユーザー名とパスワードの認証もサポートしています。
PHP のcurl は非常に使いやすいです。インターネットで関連記事を検索すると、curl のシミュレートされたログインに関する記事が見つかります。シミュレートされたディスク投稿のソース コードを提供している人はほとんどいません。
コードをコピー コードは次のとおりです:
$discuz_url = 'http:// 127.0.0.1 /discuz/';//フォーラムアドレス
$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';
//セキュリティの質問
$post_fields[' questionid'] = 0;
$post_fields['answer'] = '';
//@todo 確認コード
$post_fields['seccoverify'] = ''; FORMHASH
$ch =curl_init ($login_url);
curl_setopt($ch, CURLOPT_HEADER, 0);
$contents =curl_exec($ch); ;
curl_close($ch );
preg_match('/
if(!empty($matches)) {
$formhash = $matches[1];
} else {
die(' forumhash.');
}
//データをPOSTし、COOKIEを取得し、Webサイトの一時ディレクトリにCookieファイルを置きます
$cookie_file = tempnam('./temp','クッキー');
$ch =curl_init ($login_url);
curl_setopt($ch, CURLOPT_HEADER, 0); CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);
curl_exec($ch); ;
//キー Cookie を取得します。このファイルは、Cookie ファイルによる投稿をシミュレートするために使用できます。fid はフォーラムの列 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); //ここでのハッシュ コードは、ログイン ウィンドウのハッシュ コードとは異なります。ここの hidden には追加の ID 属性があります
preg_match('/
if(!empty($matches)) {
$formhash = $matches[1]
} else {
die( 'フォーラムハッシュが見つかりません。');
$post_data = array();
//投稿タイトル
$post_data['subject'] = 'test2'; >//投稿内容
$post_data['message' ] = 'test2';
$post_data['topicsubmit'] = "はい"; 🎜>//投稿タグ
$post_data['tags '] = 'test';
//投稿のハッシュ コード、これは非常に重要です。このハッシュ コードが見つからない場合、discuz はソース ページが正しくないことを警告します。
$ch =curl_init($send_url); ( $ch, CURLOPT_REFERER, $send_url); // 偽装 REFERER
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_COOKIEFILE, $ cookie_file);
curl_setopt($ch, CURLOPT_POST, 1);
$contents =curl_exec($ch); ) ;
//Cookie ファイルを削除します
?>