Salve a tutti, ho il seguente problema: sto creando un'applicazione C/S in PHP e la comunicazione dev'essere sincrona, ovvero il mio client deve restare in attesa della risposta del server.

Ecco l'invio della richiesta da parte del client, che si autentica, usa SSL e sembra funzionare:

codice:
$userpwd = "username:password";
$curl = curl_init();
curl_setopt($curl, CURLOPT_HTTPAUTH, CURLAUTH_BASIC ) ;
curl_setopt($curl, CURLOPT_USERPWD, $userpwd);
curl_setopt($curl, CURLOPT_SSLVERSION,3);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, 2);
curl_setopt($curl, CURLOPT_HEADER, true);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_POSTFIELDS,  "");
curl_setopt($curl, CURLOPT_URL, $submit_url);
		
$data = curl_exec($curl);
Lato server iniziano i problemi. Di seguito riporto il codice che ho scritto con l'utilizzo di HttpResponse. Tuttavia, sul server che sto utilizzando non mi è concesso installare il modulo pecl_http, quindi non posso utilizzare la classe HttpResponse. Il seguente codice, dunque, va modificato opportunamente:

codice:
$username = $_SERVER['PHP_AUTH_USER'];
$password = $_SERVER['PHP_AUTH_PW'];

// altra elaborazione in cui inizializzo la stringa $data (che contiene la risposta)

HttpResponse::status(200);
HttpResponse::setContentType('text/html');      
HttpResponse::setData($data);
HttpResponse::send();
HttpResponse::flush();
Non sono sicuro che questo codice funzioni (non l'ho potuto testare), ma mi aspetto che la send() invii la risposta al corretto destinatario (forse utilizzando $_SERVER['REMOTE_ADDR']?). Comunque, ammesso che questo codice possa funzionare su un server con pecl_http installato, a me non va bene.
Come posso fare? Devo costruire a mano la risposta? E poi a che indirizzo devo inviarla, a $_SERVER['REMOTE_ADDR']?

Grazie!
Manuel