[MontelLUG] Curl e post

Walter Barbagallo turbometalskater a gmail.com
Lun 25 Ago 2014 23:44:29 CEST


Il 24/08/2014 10:54, Samuele ha scritto:
> Devo fare una serie di wget per ottenere dei file attraverso una url.
> Fin qui ci sono, il problema è che prima devo autenticarmi ed ottenere
> un session id su cookie.
> Prendendomi il session id da firefox, creando un cookie apposito funziona.
> 
> Il problema è ottenere in modo automatico il cookie.
> 
> La form attuale di autenticazione invia un POST multipart che è
> supportato solo da curl.
> 
> Purtroppo non sono riuscito a capire come comporre la stringa per
> ottenerelo.
> Qualche anima pia mi sa aiutare?
> 
> La form è questa:
> 
> <body>
> <table border="0" cellpadding="0" cellspacing="0" align="center"
> class="loginsubtable">
>     <form enctype="multipart/form-data" id="loginform" method="post"
> action="<?echo $PHP_SELF;?>">
>   <tr>
>     <td valign="top" style="padding-top: 50px"><img src="<? echo
> $img_product_logo; >"/></td>
>     <td class="loginsep">
>         <input type="hidden" name="uri" id="uri" value=" <? echo
> HtmlSpecialChars($uri); ?>" />
>         <table border="0" cellpadding="0" cellspacing="0"
> class="logintable" align="center">
>           <tr>
>             <td colspan="2" align="center">
>               <div id="errmsg" class="error">
>                 <? if (isset($error_msg) && (strlen($error_msg) > 0)) {
> echo $error_msg; } ?>
>               </div>
>             </td>
>           </tr>
>           <tr>
>             <td colspan="2"> </td>
>           </tr>
>           <tr>
>             <td><label for="username"><? echo
> dict_translate("Username:"); ?></label></td>
>             <td><input type="text" name="username" id="username" /></td>
>           </tr>
>           <tr>
>             <td><label for="password"><? echo
> dict_translate("Password:"); ?></label></td>
>             <td><input type="password" name="password" id="password"
> maxlength="64"/></td>
>           </tr>
>           <tr>
>             <td colspan="2"> </td>
>           </tr>
>         </table>
>     </td>
>   </tr>
>   <tr>
>     <td>
>     </td>
>     <td class="submit" align="right">
>       <input type="submit" value=" <? echo dict_translate("Login"); ?>" />
>     </td>
>   </tr>
> </form>
> </table>
> </body>
> 
> 
> 
> _______________________________________________
> montellug mailing list
> montellug a montellug.it
> http://mail.montellug.it/mailman/listinfo/montellug
> 

avendo il form action su $PHP_SELF se i nomi non ingannano (spero che
sia settato a a qualcosa di simile a $_SERVER['PHP_SELF']) il form ti
ritorna sullo stesso script. E' quindi questo script a generare il
cookie con un session id? o è solo uno snippet di uno script più lungo
ed elaborato? (che non sia anche il cookie default di sessione php?)
Spero quindi che ci sia anche una sezione che fa si preoccupi del
landing di questa pagina (visualizzi il form se richiesto in GET
(richiesto da browser) / elabori i dati se richiesto in POST (pressione
del submit)).

However, a grandi linee ti posso consigliare che (da quanto mi ricordo)
per utilizzare i cookie hai a disposizione la variabile superglobale
$_COOKIE (array associativo), utilizzabile dopo aver usato session_start().
Per essere più agile ed avere più controllo sulla richiesta POST ti
consiglio di usare le funzioni cURL e giocare con quello in modo da
renderlo più batchy.

Altri consigli con le informazioni che mi hai dato purtroppo non riesco
a darteli >:/



More information about the montellug mailing list