Форум программистов, компьютерный форум, киберфорум
PHP: базы данных
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 21
1
MySQL

Не отправляются данные из регистрационной формы в БД

06.06.2019, 04:00. Просмотров 471. Ответов 5

Вопрос далеко не новый, но я его не могу решить уже больше суток. Данный просто не хотят залетать в таблицу базы. Использую готовый локальный сервер Open Server Ultimate 5.3.0. Сам в этом деле новичок, не пойму почему не выходит.
В файле regform.php есть только этот код, все остальное в файле connect.php
PHP
1
<?php require('connect.php'); ?>
Использую Bootstrap для создания формы
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div class="container">
  <form role="form-singin" methot="POST">
    <div class="form-group">
      <label for="nickname">Логин</label>
      <input type="text" class="form-control" placeholder="Придумайте логин" required>
      <p class="help-block">Длина логина должна составлять от 5 до 20 символов</p>
    </div>
    <div class="form-group">
      <label for="password">Пароль</label>
      <input type="password" class="form-control" id="password" placeholder="Придумайте пароль" required>
      <p class="help-block">Длина пароля должна составлять от 8 до 16 символов</p>
    </div>
    <div class="form-group">
      <button type="submit" name="button" class="btn btn-success">Зарегистрироваться</button>
    </div>
  </form>
</div>
Код файла connect.php
PHP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
<?php
 
$database = "regform";
$connection = mysqli_connect('localhost','root','',$database);
 
if ($result = mysqli_query($connection, "SELECT DATABASE()")) {
    $row = mysqli_fetch_row($result);
    printf("База данных: %s.\n", $row[0]);
    mysqli_free_result($result);
}
 
if($connection)
echo 'Соединение установлено.';
else
die('Ошибка подключения к серверу баз данных.');
 
$selected = mysqli_select_db($database, $connection);
if($selected)
echo ' Подключение к базе данных прошло успешно.';
else
die(' База данных не найдена или отсутствует доступ.');
/*$select_db = mysqli_select_db($connection, $database);
if(isset($_POST['username']) && isset($_POST['password'])){
  $username = $_POST('username');
  $password = $_POST('password');
  $query = "INSERT INTO users ('username', 'password') VALUES ('$username','$password')";
  $result = mysqli_real_query($connection, $query);
if($result){
  $smsg = "OK";
} else {
  $fsmsg = "ERR";
}
}*/
?>
В общем нужный мне код закомментирован. Я решил проверить подключение к серверу и базе. С сервером все ок, база ругается.
PHP
1
2
3
База данных: regform. Соединение установлено.
Warning: mysqli_select_db() expects parameter 1 to be mysqli, string given in C:\OSWeb\OSPanel\domains\sodip.loc\connect.php on line 17
База данных не найдена или отсутствует доступ.
Но как только я добавляю функцию
PHP
1
function db_connect(){код connect.php}
ошибки не выводит. Хорошо. Заменяю код проверки на код отправки формы. Обновляю страничку - ошибок нет, отправляю данные - в базу не заносятся.
P.S.: изначально код
PHP
1
2
3
4
5
6
7
8
9
10
11
if(isset($_POST['username']) && isset($_POST['password'])){
  $username = $_POST('username');
  $password = $_POST('password');
  $query = "INSERT INTO users (username, password) VALUES ('$username','$password')";
  $result = mysqli_real_query($connection, $query);
if($result){
  $smsg = "OK";
} else {
  $fsmsg = "ERR";
}
}
должен был находиться в regform.php, а в connect.php лишь подключение к базе. Но так тоже не работает. Никак в общем-то не работает.
P.S.S.: Создавал новые базы, таблицы, новых юзеров с правами, брал другой код(и простой, и навороченный) - толку нуль. В общем не знаю как починить, буду очень благодарен за любую помощь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.06.2019, 04:00
Ответы с готовыми решениями:

Не отправляются данные из формы в БД
Помогите, пожалуйста. Пишу сайт для себя и столкнулся с проблемой. Не отсылаются данные (пароль и...

Не отправляются данные из формы в БД
Только учюсь пхп и пишу свой саит. Форма для регистрации не отправляет данные в БД. не могу...

Не отправляются данные с формы в базу
Здравстуйте, такая вот проблема, ошибки не выводит хотя я делаю проверку. В чем может быть...

Отправляются не все данные из формы
Есть скрипт который получает строки из нужного раздела раздела и дает возможность изменять...

5
26 / 25 / 12
Регистрация: 24.10.2015
Сообщений: 476
06.06.2019, 05:59 2
в форме отправки:

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div class="container">
  <form role="form-singin" methot="POST" action='regform.php'>
    <div class="form-group">
      <label for="nickname">Логин</label>
      <input type="text" name='username' class="form-control" placeholder="Придумайте логин" required>
      <p class="help-block">Длина логина должна составлять от 5 до 20 символов</p>
    </div>
    <div class="form-group">
      <label for="password">Пароль</label>
      <input type="password"  name='password' class="form-control" id="password" placeholder="Придумайте пароль" required>
      <p class="help-block">Длина пароля должна составлять от 8 до 16 символов</p>
    </div>
    <div class="form-group">
      <button type="submit" name="button" class="btn btn-success">Зарегистрироваться</button>
    </div>
  </form>
</div>
По пунктам:
1) В <form role="form-singin" methot="POST" action='regform.php'> нужно было указать обработчик в данном случае regform.php
2) В <input type="password" name='password' class="form-control" id="password" placeholder="Придумайте пароль" required>
и соответственно подобное с отправкой логина, имя инпута не id, а name=, поэтому у тебя прилетали пустые данные и ничего не заносилось, потому что у тебя стоит проверка на пустоту:
PHP
1
2
if(isset($_POST['username']) && isset($_POST['password'])){
}
Надеюсь объяснил)
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 21
06.06.2019, 10:52  [ТС] 3
Я походу либо совсем тупой, либо мозг уже поплавился. Все подставил, почитал про атрибуты action, id и name, пошарился в коде снова. Один фиг база не заполняется. Подозреваю что не в коде дело, а в моих кривых руках и в самой базе.
P.S.: помимо этого, пересоздал базу, перезапустил сервер
0
26 / 25 / 12
Регистрация: 24.10.2015
Сообщений: 476
06.06.2019, 11:19 4
посмотри файл connect.php

Добавлено через 6 минут
у тебя явно там косяк какой-то, логин, пароль, бд
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 21
06.06.2019, 11:24  [ТС] 5
Неа, юрезов я разных пробовал. И создавал и дефолтных прописывал
Смотри, я убрал файл connect.php, объединил код, для простоты.
HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
<!DOCTYPE html>
<html>
<head>
  <meta charset="utf-8">
  <title>test</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">
</head>
  <body>
    <?php
    $connection = mysqli_connect('localhost','root','','regform');
    $select_db = mysqli_select_db($connection, 'regform');
    if(isset($_POST['username']) && isset($_POST['password'])){
      $username = $_POST('username');
      $password = $_POST('password');
      $query = "INSERT INTO users ('username', 'password') VALUES ('$username','$password')";
    }
    ?>
<div class="container">
  <form action='regform.php'role="form-singin" methot="POST">
    <div class="form-group">
      <label for="nickname">Логин</label>
      <input name="username" type="text" class="form-control" placeholder="Придумайте логин" required>
      <input name="password" type="password" class="form-control" id="password" placeholder="Придумайте пароль" required>
      <button type="submit" name="button" class="btn btn-success">Зарегистрироваться</button>
    </div>
  </form>
</div>
  </body>
</html>
В общем вот так. Мб проще увидеть будет ошибку? Я, честно говоря, совсем ничего корявого не замечаю
0
0 / 0 / 0
Регистрация: 02.03.2019
Сообщений: 21
06.06.2019, 11:29  [ТС] 6
Не отправляются данные из регистрационной формы в БД
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.06.2019, 11:29

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Не отправляются данные из формы в базу данных MySQL
Добрый день!:) Понимаю, что тема баян, но всё-таки помогите решить проблему с записью данных из...

Надо из регистрационной формы по нажатию на кнопку записать данные в файл
Было похожее. У формы добавить атрибут: enctype=&quot;multipart/form-data&quot;

Не отправляются данные с формы
Здравствуйте форумчане, проблема в следующем, данные с формы не отправляются, получаются пустыми(...

Не отправляются данные из формы
У меня проблемы с отпракой формы. Письмо приходит, но с пустыми полями. Что делать? Форма ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.