Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/242.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脚本中使用angularjs$资源_Php_Angularjs - Fatal编程技术网

如何在php脚本中使用angularjs$资源

如何在php脚本中使用angularjs$资源,php,angularjs,Php,Angularjs,我有一个关于PHP-AngularJs的问题,所以我有一个简单的PHP脚本 <?php require_once '../../dbConnect.php'; $driverId = $_POST['driverId']; if (isset($_POST['driverId'])) { $sql = "delete from drivers where driver_id='$driverId'"; if ($mysqli->query($s

我有一个关于PHP-AngularJs的问题,所以我有一个简单的PHP脚本

<?php
require_once '../../dbConnect.php';

$driverId = $_POST['driverId'];

if (isset($_POST['driverId'])) {

        $sql = "delete from drivers where driver_id='$driverId'";

        if ($mysqli->query($sql) === TRUE) {
            echo mysqli_insert_id($mysqli);
        } else {
            echo "Error updating record: " . $mysqli->error;
        }

        $mysqli->close();
}

?>
我不喜欢这段代码,在另一个Java项目上,我用angularjs$资源服务将参数发送到端点,如下所示

return $http({
    method: 'POST',
    url: '/api/drivers/deleteDriver.php',
    data: $.param(driverObject),
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
});
var deleteDriverResouce = $resource('/api/drivers/deleteDriver.php');

function deleteDriver() {
  deleteDriverResouce.save(driverObject);
}

正如您所看到的,这是一个更干净、更易于使用的代码,我想知道我是否可以使用$resource服务将对象传递给php脚本?

所以我找到了解决方案,我将在这里分享它,这样也许有人会需要它。为了使用AngularJs$资源服务,您只需要在PHP脚本中做一些小的更改,只需添加
$object=json\u decode(file\u get\u contents(“php://input"(对),
通过这种方式,您可以访问通过$resource发送的对象。下面是一个PHP脚本的示例

<?php
require_once '../dbConnect.php';
session_start();

$object = json_decode(file_get_contents("php://input"), true);

if (isset($object['email']) && isset($object['password'])) {

    $email = $object['email'];
    $password = $object['password'];
    $query="select * from members where email='$email'";
    $result = $mysqli->query($query) or die($mysqli->error.__LINE__);
    $row = mysqli_fetch_assoc($result);

    if($row) {
        if (password_verify($object['password'], $row['password'])) {
            $_SESSION["id"] = $row['id'];
            echo 'Login Success!';
        } else {
            session_destroy();
            var_dump(http_response_code(400));
        }
    } else {
        session_destroy();
        var_dump(http_response_code(406));
    }

    $mysqli->close();
} else {
    session_destroy();
    var_dump(http_response_code(400));
}
?>
这比使用“丑陋”更好更干净

return $http({
    method: 'POST',
    url: '/api/drivers/authenticate.php',
    data: $.param(userLoginObject),
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
});

所以我找到了解决方案,我会在这里分享,也许有人会需要它。为了使用AngularJs$资源服务,您只需要在PHP脚本中做一些小的更改,只需添加
$object=json\u decode(file\u get\u contents(“php://input"(对),
通过这种方式,您可以访问通过$resource发送的对象。下面是一个PHP脚本的示例

<?php
require_once '../dbConnect.php';
session_start();

$object = json_decode(file_get_contents("php://input"), true);

if (isset($object['email']) && isset($object['password'])) {

    $email = $object['email'];
    $password = $object['password'];
    $query="select * from members where email='$email'";
    $result = $mysqli->query($query) or die($mysqli->error.__LINE__);
    $row = mysqli_fetch_assoc($result);

    if($row) {
        if (password_verify($object['password'], $row['password'])) {
            $_SESSION["id"] = $row['id'];
            echo 'Login Success!';
        } else {
            session_destroy();
            var_dump(http_response_code(400));
        }
    } else {
        session_destroy();
        var_dump(http_response_code(406));
    }

    $mysqli->close();
} else {
    session_destroy();
    var_dump(http_response_code(400));
}
?>
这比使用“丑陋”更好更干净

return $http({
    method: 'POST',
    url: '/api/drivers/authenticate.php',
    data: $.param(userLoginObject),
    headers: {
        'Content-Type': 'application/x-www-form-urlencoded'
    }
});