Domanda

Ho visto questo ha chiesto in molti modi, ma non riesce a trovare una risposta che funziona.

ho creato una pagina che si collega ad un sito remoto basata su .NET utilizzando PHP / CURL. Funziona alla grande per quanto va - posso ottenere la parte posteriore dei dati dal connesso a pagina tramite curl_exec e fare quello con esso, ma quello che ho davvero necessità di fare è quello di reindirizzare l'utente a quella pagina . Semplicemente riorientare mi dà un collegato-out pagina sul sito remoto. So che la risposta è a ottenere il cookie che del restituito quando i registri CURL in, passando poi in una seconda chiamata. . . in qualche modo. I; m certo che qualcuno deve fare questo e in grado di fornire un esempio di lavoro. Si prega di aiuto - questo mi sta facendo impazzire!

Grazie,

Mark

È stato utile?

Soluzione

Non c'è da stupirsi non è possibile trovare una risposta che le opere.
È impossibile.

Altri suggerimenti

Il problema è che l'accesso verrà dal vostro server PHP, non dall'indirizzo IP del l'utente finale, in modo che quando si reindirizza l'utente, il sito probabilmente non vederli come login.

E 'possibile impostare fare cose come passare il cookie fornito alla parte posteriore di accesso del server PHP per l'utente finale, ma se il sito reindirizzate è anche leggermente ben scritto, non cadrà per questo.

Se avete il pieno controllo di entrambi i siti e si può accedere l'uno-altri database, si potrebbe scrivere del codice di back-end in modo che il server di PHP dice al sito .net aspettarsi l'utente in entrata; che il lavoro potrebbe. Ma avresti bisogno di fare un certo lavoro di back-end in entrambi i sistemi.

Se non si dispone di accesso di back-end per il sito Net, allora l'unico modo in cui posso vedere per farlo sarebbe quello di utilizzare il sito PHP come un proxy completo per il sito Net - vale a dire, piuttosto che facendo un redirect, basta visualizzare l'output del sito .net direttamente tramite il vostro PHP. Questo avrà tutti i tipi di altri problemi connessi con esso, però.

Se l'uso del sito cookie si potrebbe usare cURL.

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_HEADER, TRUE);
curl_setopt($ch, CURLOPT_POSTFIELDS, "User=$user&passwd=$passwd");
curl_setopt ($ch, CURLOPT_POST, TRUE);
curl_setopt($ch, CURLOPT_NOBODY, TRUE);

$header = curl_exec($ch);

if (preg_match("/set-cookie:(.*)\n", $header, $m)) {
  $cookies = preg_replace('/(expires|path|domain)=[^;]*;?/i', '', $m[1]);
  header("Cookies: " . $cookies);
  header("Location: $url");
}

questo dovrebbe funzionare ma non provarlo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top