PHP Curl Et Cookies

J'ai un problème avec PHP Curl et les Cookies d'Authentification.

J'ai un fichier Connector.php qui authentifie les utilisateurs sur un autre serveur et renvoie le cookie avec l'utilisateur courant.

Le Problème est que je veux pour authentifier des milliers d'utilisateurs avec curl mais il authentifie et enregistre des COOKIES uniquement pour un seul utilisateur à la fois.

le code pour connector.php est-ce:

    <?php
    if(!count($_REQUEST)) {
        die("No Access!");
    }


    //Core Url For Services
    define ('ServiceCore', 'http://example.com/core/');


    //Which Internal Service Should Be Called
    $path = $_GET['service'];


    //Service To Be Queried
    $url = ServiceCore.$path;

    //Open the Curl session
    $session = curl_init($url);

    //If it's a GET, put the GET data in the body
    if ($_GET['service']) {
        //Iterate Over GET Vars
        $postvars = '';
        foreach($_GET as $key=>$val) {
            if($key!='service') {
                $postvars.="$key=$val&";
            }
        }
        curl_setopt ($session, CURLOPT_POST, true);
        curl_setopt ($session, CURLOPT_POSTFIELDS, $postvars);
    }


    //Create And Save Cookies
    $tmpfname = dirname(__FILE__).'/cookie.txt';
    curl_setopt($session, CURLOPT_COOKIEJAR, $tmpfname);
    curl_setopt($session, CURLOPT_COOKIEFILE, $tmpfname);

    curl_setopt($session, CURLOPT_HEADER, false);
    curl_setopt($session, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($session, CURLOPT_FOLLOWLOCATION, true);

    //EXECUTE
    $json = curl_exec($session);
        echo $json;
    curl_close($session);
?>

Ici est le processus d'authentification:

  1. Utilisateur entre un nom d'utilisateur et le mot de passe: Connecteur.le php?service=connexion&user_name=user32&user_pass=123
  2. Connecteur.le php?service=logosessionInfo cela renvoie des informations concernant l'utilisateur basée sur les cookies enregistrés plus tôt avec le service d'ouverture de session.

Le problème est que ce code Cookie enregistre dans un fichier pour un seul utilisateur et ne peut pas gérer plusieurs authentification de l'utilisateur.

  • J'ai résolu mon problème avec la création de différents fichiers de cookies pour différents utilisateurs uniques PHPSESSID. $tmpfname = dirname(__FILE__).'/'.$_COOKIE['PHPSESSID'].'.txt';
  • est-ce une bonne idée si il ya beaucoup d'utilisateurs?
  • Non Si vous avez de nombreux utilisateurs ce qui est mauvais. Il provoque des crash du serveur apache. - Je résoudre ce problème avec apache proxy. Et enlevé tout mon CURL code.
InformationsquelleAutor Shark | 2012-10-14