Ciao a tutti,
ho un piccolo problema. Ho implementato un modulo che ha vari radio button ed una casella di testo.
Il modulo permette di scegliere un tipo di certificato da visualizzare in pdf tramite i radio button con associato il codice fiscale.
Il tutto viene effettuato utilizzando CURL.
Il mio problema è il seguente:
Se si inserisce un codice fiscale errato mi spunta fuori correttamente il messaggio di errore. A questo punto se inserisco il codice fiscale correttamente, mi si apre correttamente il certificato in pdf, ma l'errore rimane. Ho provato con :
form_set_error('codice_fiscale', '', TRUE);
drupal_get_messages('error');
ma il problema non si è risolto.
Una curiosità.
Se tolgo la chiamata CURL, il tutto funziona correttamente.
Mi potete aiutare?
Posta il codice, altrimenti e' un po' difficile aiutarti..
diciamo che la cosa è un pò complessa visto che è un progetto per comuni. Io provo a postare
$url = "mio_url";
$ch = curl_init ($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$rc = curl_exec ($ch);
if (!$rc) { //QUI VERIFICO SE LA CHIAMATA CURL HA BUON ESITO. SE NO FACCIO IL SEGUENTE
$code = curl_getinfo ($ch, CURLINFO_HTTP_CODE);
switch ($code) {
//LA CHIAMATA CURL INOLTRE RESTITUISCE UN CODICE DI ERRORE SETTATO TRAMITE GLI HEADER DI PHP
case 404: //SE HO UN 404 NOT FOUND
form_set_error('codice_fiscale', 'Certificato richiesto non disponibile');
curl_close ($ch);
break;
}
}else{
//se la chiamata curl ha avuto buon esito dovrei cancellare gli errori eventuali
//le due istruzioni successive mi azzerano gli errori ma solo se elimino l'apertura del pdf
form_set_error('codice_fiscale', '', TRUE);
drupal_get_messages('error');
curl_close ($ch);
//questo fa si che mi si apra una finestra di dialogo per aprire o salvare il file pdf
header('Content-Description: File Transfer');
header('Content-Type: application/pdf');
header('Content-Disposition: attachment; filename=certificato.pdf');
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
// header('Content-Length: ' . filesize($file));
echo $rc;
ob_clean();
flush();
readfile($file);
}
drupalino83, usa il tasto "CODE" quando stai inserendo del codice nei commenti o nei post.