We will learn how to use PHP MySQL for User registration in react native with JSON.
firstly i create register.php
include 'config.php';$json = file_get_contents('php://input');// decoding the received JSON and store into $obj variable.
$obj = json_decode($json,true); // name store into $name.
$name = $obj['name']; // same with $email.
$email = $obj['email']; // same with $password.
$password = $obj['password']; if($obj['email']!="")
{
$result= $mysqli->query("SELECT * FROM users where email='$email'");
if($result->num_rows>0){
echo json_encode('email already exist'); // alert msg in react native
}
else
{
$add = $mysqli->query("insert into users (name,email,password) values('$name','$email','$password')");if($add){
echo json_encode('User Registered Successfully'); // alert msg in react native
}
else{
echo json_encode('check internet connection'); // our query fail
}
}
}
else{
echo json_encode('try again');
}
Open postman and test this link https://hardeepcoder.site/api
insert data to mysql then i put that file on online server. next you need to create register.js inside your react native app. Constructor function with variables username, user email and password blank by default.
constructor(props){super(props)
this.state={
userName:'',
userEmail:'',
userPassword:''
}
}
next we have three textboxes for input
TextInput 
placeholder="Enter Name" 
style={{width:250,margin:10, borderColor:"#333",borderWidth:1}} 
underlineColorAndroid="transparent" 
onChangeText= {userName => this.setState({userName})} 
TextInput 
placeholder="Enter Email" 
style={{width:250,margin:10, borderColor:"#333",borderWidth:1}} 
underlineColorAndroid="transparent" 
onChangeText= {userEmail => this.setState({userEmail})} 
TextInput 
placeholder="Enter Password" 
style={{width:250,margin:10, borderColor:"#333", borderWidth:1}} 
underlineColorAndroid="transparent" 
onChangeText= {userPassword => this.setState({userPassword})} 
now create button for click
TouchableOpacity 
onPress={this.userRegister} 
style={{width:250,padding:10, backgroundColor:'magenta',alignItems:'center'}}> now our main react native function
userRegister = () =>{ 
//alert('ok'); // version 0.48 
const {userName} = this.state;
const {userEmail} = this.state;
const {userPassword} = this.state;
fetch('https://hardeepwork.000webhostapp.com/react/register.php', {
method: 'post',
header:{
'Accept': 'application/json',
'Content-type': 'application/json'
},body:JSON.stringify({
name: userName,
email: userEmail,
password: userPassword,
})
}).then((response) => response.json())
.then((responseJson) =>{
alert(responseJson);
})
.catch((error)=>{
console.error(error);
});
}
last but not least is our styles for all input and buttons
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});Thank You
 
