使用PHP将Angular 4 POST发送到MYSQL数据库
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了使用PHP将Angular 4 POST发送到MYSQL数据库,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3668字,纯文字阅读大概需要6分钟。
内容图文
我一直在寻找两个星期来找到我的问题的答案,我觉得应该相对简单,但我没有使用正确的关键字.我知道Angular是前端框架,我可以使用我想要的任何数据库和后端.
对于一个学校项目,我正在创建一个带有MySQL数据库的Ionic 3 / Angular 4应用程序,其中一个分配要求登录/注册系统.虽然有许多教程可以使用Firebase来完成,但我还没有看到任何关于MySQL的问题.
我的基本问题是,如何设置我的register.ts文件在服务器上运行PHP文件并传递名称,用户名,电子邮件和密码等数据?我们在学校学习了基本的PHP,但如果有一个有用的快速入门,我愿意使用Node / Mongo – 我们不允许使用像Firebase这样的任何BaaS.
这是一些代码:
register.ts文件
import { Component, ViewChild } from '@angular/core';
import { IonicPage, NavController, NavParams, AlertController } from 'ionic-angular';
import { Http, Headers, Response, RequestOptions } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import 'rxjs/add/operator/map';
/**
* Generated class for the RegisterPage page.
*
* See https://ionicframework.com/docs/components/#navigation for more info on
* Ionic pages and navigation.
*/
let user_id: any;
let headers = new Headers(
{
'Content-Type' : 'application/x-www-form-urlencoded'
});
@IonicPage()
@Component({
selector: 'page-register',
templateUrl: 'register.html',
})
export class RegisterPage {
@ViewChild('username') username;
@ViewChild('email') email;
@ViewChild('firstname') firstname;
@ViewChild('password') password;
@ViewChild('confirmpass') confirmpass;
//successfully gets this data from the form on the HTML register page
constructor(public navCtrl: NavController, public navParams: NavParams, public alertCtrl: AlertController, public http: Http) {
}
ionViewDidLoad() {
console.log('ionViewDidLoad RegisterPage');
}
registerUser() {
//runs this when register button is pressed
//bad validation, but what can ya do
if (this.password.value != this.confirmpass.value) {
console.log("confirm pass and password don't match");
let confirm = this.alertCtrl.create({
title: 'Sorry!',
message: 'Password & Confirm Password do not match',
buttons: [
{
text: 'Okay',
handler: () => {
console.log('Disagree clicked');
}
}
]
});
confirm.present();
} else {
//this is where I'm struggling
let url: string = 'mySchoolsDB.com/myuser/insertuser.php';
let responseData: any;
let userData = {"firstname": this.firstname.value, "username": this.username.value, "password": this.password.value, "email": this.email.value };
console.log('would register user with', this.username.value, this.password.value);
console.log(userData);
this.http.post(url, userData, {headers:headers, method:"POST"})
.map(res => res.json())
.subscribe(
data => {
console.log(data);
},
err => {
console.log("ERROR!: ", err);
}
);
}
}
}
insertuser.php
<?php
header('Access-Control-Allow-Origin: *');
$servername = "db.school.edu";
$dbusername = "myuser";
$dbpassword = "mypass";
$dbname = "mydbname";
$firstname = $_POST['firstname'];
$password = $_POST['password'];
$username = $_POST['username'];
$email = $_POST['email'];
// Create connection
$conn = mysqli_connect($servername, $dbusername, $dbpassword, $dbname);
// Check connection
if (!$conn) {
die("Connection failed: " . mysqli_connect_error());
}
$sql = "INSERT INTO users (firstname, email, username, password)
VALUES ('$firstname', '$email', '$username', '$password')";
if (mysqli_query($conn, $sql)) {
echo "New record created successfully";
} else {
echo "Error: " . $sql . "<br>" . mysqli_error($conn);
}
mysqli_close($conn);
?>
解决方法:
以下是您需要更改的两行
第一次改变:
let headers = new Headers({'Content-Type' : 'application/x-www-form-urlencoded'});
至 :
let headers = new Headers({'Content-Type': 'application/json'});
第二
更改
this.http.post(url, userData, {headers:headers, method:"POST"})
至 :
this.http.post(url, userData, {headers}).map(...)....
内容总结
以上是互联网集市为您收集整理的使用PHP将Angular 4 POST发送到MYSQL数据库全部内容,希望文章能够帮你解决使用PHP将Angular 4 POST发送到MYSQL数据库所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。