Ciao!
Ho cominciato a provare la potenza di PHP Curl.
==== Premessa 1 ====
Uso una pagina dedicata esclusivamente per processare i dati (processa.php)
La pagina usa esclusivamente metodo POST.
Quando ha finito di fare i fatti suoi, rediretta - header(location) alla pagina pubblica.
Questo ha enormi vantaggi:
1) Separa il front-end dai codici di modifica
2) scongiura il riprocesso del modulo se la pagina è aggiornata
2) Estirpa l'avvisaccio: "Conferma reinvio modulo" che ho sempre odiato.
==== Premessa 2 ====
Ho più domini, e non voglio che l'utente debba loggarseli uno per uno.
I domini portano tutti alla stessa pagina. (il sito è uno, i domini tanti)
Così la pagina, grazie a CURL, invia i dati POST che ha appena usato, a se stessa ma sotto un altro dominio.
==== Problema ====
CURL fa il suo dovere, passa i dati che vengono rielaborati.
Però:
- I file SESSION (o cookie) vengono memorizzati solo nel primo dominio.
- La funzione header(location) alla fine non funziona.
Praticamente la pagina processa.php mi resta lì imbambolata, vuota e bianca.
Tolgo buona parte del codice, come unset($curl) per far partire l'header, ecc.
codice:
$datenoj = array ("datenoA" => $datenoA, "datenoB" => $datenoB, "datenoc" => $datenoC);
$curl="http://".$prossimodominio."/processa.php";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$curl);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_POSTFIELDS,$datenoj);
curl_setopt($ch, CURLOPT_AUTOREFERER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_COOKIESESSION, true);
curl_setopt($ch, CURLOPT_FRESH_CONNECT, true);
$res = curl_exec($ch); curl_close($ch);
//alla fine:
if(!isset($curl)){header("location: http://www.primodominio.com/tuttoaposto.php");};
Ci ho buttato un po di tutto, tentando e ritentando: COOKIESESSION, FRESH_CONNECT, ma niente.
Mi logga solo nel primo dominio.
Grazie a chi mi risponde, a chi solo legge, e a tutti.