@Gazer
Верстаю, программирую на js, учусь новому

Не отправляются данные формы в таблицу.Что не так в коде?

Здравствуйте.
В таблицу users не отправляются данные из формы.В чем может быть проблема?
Использую локальный сервер Apache и базу данных MySQL (XAMPP).
Структура таблицы : user_id (AUTO_INCREMENT); login; password ; name; email;

Файл register_html.php:
<!DOCTYPE html>
<html lang="en" xmlns="http://www.w3.org/1999/html">
<head>
    <meta charset="UTF-8">
    <title>Страница регистрации</title>

</head>

<body>

Заполните форму:

<form method="POST" action="register_html.php">
    Логин: <input type="text" name="login" required><br>
    E-Mail:<input type="email" name="email" required><br>
    Пароль:<input type="password" name="password" required><br>
    Имя:<input type="text" name="name" required><br>
    <input type="submit" name="enter" value="Регистрация"><br>
    <input type="reset" value="Очистить"><br>


</form>

<?php
include_once "../connect.php";

if (isset($_POST['enter'])) {
    $login = $_POST['login'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $name = $_POST['name'];

    $result = mysqli_query($link,"INSERT INTO `users` (`user_id`, `login`, `password`, `name`, `email`) 
                                     VALUES ('', '$login', '$password', '$name', '$email')");
    echo 'Регистрация прошла успешно';
}

?>

</body>
</html>


Файл connect.php:
<?php

$link = mysqli_connect("localhost", "root", "", "mydb") or die("Unable to select database");
$db = mysqli_select_db($link,"mydb");
mysqli_query($link," SET NAMES 'utf8' ");

if (!$link || !$db){
    exit(mysqli_error());
}

?>


Заранее спасибо

Обновлено 01.10.2016:

Проблема решена)) Все дело было в PhpStorm'е, когда я через него в браузере открывал проект, например,localhost/test-project/index.php, то он дописывал к localhost'y что-то вроде этого localhost:62233 и после index.php были строки.В браузере в целом выходил примерно такой путь:localhost:62233/test-project/?_ijt=cv3asd078ngmbcj5dflnsda7cxcv0 - этом как оказалось и была проблема......Когда я самостоятельно ввел в браузере localhost/test-project/index.php без посторонних символов - всё заработало))

Спасибо всем за уделенное время!
  • Вопрос задан
  • 215 просмотров
Пригласить эксперта
Ответы на вопрос 3
slo_nik
@slo_nik Куратор тега PHP
Добрый вечер.
Вот тут всё не так
$result = mysqli_query($link,"INSERT INTO `users` (`user_id`, `login`, `password`, `name`, `email`) 
                                     VALUES ('', '$name', '$password', '$name', '$email')");
    echo 'Регистрация прошла успешно';

Нельзя напрямую подставлять значения в запрос, переменные в запросе в одинарных кавычках, нет проверки на успешность выполнения запроса.
Попробуйте хотя бы так
$result = mysqli_query($link,"INSERT INTO `users` (`login`, `password`, `name`, `email`) 
                                     VALUES ('".$name."', '".$password."', '".$name."', '".$email."')");
if($result){
    echo 'Регистрация прошла успешно';
}
else{
 // выводите ошибку
}

Экранируйте данные перед подстановкой в запрос.
Пароль в открытом виде в базу не пишите.
Ответ написан
coderisimo
@coderisimo
`user_id` же не надо вставлять. он будет вставляться автоматически
Ответ написан
Ivanq
@Ivanq
Знаю php, js, html, css
Для начала напишите код
<?php
include_once "../connect.php";

if (isset($_POST['enter'])) {
    $login = $_POST['login'];
    $email = $_POST['email'];
    $password = $_POST['password'];
    $name = $_POST['name'];

    $result = mysqli_query($link,"INSERT INTO `users` (`user_id`, `login`, `password`, `name`, `email`) 
                                     VALUES ('', '$login', '$password', '$name', '$email')");
    echo 'Регистрация прошла успешно';

    echo mysqli_error($link);
}

?>


Может быть, удобнее вместо функций mysqli_ использовать класс.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы