Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Laravel中获取URL参数的值?_Php_Laravel_Laravel 5.3 - Fatal编程技术网

Php 如何在Laravel中获取URL参数的值?

Php 如何在Laravel中获取URL参数的值?,php,laravel,laravel-5.3,Php,Laravel,Laravel 5.3,我在从Fitbit的重定向URL获取URL参数时遇到了困难。我在这里尝试在不使用Socialist或任何其他包的情况下集成Fitbit 我有以下网址: http://localhost/abc/public/portal/fitbit/fitbitIntegration#access_token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1WjVLUzUiLCJhdWQiOiIyMjhMNjUiLCJpc3MiOiJGaXRiaXQiLCJ0eXAiOiJhY2Nlc3Nf

我在从Fitbit的重定向URL获取URL参数时遇到了困难。我在这里尝试在不使用Socialist或任何其他包的情况下集成Fitbit

我有以下网址:

http://localhost/abc/public/portal/fitbit/fitbitIntegration#access_token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1WjVLUzUiLCJhdWQiOiIyMjhMNjUiLCJpc3MiOiJGaXRiaXQiLCJ0eXAiOiJhY2Nlc3NfdG9rZW4iLCJzY29wZXMiOiJ3aHIgd251dCB3cHJvIHdzbGUgd3dlaSB3c29jIHdzZXQgd2FjdCB3bG9jIiwiZXhwIjoxNTA1NDU5MTM2LCJpYXQiOjE1MDQ4NzE1MjF9.iQ9nxbzmvar2DlG_848b3MTefq7q0wxyXByTb1Bb2o4&user_id=5Z5KS5&scope=sleep+settings+nutrition+activity+social+heartrate+profile+weight+location&token_type=Bearer&expires_in=587615
所有我想获取
#
之后的所有信息,就像我想在这里获取
用户id
一样

我已经试过了

public function fitbitIntegration(Request $request)
{
    try{
        $authId = Auth::user()->id;

        $fitbit = new FitbitMaster();
        $fitbit->user_id = $authId;
        $fitbit->fitbit_client_id = $request->user_id;
        $fitbit->save();
        flash('Connected', 'success');
        return redirect()->back();
    }
    catch (QueryException $exception)
    {
        echo $exception->getMessage();
    }
}
路线

但是我没有在这里获得导致完整性约束错误的
用户id


在我的例子中,如何获取用户id?

如果您想获取用户浏览器中显示的哈希标记或锚点后的值:这在
“标准”
HTTP中是不可能的,因为此值从未发送到服务器(因此它在
$\u服务器[“请求URI”]
或类似的预定义变量中不可用)。您需要在客户端使用某种
JavaScript
magic,例如将此值作为POST参数

这部分称为“碎片”。如果您有任何静态url,则可以通过以下方式获取:

$url=parse_url("http://localhost/abc/public/portal/fitbit/fitbitIntegration#access_token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1WjVLUzUiLCJhdWQiOiIyMjhMNjUiLCJpc3MiOiJGaXRiaXQiLCJ0eXAiOiJhY2Nlc3NfdG9rZW4iLCJzY29wZXMiOiJ3aHIgd251dCB3cHJvIHdzbGUgd3dlaSB3c29jIHdzZXQgd2FjdCB3bG9jIiwiZXhwIjoxNTA1NDU5MTM2LCJpYXQiOjE1MDQ4NzE1MjF9.iQ9nxbzmvar2DlG_848b3MTefq7q0wxyXByTb1Bb2o4&user_id=5Z5KS5&scope=sleep+settings+nutrition+activity+social+heartrate+profile+weight+location&token_type=Bearer&expires_in=587615");
echo $url["fragment"]; //This variable contains the fragment

您可以定义类似于
fitbitIntegration/{param}
的路由,并在函数fitbitIntegration中添加类似fitbitIntegration的参数(Request$req,$param);然后你可以在你的参数上使用正则表达式来得到你想要的

演示链接:

将您的动态Url存储在任何变量、控制器中,并执行以下操作

<?php

//store  your dynamic url in any variable

    $url = "http://localhost/abc/public/portal/fitbit/fitbitIntegration#access_token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1WjVLUzUiLCJhdWQiOiIyMjhMNjUiLCJpc3MiOiJGaXRiaXQiLCJ0eXAiOiJhY2Nlc3NfdG9rZW4iLCJzY29wZXMiOiJ3aHIgd251dCB3cHJvIHdzbGUgd3dlaSB3c29jIHdzZXQgd2FjdCB3bG9jIiwiZXhwIjoxNTA1NDU5MTM2LCJpYXQiOjE1MDQ4NzE1MjF9.iQ9nxbzmvar2DlG_848b3MTefq7q0wxyXByTb1Bb2o4&user_id=5Z5KS5&scope=sleep+settings+nutrition+activity+social+heartrate+profile+weight+location&token_type=Bearer&expires_in=587615";


    $access_token = substr($url, strpos($url, "#") + 1);    

    echo $access_token; // get the string of acess token with parametes

?>
输出:


您的url中有
#
,这就是为什么你没有得到url参数,但我不能改变“#”,因为这是第三方,他们有这样的url方案,现在我怎么能得到这个id?你可以使用js来获得url参数,看看这个答案,了解更多关于如何在服务器端不可能做到这一点的解释。我如何在任何示例中实现这一点不要认为在使用phphey的控制器方法中,链接是动态的,我需要一个动态的解决方案,兄弟:)是的,我在我的answer@RAUSHANKUMAR至少提及复制的ANS的链接;)不作为参数获取未找到异常共享您的web或api文件我只是控制器函数我实现了kr de isko kaise krna Hai问题在于如何在
$url
中获取url值我认为您可以从Laravel中的路由获取url,然后您可以在控制器中使用/存储它。我在路由中没有该url第三方是否乐于帮助Bhai:)
<?php

//store  your dynamic url in any variable

    $url = "http://localhost/abc/public/portal/fitbit/fitbitIntegration#access_token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1WjVLUzUiLCJhdWQiOiIyMjhMNjUiLCJpc3MiOiJGaXRiaXQiLCJ0eXAiOiJhY2Nlc3NfdG9rZW4iLCJzY29wZXMiOiJ3aHIgd251dCB3cHJvIHdzbGUgd3dlaSB3c29jIHdzZXQgd2FjdCB3bG9jIiwiZXhwIjoxNTA1NDU5MTM2LCJpYXQiOjE1MDQ4NzE1MjF9.iQ9nxbzmvar2DlG_848b3MTefq7q0wxyXByTb1Bb2o4&user_id=5Z5KS5&scope=sleep+settings+nutrition+activity+social+heartrate+profile+weight+location&token_type=Bearer&expires_in=587615";


    $access_token = substr($url, strpos($url, "#") + 1);    

    echo $access_token; // get the string of acess token with parametes

?>
<?php 

//Here you Can See save.php page inside an $url where its redirect with your access_token after clicking on `Click Here` link (in your case its redirect routes `fitbitIntegration` as you mentioned ). So i try to create the situation as your routes after its redirect with token, Fine !! 

$url = "http://localhost/save.php/fitbitIntegration#access_token=eyJhbGciOiJIUzI1NiJ9.eyJzdWIiOiI1WjVLUzUiLCJhdWQiOiIyMjhMNjUiLCJpc3MiOiJGaXRiaXQiLCJ0eXAiOiJhY2Nlc3NfdG9rZW4iLCJzY29wZXMiOiJ3aHIgd251dCB3cHJvIHdzbGUgd3dlaSB3c29jIHdzZXQgd2FjdCB3bG9jIiwiZXhwIjoxNTA1NDU5MTM2LCJpYXQiOjE1MDQ4NzE1MjF9.iQ9nxbzmvar2DlG_848b3MTefq7q0wxyXByTb1Bb2o4&user_id=5Z5KS5&scope=sleep+settings+nutrition+activity+social+heartrate+profile+weight+location&token_type=Bearer&expires_in=587615";

?>

<a  target="_blank" href="<?php echo $url; ?>"> Click Here </a>

<?php
echo '<br><br><br>';
?>


<!-- Now after redirect you have to use an javascript inside controller or inside an routes directly to aceess the url an getting an access_token, here i try to store inside the cookies of using js and retrieve it using php and echo -->

<?php

echo "<script language='javascript'>

token = window.location.hash.split('#')

    document.cookie='access_token='+token[1];
    document.cookie='token[1]';
    alert(token[1]);
    document.cookie='token[1]';

    if (token[1] != '') {
        //window.location.reload()
        //location.reload(true);
}
else{

//document.cookie='token[1]'; 

}

</script>";

//token_name=$_COOKIE['access_token'];

// Here We get the  access token inside the $_COOKIE['access_token'];  

if(isset($_COOKIE['access_token'])){

    echo $_COOKIE['access_token'];
}

?>