我在Android中有一个简单的注册表单,它在PHP中作为后端实现了REST。我试了5个小时,但我的代码没有用。
这是我在名为导游的文件夹中的两个文件:
db_connect.php :
<?php
define("SERVER", '127.0.0.1');
define("USER", 'root');
define("PASSWORD", '');
define("DB", 'tourist guide');
$con = new mysqli(SERVER,USER,PASSWORD,DB);
if ($con->connect_errno){
die("Database Connection Failed");
exit();
}
index.php:
<?php
require_once('db_connect.php');
$response = array();
$result = "";
function adduser($firstname, $lastname, $email, $password) {
global $app;
$req = $app->request();
$firstname= $req->params['firstname'];
$lastname= $req->params['lastname'];
$email = $req->params['email'];
$password = $req->params['password'];
$stmt = $con->prepare("INSERT INTO user_accounts (first_name,last_name,email,password)VALUES (?,?,?,?)");
$stmt->bind_param('ssss', $firstname, $lastname, $email, $password);
$stmt->execute();
$result = $stmt->close();
}
if($result){
$response["success"] = 1;
$response["message"] = "account successfully created.";
echo json_encode($response);
}
else{
$response["success"] = 0;
$response["message"] = "An error occurred during registration.";
echo json_encode($response);
}
?>
当我使用高级REST客户端测试它时,通过提供url:http://127.0.0.1/tourist guide/index.php/adduser
和方法POST
以及参数firstname=somename&lastname=name&email=a@b.gmail.com&password=101010
,
它显示以下回复:
{"success":0,"message":"An error occurred during registration."}
我的代码中是否有任何错误?我试了5个小时。请帮助。
答案 0 :(得分:0)
你实际上在哪里称呼你的职能?
我所能看到的只是它的定义。 if else语句不在函数定义之内。应该是这样的吗?
此外,您的adduser函数不会返回可在函数外部使用的结果。
答案 1 :(得分:0)
从我看来,没有什么会调用addUser函数。 加上这个:
addUser($_GET['firstname'],$_GET['lastname'],$_GET['email'], $_GET['password']);
之前:
if($result){
如果您要添加更多功能,我建议使用一些框架来使后端更具结构性。例如Zend,Zend2。有很多选择......