В настоящее время я работаю над простой функцией входа вact-native, которая извлекает данные из mysql с использованием php и json.Проблема, с которой я сталкиваюсь, заключается в том, что я снова и снова получаю сообщение «Ошибка синтаксического анализа JSON: неожиданный EOF», и я не знаю, что делать сейчас.
Я считаю, что проблема должна быть вКомпонент Reaction-native, потому что я протестировал PHP-файл на Postman и получил то, о чем просил.
По какой-то причине этот пост был определен как возможный дубликат вопроса о sql-inyectionsи это не то, о чем я прошу.
Вот код, который я написал:
React-Native:
constructor(props) {
super(props);
this.state = {
userCI:'',
userPassword:''
};
}
login = () => {
// Get data from PHP endpoint
const {userCI} = this.state;
const {userPassword} = this.state;
fetch('http://192.168.1.14/dashboard/endpoint.php', {
method:'POST',
headers: {
'Accept': 'application/json; text/plain; */*',
'Content-Type': 'application/json',
},
body: JSON.stringify({
ci: userCI,
password: userPassword,
key:'test',
})
})
.then(response => response.json())
.then(response => {
alert(response.message);
})
.catch(error =>{
console.error(error);
})
.done();
}
render() {
return (
<View>
<TextInput
style={styles.Input}
placeholder={'Usuario'}
onChangeText= {
userCI => this.setState({userCI})
}
/>
<TextInput
style={styles.Input}
secureTextEntry={true}
placeholder={ 'Contraseña'}
onChangeText= {
userPassword => this.setState({userPassword})
}
/>
<Button
style={styles.button}
onPress={this.login}
title={'Conectarse'}
/>
</View>
);
}
}
PHP:
class User {
private $db;
private $connection;
function __construct() {
$this->db = new DB_Connection();
$this->connection = $this->db->get_connection();
}
public function does_user_exist($ci, $password){
$query = "SELECT * FROM users WHERE ci='$ci' AND password='$password'";
$result = mysqli_query($this->connection, $query);
if(mysqli_num_rows($result) > 0){
$json['success'] = 'Bienvenido';
echo json_encode($json);
mysqli_close($this->connection);
}else{
$json['error'] = 'Wrong password';
echo json_encode($json);
mysqli_close($this->connection);
}
}
}
$user = new User();
if(isset($_POST['ci'],$_POST['password'])) {
$ci = $_POST['ci'];
$password = $_POST['password'];
if (!empty($ci) && !empty($password)) {
$encrypted_password = md5($password);
$user->does_user_exist($ci, $password);
} else {
echo json_encode(array(
'message' => 'There was a unexpected error',
));
}
}
Пожалуйста, если кто-то может мне помочь, я буду очень рад.Спасибо!