Я работаю над мобильным приложением с React Native. Проблема в том, что мне кажется, что я ничего не могу вставить в базу данных. У меня есть страница регистрации, где пользователю нужно написать имя пользователя и пароль (и повторить этот пароль), который работал нормально несколько месяцев go. Я ничего не изменил на этой конкретной странице, но когда я начал добавлять новые страницы, например, другую страницу, которая не работает, она перестала работать и выдала мне предупреждение, которое можно увидеть здесь:
Другая страница, которая не работает, - это место, где пользователь может опубликовать работу с указанием дат и т. Д. Эта страница не сделана, но она должна быть сделана достаточно, чтобы пользователь мог что-то опубликовать в базе данных, но она дает мне ошибку, которую можно увидеть здесь:
Код страницы регистрации следующий (таблица стилей не включена):
import React, { Component } from "react";
import { View, Text, StyleSheet, Alert, TextInput, ImageBackground, Image, AsyncStorage, TouchableOpacity } from "react-native";
import { Button, Icon, withTheme } from 'react-native-elements';
const SIGNUP_URL = 'http://kamilla-server.000webhostapp.com/app/signUp.php';
class SignUp extends Component {
constructor(props) {
super(props);
this.state= {
email: '',
password: '',
password2: '',
};
}
async onSignUp() {
const { email, password, password2 } = this.state;
if(this.state.email != '' && this.state.password != '' && this.state.password2 != '') {
if(password != password2) {
Alert.alert('Password matcher ikke', 'De to indtastede passwords skal være det samme password')
} else {
const response = await fetch(SIGNUP_URL, {
headers: {
Accept: 'application/json',
'Content-Type': 'application/json'
},
method: 'POST',
body: JSON.stringify({ email, password }),
})
const data = await response.json()
if (data.error) {
alert(data.error)
} else {
AsyncStorage.setItem('UserID', data.user.UserID)
this.props.navigation.navigate('SignUpMessage')
}
}
} else {
Alert.alert('Tomme felter', 'Venligt indtast email og password for at kunne oprette en bruger')
}
}
render() {
const { email, password, password2 } = this.state;
return(
<View style={styles.container}>
<ImageBackground source={require('../../images/1088.jpg')} style={styles.background} />
<View>
<Image source={require('../../../assets/logo.png')} style={styles.logo} />
<TextInput
value={email}
onChangeText={(email) => this.setState({email})}
placeholder={'Email'}
placeholderTextColor='white'
keyboardType='email-address'
style={styles.input}
/>
<TextInput
value={password2}
onChangeText={(password2) => this.setState({ password2 })}
placeholder={'Password'}
placeholderTextColor='white'
secureTextEntry={true}
style={styles.input}
/>
<TextInput
value={password}
onChangeText={(password) => this.setState({ password })}
placeholder={'Password'}
placeholderTextColor='white'
secureTextEntry={true}
style={styles.input}
/>
<TouchableOpacity onPress={() => this.props.navigation.navigate('Login')}>
<Text style={styles.underlined}>Har du allerede en konto? Login.</Text>
</TouchableOpacity>
<Button
title="Opret Konto"
buttonStyle={styles.greenButton}
onPress={this.onSignUp.bind(this)}
/>
</View>
</View>
)
}
}
export default SignUp;
URL-адрес SIGNUP_URL ссылается на следующий код:
<?php
require_once('../db/dbcon.php');
session_start();
try {
$inputJSON = file_get_contents('php://input');
$input = json_decode($inputJSON, TRUE);
$email = htmlspecialchars($input['email']);
$password = htmlspecialchars($input['password']);
$dbCon = dbCon($user, $pass);
$query = $dbCon->prepare("SELECT `user`.Email FROM `user` WHERE `Email` = ?");
$query->bindParam(1, $email);
$query->execute();
$getUser = $query->fetchAll();
if(count($getUser) > 0) {
$status = 0;
echo json_encode(array('error' => 'Der findes allerede en bruger for den indtastede email.'));
} else {
$sql = "INSERT INTO `user` (`UserID`, `Email`, `Password`)
VALUES (NULL, ?, ?)";
$query = $dbCon->prepare($sql);
$query->bindParam(1, $email);
$query->bindParam(2, $password);
$query->execute();
$last_id = $dbCon->lastInsertId();
$query2 = $dbCon->prepare("SELECT `UserID`
FROM `user`
WHERE `UserID` = '{$last_id}'");
$query2->execute();
$getNewUser = $query2->fetch();
if ($query2) {
echo json_encode(array('user' => $getNewUser));
$_SESSION['userID'] = $getUser['UserID'];
//$_SESSION['volunteerID'] = $getVolunteer['VolunteerID'];
} else {
echo json_encode(array('error' => 'Der gik noget galt. Venligst prøv igen.'));
}
}
} catch (PDOException $e) {
error_log(print_r($e->getMessage(), TRUE));
}
?>