2017-02-26 2 views
0

Ich bekomme einen Fehler beim Ausführen dieser Datei mit Postman Fehler ist "Parse Fehler: Syntaxfehler, unerwartet '->' (T_OBJECT_OPERATOR) in C: \ wamp64 \ www \ Android \ include \ DbOperations.php on line 20"Unique ID Registrierungsprüfung Skript funktioniert nicht

Für weitere Details lesen Sie in diesem Link:

https://www.dropbox.com/s/jecshgs34ra50qi/Untitled.jpg?dl=0

Datei DbOperations.php

<?php 
 

 
\t class DbOperations{ 
 

 
\t \t private $con; 
 

 
\t \t function __construct(){ 
 

 
\t \t \t require_once dirname(__FILE__).'/DbConnect.php'; 
 

 
\t \t \t $db = new DbConnect(); 
 

 
\t \t \t $this->con = $db->connect(); 
 
\t \t 
 
\t \t } 
 

 
\t \t /*CRUD -> c -> CREATE */ 
 

 
\t \t public function createUser($name, $surname, $username, $user_pass, $address, $pin, $mail, $phone){ 
 
\t \t \t if(this->isUserExist($username,$mail,$phone)){ 
 
\t \t \t \t \t return 0; 
 
\t \t \t }else{ 
 
\t \t \t \t $password = md5($user_pass); 
 
\t \t \t \t $stmt = $this->con->prepare("INSERT INTO `user_data` (`name`, `surname`, `username`, `password`, `address`, `pin`, `mail`, `phone`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);"); 
 
\t \t \t \t $stmt->bind_Param("ssssssss",$name,$surname,$username,$password,$address,$pin,$mail,$phone); 
 

 
\t \t \t \t if($stmt->execute()){ 
 
\t \t \t \t \t return 1; 
 
\t \t \t \t }else{ 
 
\t \t \t \t \t return 2; 
 
\t \t \t \t } 
 
\t \t \t } 
 
\t \t } 
 

 
\t \t private function isUserExist($username, $mail, $phone){ 
 
\t \t \t $stmt = $this->con->prepare("SELECT id FROM user_data WHERE username = ? or mail = ? or phone = ?"); 
 
\t \t \t $stmt->bind_param("sss", $username, $mail, $phone); 
 
\t \t \t $stmt->execute(); 
 
\t \t \t execute->store_result(); 
 
\t \t \t return $stmt->num_row > 0; 
 
\t \t } 
 
\t } 
 

 
?>

Datei registerUser.php

<?php 
 
require_once '../include/DbOperations.php'; 
 

 
$response = array(); 
 

 
if($_SERVER['REQUEST_METHOD']=='POST'){ 
 
\t if(
 
\t \t isset($_POST['reg_name']) and isset($_POST['reg_surname']) and isset($_POST['reg_username']) and isset($_POST['reg_password']) and isset($_POST['reg_address']) and isset($_POST['reg_pin']) and isset($_POST['reg_mail']) and isset($_POST['reg_phone']) 
 
\t \t){ 
 
\t \t //operate the data further 
 

 
\t \t $db = new DbOperations(); 
 

 
\t \t $result = $db->createUser(\t $_POST['reg_name'], 
 
\t \t \t \t \t \t \t \t \t $_POST['reg_surname'], 
 
\t \t \t \t \t \t \t \t \t $_POST['reg_username'], 
 
\t \t \t \t \t \t \t \t \t $_POST['reg_password'], 
 
\t \t \t \t \t \t \t \t \t $_POST['reg_address'], 
 
\t \t \t \t \t \t \t \t \t $_POST['reg_pin'], 
 
\t \t \t \t \t \t \t \t \t $_POST['reg_mail'], 
 
\t \t \t \t \t \t \t \t \t $_POST['reg_phone'] 
 
\t \t \t \t \t \t \t \t); 
 
\t \t if($result == 1){ 
 
\t \t \t $response['error'] = false; 
 
\t \t \t $response['message'] = "User register successfully"; 
 
\t \t }elseif($result == 2){ 
 
\t \t \t $response['error'] = true; 
 
\t \t \t $response['message'] = "Something wrong, try again"; 
 
\t \t }elseif ($result == 0) { 
 
\t \t \t $response['error'] = true; 
 
\t \t \t $response['message'] = "User already register"; 
 
\t \t } 
 

 
\t }else{ 
 
\t \t $response['error'] = true; 
 
\t \t $response['message'] = "Required fields are missing"; 
 
\t } 
 
}else{ 
 
\t $response['error'] = true; 
 
\t $response['message'] = "Invalid Request"; 
 
} 
 

 
echo json_encode($response); 
 

 
?>

+0

, warum dies getaggt Android hinzufügen ?! –

+2

Bitte lesen Sie die Fehlerbehandlung vollständig, es ist Syntaxfehler Verwenden Sie '$ this' in Zeile 20 – gaurav

+0

Auch für das Passwort-Hashing verwenden Sie [password_hash] (http://php.net/manual/en/function.password-hash.php) statt 'md5' – gaurav

Antwort

0

Sie haben vergessen $ Zeichen

DbOperations.php

<?php 

    class DbOperations{ 

     private $con; 

     function __construct(){ 

      require_once dirname(__FILE__).'/DbConnect.php'; 

      $db = new DbConnect(); 

      $this->con = $db->connect(); 

     } 

     /*CRUD -> c -> CREATE */ 

     public function createUser($name, $surname, $username, $user_pass, $address, $pin, $mail, $phone){ 
      if($this->isUserExist($username,$mail,$phone)){ //<--------change this 
        return 0; 
      }else{ 
       $password = md5($user_pass); 
       $stmt = $this->con->prepare("INSERT INTO `user_data` (`name`, `surname`, `username`, `password`, `address`, `pin`, `mail`, `phone`) VALUES (?, ?, ?, ?, ?, ?, ?, ?);"); 
       $stmt->bind_Param("ssssssss",$name,$surname,$username,$password,$address,$pin,$mail,$phone); 

       if($stmt->execute()){ 
        return 1; 
       }else{ 
        return 2; 
       } 
      } 
     } 

     private function isUserExist($username, $mail, $phone){ 
      $stmt = $this->con->prepare("SELECT id FROM user_data WHERE username = ? or mail = ? or phone = ?"); 
      $stmt->bind_param("sss", $username, $mail, $phone); 
      $stmt->execute(); 
      $stmt->->store_result(); 
      return $stmt->num_rows > 0; 
     } 
    } 

?> 
+0

danke, ich habe es. –

+0

Hallo! Jetzt bekomme ich diesen Fehler "Parse Fehler: Syntaxfehler, unerwartet '->' (T_OBJECT_OPERATOR) in C: \ wamp64 \ www \ Android \ include \ DbOperations.php in Zeile 39" in isUserExist Funktion "execute-> store_result() " Ich änderte es zu "$ stmt-> store_result();" Jetzt bekomme ich diesen Fehler [dropbox.com/s/m0ngx8hqy6vr3t8/Untitled.png?dl=0] –

+0

Danke bro ... vielen Dank. Ich bin nur ein Anfänger zum Scripting. Vielen Dank, es funktioniert jetzt. –