curl 远程登录 以及远程发贴有关问题
curl 远程登录 以及远程发贴问题
http://www.czhi-fi.com/bbsxp/ 论坛 是个bbsxp论坛系统的 是5.15版本。
我用snoopy可以远程登录并发贴。而用curl却无法实现远程登录,更不要说远程发贴了。
我很想用curl实现模拟登录,恳请高手赐教!!拜谢!!
说明:
登录地址:http://www.czhi-fi.com/bbsxp/login.asp
用户名 :mytest
密 码 :111111
首先把我成功用snoopy远程登录并发贴的代码公开:
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> $url = "http://www.czhi-fi.com/bbsxp/"; //论坛地址 $url1 = "http://www.czhi-fi.com/bbsxp/default.asp"; //源地址 $url2 = "http://www.czhi-fi.com/bbsxp/login.asp"; //登录提交判断页 $posts = array(); $posts['menu'] = 'add'; $posts['url'] = $url1 ; $posts['username'] = 'mytest'; $posts['userpass'] = '111111'; include("Snoopy.class.php"); $snoopy = new Snoopy; $snoopy->submit($url2,$posts); //模拟浏览器提交并取得返回结果 /*下面是发贴*/ $url3 = "http://www.czhi-fi.com/bbsxp/newtopic.asp"; //发贴提交页面。 $topic = '经典笑话:离婚'; //标题 $content = '丈大:“孩子他娘。咱们离婚好吗?” 妻子:“咱们从来下吵不闹,为什么要离婚?” 丈夫:“我的意思是,离婚以后我再和你结婚。” 妻子:“啊、你今天发神经疯了还是怎么着?” 丈夫:“没有啊!你看,这几年年轻人结婚,把我的腰包都掏空了,如果我们不再结一次婚,这些践怎么捞得回来哟?'; $posts = array(); $posts['forumid'] = '16'; //板块id号 这个是灌水板块 $posts['topic'] = $topic ; //标题 $posts['content'] = $content ; //内容 $snoopy->submit($url3,$posts); //模拟浏览器提交并取得返回结果 //print_r($snoopy->results); $content = $snoopy->results ; //http://www.czhi-fi.com/bbsxp/ShowPost.asp?id=3148 //ShowForum.asp?forumid=16 if(preg_match("/\"(\d+)\",\"[^\r\n\"]*?\",\"[^\r\n\"]*?\",\"mytest\"/is",$content, $matches)){ if(!empty($matches[1])){ $out = $url . "ShowPost.asp?id=".$matches[1] ; }else{ $out = "没有采集到刚发贴的地址,<a href="%5C%22%22.%24url.%22ShowForum.asp?forumid=16%5C%22" target='\"_blank\"'>查看此板块内有没有新发贴</a>"; } }else{ $out = "发贴可能失败了,<a href="%5C%22%22.%24url.%22ShowForum.asp?forumid=16%5C%22" target='\"_blank\"'>查看此板块内有没有新发贴</a>"; } echo "<a href="%5C%22%24out%5C%22" target='\"_blank\"'>".$out."</a>" ;
*************************************
下面是我的curl登录代码,这个代码不能实现远程登录,请高人指点!
- PHP code
<!-- Code highlighting produced by Actipro CodeHighlighter (freeware) http://www.CodeHighlighter.com/ --> $login_url = "http://www.czhi-fi.com/bbsxp/login.asp";//登录页地址 $source_url = "http://www.czhi-fi.com/bbsxp/default.asp";//源页地址 $post_fields = array(); //以下两项固定值 $post_fields['menu'] = 'add'; $post_fields['url'] = 'http://www.czhi-fi.com/bbsxp/Default.asp'; //用户名和密码,必须填写 $post_fields['username'] = "mytest"; $post_fields['userpass'] = "111111"; $ch = curl_init($login_url); curl_setopt($ch, CURLOPT_REFERER, $source_url); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); 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_FOLLOWLOCATION, 1); // 允许自动跳转 $contents = curl_exec($ch); curl_close($ch); echo $contents ;
我很想用curl实现模拟登录,恳请高手赐教!!拜谢!!
------解决方案--------------------
cookie得获取(http 返回头中的set-Cookie项)并反馈过去(http请求头中的cookie项)。
- PHP code
$login_url = "http://www.czhi-fi.com/bbsxp/login.asp";//登录页地址 $source_url = "http://www.czhi-fi.com/bbsxp/default.asp";//源页地址 $post_fields = array(); //以下两项固定值 /*$post_fields['menu'] = 'add'; $post_fields['url'] = 'http://www.czhi-fi.com/bbsxp/Default.asp'; //用户名和密码,必须填写 $post_fields['username'] = "mytest"; $post_fields['userpass'] = "111111";*/ $cookie="cookie.txt"; $ch = curl_init($login_url); curl_setopt($ch, CURLOPT_REFERER, $source_url); curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER['HTTP_USER_AGENT']); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt ($ch, CURLOPT_COOKIEJAR, $cookie); curl_setopt($ch, CURLOPT_POSTFIELDS, 'username=mytest&userpass=111111&menu=add&url=http://www.czhi-fi.com/bbsxp/Default.asp'); curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 允许自动跳转 $contents = curl_exec($ch); curl_close($ch); echo $contents; <div class="clear"> </div>

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Untuk mengemas kini versi curl di bawah Linux, anda boleh mengikuti langkah di bawah: Semak versi curl semasa: Pertama, anda perlu menentukan versi curl yang dipasang dalam sistem semasa. Buka terminal dan laksanakan arahan berikut: curl --version Perintah ini akan memaparkan maklumat versi curl semasa. Sahkan versi curl tersedia: Sebelum mengemas kini curl, anda perlu mengesahkan versi terkini yang tersedia. Anda boleh melawati tapak web rasmi curl (curl.haxx.se) atau sumber perisian yang berkaitan untuk mencari versi terkini curl. Muat turun kod sumber curl: Menggunakan curl atau penyemak imbas, muat turun fail kod sumber untuk versi curl pilihan anda (biasanya .tar.gz atau .tar.bz2

Kod status HTTP 520 bermakna pelayan mengalami ralat yang tidak diketahui semasa memproses permintaan dan tidak dapat memberikan maklumat yang lebih khusus. Digunakan untuk menunjukkan bahawa ralat tidak diketahui berlaku semasa pelayan memproses permintaan, yang mungkin disebabkan oleh masalah konfigurasi pelayan, masalah rangkaian atau sebab lain yang tidak diketahui. Ini biasanya disebabkan oleh isu konfigurasi pelayan, isu rangkaian, kelebihan beban pelayan atau ralat pengekodan. Jika anda menghadapi ralat kod status 520, sebaiknya hubungi pentadbir tapak web atau pasukan sokongan teknikal untuk mendapatkan maklumat dan bantuan lanjut.

Dari awal hingga akhir: Cara menggunakan cURL sambungan php untuk permintaan HTTP Pengenalan: Dalam pembangunan web, selalunya perlu untuk berkomunikasi dengan API pihak ketiga atau pelayan jauh lain. Menggunakan cURL untuk membuat permintaan HTTP ialah cara yang biasa dan berkesan. Artikel ini akan memperkenalkan cara menggunakan PHP untuk melanjutkan cURL untuk melaksanakan permintaan HTTP dan menyediakan beberapa contoh kod praktikal. 1. Penyediaan Pertama, pastikan php telah memasang sambungan cURL. Anda boleh melaksanakan php-m|grepcurl pada baris arahan untuk menyemak

Bagaimana untuk mengendalikan 301 pengalihan semula halaman web dalam PHPCurl? Apabila menggunakan PHPCurl untuk menghantar permintaan rangkaian, anda akan sering menemui kod status 301 yang dikembalikan oleh halaman web, yang menunjukkan bahawa halaman itu telah diubah hala secara kekal. Untuk mengendalikan situasi ini dengan betul, kami perlu menambah beberapa pilihan khusus dan logik pemprosesan pada permintaan Curl. Berikut akan memperkenalkan secara terperinci cara mengendalikan 301 pengalihan semula halaman web dalam PHPCurl, dan memberikan contoh kod khusus. Prinsip pemprosesan 301 ubah hala 301 ubah hala bermakna pelayan mengembalikan 30

Cara menggunakan NginxProxyManager untuk melaksanakan lompatan automatik dari HTTP ke HTTPS Dengan perkembangan Internet, semakin banyak laman web mula menggunakan protokol HTTPS untuk menyulitkan penghantaran data untuk meningkatkan keselamatan data dan perlindungan privasi pengguna. Memandangkan protokol HTTPS memerlukan sokongan sijil SSL, sokongan teknikal tertentu diperlukan semasa menggunakan protokol HTTPS. Nginx ialah pelayan HTTP yang berkuasa dan biasa digunakan dan pelayan proksi terbalik, dan NginxProxy

Kod status HTTP 403 bermakna pelayan menolak permintaan pelanggan. Penyelesaian kepada kod status http 403 ialah: 1. Semak kelayakan pengesahan Jika pelayan memerlukan pengesahan, pastikan kelayakan yang betul disediakan 2. Semak sekatan alamat IP, pastikan bahawa alamat IP klien adalah disenarai putih atau tidak disenaraihitamkan 3. Semak tetapan kebenaran fail Jika kod status 403 berkaitan dengan tetapan kebenaran fail atau direktori, pastikan klien mempunyai kebenaran yang mencukupi untuk mengakses fail atau direktori ini. dll.

Kuasai maksud kod status HTTP 301: Senario aplikasi biasa pengalihan halaman web Dengan perkembangan pesat Internet, keperluan orang ramai untuk interaksi halaman web menjadi lebih tinggi dan lebih tinggi. Dalam bidang reka bentuk web, pengalihan halaman web adalah teknologi biasa dan penting, dilaksanakan melalui kod status HTTP 301. Artikel ini akan meneroka maksud kod status HTTP 301 dan senario aplikasi biasa dalam pengalihan halaman web. Kod status HTTP301 merujuk kepada ubah hala kekal (PermanentRedirect). Apabila pelayan menerima pelanggan

Aplikasi Pantas: Analisis Kes Pembangunan Praktikal PHP Asynchronous HTTP Muat Turun Berbilang Fail Dengan pembangunan Internet, fungsi muat turun fail telah menjadi salah satu keperluan asas bagi banyak laman web dan aplikasi. Untuk senario di mana berbilang fail perlu dimuat turun pada masa yang sama, kaedah muat turun segerak tradisional selalunya tidak cekap dan memakan masa. Atas sebab ini, menggunakan PHP untuk memuat turun berbilang fail secara tidak segerak melalui HTTP telah menjadi penyelesaian yang semakin biasa. Artikel ini akan menganalisis secara terperinci cara menggunakan HTTP tak segerak PHP melalui kes pembangunan sebenar.
