Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
 Аватар для Эльт
1 / 1 / 0
Регистрация: 04.04.2015
Сообщений: 11

Пустое значение в БД

04.04.2015, 16:58. Показов 1912. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Перелопатил "пол интернета" :р, но не нашел решения проблемы, прошу помощи! Проблема заключается:

При регистрации пользователя отправляется в базу логин и пароль. Логин приходит успешно, а вот вместо пароля пустое место, хотя в базе password NOT NULL! Подскажите в чем может крыться ошибка
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
35
<?php
    if (isset($_POST['login'])) { $login = $_POST['login']; if ($login == '') { unset($login);} } //заносим введенный пользователем логин в переменную $login, если он пустой, то уничтожаем переменную
    if (isset($_POST['password'])) { $password=$_POST['password']; if ($password =='') { unset($password);} }
    //заносим введенный пользователем пароль в переменную $password, если он пустой, то уничтожаем переменную
 if (empty($login) or empty($password)) //если пользователь не ввел логин или пароль, то выдаем ошибку и останавливаем скрипт
    {
    exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");
    }
    //если логин и пароль введены, то обрабатываем их, чтобы теги и скрипты не работали, мало ли что люди могут ввести
    $login = stripslashes($login);
    $login = htmlspecialchars($login);
 $password = stripslashes($password);
    $password = htmlspecialchars($password);
 //удаляем лишние пробелы
    $login = trim($login);
    $password = trim($password);
 // подключаемся к базе
    include ("db.php");// файл bd.php должен быть в той же папке, что и все остальные, если это не так, то просто измените путь 
 // проверка на существование пользователя с таким же логином
    $result = mysql_query("SELECT id FROM users WHERE login='$login'",$db);
    $myrow = mysql_fetch_array($result);
    if (!empty($myrow['id'])) {
    exit ("Извините, введённый вами логин уже зарегистрирован. Введите другой логин.");
    }
 // если такого нет, то сохраняем данные
    $result2 = mysql_query ("INSERT INTO users (login,password) VALUES('$login','$password')");
    // Проверяем, есть ли ошибки
    if ($result2=='TRUE')
    {
    echo "Вы успешно зарегистрированы! Теперь вы можете зайти на сайт. <a href='index.php'>Главная страница</a>";
    }
 else {
    echo "Ошибка! Вы не зарегистрированы.";
    }
    ?>
Добавлено через 6 минут
Форма регистрации, она проста и в ней все вроде правильно

HTML5
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<html>
    <head>
    <title>Регистрация</title>
    </head>
    <body>
    <h2>Регистрация</h2>
    <form action="save_user.php" method="post">
<p>
    <label>Ваш логин:<br></label>
    <input name="login" type="text" size="20" maxlength="20">
    </p>
<p>
    <label>Ваш пароль:<br></label>
    <input name="password" type="password" size="20" maxlength="20">
    </p>
<p>
    <input type="submit" name="submit" value="Зарегистрироваться">
</p></form>
    </body>
    </html>
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.04.2015, 16:58
Ответы с готовыми решениями:

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

следующие пустое значение массива
Здравствуйте! Такая проблема, есть массив: Array ( =&gt; 2 =&gt; 4 =&gt; =&gt; =&gt; ) Как в этом массиве найти следующие пустое...

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

8
Заблокирован
04.04.2015, 17:05
Лучший ответ Сообщение было отмечено Эльт как решение

Решение

Цитата Сообщение от Эльт Посмотреть сообщение
if (empty($login) or empty($password))
Ты же их
Цитата Сообщение от Эльт Посмотреть сообщение
{ unset($login);
{ unset($password);}
а значит:
PHP
1
if (!isset($login) or !isset($password))
PHP
1
2
3
4
5
6
$login = stripslashes($login);
//$login = htmlspecialchars($login); это лишняя строка 
$password = stripslashes($password);
//$password = htmlspecialchars($password); это лишняя строка 
 
$result2 = mysql_query ("INSERT INTO `users` (`login`,`password`) VALUES('$login','$password')")// тут добавь кавычки на всякий случай и проверь правильно ли написано password в таблице.
1
 Аватар для Эльт
1 / 1 / 0
Регистрация: 04.04.2015
Сообщений: 11
04.04.2015, 17:38  [ТС]
Спасибо, дело было в кавычках, можно поподробнее почему htmlspecialchars это лишние? И за isset спасибо!
0
Заблокирован
04.04.2015, 17:44
Потому что эту функцию используют перед выводом в "браузер". А при добавлении в БД она бесполезна.
1
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
04.04.2015, 22:26
Цитата Сообщение от Эльт Посмотреть сообщение
$login = htmlspecialchars($login);
люди, откуда вы берете эти примеры?
ну неужели трудно включить голову и посмотреть документацию?
htmlspecialchars нужен при ВЫВОДЕ данных
0
Эксперт PHP
5755 / 4134 / 1508
Регистрация: 06.01.2011
Сообщений: 11,276
05.04.2015, 10:54
Цитата Сообщение от Василий Макогон Посмотреть сообщение
люди, откуда вы берете эти примеры?
Попов. И этим всё сказано
0
 Аватар для Эльт
1 / 1 / 0
Регистрация: 04.04.2015
Сообщений: 11
06.04.2015, 14:55  [ТС]
Он самый Разбираю его примеры и переписываю удобнее и лучше... Думаю это лучший способ для обучения
0
 Аватар для Василий Макогон
270 / 226 / 11
Регистрация: 20.04.2012
Сообщений: 817
06.04.2015, 15:41
Цитата Сообщение от Эльт Посмотреть сообщение
Думаю это лучший способ для обучения
тебя два человека сейчас носом ткнули в факт того, что это - ересь и говнокод. Это наихудший способ для изучения. Хуже только заставить обезьяну на php писать.

в контексте примера
Цитата Сообщение от Trukl Посмотреть сообщение
$login = htmlspecialchars($login);
функция htmlspecialchars ВООБЩЕ не нужна. Она отвечает за форматирование в мнемоники служебных символов HTML. Она нужна при выводе пользовательских данных, которые забил пользователь (например, сообщения из гостевой книги), а не когда ты хочешь "обезопасить" данные, которые потом будут в SQL запросе использоваться.

А как-раз эскейпинга данных в запросе нет.

В общем читай правильные ресурсы, например phpfaq.ru , а не говнокод попова изучай.
1
 Аватар для Эльт
1 / 1 / 0
Регистрация: 04.04.2015
Сообщений: 11
06.04.2015, 19:04  [ТС]
ну это хорошо что тыкают, скрипт и вправду говно, вот сижу и меняю его. А ресурсы черпаю не только с пхпфак, но и пхп.нет. На счет htmlspecialchars уже понял давно и стер к чертям)
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
06.04.2015, 19:04
Помогаю со студенческими работами здесь

Пустое значение ключа массива
Подскажите. Если имеем массив в котором имеются пустые значения 1 =&gt; &quot;bar&quot;, 2 =&gt; &quot;foo&quot;, 3 =&gt; &quot;hii&quot;,...

Htmlspecialchars() выдаёт пустое значение
Учусь по книге. Ввёл один из примеров и получилось не так как в книге. &lt;? $name = $_GET; echo 'Добро пожаловать на наш веб-сайт,...

Пустое значение $POST выдает ошибку
Привет всем. Когда в $POST нет ни какого значения браузер выводит ошибку такого вида Undefined index: description in . Как можно...

Зачем присваивать переменной $salt пустое значение?
В качестве примера возьму обычный метод, который генерирует соль для пароля(скопипастил с какого то сайта).. Вопрос заключается в...

Пустое значение
Доброе время суток этот скрипт обновлять список сообщений при приходе нового сообщения &lt;?php session_start(); require...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит: токи, напряжения и их 1 и 2 производные при t = 0;. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru