PHP tar inte emot något data från react.js fetch.
Jag skickar formulär data från react.js till MySQL databasen med hjälp av fetch och PHP men PHP-filen verkar inte ta emot något data.
Register.php
<?php
//header('Access-Control-Allow-Origin: *');
//header('Content-type: application/json');
include("connect.php");
$rest_json = file_get_contents("php://input");
$_POST = json_decode($rest_json, true);
$email = $_POST['email'];
$password = $_POST['password'];
$county = $_POST['county'];
//$date = date("Y-m-d");
if(!empty($email) || !empty($password) || !empty($county))
{
http_response_code(200);
$email = mysqli_real_escape_string($connect, $_POST['email']);
$password = mysqli_real_escape_string($connect, $_POST['password']);
$county = mysqli_real_escape_string($connect, $_POST['county']);
//$date = date("Y-m-d");
$sql = "
INSERT INTO user ( email, county) VALUES ('$email', '$county');
INSERT INTO password (userid, password) VALUES ((SELECT userid FROM user WHERE email= '$email'), '$password')";
if($connect -> query($sql) === TRUE) {
echo "New record created successfully";
echo $sport;
} else {
echo "Error: " .$sql . "<br>" . $connect-> error;
}
mysqli_close($connect);
}else{
echo 'saknas uppgifter';
}
?>
Får felkoden saknas uppgifter.
import React from 'react';
import {Redirect} from 'react-router-dom';
import { PostData } from './PostData';
import MySide from './MySide';
import './Login.css';
class Login extends React.Component {
constructor() {
super();
this.state = {
email: '',
password: '',
//redirectToReferrer:false
};
this.register = this.register.bind(this);
this.registerSubmit = this.registerSubmit.bind(this);
this.onChange = this.onChange.bind(this);
}
onChange(e) {
this.setState({
[e.target.name]:e.target.value
})
}
register(e) {
e.preventDefault();
console.log('registrerad');
this.setState({
display: false
})
}
addActiveClassregister(e) {
this.setState({active: false});
}
registerSubmit(e) {
e.preventDefault();
console.log(this.state);
const data = {
email: this.refs.email.value,
password: this.refs.password.value,
county: this.refs.county.value
}
console.log(this.refs.email.value);
console.log(this.refs.password.value);
console.log(this.refs.county.value);
console.log(data);
fetch('http://localhost/test/src/api/register.php/', {
method: 'POST',
mode: 'no-cors',
headers: {
'Content-Type': 'application/json; charset=utf-8; text/html',
'Access-Control-Allow-Origin': 'localhost:test',
},
body: JSON.stringify(data)
})
.then(resp => resp.text())
.then(data => console.log(data))
if( this.state.redirectToReferrer || sessionStorage.getItem('userData')){
return(<Redirect to={'/mySide'}/>)
}
}
render () {
return(
<div className="Register active">
<h2>Registrera ny användare</h2>
<form className="Register-form" onSubmit={this.registerSubmit}>
<input type="text" name="email" ref="email" placeholder="mailadress" onChange={this.onChange} />
<input type="password" name="password" ref="password" placeholder="lösenord" onChange={this.onChange} />
<input type="county" name="county" ref="county" placeholder="Län" onChange={this.onChange} />
<input type="submit" value="Registrera"/>
<button className="loginButton" onClick={this.login} onClick={this.addActiveClassRegister}> Logga in</button>
</form>
</div>
</div>
</div>
);
}
}
export default Login;
Någon som kan se vad som saknas?
Tack på förhand!