超薄框架从其他服务器发布帖子

时间:2015-07-01 13:41:06

标签: php slim

代码在同一台服务器上运行正常。

我的问题是如何在一台服务器上进行更新?

因此,如果我将www.domain1.com发布到www.domain2.com(api) emailadres,我该如何实现?我得到了404页。

$app = new \Slim\Slim();

$app->put('/user/update/:id/', function( $id ) use( $app ){
global $connection;
$app->response()->header("Content-Type", "application/json");

if( $id && $id > 0 ){
    $result = $connection->query( 'SELECT * FROM `users` WHERE id = '.(int)$id.' ;' );
}else{
    $result = array();
}

if ($result) {
    $post = $app->request()->put();
    $result = $connection->query( "UPDATE `users` SET email = '".$_POST['email']."' WHERE id = $id;");
    echo json_encode(array(
    "status" => (bool)$result,
    "message" => "User updated successfully"
    ));
}
else{
    echo json_encode(array(
    "status" => false,
    "message" => "User id $id does not exist"
    ));
}
});

$app->run();?>

形式:

<form action="" method="post">
    <input type="text" name="email" value=""/>
    <input type="hidden" name="_METHOD" value="PUT"/>
    <input type="submit" value="Update user"/>
</form>

1 个答案:

答案 0 :(得分:0)

if($_POST){
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL,"http://domain.com/user/update/7/");
    curl_setopt($ch, CURLOPT_POST, 1);
    curl_setopt($ch, CURLOPT_POSTFIELDS, "email=".$_POST['email']."&_METHOD=put");
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $server_output = curl_exec ($ch);
    curl_close ($ch);
}

需要发送_METHOD = put