Php Ionic 3将数据发布到Mysql
我是离子3的新手,我想将用户名数据提交到mysql。我正在使用以下代码,它不显示任何错误消息,但它不显示提交到api.php文件的值。如何在下面的api.php文件中使用Insert命令 contact.htmlPhp Ionic 3将数据发布到Mysql,php,angular,typescript,ionic3,Php,Angular,Typescript,Ionic3,我是离子3的新手,我想将用户名数据提交到mysql。我正在使用以下代码,它不显示任何错误消息,但它不显示提交到api.php文件的值。如何在下面的api.php文件中使用Insert命令 contact.html <ion-header> <ion-navbar> <button ion-button menuToggle> <ion-icon name="menu"></ion-icon> </b
<ion-header>
<ion-navbar>
<button ion-button menuToggle>
<ion-icon name="menu"></ion-icon>
</button>
<ion-title>My Contact</ion-title>
</ion-navbar>
</ion-header>
<ion-content padding>
<ion-list>
<ion-item>
<ion-label floating>Username</ion-label>
<ion-input type="text" name="username" [(ngModel)]="data.username"></ion-input>
</ion-item>
<button ion-button color="danger" round (click)="submit()">Submit</button>
<button ion-button color="primary" menuToggle>Toggle Menu</button>
</ion-list>
</ion-content>
api.php
<?php
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
echo "You have CORS!";
$postdata = file_get_contents("php://input");
if (isset($postdata)) {
$request = json_decode($postdata);
$username = $request->username;
echo "hello how are you"
if ($username != "") {
echo "Server returns: " . $username;
}
else {
echo "Empty username parameter!";
}
}
else {
echo "Not called properly with username parameter!";
}
?>
首先你做的post()
不对。其次,您已经针对基于提供商的ArcArchitecture进行了此操作。这是非常糟糕的
我强烈建议查看以下链接以了解基于提供商的体系结构
您的post()
方法应该如下所示:
myProvider.ts
post(url:string,body:string):可观察{
let headers=新的headers();
headers.append('content-type','application/json');
let options=newrequestoptions({headers:headers});
返回this.http.post(url、正文、选项)
.map(此.extractData)
.接住(这个.把手错误);
}
//提取数据
私有数据(res:Response){
让body=res.json();
返回体| |{};
}
//处理错误
私有句柄错误(错误:响应|任意){
让errMsg:string;
if(响应的错误实例){
const body=error.json();
const err=body.error | | JSON.stringify(body);
errMsg=`${error.status}-${error.statusText | |'''}${err}`;
}否则{
errMsg=error.message?error.message:error.toString();
}
控制台错误(errMsg);
返回可观察抛出(errMsg);
}
首先,您做错了post()。其次,您已经针对基于提供商的ArcArchitecture进行了此操作。这是非常糟糕的
我强烈建议查看以下链接以了解基于提供商的体系结构
您的post()
方法应该如下所示:
myProvider.ts
post(url:string,body:string):可观察{
let headers=新的headers();
headers.append('content-type','application/json');
let options=newrequestoptions({headers:headers});
返回this.http.post(url、正文、选项)
.map(此.extractData)
.接住(这个.把手错误);
}
//提取数据
私有数据(res:Response){
让body=res.json();
返回体| |{};
}
//处理错误
私有句柄错误(错误:响应|任意){
让errMsg:string;
if(响应的错误实例){
const body=error.json();
const err=body.error | | JSON.stringify(body);
errMsg=`${error.status}-${error.statusText | |'''}${err}`;
}否则{
errMsg=error.message?error.message:error.toString();
}
控制台错误(errMsg);
返回可观察抛出(errMsg);
}
我从中复制了上面的代码,它对一些用户有效。这是一个非常简单的代码,所以我想让它运行,不想对它进行任何重大修改。我认为从contact.ts文件(var link='../contact/api.php';)调用api.php文件时会出现一些问题。这个文件可能无法从contact.ts访问。谢谢你的回复,我从中复制了上面的代码,它对一些用户有效。这是一个非常简单的代码,所以我想让它运行,不想对它做任何重大修改。我认为从contact.ts文件(var link='../contact/api.php';)调用api.php文件时会出现一些问题。这个文件可能无法从contact.ts访问。谢谢你的回复
<?php
// Allow from any origin
if (isset($_SERVER['HTTP_ORIGIN'])) {
header("Access-Control-Allow-Origin: {$_SERVER['HTTP_ORIGIN']}");
header('Access-Control-Allow-Credentials: true');
header('Access-Control-Max-Age: 86400'); // cache for 1 day
}
// Access-Control headers are received during OPTIONS requests
if ($_SERVER['REQUEST_METHOD'] == 'OPTIONS') {
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_METHOD']))
header("Access-Control-Allow-Methods: GET, POST, OPTIONS");
if (isset($_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']))
header("Access-Control-Allow-Headers: {$_SERVER['HTTP_ACCESS_CONTROL_REQUEST_HEADERS']}");
exit(0);
}
echo "You have CORS!";
$postdata = file_get_contents("php://input");
if (isset($postdata)) {
$request = json_decode($postdata);
$username = $request->username;
echo "hello how are you"
if ($username != "") {
echo "Server returns: " . $username;
}
else {
echo "Empty username parameter!";
}
}
else {
echo "Not called properly with username parameter!";
}
?>
post(url: string, body: string): Observable<any> {
let headers = new Headers();
headers.append('content-type', 'application/json');
let options = new RequestOptions({ headers: headers });
return this.http.post(url, body, options)
.map(this.extractData)
.catch(this.handleError);
}
//to extract data
private extractData(res: Response) {
let body = res.json();
return body || {};
}
//to handle error
private handleError(error: Response | any) {
let errMsg: string;
if (error instanceof Response) {
const body = error.json() || '';
const err = body.error || JSON.stringify(body);
errMsg = `${error.status} - ${error.statusText || ''} ${err}`;
} else {
errMsg = error.message ? error.message : error.toString();
}
console.error(errMsg);
return Observable.throw(errMsg);
}