Данные пустые на POSTGRESQL - PullRequest
0 голосов
/ 03 мая 2020

У меня есть форма регистрации в PHP и HTML, подключенная к БД в POSTGRESQL, но у меня есть проблема, что при отправке данных я получаю сообщение о том, что данные были добавлены правильно, но при выполнении выбора * из запроса в БД мне показываются пустые вставленные данные. Можете ли вы помочь мне, пожалуйста.

Это код моей регистрационной формы:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/css/bootstrap.min.css" 
    integrity="sha384-Vkoo8x4CGsO3+Hhxv8T/Q5PaXtkKtu6ug5TOeNV6gBiFeWPGFN9MuhOf23Q9Ifjh" crossorigin="anonymous">
    <link rel="stylesheet" href="../styles.css">
    <title>JOIN</title>
</head>
<body>
            
    <form action="./conection/save.php" method="POST">
        <h1>INSERT DATAS</h1>
        <label for="user">USER:</label><br>
        <input type="text" name="user" placeholder="Choose your name user" size="25" required autofocus><br>
        <label for="pass1">Password:</label><br>
        <input type="password" name='pass1' placeholder="Write your password" size="25" required autofocus pattern="{6,20}" oninvalid="alert('Password shoud have more 6 letters.')"><br>
        <button type="submit">Join</button>
    </form>



    <script src="https://code.jquery.com/jquery-3.4.1.slim.min.js" 
    integrity="sha384-J6qa4849blE2+poT4WnyKhv5vZF5SrPo0iEjwBvKU7imGFAV0wwj1yYfoRSJoZ+n" crossorigin="anonymous"></script>
    <script src="https://cdn.jsdelivr.net/npm/popper.js@1.16.0/dist/umd/popper.min.js" 
    integrity="sha384-Q6E9RHvbIyZFJoft+2mJbHaEWldlvI9IOYy5n3zV9zzTtmI3UksdQRVvoxMfooAo" crossorigin="anonymous"></script>
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.4.1/js/bootstrap.min.js" 
    integrity="sha384-wfSDF2E50Y2D1uUdj0O3uMBJnjuUD4Ih7YwaYd1iqfktj0Uod8GCExl3Og8ifwB6" crossorigin="anonymous"></script>
</body>
</html>

И это мой файл, который я отправляю информацию POSTGRESQL:

<?php
require 'conexion.php';


if(isset($_POST['nombre_usuario']) || isset($_POST['contra_usuario']) || isset($_POST['usuario']) || isset($_POST['clave1'])  ){
$user = $_POST['name_user'];
$pass1 = $_POST['password'];
}

$name_user =  ( empty($_POST['name_user'])) ? NULL : $_POST['name_user'];
$password = (empty($_POST['password'])) ? NULL : $_POST['password'];

$insert = "INSERT INTO users (name_user, password) VALUES ('$name_user','$password')";

$send = pg_query($dbconn,$insert);

    if($send){
        echo "Datas added correctly";
    }else{
        echo "Datas incorrectly";
    }

?>

Я надеюсь Вы помогаете мне.

1 Ответ

0 голосов
/ 03 мая 2020

У вас есть опечатка здесь:

$user = $_POST['name_user'];
$pass1 = $_POST['password'];

Измените ее на:

$name_user = isset($_POST['user']) ? $_POST['user'] : '';
$password = isset($_POST['password']) ? $_POST['password'] : '';

Удалите повторяющийся код, подобный этому:

$name_user =  ( empty($_POST['name_user'])) ? NULL : $_POST['name_user'];
$password = (empty($_POST['password'])) ? NULL : $_POST['password'];
  • you необходимо подтвердить, если поле пустое и поэтому возвращает ошибки.
  • Подробнее о SQL инъекции и о том, как этого избежать, можно узнать здесь: SQL инъекция
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...