Laravel 5

Redirection vers site externe qui ne fonctionne pas

  • Avatar de leknoppix
    Membre depuis :
    30/10/2017
    Messages :
    2

    Bonjour

    Je suis face à un soucis et je ne comprend pas pourquoi cela ne fonctionne pas.
    Je dispose sur ce projet, d'un système de pub qui permet de comptabilité le nombre de clic et de renvoyer les visiteurs sur le site externe lié à la pub. (pub qui renvoie souvent sur des liens Fb).
    Le visiteur, lorsqu'il clique sur un lien, accèdent à une url du type:

    http://ndd.local/cc/NzQ1Le+7v2h0dHA6Ly9yLmxlam91cm5hbGR1Z2Vycy5mci82

    L'action cc permet d'incrémenter une variable countclick et ensuite de rediriger vers le site externe.
    Ci dessous ma fonction:

    public function cc($data){
    $data = base64_decode($data);
    $data = explode('-', $data, 2);
    Pub::where('id', $data[0])->increment('countclick', 1);
    return redirect()->away($data[1]);
    }

    Comme vous l'avez compris, mon url de base (celle du clic) contient un base64 qui contient à la fois l'id de la pub (servant à l'incrémentation) et l'url pour renvoyer.
    Hors, mon soucis est au niveau du redirect qui ne veut pas fonctionner.

    Lorsque j'utilise l'action away(), il me redirige vers http://ndd.local/cc/http://ndd2.fr.
    J'ai testé avec l'action to(), il me redirige vers http://ndd.local/http://ndd2.fr.
    Quand je teste avec un return redirect() vers http://ndd.local/http://ndd2.fr.

    J'ai même utilisé la méthode avec le header('Location : ...."), et cela me redirige vers http://ndd.local/cc/http://ndd2.fr.

    Je ne comprend pas pourquoi cela ne fonctionne pas.
    Ci dessous, un var_dump de la variable $data avant le decode:

    NzQ1Le+7v2h0dHA6Ly9yLmxlam91cm5hbGR1Z2Vycy5mci82

    Après le décode:

    745-http://ndd2.fr/6

    Et après le explode

    array(2) {
    [0]=>
    string(3) "745"
    [1]=>
    string(32) "http://ndd2.fr/6"
    }

    Là, je ne comprend plus. Si l'un de vous voit la connerie que j'ai fait, merci de me le dire.

    Merci d'avance.

Vous ne pouvez pas répondre à ce sujet.