Ciao,
ho un modulo che, prima dell'invio, necessita del controllo di un campo, il CodiceFiscale. Questo si legge dal sito dell'AgenziaDelleEntrate passandolo tramite un Form con Captcha.
Questa procedura viene compiuta solo visivamente (risolvendo il captcha riporto il codice fiscale e il captcha sul sito dell'AdE che mostra se è valido o meno). Avrei bisogno di automatizzare questa procedura, interrogando il sito dell'AdE e, in caso il codice risulti "Valido" faccia confermare il modulo oppure bloccarlo.
Questo il codice prodotto. Ma tecnicamente il form gira due volte (la prima volta viene inviato alla stessa pagina in cui il codice PHP invia nuovamente il tutto all'AdE) vanificando il captcha in quanto rinnovato (il primo è già cambiato).
<?php
$captcha = $_POST["captcha"];
?>
<html>
<form method="post" action="(this page)">
<img src="remote-captcha"><input type="text" name="captcha">
<submit>
<?php
$postdata = http_build_query(
array(
'captcha' => $captcha
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://www.form-page', false, $context);
$search = '/<div class="myclass">(.*)<\/div>/';
preg_match($search, $result, $show);
echo $show[0];
?>
ho un modulo che, prima dell'invio, necessita del controllo di un campo, il CodiceFiscale. Questo si legge dal sito dell'AgenziaDelleEntrate passandolo tramite un Form con Captcha.
Questa procedura viene compiuta solo visivamente (risolvendo il captcha riporto il codice fiscale e il captcha sul sito dell'AdE che mostra se è valido o meno). Avrei bisogno di automatizzare questa procedura, interrogando il sito dell'AdE e, in caso il codice risulti "Valido" faccia confermare il modulo oppure bloccarlo.
Questo il codice prodotto. Ma tecnicamente il form gira due volte (la prima volta viene inviato alla stessa pagina in cui il codice PHP invia nuovamente il tutto all'AdE) vanificando il captcha in quanto rinnovato (il primo è già cambiato).
<?php
$captcha = $_POST["captcha"];
?>
<html>
<form method="post" action="(this page)">
<img src="remote-captcha"><input type="text" name="captcha">
<submit>
<?php
$postdata = http_build_query(
array(
'captcha' => $captcha
)
);
$opts = array('http' =>
array(
'method' => 'POST',
'header' => 'Content-type: application/x-www-form-urlencoded',
'content' => $postdata
)
);
$context = stream_context_create($opts);
$result = file_get_contents('https://www.form-page', false, $context);
$search = '/<div class="myclass">(.*)<\/div>/';
preg_match($search, $result, $show);
echo $show[0];
?>