PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи

Страниц (1): [1]

> Найдено сообщений: 12
Alessanderrr Отправлено: 13 Мая, 2015 - 16:24:58 • Тема: Таки, регистрация пользователя. • Форум: Вопросы новичков

Ответов: 10
Просмотров: 585
MAXUS пишет:
Alessanderrr пишет:

ну вот если я решу взломать юзера MAXUS к примеру)))) я ж могу зайти в любую тему и увидеть его логин в коментах к постам))


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

Alessanderrr пишет:

Хотя, мне сейчас пришло в голову: данная проблема упраздняется в случае, если при регистрации обязательно указание email.


Если используешь e-mail, то обязательно организуй подтверждение через отправку письма. И принимай во внимание, что в email регистр не играет роли.

Alessanderrr пишет:

А вот это очень прикольно)) можно примерчик, как это добро реализовать?


Нене... Опытом поделиться или что-то для себя интересное подчерпнуть - это завсегда. А напишите за меня пожалуйста - это, прости, но лень. В общих чертах - меняешь все спорные символы на определенный символ латиницы, таким образом формируешь хэш. Например, ноль на O, при этом переводишь или в нижний или в верхний регистр (как удобно). При проверке на существование сравниваешь с ним, а не с логином.


Хорошо, спасибо большое))
Alessanderrr Отправлено: 13 Мая, 2015 - 09:18:32 • Тема: Таки, регистрация пользователя. • Форум: Вопросы новичков

Ответов: 10
Просмотров: 585
MAXUS пишет:

Количество комбинаций возрастает в разы, таким образом усложняется подбор. Обрати внимание на сообщения о степени защищенности пароля в банковских системах, например, да в тех же cms.

В моем случае логин нужен для форума-блога и т.д., т.е. там, где у любого незареганного есть возможность вживую увидеть логины. В данной ситуации мне кажется наличие-отсутствие регистра при вводе логина значения особого не имеют... или я не прав?
ну вот если я решу взломать юзера MAXUS к примеру)))) я ж могу зайти в любую тему и увидеть его логин в коментах к постам))
Хотя, мне сейчас пришло в голову: данная проблема упраздняется в случае, если при регистрации обязательно указание email, который не отображается в профиле, и при этом авторизация производится по сочетанию email/пароль, а не логин/пароль, верно? или я неправ? если неправ, где и почему? Закатив глазки Язычок


MAXUS пишет:
Отсекает. Но не отсекает первый пример, где вместо O используется ноль. Про кириллицу просто для примера сказал. В моей практике был миллион случаев, когда, например, на форумах тролли регистрировали похожие на нормальных пользователей имена и писали от их имени всякую хрень. Модераторов иногда это ставило в конкретный тупикУлыбка

А вот это очень прикольно)) можно примерчик, как это добро реализовать?
Alessanderrr Отправлено: 13 Мая, 2015 - 08:42:06 • Тема: Таки, регистрация пользователя. • Форум: Вопросы новичков

Ответов: 10
Просмотров: 585
MAXUS пишет:

При авторизации регистр должен иметь значение.


Таки, прошу объяснить, зачем должен иметь значение регистр логина при авторизации? Не с целью поперепираться, но с целью понять как правильно и почему


MAXUS пишет:
Тебе же написали, что проверка на существование у тебя составлена не правильно. Всегда возвращает true.

Прочитал коряво первый ответ, отвлекли, пардон. Теперь понял!
(Добавление)
MAXUS пишет:

Да. Я бы еще проверял на совпадение TOMAS и T0MAS. А при использовании кириллицы ТОМАS и TOMAS... Т.е. приводил к одному хэшу из латиницы.

Если я правильно понял вышенаписанное, то моя первая проверка отсекает возможность написание чего-либо кириллицей... Не?
если нет, то можно примерчик как правильно? Закатив глазки
Alessanderrr Отправлено: 13 Мая, 2015 - 08:18:45 • Тема: Таки, регистрация пользователя. • Форум: Вопросы новичков

Ответов: 10
Просмотров: 585
MAXUS пишет:
Alessanderrr пишет:

1) Как сделать (по феншую) проверку логина и авторизацию регистронезависимой?


В моем представлении по феншую проверка логина и пароля должна быть как раз регистрозависимой.

Другой вопрос - это желание избежать дублирования имен типа Vasya и vaSya, но это к проверке не относится. В этом случае при проверке существования при регистрации приводить передаваемое и получаемое значения к одному регистру.


Таки, проверка должна быть регистронезависимой для логина (в моем понимании) а для пароля, конечно, регистрозависимой. Зачем регистрозависимость для логина? логины видят все кому интересно, и это получается только неудобство при авторизации доставит, а пользы никакой.. не?

и я на пальцах понял как это сделать, но вопрос был не в том, делать ли или нет, а как именно сделать)
Собственно, решение видится так:
При сравнении существует ли такой юзер, значение из базы и значение из введенной формы приравнивается к одинаковому регистру, и таким образом дубль юзера создать не даст. Так же и при авторизации - сначала значения приводятся к единому регистру, а уже затем сравниваются, и если совпадают, то проверка выполняется успешно.
Сначала написал свое решение потом до конца сообщение написал, мы одно и то же написали)))

Но главная беда моего поста в том, что у меня процесс встал на проверке наличия такого же юзера в базе - что бы я ни ввел (при условии выполнения условий допустимости символов и длины логина) я в любом случае получаю сообщение о том что такой юзер уже существует. Косяк гдета должен быть элементарный но найти его чета у меня не получается, вот и прошу помощи!
Alessanderrr Отправлено: 12 Мая, 2015 - 17:00:41 • Тема: Таки, регистрация пользователя. • Форум: Вопросы новичков

Ответов: 10
Просмотров: 585
Доброго времени суток, Товарищи!
Дополз помаленьку до регистрации пользователя.
Сначала создал просто ввод данных в форму и добавление регистрации, затем начал помаленьку добавлять условия. Вроде все сделал, все условия работали, перешел к разбору инфы о том как пароль проверять. Первый тест - и он у меня ругается на введенный логин, что мол уже существует в системе!
Пересмотрел вроде все на несколько раз, ниче найти не могу. Странно еще то, что я ж ниче вроде не менял больше, мистика, однако!
Помогите найти косяк, пожалуйста)

И заодно ответьте мне на пару наверно банальных вопросов:
1) Как сделать (по феншую) проверку логина и авторизацию регистронезависимой?
2) Могу ли я сравнивать значение в базе со значением переменной $password? Не очень пока понимаю, как работает md5.
3) Проверку длины пароля нужно делать на основе $_POST['password'] и ни в коем случае не $password, верно? или я совсем балбес и нифига не шарю и всё напрочь не так? если да, то как надо? Закатив глазки

Ну и код:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once 'dbcfg.php';
  3.  
  4. $db = mysql_connect($db_host, $db_user, $db_pass);
  5. mysql_select_db($db_name, $db);
  6.  
  7. $login = $_POST['login'];
  8. if (!preg_match("/^[a-zA-Z0-9]+$/", $login))
  9.         die ("Логин должен состоять из латинских символов и цифр");
  10. if(strlen($login) < 3 or strlen($login) > 30)
  11. die ("Логин должен быть не менее трех и не более тридцати символов");
  12. if(mysql_query("SELECT user_id FROM user WHERE user_name='$login'"))
  13. die ("Такой пользователь уже существует");
  14.  
  15. if(strlen($_POST['password']) < 3 or strlen($_POST['password']) > 30)
  16. die ("Пароль должен быть не менее трех и не более тридцати символов");
  17.  
  18. $password = md5(md5(trim($_POST['password'])));
  19.  
  20.  
  21. if(mysql_query("INSERT INTO user SET user_name='".$login."', user_password='".$password."'"))
  22.         echo "Регистрация прошла успешно";
  23. else
  24.         die ("Что-то пошло не так");
  25.  
  26. ?>


Сейчас всё у меня встает на проверке наличия такого пользователя в базе. Что бы я ни вбил, пишет что такой юзер уже есть.
Помогите пожалуйста! Белый флаг

ЗЫ. Про mysqli знаю Радость
Alessanderrr Отправлено: 11 Мая, 2015 - 06:35:55 • Тема: Передача значения переменной на другую страницу • Форум: Вопросы новичков

Ответов: 11
Просмотров: 645
dcc0 пишет:
error_reporting(E_ALL);
И смотреть на какой строчке ошибка, и вечер тратить не придется

И писать скрипты в редакторе, с подсветкой синтаксиса и номерами строк

Дак ведь ошибки не было, он просто пустое значение возвращал из-за этого...
А пишу в Notepad++, он светит
Alessanderrr Отправлено: 10 Мая, 2015 - 21:09:05 • Тема: Передача значения переменной на другую страницу • Форум: Вопросы новичков

Ответов: 11
Просмотров: 645
Alessanderrr пишет:

Чета теперь вообще нифига не работает Растерялся

Потратил весь вечер на поиски, почему у меня вообще всё работать перестало... Долго разглядывал код, методом научного тыка правил, читал мануал по всем функциям что там есть... Нашёл.
В конце строчки while стоял ";" Радость
Тяжелая это работа, быть нубом Растерялся
Alessanderrr Отправлено: 10 Мая, 2015 - 15:41:21 • Тема: Передача значения переменной на другую страницу • Форум: Вопросы новичков

Ответов: 11
Просмотров: 645
exlant пишет:
Alessanderrr ну так я привел ваш скрипт, к более нормальному, обычному виду Радость
хотя до нормального ему еще очень далеко!

и тогда еще одно, библиотека mysql_* уже давно устарела, а в следующей версии php будет удалена http://php.net/manual/ru/functio...ysql-connect.php , так что не тратьте время на ее изучения, приступайте сразу к mysqli или pdo


я начинал изначально работать именно с mysqli, но у меня тогда появились проблемы с подключением к базе, и я все поправил на mysql, тк какие-то функции я на mysql нашел, а на mysqli - нет,а вперемешку оно ругалось друг на друга Радость но вроде потом разобрался, а то что было изначально - не поправил, исправлюсь!

А до нормального далеко - то да, но я буду стремиться именно к "Нормальному"! Улыбка
Спасибо большое)
(Добавление)
exlant пишет:
Alessanderrr ну так я привел ваш скрипт, к более нормальному, обычному виду Радость
хотя до нормального ему еще очень далеко!

Чета теперь вообще нифига не работает Растерялся
Alessanderrr Отправлено: 10 Мая, 2015 - 15:25:45 • Тема: Передача значения переменной на другую страницу • Форум: Вопросы новичков

Ответов: 11
Просмотров: 645
exlant пишет:
а кто ж вас вот этому научил?
PHP:
скопировать код в буфер обмена
  1.  
  2. $myrow=mysql_fetch_array ($result);
  3.  
  4. do
  5. {
  6.  
  7.  
  8. ",$myrow["post_header"],$myrow["post_body"],$myrow["post_date"]);
  9.  
  10. }
  11. while ($myrow=mysql_fetch_array($result));
  12.  

это чисто поповская фишка, которая показывает полную его некомпетентность в этой сфере деятельности!


На каком-то форуме такой же чайник как я вопрос задавал, у него чета не получалось, я оттуда и стащил, посмотрев что работает и подпилив под себя...
А как надо правильно? научите, пожалуйста Растерялся
Alessanderrr Отправлено: 10 Мая, 2015 - 15:19:08 • Тема: Передача значения переменной на другую страницу • Форум: Вопросы новичков

Ответов: 11
Просмотров: 645
exlant пишет:

Цитата:
касательно того , что я не понял, как они работают - вполне таки не исключено, хотя имеющиеся примеры я вроде разобрал

не изучайте php по попову, да вообще ничего по нему не изучайте, он мало того что даже самые основы дает в каком то дико перевернутом виде! Так еще и учит именно так, как делать не надо!

Ни коим образом, никакие книжки и онлайн-курсы не читаю, есть задача, и я пытаюсь ее реализовать, с помощью php.net, форумов, ну и иногда каких-либо статей, но зачастую этого недостаточно бывает.. Общие случаи приводятся, но иногда нужны частности.. Поэтому я тут Улыбка

За код огромнейшее спасибо, это как раз то, чего у меня не получилось нагуглить, но я предполагал что как-то так должна быть возможность делать! Скоро попробую)
Alessanderrr Отправлено: 10 Мая, 2015 - 14:59:03 • Тема: Передача значения переменной на другую страницу • Форум: Вопросы новичков

Ответов: 11
Просмотров: 645
exlant пишет:
Вы не поняли как работают $_GET u $_POST,

Если хотите передавать параметры через ссылку, то вот вам простой пример:

index.php
CODE (html):
скопировать код в буфер обмена
  1.  
  2. <a href="page.php?id=1">Page 1</a><br>
  3. <a href="page.php?id=2">Page 2</a><br>
  4. <a href="page.php?id=3">Page 3</a><br>
  5.  

page.php
PHP:
скопировать код в буфер обмена
  1.  
  2. $id = $_GET['id'];
  3. echo 'Congratulations, you moved on page '.$id.')';
  4.  

Таки, с этими простыми примерами я понял, но можно ли передать туда не конкретное значение, а переменную?
скажем, id у меня может принимать значение от до бесконечности, в зависимости от того, на какую ссылку нажимаю
касательно того , что я не понял, как они работают - вполне таки не исключено, хотя имеющиеся примеры я вроде разобрал
Alessanderrr Отправлено: 10 Мая, 2015 - 14:40:19 • Тема: Передача значения переменной на другую страницу • Форум: Вопросы новичков

Ответов: 11
Просмотров: 645
Доброго времени суток, товарищи!
Я совсем зеленый новичок, и у вас, думаю, теперь буду частый гость)
Помогите, пожалуйста, со следующей бедой:
Имеется недоделанная страница с анонсами постов (пока что выводится инфа целиком), в конце каждого анонса есть ссылка read more.
По моей мысли, она перенаправляет на другую страницу, которая из базы подгружает по id поста остальную инфу. И тут я столкнулся с бедой: я хоть убей не могу сообразить, как передать значение id поста.
Имею следующее:
index.php:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. require_once 'dbcfg.php';
  3.  
  4. $db = mysql_connect($db_host, $db_user, $db_pass);
  5. mysql_select_db($db_name, $db);
  6.  
  7. $result=mysql_query ("SELECT post_header, post_body, post_date FROM post");
  8. $postid=mysql_query ("SELECT post_id FROM post");
  9. $myrow=mysql_fetch_array ($result);
  10.  
  11. do
  12. {
  13. $mypostid=mysql_fetch_array ($postid);
  14.  
  15. <p class='line2'></p>
  16. <h3>%s</h3>
  17. <p>%s</p>
  18. <p>%s</p>
  19. <p><a href='page.php'>Read more...</a></p>
  20.  
  21. <br /><br />
  22. ",$myrow["post_header"],$myrow["post_body"],$myrow["post_date"]);
  23.  
  24. }
  25. while ($myrow=mysql_fetch_array($result));
  26.  
  27.  
  28. ?>


page.php
сейчас пустая, в нее нужно передать значение $mypostid. Весь день потратил на поиски информации... Думал каким-то образом передать через $_GET или $_POST, долго мучился, но недавно наткнулся на каком-то форуме на сообщение, что эти массивы действуют только в рамках одного скрипта, это объяснило, почему у меня page.php постоянно пустая оказывается...
Часто на форумах находил фразу "изучай сессии". Пытался подключить сессии, выдает ошибку, и все равно нифига не работает. Помогите, пожалуйста Белый флаг

Страниц (1): [1]
Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB