Я новичок в React Native. У меня есть страницы входа и регистрации, которые работают хорошо. После того, как пользователь вошел в систему, на странице профиля должно отображаться приветствие + его имя. Я написал код фронтенда и бэкенда, но что-то не работает.
Profile.js
export default class Profil extends React.Component {
constructor(props){
super(props);
this.state = {name:''}
};
componentWillMount(){
return this.getUser();
}
getUser(){
return fetch('https://lifestormweb.000webhostapp.com/profile.php',{
method:'GET',
headers:{
'Accept':'application/json',
'Content-Type':'application/json',
}
})
.then((response)=>response.json())
.then((response) => this.setState({
name: response.name})
)
}
render() {
return (
<View>
<Header
centerComponent = {{ text: 'Profil', style: { color: '#FF0000', fontSize: 20, fontWeight: 'bold' } }}
outerContainerStyles = {{ backgroundColor: '#ffffff' }}
/>
<Text>Willkommen {this.state.name}</Text>
</View>
);
}
profile.php
<?php
$dbservername = "id6354774_users";
$dbusername = "id6354774_root";
$dbpassword = "*********";
$dbname = "localhost";
// Create connection
$conn = new mysqli($dbservername, $dbusername, $dbpassword, $dbname);
// Check connection
if ($conn->connect_error) {
die("Connection failed: " . $conn->connect_error);
}
$post_name = mysqli_real_escape_string($conn, $_POST['name']);
$sql = "SELECT * FROM UserRegistrationTable WHERE name='$post_name'";
$result = $conn->query($sql);
$conn->close();
?>
Примечание. Объектно-ориентированный интерфейс mysqli значительно менее подробен, что упрощает чтение и аудит кода, и его нелегко спутать с устаревшим интерфейсом mysql_query. Прежде чем вы слишком увлечетесь процедурным стилем, стоит переключиться на него. Пример: $db = new mysqli(…) и $db->prepare("…"). Процедурный интерфейс является артефактом эпохи PHP 4, когда был представлен API mysqli, и его не следует использовать в новом коде.
Ваш PHP-код извлекает данные, а затем выводит ... ничего. Предположительно вы хотите выгрузить некоторые данные JSON с помощью json_encode?






mysqliвы должны использовать параметризованные запросы иbind_paramдля добавления пользовательских данных в свой запрос. НЕ использует для этого строковую интерполяцию или конкатенацию, потому что вы создали серьезный Ошибка SQL-инъекции. НИКОГДА помещает пользовательские данные$_POST,$_GETили любой непосредственно в запрос, это может быть очень вредно, если кто-то попытается воспользоваться вашей ошибкой.