2012-08-16 2 views
0

J'ai du mal à comprendre comment soumettre quelque chose en utilisant curl. Je l'ai déjà connecté avec succès en utilisant ce code:CURL: Comment entrer type = "soumettre"

curl $HOST -s -L -b $COOKIE -c $COOKIE -d "login=submit&login_name=$USER&login_password=$PASS" > /dev/null 
<input name="login" type="hidden" id="login" value="submit" /> 

mais lorsque je tente quelque chose de similaire avec une autre page, il ne fonctionne pas, ça me rend fou:

curl $RSS -s -L -b $COOKIE -c $COOKIE -F "submitrssauto=doit" -o rss 

<form name="submitrss" action="" method="post"> 
    <input type="submit" name="submitrssauto" id="submitrssauto" value="doit" class="buttons"> 
    <input type=hidden name="allow_main" value="1"> 
    <input type=hidden name="allow_rating" value="1"> 
    <input type=hidden name="allow_comm" value="1"> 
    <input type=hidden name="lastdate" value="1345109704"> 
    <input type=hidden name="id" value="4"> 
    <input type="hidden" name="user_hash" value="e6bf03ffeb6865eadb62eb9d7d99c88e" /> 
    <input type=hidden name="text_type" value="1"> 
</forum> 

code php:

   echo <<<HTML 

    <br />&nbsp;&nbsp; 
<form name="submitrss" action="" method="post"> 
     <input type="submit" name="submitrssauto" id="submitrssauto" value="doit" class="buttons"> 
     <input type=hidden name="allow_main" value="{$rss['allow_main']}"> 
     <input type=hidden name="allow_rating" value="{$rss['allow_rating']}"> 
     <input type=hidden name="allow_comm" value="{$rss['allow_comm']}"> 
     <input type=hidden name="lastdate" value="{$xml->lastdate}"> 
     <input type=hidden name="id" value="{$id}"> 
     <input type="hidden" name="user_hash" value="$dle_login_hash" /> 
     <input type=hidden name="text_type" value="{$rss['text_type']}"> 
</forum> 
HTML; 

ce que j'ai essayé jusqu'à présent:

curl $RSS -s -L -b $COOKIE -c $COOKIE -F "submitrssauto=doit" -o rss 
    curl $RSS -s -L -b $COOKIE -c $COOKIE -d "submitrssauto=doit" -o rss 
    curl $RSS -s -L -b $COOKIE -c $COOKIE -o rss -d "submitrssauto=doit&allow_main=1&allow_rating=1&allow_comm=1&lastdate=1345109704‌​&id=4&user_hash=e6bf03ffeb6865eadb62eb9d7d99c88e&text_type=1" 
+0

Ce paramètre '-d', qui contient les variables d'un formulaire, a été formaté dans la convention pour HTTP. Vous devez traduire votre formulaire à cela. – Orbling

+0

par ex. 'curl $ RSS -s -L -b $ COOKIE -c $ COOKIE -o rss -d« submitrssauto = doit & allow_main = 1 & allow_rating = 1 & allow_comm = 1 & lastdate = 1345109704 & id = 4 & user_hash = e6bf03ffeb6865eadb62eb9d7d99c88e & text_type = 1 "' – Orbling

+0

Ou vous pouvez utiliser '-F' par variable. – Orbling

Répondre

0

Utilisez les outils de développement de Chrome ou Firebug de Firefox pour tracer le processus de communication HTTP. Cela peut vous aider.

Les données publiées peuvent être traitées par des scripts js, vous pouvez donc ignorer si vous utilisez uniquement la source des pages Web.

+0

Dans l'onglet "net", vous pouvez voir les données finales après traitement. – Jacob