2016-07-01 3 views
0

角度を使用してMySql DBにデータを挿入する際に問題があります。角型データをMySQLに入力

は、ここでの問題は、私は私のDBに空行を挿入することができるということです私の挿入スクリプト

<?php 
$data = json_decode(file_get_contents("php://input")); 
$usrname = mysql_real_escape_string($data->uname); 
$upswd = mysql_real_escape_string($data->pswd); 
$uemail = mysql_real_escape_string($data->email); 

$con = mysql_connect("localhost","testvip1_kol","MoLg67mf"); 
mysql_select_db("testvip1_kol"); 
mysql_query("SET NAMES 'utf8'"); 



$qry_em = 'select * from users where email ="' . $uemail . '"'; 
$qry_res = mysql_query($qry_em); 
$res = mysql_fetch_assoc($qry_res); 

if ($res['cnt'] == 0) { 
$qry = 'INSERT INTO users (name,pass,email) values ("' . $usrname . '","' . $upswd . '","' . $uemail . '")'; 
$qry_res = mysql_query($qry); 
if ($qry_res) { 
    $arr = array('msg' => "User Created Successfully!!!", 'error' => ''); 
    $jsn = json_encode($arr); 
    print_r($jsn); 
} else { 
    $arr = array('msg' => "", 'error' => 'Error In inserting record'); 
    $jsn = json_encode($arr); 
    print_r($jsn); 
} 
} else { 
$arr = array('msg' => "", 'error' => 'User Already exists with same  email'); 
$jsn = json_encode($arr); 
print_r($jsn); 
} 

?> 

私のHTMLファイル

<!DOCTYPE html> 
<html ng-app> 
<head> 
<title>AngularJs Post Example: DevZone.co.in </title> 
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/angularjs/1.0.7/angular.min.js"></script> 
    <style> 
     #dv1{ 
      border:1px solid #DBDCE9; margin-left:auto; 
      margin-right:auto;width:220px; 
      border-radius:7px;padding: 25px; 
     } 

     .info{ 
      border: 1px solid;margin: 10px 0px; 
      padding:10px;color: #00529B; 
      background-color: #BDE5F8;list-style: none; 
     } 
     .err{ 
      border: 1px solid; margin: 10px 0px; 
      padding:10px; color: #D8000C; 
      background-color: #FFBABA; list-style: none; 
     } 
    </style> 
</head> 
<body> 
    <div id='dv1'> 
     <form ng-controller="FrmController"> 
      <ul> 
       <li class="err" ng-repeat="error in errors"> {{ error}} </li> 
      </ul> 
      <ul> 
       <li class="info" ng-repeat="msg in msgs"> {{ msg}} </li> 
      </ul> 
      <h2>Sigup Form</h2> 
      <div> 
       <label>Name</label> 
       <input type="text" ng-model="username" placeholder="User Name" style='margin-left: 22px;'> 
      </div> 
      <div> 
       <label>Email</label> 
       <input type="text" ng-model="useremail" placeholder="Email" style='margin-left: 22px;'> 
      </div> 
      <div> 
       <label>Password</label> 
       <input type="password" ng-model="userpassword" placeholder="Password"> 
      </div> 
      <button ng-click='SignUp();' style='margin-left: 63px;margin-top:10px'>SignUp</button> 
     </form> 
    </div> 

    <script type="text/javascript"> 
     function FrmController($scope, $http) { 
      $scope.errors = []; 
      $scope.msgs = []; 

      $scope.SignUp = function() { 

       $scope.errors.splice(0, $scope.errors.length); // remove all error messages 
       $scope.msgs.splice(0, $scope.msgs.length); 


       $http.post('http://bloom.net.pl/insertangular/insert.php', {'uname': $scope.username, 'pswd': $scope.userpassword, 'email': $scope.useremail} 
       ).success(function(data, status, headers, config) { 
        if (data.msg != '') 
        { 
         $scope.msgs.push(data.msg); 
        } 
        else 
        { 
         $scope.errors.push(data.error); 
        } 
       }).error(function(data, status) { // called  asynchronously if an error occurs 
// or server returns response with an error status. 
        $scope.errors.push(status); 
       }); 
      } 
     } 
    </script> 

</body> 

であり、ここです。それを修正する方法はありますか?

答えて

0

フィールドが空の場合、ユーザーがフォームを送信できないようにすることができます。あなたがサインアップメソッド内の余分な検証を追加することができ

<form ng-controller="FrmController" ng-submit="SignUp()"> 
    <ul> 
    <li class="err" ng-repeat="error in errors"> {{ error}} </li> 
    </ul> 
    <ul> 
    <li class="info" ng-repeat="msg in msgs"> {{ msg}} </li> 
    </ul> 
    <h2>Sigup Form</h2> 
    <div> 
    <label>Name</label> 
    <input type="text" ng-model="username" placeholder="User Name" style='margin-left: 22px;' required> 
    </div> 
    <div> 
    <label>Email</label> 
    <input type="text" ng-model="useremail" placeholder="Email" style='margin-left: 22px;' required> 
    </div> 
    <div> 
    <label>Password</label> 
    <input type="password" ng-model="userpassword" placeholder="Password" required> 
    </div> 
    <button type='submit' style='margin-left: 63px;margin-top:10px'>SignUp</button> 
</form> 

とデータのみすべての提出:、入力要素に属性requiredを追加ボタンタイプを追加し、[追加]をクリックします上にない提出にメソッド呼び出しをトリガーする要素を形成するために、NG-提出フィールドには値があります。

編集: コンテンツタイプヘッダを追加します。

$http({ 
     method: 'post', 
     url: 'http://bloom.net.pl/insertangular/insert.php', 
     headers: { 
     'Content-Type': 'application/x-www-form-urlencoded' 
     }, 
     data: { 
     'uname': $scope.username, 
     'pswd': $scope.userpassword, 
     'email': $scope.useremail 
     }).success(function(data, status, headers, config) { 
     if (data.msg != '') { 
     $scope.msgs.push(data.msg); 
     } else { 
     $scope.errors.push(data.error); 
     } 
    }).error(function(data, status) { // called  asynchronously if an error occurs 
     // or server returns response with an error status. 
     $scope.errors.push(status); 
    }); 
+0

フィールドには2つのファイル間の接続の間に問題があります。 アラートを使用する($ scope.username、); 私はこのフィールド値を表示できます。 PHPファイルの変数には値がありません。 – user3388384

+0

このソリューションは空の行にも入らない – user3388384

0

フィールド値の問題は2つのファイル間の接続の間で持っています。

アラート($ scope.username、);

私はこのフィールド値を表示できます。 PHPファイルの変数に値がありません。

0

このコードは、おそらくあなたのためのトリックを行う必要があります。それは常にあなたのPHPファイルでは、コントローラ

$scope.SignUp = function(data) { 
var $data = angular.toJson(data); 
$http.post('url to the file',$data).then(function(data){ 
    console.log(data.data); 
}); 
} 

で私

<div ng-controller="FrmController"> 
<form ng-submit="signUp(user)"> <!-- You can also add formname.$valid for extra validation--> 
     <ul> 
      <li class="err" ng-repeat="error in errors"> {{ error}} </li> 
     </ul> 
     <ul> 
      <li class="info" ng-repeat="msg in msgs"> {{ msg}} </li> 
     </ul> 
     <h2>Sigup Form</h2> 
     <div> 
      <label>Name</label> 
      <input type="text" ng-model="user.username" placeholder="User Name" style='margin-left: 22px;'> 
     </div> 
     <div> 
      <label>Email</label> 
      <input type="text" ng-model="user.email" placeholder="Email" style='margin-left: 22px;'> 
     </div> 
     <div> 
      <label>Password</label> 
      <input type="password" ng-model="user.password" placeholder="Password"> 
     </div> 
     <button type="submit" style='margin-left: 63px;margin-top:10px'>SignUp</button> 
    </form> 
</div> 

・サインアップ機能のために行いますので

$data = json_decode(file_get_contents("php://input")); 
echo json_encode($data); 

あなたのコンソール上であなたに必要なデータが表示され、その後、あなたが作ることができますそれをデータベースにプッシュする単純なSQLクエリーです。

関連する問題