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:
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:$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);
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.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();
Come posso fare? Devo costruire a mano la risposta? E poi a che indirizzo devo inviarla, a $_SERVER['REMOTE_ADDR']?
Grazie!
Manuel

Rispondi quotando