Форум программистов, компьютерный форум, киберфорум
PHP
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2

Не добавляются записи в таблицу

17.02.2010, 18:16. Показов 1541. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять почему скрипт регистрации не добавляет записи в мускул!Ошибок не пишет!Я думаю, что в моем корявом коде, косяк кроется в SELECT...Подскажите, кто знает...Так же буду рад вашим поправкам в остальном кодеВот собственно и весь код, что есть на данный момент.Капчу добавлю после того, как разберусь с этим косяком
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<?php
$host="localhost";
$my_login="root";
$my_password="12345";
$db="av-reg";
if (!isset ($_POST['login'], $_POST['pass'], $_POST['passw'], $_POST['nik'], $_POST['email'])==TRUE){
if (preg_match("/^[a-zA-Z0-9]{4,15}$/",$_POST['login'])==TRUE){
$log=$_POST['login'];
mysql_connect($host, $my_login, $my_password);
mysql_select_db($db);
$q=mysql_query("SELECT * FROM users WHERE login=\"$log\"");
$res=mysql_fetch_assoc($q);
if ($res["login"]!=$log){
$login=$log;
}
else{
$error_l="Введенный логин не соответствует требованиям!<br>";
}
}
else{
$error_l="Введенный логин не соответствует требованиям!<br>";
}
if (($_POST['pass']===$_POST['passw']) and preg_match ("/^[a-zA-Z0-9]{6,20}$/",$_POST['pass'])==TRUE){
$abra="r;'ga@!#";
$password=md5 (md5 ($pass.$abra));
}
else{
$error_p="Введенный пароль не соответствует требованиям!<br>";
}
if (preg_match("/^[a-zA-Z0-9]{4,15}$/",$_POST['nik'])==TRUE){
$nick=$_POST['nik'];
$q=mysql_query("SELECT * FROM users WHERE nik=\"$nick\"");
$res=mysql_fetch_assoc($q);
if ($res["nik"]!=$nick){
$nik=$nick;
}
else{
$error_n="Введенный ник не соответствует требованиям!<br>";
}
}
else{
$error_n="Введенный ник не соответствует требованиям!<br>";
}
if (preg_match ("/(?:^[a-zA-Z0-9_\.-]+@[a-z]+\.[a-z]+){10,40}$/", $_POST['email'])==TRUE){
$mail=$_POST['email'];
$q=mysql_query("SELECT * FROM users WHERE email=\"$mail\"");
$res=mtsql_fetch_assoc($q);
if ($res["email"]!=$mail){
$email=$mail;
}
else{
$error_e="Введенный E-mail не соответствует требованиям!<br>";
}
}
else{
$error_e="Введенный E-mail не соответствует требованиям!<br>";
}
if (!isset ($login, $password, $nik, $email)==TRUE){
$data=date(d)."-".date(m)."-".date(Y)." ".date(H).":".date(i).":".date(s);
$q=mysql_query("INSERT INTO users VALUES (NULL, '$login', '$password', '$nik', '$email', '$data');");
mysql_close();
$_POST['ok']="Спасибо за регистрацию!";
Header("Location:registraciya.php");
exit;
}
}
else{
$_POST['error_l']=$error_l;
$_POST['error_p']=$error_p;
$_POST['error_n']=$error_n;
$_POST['error_e']=$error_e;
Header("Location:registraciya.php");
exit;
}
?>
Только не смейтесь с кода
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
17.02.2010, 18:16
Ответы с готовыми решениями:

В таблицу MySql не добавляются записи
Доброго времени суток. Та же проблема что и в теме https://www.cyberforum.ru/php-database/thread270327.html, не добавляются данные в...

В таблицу MySql не добавляются записи.
Не прошло и 2 дней, как я вернулся с новым вопросом) Написал запрос на добавление записи в таблицу, вроде бы всё как надо, но после...

Не добавляются записи в таблицу SQlite3
Доброго времени суток! Пытаюсь освоить php, написал класс который создает db и таблицу sqlite3, принимает из формы данные и заносит их в...

11
 Аватар для BasicMan
19318 / 2626 / 84
Регистрация: 17.02.2009
Сообщений: 30,364
17.02.2010, 18:32
PHP
1
$q=mysql_query("INSERT INTO users VALUES (NULL, '$login', '$password', '$nik', '$email', '$data');");
во-1х, чет мне кажется, или я прав, но обычно NULL не добавляют в таблицы
во-2х, вставь перечисления полей, т.е.
T-SQL
1
INSERT INTO MyTable (a,b,c) VALUES (1,2,3)
и еще мож слово users взять в квадратные скобки, или чо там в мускуле ? апострофы? потому как похоже на зарезервированное слово
1
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
17.02.2010, 18:46  [ТС]
щас попробую

Добавлено через 12 минут
Цитата Сообщение от CyberБурундукЪ Посмотреть сообщение
и еще мож слово users взять в квадратные скобки, или чо там в мускуле ? апострофы? потому как похоже на зарезервированное слово
я просто до этого писал скрипт реги, там работала такая конструкция, но то был денвер...а щас чистый LAMP+PMA
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
17.02.2010, 19:08
Проверка ошибок:
PHP
1
... mysql_query('...') or die(mysql_error());
Используй mysql_real_escape_string() для строковых значений.
PHP
1
"SELECT * FROM users WHERE login = '".mysql_real_escape_string($_POST['login'])."'"
1
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
17.02.2010, 19:16  [ТС]
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Проверка ошибок:
это я знаю, просто оно будет возвращать FALSE, если такой записи нету, а мне нужно на оборот)))

Добавлено через 34 секунды
а за
Цитата Сообщение от Vovan-VE Посмотреть сообщение
Используй mysql_real_escape_string() для строковых значений
отдельное спасибо
0
Почетный модератор
 Аватар для Humanoid
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
17.02.2010, 19:26
А что там на 47 строке? Какой-то mtsql_fetch_assoc... возможно, он на нём спотыкается. Что бы он показал все ошибки, то надо либо настроить php.ini, либо в начале скрипта выполнить
PHP
1
error_reporting(E_ALL);
Маленький совет по поводу INSERT... я рекомендую указывать так
PHP
1
"INSERT INTO tab SET login='$login',pass='$password',nik='$nick'";
и т.д. Это позволит не запутаться в столбцах и можно будет изменять структуру таблицы без особых проблем со скриптом. И не надо будет указывать NULL для столбца с AUTO_INCREMENT'ом.
1
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
17.02.2010, 22:17  [ТС]
Humanoid, ну я не знаю что сказать...ты самый настоящий гуру в PHP и MySQL!!!Спасибо!

Добавлено через 2 часа 42 минуты
теперь ошибок никаких не пишет, даже с
PHP
1
error_reporting(E_ALL);
но и перенаправление не работает!жесть...я третий день с ним вожусь
0
Почетный модератор
 Аватар для Humanoid
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
17.02.2010, 22:22
Цитата Сообщение от romchiksoad Посмотреть сообщение
но и перенаправление не работает!
Попробуй после двоеточия пробел ставить:
Code
1
Location: registraciya.php
Не знаю, как в стандарте описано, но сервера всегда ставят пробел.
Перенаправление просто молча не работает? Или жалуется на что-то?
0
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
17.02.2010, 23:26  [ТС]
если б жаловалось, я бы не так переживално уже все норм, перенаправляет, но не записывает(((

Добавлено через 22 минуты
Сейчас мой скрипт выглядит так:
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
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php
$host="localhost";
$my_login="root";
$my_password="12345";
$db="avreg";
if (!isset ($_POST['login'], $_POST['pass'], $_POST['passw'], $_POST['nik'], $_POST['email'])==TRUE){
if (preg_match("/^[a-zA-Z0-9]{4,15}$/",$_POST['login'])==TRUE){
mysql_connect($host, $my_login, $my_password);
mysql_select_db($db);
$q=mysql_query("SELECT * FROM users WHERE login='".mysql_real_escape_string($_POST['login'])."'");
@$res=mysql_fetch_assoc($q);
if ($res["login"]!=$_POST['login']){
$login=$_POST['login'];
}
else{
$error_l="Введенный логин не соответствует требованиям!<br>";
}
}
else{
$error_l="Введенный логин не соответствует требованиям!<br>";
}
if (($_POST['pass']===$_POST['passw']) and preg_match ("/^[a-zA-Z0-9]{6,20}$/",$_POST['pass'])==TRUE){
$abra="r;'ga@!#";
$pass=$_POST['pass'];
$password=md5(md5($pass.$abra).$abra);
}
else{
$error_p="Введенный пароль не соответствует требованиям!<br>";
}
if (preg_match("/^[a-zA-Z0-9]{4,15}$/",$_POST['nik'])==TRUE){
$q=mysql_query("SELECT * FROM users WHERE nik='".mysql_real_escape_string($_POST['nik'])."'");
@$res=mysql_fetch_assoc($q);
if ($res["nik"]!=$_POST['nik']){
$nik=$_POST['nik'];
}
else{
$error_n="Введенный ник не соответствует требованиям!<br>";
}
}
else{
$error_n="Введенный ник не соответствует требованиям!<br>";
}
if (preg_match ("/(?:^[a-zA-Z0-9_\.-]+@[a-z]+\.[a-z]+){10,40}$/", $_POST['email'])==TRUE){
$q=mysql_query("SELECT * FROM users WHERE email='".mysql_real_escape_string($_POST['email'])."'");
$res=mysql_fetch_assoc($q);
if ($res["email"]!=$_POST['email']){
$email=$_POST['email'];
}
else{
$error_e="Введенный E-mail не соответствует требованиям!<br>";
}
}
else{
$error_e="Введенный E-mail не соответствует требованиям!<br>";
}
if (!isset ($login, $password, $nik, $email)==TRUE){
$q=mysql_query("INSERT INTO users SET login='$login',pass='$password',nik='$nik', email='$email'");
mysql_close();
$_POST['ok']="Спасибо за регистрацию!";
}
}
else{
$_POST['error_l']=$error_l;
$_POST['error_p']=$error_p;
$_POST['error_n']=$error_n;
$_POST['error_e']=$error_e;
}
header("Location:registraciya.php");
exit;
?>
0
Почетный модератор
 Аватар для Humanoid
11559 / 4353 / 453
Регистрация: 12.06.2008
Сообщений: 12,455
18.02.2010, 13:13
12-ю строку лучше изменить на
PHP
1
if ((!$res) && ($res["login"]!=$_POST['login'])){
или на
PHP
1
if ((!isset($res["login"])) && ($res["login"]!=$_POST['login'])){
...что бы вначале проверить, было ли найдено такое значение или нет. А то он возвращает пустой массив и элемента 'login' в нём вообще нету.

Если не поможет, то на время закомментируй 57 строку, а вместо неё напиши:
PHP
1
2
echo "INSERT INTO users SET login='$login',pass='$password',nik='$nik', email='$email'";
exit;
И посмотри, какой запрос получается в результате.
1
 Аватар для romchiksoad
1957 / 796 / 89
Регистрация: 03.11.2009
Сообщений: 3,066
Записей в блоге: 2
18.02.2010, 14:31  [ТС]
щас попробую

Добавлено через 1 минуту
Дядь, ну ты красавчик))логика на высшем уровне, это скорей всего так,до меня только дошло))я про это
Цитата Сообщение от Humanoid Посмотреть сообщение
12-ю строку лучше изменить на
Код PHP
1
if ((!$res) && ($res["login"]!=$_POST['login'])){
или на
Код PHP
1
if ((!isset($res["login"])) && ($res["login"]!=$_POST['login'])){
...что бы вначале проверить, было ли найдено такое значение или нет. А то он возвращает пустой массив и элемента 'login' в нём вообще нету.
Добавлено через 13 минут
Дружище!!!Спасибо, теперь я хоть понял в чем косяк!Он кроется в РВ для мыла!!щас буду исправлятьЯ только строку:
Цитата Сообщение от Humanoid Посмотреть сообщение
echo "INSERT INTO users SET login='$login',pass='$password',nik='$ni k', email='$email'"; exit;
написал в самы конец и убрал header, что бы увидеть надпись

Добавлено через 32 минуты
EHF!В смысле "УРА!"Заработало!

Добавлено через 47 секунд
косяк всё-таки в РВ с мыло был
0
 Аватар для Vovan-VE
13210 / 6599 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
18.02.2010, 18:59
Цитата Сообщение от romchiksoad Посмотреть сообщение
это я знаю, просто оно будет возвращать FALSE, если такой записи нету, а мне нужно на оборот)))
mysql_query() возвращает false только в случае ошибки. В остальных случаях, в зависимости от запроса, либо true, либо дескриптор результата (пустой результат - тоже результат).
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
18.02.2010, 18:59
Помогаю со студенческими работами здесь

Не добавляются записи в таблицу БД Access
Помогите решить проблему, при отладке не добавляются записи в таблицу, а вот изменять можно Imports System.Windows.Forms Public...

Не добавляются значения в таблицу
сайт http://www.tvpnero.ho.ua/problem/post.html (форма добавления комента внизу возле футера сайта) код формы

Не добавляются данные в таблицу
$AddQuery = &quot;INSERT INTO `IndividalLearnRequest` SET `Surname`='&quot;.$Surname.&quot;' `Name`='&quot;.$Name.&quot;' `Patronymic`='&quot;.$Patronymic.&quot;'...

Не добавляются данные в таблицу
Всем доброго дня. Только начал знакомиться с бд, попробовал добавить данные, но почему-то не получается. Уже час пытаюсь найти ошибку, но...

Не добавляются данные в таблицу
Всем привет, столкнулся с проблемой добавления данных в таблицу. Не хочет добавлять и все, код: string sqlQuery1 = &quot;INSERT INTO...


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 30.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO Апнулись до NET10. Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта так и в интерактивном режиме. из сложностей - чисто функциональный подход. Решил. . .
Автоматическое создание документа при проведении другого документа
Maks 29.03.2026
Реализация из решения ниже выполнена на нетиповых документах, разработанных в конфигурации КА2. Есть нетиповой документ "ЗаявкаНаРемонтСпецтехники" и нетиповой документ "ПланированиеСпецтехники". В. . .
Настройка движения справочника по регистру сведений
Maks 29.03.2026
Решение ниже реализовано на примере нетипового справочника "ТарифыМобильнойСвязи" разработанного в конфигурации КА2, с целью учета корпоративной мобильной связи в коммерческом предприятии. . . .
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru