Visualizzazione dei risultati da 1 a 2 su 2
  1. #1

    [Curl] session su vari domini

    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.
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

  2. #2
    Ok, uppo e aggiorno:

    Risolto il problema di header:location
    Pensavo che curl chiudesse la pagina corrente, invece invia in background.

    Ho fatto delle prove.

    Pagina CURL.php
    Pagina COOKIE.php
    Pagina INDEX.php

    La pagina CURL.PHP dice alla pagina COOKIE.php di creare i cookie (o le sessioni)
    La pagina COOKIE.php crea i cookie, e se li richiamo me li restituisce correttamente.

    ==== Problema ====
    Se apro la pagina INDEX.php essa non vede i cookie.

    Se invece processo direttamente la pagina COOKIE.php (senza cioè richiamarla da CURL.php) la pagina INDEX.php vede i cookie.


    C'è una soluzione o una funzione alternativa a CURL?
    Se avessi voluto risolvere i problemi con la forza, sarei nato Jedi.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.