Comment faire quand pas de name à un submit

Comment faire quand pas de name à un submit - PHP - Programmation

Marsh Posté le 25-11-2005 à 20:46:52    

J'essaye de remplir automatiquement un formulaire login/pass avec cURL, mais le bouton submit du site internet n'a pas de champ name  :
<input tabindex="4" type="submit" value="OK">
 
comment passer la valeur submit en paramètre ? par Submit=OK ?
 
Merci pour votre aide.

Reply

Marsh Posté le 25-11-2005 à 20:46:52   

Reply

Marsh Posté le 25-11-2005 à 20:55:09    

Si le formulaire s'appelle le_formulaire, s'il n'y a qu'un seul bouton submit, et si tu utilises Javacript, tu peux énumérer les controls :

  for(i = 0; i <le_formulaire.elements.length ; i++)
      if (le_formulaire.elements[i].type == "submit" )
          le_formulaire.elements[i].value = "nouveau libellé pour le bouton";

Cela dit, je ne vois pas bien l'intérêt de changer le nom d'un bouton submit d'une page que l'on a pas créé soi-même (et même d'une page que l'on a créé). Si le problème est de simuler l'appui sur le bouton, au lieu de remplir le bouton, alors c'est une autre question.


Message édité par olivthill le 25-11-2005 à 20:57:25
Reply

Marsh Posté le 25-11-2005 à 21:01:32    

Merci pour ta réponse. Mais il s'agit bien de simuler l'appui sur le bouton.
Car j'utilise précisément cURL pour entrer sur un site Internet où mon login et mon mot de passe sont nécessaires, avant de pouvoir accéder et récupérer les pages Internet protégées... mais je n'arrive pas à passer le stade du login :
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.SITE.com/');
curl_setopt ($ch, CURLOPT_POST, 1);
curl_setopt ($ch, CURLOPT_POSTFIELDS, 'login=MON_LOGIN&password=MON_PASSWORD');
curl_setopt ($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);
echo $store = curl_exec ($ch);
curl_close ($ch);

Reply

Marsh Posté le 25-11-2005 à 21:53:04    

Simuler l'appui sur la touche submit revient au même que d'envoyer les données du formulaire en mode post (ou get si le formulaire est en méthode get).
 
Il y a plusieurs exemples de code similaires au tien sur la page du manuel php pour les fonctions curls http://us2.php.net/manual/en/function.curl-setopt.php . Une page complémentaire qui est intéressante est http://curl.haxx.se/libcurl/php/examples/ qui donne l'exemple suivant :

Citation :

<?php
//
// A very simple PHP example that sends a HTTP POST to a remote site
//
 
$ch = curl_init();
 
curl_setopt($ch, CURLOPT_URL,"http://www.mysite.com/tester.phtml" );
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS,
            "postvar1=value1&postvar2=value2&postvar3=value3" );
 
curl_exec ($ch);
curl_close ($ch);  
?>

Donc, je pense que ton idée d'envoyer CURLOPT_URL, CURLOPT_POST, et CURLOPT_POSTFIELDS doit être la bonne, mais qu'un détail doit empêcher ton code de marcher. Par exemple, par hasard, est-ce que ce ne serait pas tout bêtement à cause du vieux piège de l'apostrophe au lieu du guillemet dans la ligne du CURLOPT_POSTFIELDS, car

Code :
  1. curl_setopt ($ch, CURLOPT_POSTFIELDS, 'login=$mon_login&password=$mon_password');
  2.     est très différent de
  3. curl_setopt ($ch, CURLOPT_POSTFIELDS, "login=$mon_login&password=$mon_password" );


Reply

Marsh Posté le 25-11-2005 à 21:57:00    

Merci beaucoup poir ton aide. L'erreur provenait en fait de l'url indiquait. Je pointais vers la page où il y avait le formulaire, et non vers la page où le formulaire se valide (action=...). J'espère que cette remarque en aidera d'autres !
Merci encore pour t'être penché sur mon souci !
Bonne soirée.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed