Ребят администрация и т.д, тут не давно мне предложили такую штуку сделать, первые наброски предоставляю, критика в студию! Написал не большую регистрацию на ООП + PDO, без шифрование данных, еще не успел, жду оценки и критики аудитории!) https://github.com/mishazapl/registr
PHP: $this->login = trim(stripslashes(strip_tags(htmlspecialchars($_POST['login'])))); ох ты ж йохан бабай.
Всё убрать. ВСЁ! PHP: private function sendData() { $this->protect = 'Защита!'; $protect = new model_query(); $protect->connect($this->protect, $this->login,$this->password,$this->age); } Это чего за технологии?
PDO, и ни одного подготовленного запроса. Зато ограничение на символы в пароле... Слишком мало. Вон строковых функций в php сколько, поставь все: https://php.ru/manual/ref.strings.html
И ссылка на гитхаб идет через вконтакт. --- Добавлено --- Автор, а как так вышло, что ты, в не статическом классе адресуешься к self::? Ворнингами семерка за такое еще не кидается разве? --- Добавлено --- PHP: private function check_pass() { if (preg_match('/^[а-яА-ЯёЁa-zA-Z0-9]+$/', $this->password)) { self::sendData(); } else { print 'Система безопасности, ошибка пароля!'; } } О какой безопасности идет речь? И как она связана с символами в пароле? И почему я не могу использовать в нем спецсимволы, которые заведомо усиливают его в разы? --- Добавлено --- Далее: Код раз PHP: private function sendData() { $this->protect = 'Защита!'; $protect = new model_query(); $protect->connect($this->protect, $this->login,$this->password,$this->age); } Два PHP: public function connect($protect,$login,$pass,$age) { if ($protect === 'Защита!') { try { $this->PDO = new \PDO("mysql:host=$this->host; dbname=$this->db", $this->log, $this->password); } catch (\PDOException $e) { echo "Ошибка базы данных, сообщите создателю!<br /> mzapalenov@mail.ru"; exit(); } self::checkTable($login, $pass, $age); } else { printf ("Критическая ошибка! Зафиксированна попытка взлома"); exit(); } } О какой попытке взлома идет речь? Каким образом эта "Защита!" от взлома какого бы то ни было оберегает? --- Добавлено --- Смысл класть временный "итератор" в объект? PHP: foreach ($this->check as $this->row) { var_dump($this->row); } --- Добавлено --- Ты проверял, это работает? PHP: <form action="<?$_SERVER['SCRIPT_NAME']?>" method="post" id="form"> Скажу сходу - нет. Ну..форма-то отрабатывает, покуда скриптнейм совпадает с адресом страницы. Но action у тебя в итоге пустой. --- Добавлено --- Задача подразумевает не введение возраста, а указание даты рождения, не? PHP: Your birthday from 5 to 150 <br> <input type="number" name="age">
Работает, script name, это текущий скрипт, и так по порядку, что и как исправить. --- Добавлено --- Ахахах какая херь ржу сам с кода, крч по порядку, что на что поменять и почему.
Нет, не работает. <?$var?> и <?=$var>? не одно и то же. У тебя используется первый вариант. Выключишь шорттаги и он упадет. А ты ответь на все вопросы, что я задал. Ответь честно. Ты же чем-то руководствовался. Не стесняйся. У тебя же хватило смелости код выложить. Это самое тяжелое, а дальше будет легче Вот тогда и заладится диалог. До многих вещей ты сам дойдешь, когда проанализируешь то, что написал и постараешься ответы дать. А потом я тебе отвечу, сказав, где ты прав, а где нет. И почему, разумеется. И как исправить. Такой метод очень помогает учиться.
Про равно забыл,да. Защита бессмысленна, т.к. это чушь руководствовался я тупостью, т.к. пользователь ни как не сможет сделать запрос к объекту тому. То что я создал объект модели в классе, так мне в другой теме сказали. Временный итератор, не знаю я просто делал проверку, об это я не задумывался, а чем это плохо, и почему нет? Дата рождения, там вроде не было написано именно дата, но могу переделать. --- Добавлено --- Про статику А, я забыл что нельзя, но ворнингов не было поэтому не исправил из-за этого да и шторм не ругался, может можно уже? --- Добавлено --- блог с добавлением статей и админку с возможностью добавления статей в БД и выводить их. Вот что я собираюсь после этой регистрации сделать все на чистом пхп ток мы регу сделаем нормально, сделаем более менее хорошую структуру, а потом я сделаю бложек и вам на критику!)
Во-первых выключай самобичевание. Оно не нужно совершенно. Никто тебя не оскорбляет и не собирается. Попытка защититься, оскорбив себя самого - так себе дело. Не надо так, в общем. Молодец. Вооот. А это важно. А что это дает? Это переменная, которая нужна только внутри цикла. Смысл ее хранить дальше? Сентиментальность? Лишние расходы памяти и мусор в свойствах объекта, не более. Если ты все же делаешь мою задачу, а похоже именно на то, то там написано, что указывать надо дату. Нет, не можно. Это не новая фича. Это старый баг. Суть в том, что ты обращаешься к методам вне контекста объекта. Это автоматом гарантирует непредсказуемое поведение. А оно тебе надо? Окей, но пока есть над чем поработать. По поводу PHP: trim(stripslashes(strip_tags(htmlspecialchars($_POST['login'])))); понял, в чем беда?
Зачем require_once когда уже сверху используешь use?. А так вот здесь можно посмотреть годный пример.
Как одно с другим связано? У него же автозагрузчик не подключён, значит надо делать require. Use импортирует в текущее пространство имён, а не подгружает файл
блог с добавлением статей и админку с возможностью добавления статей в БД и выводить их. Вот что я собираюсь после этой регистрации сделать все на чистом пхп ток мы регу сделаем нормально, сделаем Да понял про последние надо было перенести проверку регулярки туда, я просто функций бессмысленно напладил когда ниже регулярной все проверяется
Я его убрал так как он мне сейчас не нужен. --- Добавлено --- По поводу того видео что ты скинул, тут компосера нет, во вторых, пусть великий скажет хорошо на видео сделано или нет!
УУ а ты клонируй репозиторий, и удали use увидишь как твой браузер будет с тобой общаться, а точнее никак. Ничего не будет кроме херова туча ошибок!
Регулярки отдельная тема. Зачем они там вообще? Зачем говорить пользователю, какие символы ему можно вводить, а какие нельзя?