Slim POST方法不会发布到MySQL

时间:2017-04-02 22:42:35

标签: php html mysql rest slim

我有相当奇怪的问题。我没有收到错误,控制台消息,所以一切都以200状态返回。

使用Slim框架将数据发布到我的数据库中。当我通过urli访问已经存在的数据时,一切都在那里,所以它工作正常,但它不会将它发布到MySQL。然而,它确实将输入的数据输入ULR。有人可以指出变化或我要去哪里吗?

PS。密码不被哈希,不要惊慌这不是一个实时项目。

Index.php片段:

>           
>     <form class="form-horizontal" name="register_form" data-toggle="validator" role="form">
>     
>     <div class="form-group">
>         <div class="input-group margin-bottom-sm">
>       <span class="input-group-addon"><i class="glyphicon glyphicon-user" aria-hidden="true"></i></span>
>       <input class="form-control" type="text"  id="fname" name="fname" placeholder="First Name">
>               </div>
>     </div></br>
>     <div class="form-group">
>           <div class="input-group margin-bottom-sm">
>       <span class="input-group-addon"><i class="glyphicon glyphicon-user" aria-hidden="true"></i></span>
>       <input class="form-control" type="text"  id="lname" name="lname" placeholder="Last Name">
>               </div>
>     </div></br>
>     <div class="form-group">
>           <div class="input-group margin-bottom-sm">
>       <span class="input-group-addon"><i class="glyphicon glyphicon-calendar" aria-hidden="true"></i></span>
>       <input class="form-control" type="date"  id="dob" name="dob" placeholder="Date of Birth DD/MM/YYYY">
>             </div>
>     </div></br>
>         
>     <div class="form-group">
>           <div class="input-group margin-bottom-sm">
>       <span class="input-group-addon"><i class="glyphicon glyphicon-info-sign" aria-hidden="true"></i></span>
>       <input class="form-control" type="text"  id="school" name="school" placeholder="Enter School Name">
>               </div>
>     </div></br>
>         
>     <div class="form-group">
>           <div class="input-group margin-bottom-sm">
>       <span class="input-group-addon"><i class="glyphicon glyphicon-pencil" aria-hidden="true"></i></span>
>       <input class="form-control" type="text"  id="username" name="username" placeholder="Choose Username">
>               </div>
>       </div></br>
>         
>     <div class="form-group">
>           <div class="input-group margin-bottom-sm">
>       <span class="input-group-addon"><i class="glyphicon glyphicon-lock" aria-hidden="true"></i></span>
>       <input class="form-control" type="password"  id="pass" name="pass" placeholder="Choose Password">
>               </div>
>             </div></br>   
>     
>     <div class="form-group">
>            <button type="button" class="btn btn-default" data-dismiss="modal">Close</button>
>         
>            <button id="register" class="btn btn-primary">Register</button>
>     </div></br>
>         
>             </form>

PHP:

<?php

use \Psr\Http\Message\ServerRequestInterface as Request;
use \Psr\Http\Message\ResponseInterface as Response;

    require 'Slim\Slim.php';
        \Slim\Slim::registerAutoloader();
        use Slim\Slim;
        $app= new Slim();
        $app->get('/users','getUsers');
        $app->post('/users','addUser');
        $app->run(); 

// Adding a user = for registration process 
    function addUser(){
    $request = Slim::getInstance()->request();
    $user = json_decode($request->getBody());
    $sql = "INSERT INTO user(fname, lname, dob, school, username, pass) VALUES (:fname, :lname, :dob, :school, :username, :pass)";
    try {
        $db = getConnection();
        $stmt = $db->prepare($sql);
        $stmt->bindParam("fname",$user->fname);
        $stmt->bindParam("lname",$user->lname);
        $stmt->bindParam("dob",$user->dob);
        $stmt->bindParam("school",$user->school);
        $stmt->bindParam("username",$user->username);
        $stmt->bindParam("pass",$user->pass);
        $stmt->execute();
        $user->UserID=$db->lastInsertID();
        $db = null;
        responseJson(json_encode($user),201);
    }catch(PDOException $e){
        responseJson('{"error":{"text":'.$e->getMessage().'}}', 500);
    }
  }

JS:

$(document).ready(function(){
    $("#register").click(function(){
    var users=new users($("#fname").val(),
                        $("#lname").val(),
                        $("#dob").val(),
                        $("#school").val(),
                        $("#username").val(),
                        $("#pass").val());
    $.ajax({
     type:'POST',
     dataType:"json",
     url:"api.php/users",
     data:JSON.stringify(users),
     success: showResponse,
     error: showError
        });    
    });
});

function users(fname, lname, dob, school, username, pass){
this.fname=fname;
this.lname=lname;
this.dob=dob;
this.school=school;
this.username=username;
this.pass=pass;
}

function showResponse(responseData){
console.log(responseData);
    }
function showError(){
alert("Sorry Kasia, but something went wrong. Fix it!")
}

1 个答案:

答案 0 :(得分:0)

用户是一个函数而不是一个对象,我认为你最好放弃这个函数并在寄存器点击中内联它。

$(document).ready(function(){
    $("#register").click(function(){

    var users={};
    users.fname=$("#fname").val();
    users.lname=$("#lname").val();
    users.dob=$("#dob").val();
    users.school=$("#school").val();
    users.username=$("#username").val();
    users.pass=$("#pass").val();

     $.ajax({
         type:'POST',
         dataType:"json",
         url:"api.php/users",
         data:JSON.stringify(users),
         success: showResponse,
         error: showError
            });    
        });
    });