Maison  >  Article  >  développement back-end  >  Méthode PHP pour réaliser une connexion à distance en arrière-plan au système des affaires éducatives de Zhengfang basée sur curl

Méthode PHP pour réaliser une connexion à distance en arrière-plan au système des affaires éducatives de Zhengfang basée sur curl

墨辰丷
墨辰丷original
2018-05-31 17:37:011626parcourir

Cet article présente principalement la méthode de connexion à distance au Zhengfang Educational Affairs System basée sur l'arrière-plan PHP curl. Il analyse les compétences opérationnelles de PHP en utilisant curl et les cookies pour réaliser une connexion à distance sous la forme d'exemples auxquels les amis dans le besoin peuvent se référer. it

Cet article décrit la méthode de connexion à distance au système des affaires académiques de Zhengfang basée sur l'arrière-plan PHP curl. Je le partage avec vous pour votre référence. Les détails sont les suivants :

Je réfléchis à la façon de résoudre ce problème depuis l'année dernière. Cette année, j'ai enfin compris, mais le code de vérification doit être rempli. dans.

Si vous pouvez récupérer des tickets comme 360 ​​​​​​qui reconnaissent automatiquement le code de vérification, alors tout ira bien. Plus de bêtises. Retour au sujet

CURL est utilisé ici.

Idée de conception : connectez-vous d'abord à la page pour obtenir des COOKIES, puis utilisez les cookies pour trouver le serveur pour le code de vérification. Enfin, fournissez toutes les informations dont le serveur a besoin.

(Ce genre de réflexion consiste à simuler complètement le navigateur accédant à la page, et la différence fondamentale est qu'il s'agit d'un humain contre une machine)

public function index(){
 $ch = curl_init();
 curl_setopt($ch, CURLOPT_URL, $url); //填对于的URL就可以了
 curl_setopt($ch, CURLOPT_HEADER, 0);
 curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file); //主要cookie的路径,本保存页面cookie
 curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); //返回结果自动输出
 $response = curl_exec($ch);
 curl_close($ch);
}

Visitez la page d'accueil du système des affaires académiques de Zhengfang La première étape consiste à obtenir le HTML dans la page, et la deuxième étape consiste à obtenir les cookies.

D'autres questions ? Quelle est l’utilité d’obtenir du HTML ?

Si vous observez attentivement le HTML sur la page d'accueil du système d'administration académique, vous constaterez qu'il contient de nombreux champs cachés, et ces champs changent.
Donc, autant récupérer tout le HTML et l'analyser, puis extraire tous les champs obligatoires

Structure HTML

Avez-vous vu ça ? Des champs masqués sont nécessaires pour soumettre des données, et il ne peut pas y en avoir trop.

Effet de page

Ensuite, je veux aborder la question la plus importante, comment obtenir le code de vérification ?

Au début, je voulais juste aller directement à

<img src="xxxx/CheckCode.aspx" />

. Bien que le code de vérification soit publié, il ne vous appartient pas, donc lorsque vous enregistrez la connexion à distance, il vous sera dit que le code de vérification est erroné

Alors, comment obtenir votre propre code de vérification ? À l’heure actuelle, ce qui me vient naturellement à l’esprit, ce sont les cookies.

La façon dont le serveur distingue si la requête du navigateur concerne la même personne dépend de l'ID de session dans le cookie

De cette façon. Si vous prenez les cookies que vous avez obtenus sur la page d'accueil et demandez au serveur votre code de vérification, cela donnera-t-il une erreur ?

public function getImg()
{
    $url = "http://xxxx/CheckCode.aspx";
    $filedir = SITE_PATH."/TMP/Cookies";
    $cookie_file = $filedir."/cookie.txt";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_HEADER, 0);
    curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)");
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file); //
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1);
    curl_setopt($ch, CURLOPT_TIMEOUT, "10");
    header("Content-type:image/gif"); //这个视不同图片格式不一样,请注意
    echo curl_exec($ch);
    curl_close($ch);
}

Ensuite, appelez cette méthode sur d'autres pages et vous pourrez obtenir le code de vérification.

La requête PHP de CURL et le PHP émis par votre navigateur appartiennent à deux threads différents, leurs cookies sont donc partagés différemment.

Vous pouvez vous connecter de cette façon, mais ne pensez pas que vous pouvez utiliser toutes les fonctions après vous être connecté de cette manière, alors vous vous trompez. Il y a encore un petit détail. .

Résumé : Ce qui précède représente l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.

Recommandations associées :

Implémentation et analyse de l'efficacité de quatre algorithmes de tri en PHP [tri à bulles, tri par insertion, tri par sélection et tri rapide]

Résumé des questions d'entretien PHP

À propos de la configuration nginx du déploiement PHP

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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