Тема: Как дополнить регистрацию?) (Движок DCMS-Social/Общие вопросы) mrholler (28 Oct 2018 в 10:12) Например: Добавляешь <input type=\'text\' name=\'name\' maxlength=\'32\' /> И в mysql mysql_query(\"INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `name`) values(\'\".$_SESSION[\'reg_nick\'].\"\', \'\".shif($_POST[\'pass1\']).\"\', \'$time\', \'$time\', \'\".intval($_POST[\'pol\']).\"\', \'\".$_POST[\'nick\'].\'\')\",$db); scpasis13 (28 Oct 2018 в 16:36) Легко MRX (28 Oct 2018 в 19:40) mrholler, Не выходит, регистрация не работает, кидает на страницу системного бота Системный робот О себе: Создан для уведомлений scpasis13 (28 Oct 2018 в 20:21) --Цитата-- mrholler (28 Oct 2018 в 10:12): Например: Добавляешь <input type=\'text\' name=\'name\' maxlength=\'32\' /> И в mysql mysql_query(\"INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `name`) values(\'\".$_SESSION[\'reg_nick\'].\"\', \'\".shif($_POST[\'pass1\']).\"\', \'$time\', \'$time\', \'\".intval($_POST[\'pol\']).\"\', \'\".$_POST[\'nick\'].\'\')\",$db); ---------- mrholler, ты добавил куда будит записываться(в таблицу) , но не добавил что будет в нее записываться (какой параметр) mysql_query(\"INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `name`) values(\'\".$_SESSION[\'reg_nick\'].\"\', \'\".shif($_POST[\'pass1\']).\"\', \'$time\', \'$time\', \'\".intval($_POST[\'pol\']).\"\', \'\".$_POST[\'nick\'].\'\'\',\'\".$_POST[\'name\'].\'\"),$db); mrholler (28 Oct 2018 в 22:23) scpasis13, вообще-то добавил, просто в values перепутал. Не $_POST[\'nick\'], a $_POST[\'name\']. MRX (28 Oct 2018 в 23:26) Спс за помощь) Еще кое что, мб кто подскажет можно ли так сделать, вот во всех модулях выводит ник пользователя, можно ли как то сделать что бы выводил вместо ника имя пользователя которые в анкете мб что то в /sys/inc/classes/class.user.php заменить или еще что Svat (29 Oct 2018 в 07:59) MRX, Обращаю твоё внимание - в запросе дыра А именно - $_POST[\'nick\'] подлежит фильтрации Например так mysql_query(\"INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `name`) values(\'\".$_SESSION[\'reg_nick\'].\"\', \'\".shif($_POST[\'pass1\']).\"\', \'$time\', \'$time\', \'\".intval($_POST[\'pol\']).\"\', \'\".my_esc($_POST[\'name\']).\'\')\",$db); MRX (30 Oct 2018 в 21:15) Svat, У меня вот, это не правильно? <? mysql_query(\"INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `ank_name`, `ank_surname`, `ank_city`, `ank_g_r`, `ank_m_r`, `ank_d_r` ) values(\'\".$_SESSION[\'reg_nick\'].\"\', \'\".shif($_POST[\'pass1\']).\"\', \'$time\', \'$time\', \'\".intval($_POST[\'pol\']).\"\', \'\".$_POST[\'ank_name\'].\"\', \'\".$_POST[\'ank_surname\'].\"\', \'\".$_POST[\'ank_city\'].\"\', \'\".$_POST[\'ank_g_r\'].\"\', \'\".$_POST[\'ank_m_r\'].\"\', \'\".$_POST[\'ank_d_r\'].\"\')\",$db); ?> Чеченец_95 (30 Oct 2018 в 23:44) MRX, Не мучайся когда есть готовое решение https://gix.su/shop/dcms/social/moduli-i-dopolnyeniya/1540932146_novaya-ryegistratsiya.htm?showinfo ^Учитель^ (31 Oct 2018 в 20:27) MRX, Строки фильтруем через my_esc() Числа через intval() <? mysql_query(\"INSERT INTO `user` (`nick`, `pass`, `date_reg`, `date_last`, `pol`, `ank_name`, `ank_surname`, `ank_city`, `ank_g_r`, `ank_m_r`, `ank_d_r` ) values(\'\".$_SESSION[\'reg_nick\'].\"\', \'\".shif($_POST[\'pass1\']).\"\', \'$time\', \'$time\', \'\".intval($_POST[\'pol\']).\"\', \'\".my_esc($_POST[\'ank_name\']).\"\', \'\".my_esc($_POST[\'ank_surname\']).\"\', \'\".my_esc($_POST[\'ank_city\']).\"\', \'\".intval($_POST[\'ank_g_r\']).\"\', \'\".intval($_POST[\'ank_m_r\']).\"\', \'\".intval($_POST[\'ank_d_r\']).\"\')\",$db); ?> Может пригодиться Фильтрация и проверка данных - https://habr.com/post/143035/ kantry (31 Oct 2018 в 20:50) ^Учитель^, кстати intval($_POST[\'pol\']) это строка, не логично как то к интегер приводить:D Например в подготовленных запросах так делать не надо. Например update user set pol=1/* or pol=0 */ where id=1 -- changed 0 or data truncated for column `pol` MRX (31 Oct 2018 в 20:54) kantry, Спс) ^Учитель^ (31 Oct 2018 в 21:00) kantry, Где ты видишь тут подготовительные запросы:D А не логично тут то, что intval() отрицательные значения пропускает Вот это бы надо было заметить. kantry (31 Oct 2018 в 21:13) ^Учитель^, вот и нет логики, приводить строку к int, потом в запросе приводить к string, да еще и переживать за отрицательные числа)) $pol = $_POST[\'pol\'] ? \'1\' : \'0\'; все, больше проверять ничего не надо, а то еще и средний пол впихнут)) ^Учитель^ (31 Oct 2018 в 21:19) kantry, А при чём тут это? Всё рано что - ты почему не катаешься на велосипеде? Потому что я Вася:D Где логика? Конечно это вариант возможен $pol = $_POST[\'pol\'] ? \'1\' : \'0\'; Но он не исключает intval() [i]Добавлено:[/i] kantry, Вот структура поля pol pol enum(\'0\', \'1\') utf8_general_ci Нет 1 Как впихнёшь средний, покажешь:D kantry (1 Nov 2018 в 05:03) ^Учитель^, да легко, [url=https://stackoverflow.com/questions/4291982/why-an-enum0-1-is-saved-as-an-empty-string-in-mysql] Косяк с enum()[/url] там же и на документацию есть ссылка. ^Учитель^ (1 Nov 2018 в 07:32) kantry, Зачем ты лезешь в космос? Если есть очевидное - практика. Есть поле, с определённой структурой Тип - enum(\'0\', \'1\') Сравнение - utf8_general_ci Null - Нет По умолчанию - 1 Делаем запрос, с отрицательным значением, например -1 Смотрим таблицу Ага, вроде бы всё плохо, пол не имеет значения Кликаем на изменить, и видим pol enum -- 0 1 галочка стоит рядом с единичкой. Что это? А эта сработало предусмотренное структурой - по умолчанию. Пробуем вывести var_dump ( $ank_ ); - array(1) { [\"pol\"]=> string(0) \"\" } Вроде бы пусто. Берём стандартный вывод пола социал if ($ank_[\'pol\'] == 1) { } else { $icon = \'<img src=\"/style/user/2.png\" alt=\"\" class=\"icon\"/> \'; } echo $icon; - Выводиться мужская иконка и не одной ошибки. Где средний пол? Его нет. Надо учитывать и структуру поля а не собирать по инэту всё подряд. Проверь сам. P.S Прикрепил три скрина, отправился один ито в 0 байт [i]Добавлено:[/i] Вот скрины в обменнике https://ru.files.fm/u/fm4g2ukv kantry (1 Nov 2018 в 08:25) ^Учитель^, это ты с ног на уши все поставил. Речь шла о том что, не логично приводить строку в число, а потом обратно - ВСЕ! Ни про теорию, ни про практику речи не было:D Что бы понятно было(другим) делаем запрос select pol from user where pol=0 // выдаст не pol=\"0\", а pol=\"\" вот тебе и вся практика! ^Учитель^ (1 Nov 2018 в 09:02) kantry, А вот и нет, с ног на уши, твоих рук дело:D MRX спросил - У меня вот, это не правильно? А так как у него была одна сплошная дыра - я их закрыл на коленке. Пришёл ты и начал говорить про подготовительные запросы Которых вообще и близко в том запросе нет:D Мне пришлось лезь, создавать, показывать... intval() уместна, средний пол не вставишь, Если бы была ошибка, то if ($ank_[\'pol\'] == 1) не равнялся бы 1 И вывело бы женский пол, а выводит мужской В целом... Я тебе пишу: Смотри 5 + 5 = 10 Ты мне: Нет не правильно! 5 * 2 = 10 Вообщем начинается тавтология - не интересно. Лучше время потратить на что то полезное. [i]Добавлено:[/i] И прекрати хернёй заниматься - выдаст не выдаст приплетая при этом выборку хотя говорим о создании записи. Если ты даже умудришься передать пустой параметр intval() преобразует его в 0 Возвращаемые значения Целое значение переменной var в случае успеха, или 0 в случае неудачи. Для пустых массивов возвращается 0, для непустых возвращается 1. Читай http://php.net/manual/ru/function.intval.php kantry (1 Nov 2018 в 12:46) ^Учитель^, у тебя что кроме intval, или 0 & 1, ничего больше нет в запасе? Тяжело общаться с человеком который не может сосредоточиться. ^Учитель^ (1 Dec 2018 в 06:17) kantry, Тяжело общаться с человеком который в массы несёт лже - знания! Если ты не разбираешься, зачем пишешь? Смысл какой? Это не вызов духов и не заклинание на бабу клаву. Это вычисление и твои слова проверить как два пальца об... Тебе было написано, раз можешь сделай, покажи! Воспроизвести у тебя не вышло. Но ты вместо признать ошибку... С загадочным видом, стал эдак по секрету всем писать Как ты выразился - Что бы понятно было(другим) Что понятно, кому понятно, если ты сам этого не понимаешь и воспроизвести не смог:D Ты не шаман случайно, с бубном бегать не намерен в качестве средний пол на сервер передать:D Источник: http://dcms-social.ru/forum/13/34/62588/