IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

CURL, récupération de l'IP et FOLLOWLOCATION


Sujet :

Langage PHP

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Points : 15
    Points
    15
    Par défaut CURL, récupération de l'IP et FOLLOWLOCATION
    Salut à tous,

    Je post dans cette section car j'utilise CURL actuelement pour résoudre mon probleme, mais ce n'est peut etre pas la meilleur solution.
    Que je vous explique ...

    On utilisait jusqu'a present un script qui nous permettait de centraliser le tracking et de rediriger des liens de plusieurs de nos sites.
    Pour cela on modifait les DNS d'un sous domaine de chaque site pour pointer vers le serveur principal ou se trouve le script.
    donc :

    lien.SITE1 pointe vers IP_SITE_SCRIPT
    lien.SITE2 pointe vers IP_SITE_SCRIPT
    ...

    Par exemple l'internaute clic sur lien.SITE1/redirect.php?var=xxx, il atterit sur notre serveur principal SITE_SCRIPT/redirect?var=xxxx
    On enregistre l'IP et le USER_AGENT
    Ensuite on redirige vers le site final (qu'on recupere grace à ?var=xxxx )

    Pour diverse raison nous ne pouvons plus faire cela de cette facon, le site ou se trouve le script ne doit plus apparaitre nul part (donc pas de redirect via DNS ou autre)
    Difficulté suplementaire le script en lui même n'est pas modifiable.


    Pour le moment nous avons effectué les modifications suivantes :
    lien.SITE1/redirect.php fait juste une redirection vers /redirect2.php :
    - cette etape sert juste à afficher un 'sablier' pour faire patienter l'internaute (plutot que d'afficher une page blanche le temps de la redirection)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <meta http-equiv='refresh' content='0;URL="redirect2.php$varUrl" '>

    redirect2.php contient le code suivant

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
     
     
    $varUrl = "";
    $i =0;
     
    foreach($_GET as $cle => $valeur){
        $varUrl .= ($i == 0 ? '?' : '&').$cle.($valeur ? '='.urlencode($valeur) : '');
        $i++;
    }
     
    $url = 'SITE_SCRIPT/redirect.php'.$varUrl;
     
    callservice ($url);
     
    function callService($url){
        $ch = curl_init();
     
        curl_setopt($ch, CURLOPT_URL, $url);
        curl_setopt($ch, CURLOPT_HTTPGET       , TRUE);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, FALSE);
        curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
     
        curl_setopt($ch, CURLOPT_USERAGENT,  $_SERVER['HTTP_USER_AGENT']); 
     
        $output = curl_exec($ch);
    }
    Voila pour les explications, maintenant on passe aux problemes :

    1/L'IP qui est stockée est celle du serveur ou se trouve le script curl et pas celui de l'internaute.

    Est-ce qu'il y a quelque chose que je n'ai pas bien parametré dans le CURL ? ou c'est le fonctionnement normal ?
    Si il n'est pas possible de faire cela grace a CURL, il y a un autre moyen ?


    2/Le FOLLOWLOCATION ne fonctionne pas.
    ...Et je ne comprends pas pourquoi
    le safe mode est à OFF, il n'y a pas d' open_basedir

    Pour palier a ce soucis j'ai du mettre "CURLOPT_RETURNTRANSFER, FALSE" et faire une etape intermediaire de redirection html vers le lien final
    Vous avez deja eu ce cas ?


    C'est surtout le probleme de l'IP qui est critique, celui du followlocation l'est moins, mais j'aimerais bien eviter l'etape intermediaire


    Merci de m'avoir lu !
    Et merci pour votre aide !

  2. #2
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 89
    Points : 85
    Points
    85
    Par défaut
    Bonjour,
    le FOLOWLOCATION doit trouver le deuxiemme chemin qui doit suivre , exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
     
    $ch = curl_init();
     
    curl_setopt($ch, CURLOPT_URL, 'https://exapmle.com/'); 
     
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);
    			 curl_exec($ch);  // execution
    curl_setopt($ch, CURLOPT_URL, 'https://example.com/yourscript.php');  // 2 eme chemin .
     
    			$result = curl_exec($ch);
     
     
    curl_close($ch);
     
    ?>

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Désolé, je ne comprend pas ta réponse.
    Logiquement CURL est censé suivre les differentes redirection.
    Je n'ai jamais eu besoin jusqu'a present de faire des appels en cascade.

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Juin 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Juin 2011
    Messages : 25
    Points : 15
    Points
    15
    Par défaut
    Un petit Up.

    Voila comme j'ai modifié ma fonction pour que cela fonctionne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    function callService($url){
    	$ch = curl_init();
     
    	curl_setopt($ch, CURLOPT_URL, $url);
    	curl_setopt($ch, CURLOPT_HTTPGET	, TRUE);
    	curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
    	curl_setopt($ch, CURLOPT_FOLLOWLOCATION	, TRUE);
     
            curl_setopt($ch, CURLOPT_USERAGENT,  $_SERVER['HTTP_USER_AGENT']); 
     
    	$output = curl_exec($ch);
     
     
    	$lien =curl_getinfo($ch,CURLINFO_EFFECTIVE_URL);
    	header("Location: $lien");
     
            curl_close($ch);
     
     
    }
    C'est comme cela que ca doit fonctionner ?

    Par contre je n'ai pas resolu mon probleme d'Ip.
    Si quelqu'un voit une solution, je suis preneur.

  5. #5
    Membre régulier
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2018
    Messages
    89
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : Algérie

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2018
    Messages : 89
    Points : 85
    Points
    85
    Par défaut
    Bonjour,

    c'est pareil la vous demander l URL qui suit l execution .
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $lien =curl_getinfo($ch,CURLINFO_EFFECTIVE_URL);

Discussions similaires

  1. [PHP 5.0] Récupération de l'encodage d'un url avec Curl
    Par yule dans le forum Langage
    Réponses: 3
    Dernier message: 15/09/2010, 10h16
  2. [Curl] Récupération page avec ajax
    Par Trunks dans le forum Bibliothèques
    Réponses: 2
    Dernier message: 05/05/2010, 09h38
  3. Récupération d'un div précis -> curl
    Par masseur dans le forum Langage
    Réponses: 1
    Dernier message: 28/01/2008, 21h32
  4. [cURL] récupération d'une page html
    Par yanice dans le forum Bibliothèques et frameworks
    Réponses: 5
    Dernier message: 03/04/2007, 13h35
  5. [XML] [cURL] Authentification Php récupération de données
    Par thibaut06 dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 13/02/2006, 14h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo