Maison >développement back-end >tutoriel php >Comment se connecter au site Web mobile de Barnes & Noble à l'aide de Curl, de cookies et de SSL ?

Comment se connecter au site Web mobile de Barnes & Noble à l'aide de Curl, de cookies et de SSL ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-10 03:32:03299parcourir

How to Log into Barnes & Noble's Mobile Website Using Curl, Cookies, and SSL?

Utilisation de Curl pour se connecter avec SSL, cookies et POST

Contexte

Cette enquête se concentre sur la connexion au site Web mobile de Barnes & Noble à l'aide de Curl, tout en rencontrant des difficultés dues à l'utilisation du SSL et des cookies.

Solution

Pour résoudre le problème, envisagez les ajustements suivants :

  1. Encodage d'URL : Encodez les paramètres d'URL (par exemple, e-mail et mot de passe) dans la requête POST.
  2. Inclusion de la valeur X : Incluez la valeur x dans l'URL de connexion (telle qu'extraite de la page initiale ).

Exemple de travail

Le code suivant intègre ces ajustements dans un exemple de travail :

// Constants
$EMAIL = '[email protected]';
$PASSWORD = 'yourpassword';
$COOKIE_FILE = "/tmp/cookies.txt";
$LOGIN_URL = "https://cart2.barnesandnoble.com/mobileacct/op.asp?stage=signIn";
$AGENT = "Nokia-Communicator-WWW-Browser/2.0 (Geos 3.0 Nokia-9000i)";

// Curl Initialization
$ch = curl_init();

// Basic Headers
$headers = ["Accept: */*", "Connection: Keep-Alive"];

// Curl Options
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_USERAGENT, $AGENT);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_COOKIEFILE, $COOKIE_FILE);
curl_setopt($ch, CURLOPT_COOKIEJAR, $COOKIE_FILE);

// Step 1: Initialize with Login URL
curl_setopt($ch, CURLOPT_URL, $LOGIN_URL);
curl_exec($ch);

// Step 2: Extract Form Fields
$content = curl_getinfo($ch);
$fields = getFormFields($content);

// Populate Form Fields
$fields['emailAddress'] = $EMAIL;
$fields['acctPassword'] = $PASSWORD;

// Extract X Value
$loginUrl = "https://cart2.barnesandnoble.com/mobileacct/op.asp?x={$x}";

// Construct POST Fields
$postFields = http_build_query($fields);

// Update Login URL and POST Options
curl_setopt($ch, CURLOPT_URL, $loginUrl);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $postFields);

// Perform Login and Retrieve Result
$result = curl_exec($ch);
print $result;

Ressources externes

Pour une assistance supplémentaire lorsque vous utilisez Curl, tenez compte de ces ressources supplémentaires :

  • [Récupérez la bibliothèque Android Market avec curl](https://stackoverflow.com/questions/4940264/retrieve-android-market-mylibrary-with-curl )
  • [Actions multiples avec curl](https://stackoverflow.com/questions/6032527/multiple-actions-with-curl)
  • [Envoi de XML et d'en-têtes via curl](https ://stackoverflow.com/questions/2149671/sending-xml-and-headers-via-curl)
  • [Connexion à Google avec PHP et Curl, Cookie désactivé ?](https://stackoverflow. com/questions/1794383/login-to-google-with-php-and-curl-cookie-turned-off)
  • [La connexion Pinterest avec PHP et cURL ne fonctionne pas](https://stackoverflow.com /questions/13597892/pinterest-login-with-php-and-curl-not-working)

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