Maison développement back-end tutoriel php curl 远程登录 以及远程发贴有关问题

curl 远程登录 以及远程发贴有关问题

Jun 13, 2016 pm 01:33 PM
curl http quot

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>" ;

Copier après la connexion

*************************************
 下面是我的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 ;

Copier après la connexion



我很想用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>
Copier après la connexion
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
2 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Repo: Comment relancer ses coéquipiers
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Adventure: Comment obtenir des graines géantes
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Combien de temps faut-il pour battre Split Fiction?
3 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que signifie le code d'état http 520 ? Que signifie le code d'état http 520 ? Oct 13, 2023 pm 03:11 PM

Le code d'état HTTP 520 signifie que le serveur a rencontré une erreur inconnue lors du traitement de la demande et ne peut pas fournir d'informations plus spécifiques. Utilisé pour indiquer qu'une erreur inconnue s'est produite lorsque le serveur traitait la demande, ce qui peut être dû à des problèmes de configuration du serveur, à des problèmes de réseau ou à d'autres raisons inconnues. Cela est généralement dû à des problèmes de configuration du serveur, des problèmes de réseau, une surcharge du serveur ou des erreurs de codage. Si vous rencontrez une erreur de code d'état 520, il est préférable de contacter l'administrateur du site Web ou l'équipe d'assistance technique pour plus d'informations et d'assistance.

Tutoriel sur la mise à jour de la version curl sous Linux ! Tutoriel sur la mise à jour de la version curl sous Linux ! Mar 07, 2024 am 08:30 AM

Pour mettre à jour la version curl sous Linux, vous pouvez suivre les étapes ci-dessous : Vérifiez la version actuelle de curl : Tout d'abord, vous devez déterminer la version de curl installée dans le système actuel. Ouvrez un terminal et exécutez la commande suivante : curl --version Cette commande affichera les informations sur la version actuelle de curl. Confirmer la version curl disponible : Avant de mettre à jour curl, vous devez confirmer la dernière version disponible. Vous pouvez visiter le site officiel de curl (curl.haxx.se) ou des sources de logiciels associées pour trouver la dernière version de curl. Téléchargez le code source de curl : à l'aide de curl ou d'un navigateur, téléchargez le fichier de code source pour la version curl de votre choix (généralement .tar.gz ou .tar.bz2).

Du début à la fin : Comment utiliser l'extension php cURL pour effectuer des requêtes HTTP Du début à la fin : Comment utiliser l'extension php cURL pour effectuer des requêtes HTTP Jul 29, 2023 pm 05:07 PM

Du début à la fin : Comment utiliser l'extension php cURL pour les requêtes HTTP Introduction : En développement web, il est souvent nécessaire de communiquer avec des API tierces ou d'autres serveurs distants. Utiliser cURL pour effectuer des requêtes HTTP est un moyen courant et puissant. Cet article expliquera comment utiliser PHP pour étendre cURL afin d'effectuer des requêtes HTTP et fournira quelques exemples de code pratiques. 1. Préparation Tout d'abord, assurez-vous que l'extension cURL est installée sur php. Vous pouvez exécuter php-m|grepcurl sur la ligne de commande pour vérifier

Comprendre les scénarios d'application courants de redirection de pages Web et comprendre le code d'état HTTP 301 Comprendre les scénarios d'application courants de redirection de pages Web et comprendre le code d'état HTTP 301 Feb 18, 2024 pm 08:41 PM

Comprendre la signification du code d'état HTTP 301 : scénarios d'application courants de redirection de pages Web Avec le développement rapide d'Internet, les exigences des utilisateurs en matière d'interaction avec les pages Web sont de plus en plus élevées. Dans le domaine de la conception Web, la redirection de pages Web est une technologie courante et importante, mise en œuvre via le code d'état HTTP 301. Cet article explorera la signification du code d'état HTTP 301 et les scénarios d'application courants dans la redirection de pages Web. Le code d'état HTTP 301 fait référence à une redirection permanente (PermanentRedirect). Lorsque le serveur reçoit le message du client

Comment utiliser Nginx Proxy Manager pour implémenter le saut automatique de HTTP à HTTPS Comment utiliser Nginx Proxy Manager pour implémenter le saut automatique de HTTP à HTTPS Sep 26, 2023 am 11:19 AM

Comment utiliser NginxProxyManager pour implémenter le saut automatique de HTTP à HTTPS Avec le développement d'Internet, de plus en plus de sites Web commencent à utiliser le protocole HTTPS pour crypter la transmission des données afin d'améliorer la sécurité des données et la protection de la vie privée des utilisateurs. Le protocole HTTPS nécessitant la prise en charge d'un certificat SSL, un certain support technique est requis lors du déploiement du protocole HTTPS. Nginx est un serveur HTTP et un serveur proxy inverse puissants et couramment utilisés, et NginxProxy

Qu'est-ce que le code d'état http 403 ? Qu'est-ce que le code d'état http 403 ? Oct 07, 2023 pm 02:04 PM

Le code d'état HTTP 403 signifie que le serveur a rejeté la demande du client. La solution au code d'état http 403 est la suivante : 1. Vérifiez les informations d'authentification. Si le serveur requiert une authentification, assurez-vous que les informations d'identification correctes sont fournies ; 2. Vérifiez les restrictions d'adresse IP. Si le serveur a restreint l'adresse IP, assurez-vous que les informations d'identification sont correctes. l'adresse IP du client est restreinte. Sur liste blanche ou non sur liste noire ; 3. Vérifiez les paramètres d'autorisation du fichier. Si le code d'état 403 est lié aux paramètres d'autorisation du fichier ou du répertoire, assurez-vous que le client dispose des autorisations suffisantes pour accéder à ces fichiers ou répertoires. etc.

Comment gérer la redirection 301 des pages web en PHP Curl ? Comment gérer la redirection 301 des pages web en PHP Curl ? Mar 08, 2024 am 11:36 AM

Comment gérer la redirection 301 des pages web dans PHPCurl ? Lorsque vous utilisez PHPCurl pour envoyer des requêtes réseau, vous rencontrerez souvent un code d'état 301 renvoyé par la page Web, indiquant que la page a été redirigée définitivement. Afin de gérer correctement cette situation, nous devons ajouter des options spécifiques et une logique de traitement à la requête Curl. Ce qui suit présentera en détail comment gérer la redirection 301 des pages Web dans PHPCurl et fournira des exemples de code spécifiques. Principe de traitement de la redirection 301 La redirection 301 signifie que le serveur renvoie un 30

Solution d'erreur de requête http 415 Solution d'erreur de requête http 415 Nov 14, 2023 am 10:49 AM

Solution : 1. Vérifiez le type de contenu dans l'en-tête de la requête ; 2. Vérifiez le format des données dans le corps de la requête ; 3. Utilisez le format de codage approprié. 4. Utilisez la méthode de requête appropriée ;

See all articles