file_get_contents不会返回正确的内容

时间:2014-09-11 20:10:31

标签: php laravel-4

我已通过授权并以管理员身份登录,并已打开页面" http://xx.dev/user/admin/inventory/create"。我想要做的是点击此页面上的提交按钮,并在控制器中获取自己的内容。

我正在尝试使用file_get_contents();

来获取内容
$url = 'http://'.$_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"]."/create";
$html = file_get_contents($url);

我检查了$ url,这是正确的。但是当我检查$ html时,它会从另一个网址返回错误的内容。

网址应为&#34; http://xx.dev/user/admin/inventory/create&#34;,$ url确实等于它,但$ html的值来自&#34; http://xx.dev/user/login&#34; < / p>

我很困惑,不知道为什么会这样。

以下是路线:

/*
|--------------------------------------------------------------------------
| The routes for Inventories
|--------------------------------------------------------------------------
*/
Route::resource('user/admin/inventory', 'InventoryController', array('only' => array('create', 'store', 'index')));


/*
|--------------------------------------------------------------------------
| The routes for Login
|--------------------------------------------------------------------------
*/
Route::get('user/logout', array('as' => 'user.logout', 'uses' => 'UserController@logout'));
Route::get('user/admin', array('as' => 'user.admin', 'uses' => 'UserController@admin'));
Route::post('user/login_submit', array('as' => 'user.login_submit', 'uses' => 'UserController@login_submit'));
Route::get('user/login', array('as' => 'user.login', 'uses' => 'UserController@login'));
Route::resource('user', 'UserController', array('only' => array('create', 'store')));

1 个答案:

答案 0 :(得分:3)

原因是,您需要通过身份验证才能调用“创建”吗?如果是这样,那么您将被重定向到登录页面,因为您没有通过file_get_contents()进行身份验证。由于file_get_contents()不存储cookie /会话。

您可以通过Curl执行相同的操作,使用第一个请求进行身份验证,然后在服务器上调用“create”。