Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Проверка числа на существование
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июнь 2012
Помог: 0 раз(а)
Здравствуйте! Хочу сделать, что бы при регистрации создавалось случайное число, которое потом будет записываться пользователю в сессию. Необходимо, что бы после создание этого числа функцией rand() оно проверилось на существование в БД (тоесть уже было выдано кому-то). Вот это у меня и вызывает затруднения. Кому не тяжело, напишите код где в отдельной таблице или таблице с остальной информацией о пользователях (допустим users) брались все вот эти числа (допустим из столбца session_num), и проверялось, присвоено такое число уже кому-то или нет.
DeepVarvar
Отправлено: 17 Июля, 2012 - 20:18:30
Активный участник
Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008 Откуда: Альфа Центавра
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июнь 2012
Помог: 0 раз(а)
Ну надо что бы генерировались числа по 20 символов. Или всё же лучше сделать такое с AI?
avtor.fox
Отправлено: 17 Июля, 2012 - 20:29:51
Постоянный участник
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
Объясните что Вы желаете получить в итоге. Тогда Вы на 80% приблизитесь к решению)
JIamep
Отправлено: 17 Июля, 2012 - 20:40:32
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июнь 2012
Помог: 0 раз(а)
avtor.fox пишет:
Объясните что Вы желаете получить в итоге. Тогда Вы на 80% приблизитесь к решению)
Во время регистрации пользователя создается число и записывается в переменную:
$number = rand (1000000000,9999999999)
Потом из столбца в базе дынных берутся все числа, которые уже были созданы таким же образом и проверяется(как логин или email), не присвоено ли уже такое число кому-то. Если уже присвоено кому-то - создать новое число и повторить проверку, и так пока не будет найдено свободное число. Всё.
И вот пока писал пришла новая идея: нельзя ли брать уже присвоенные числа и .... напишу на русском
Сгенерировать случайное число, которое бы не повторилось с теми, которые уже кому-то присвоены и только что взяты с БД и записаны в масив.
Может быть кому-то покажется бредом, но если мне кто-то ответит, то даст мне ответ на многие вопросы.
Покинул форум
Сообщений всего: 100
Дата рег-ции: Июль 2012
Помог: 5 раз(а)
нафига ?
AI решит твою проблему ;)
avtor.fox
Отправлено: 17 Июля, 2012 - 21:26:49
Постоянный участник
Покинул форум
Сообщений всего: 2083
Дата рег-ции: Март 2012 Откуда: Воронеж
Помог: 50 раз(а)
Автор параноик
Где Вы начитались этого бреда?)))
Как говорят, "AI" Вам в помощь
JIamep
Отправлено: 17 Июля, 2012 - 21:43:44
Новичок
Покинул форум
Сообщений всего: 17
Дата рег-ции: Июнь 2012
Помог: 0 раз(а)
avtor.fox пишет:
Автор параноик
Где Вы начитались этого бреда?)))
Как говорят, "AI" Вам в помощь
Где-то читал, да и сам так думаю, что простой id пользователя, допустим 5, могут подставить в куки ну и таким образом получить доступ к чужому аккаунту. Так ли это?
DelphinPRO
Отправлено: 17 Июля, 2012 - 22:25:20
Активный участник
Покинул форум
Сообщений всего: 7187
Дата рег-ции: Февр. 2012
Помог: 353 раз(а)
Внимание вопрос: зачем в куках хранить ID пользователя?
----- Чем больше узнаю, тем больше я не знаю.
KingStar
Отправлено: 17 Июля, 2012 - 22:29:09
Участник
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
JIamep пишет:
avtor.fox пишет:
Автор параноик
Где Вы начитались этого бреда?)))
Как говорят, "AI" Вам в помощь
Где-то читал, да и сам так думаю, что простой id пользователя, допустим 5, могут подставить в куки ну и таким образом получить доступ к чужому аккаунту. Так ли это?
если уж ты в кукисах хочешь хранить факт авторизации - то обычно хеш пароля хранят
Покинул форум
Сообщений всего: 1889
Дата рег-ции: Авг. 2011 Откуда: Беларусь
Помог: 69 раз(а)
Цитата:
а это уже дырочка в безопасности.
каой безопастности??? ты что, сам свой пароль ломать будешь???
----- То что программа работает, не означает что она написана правильно!
Bio man
Отправлено: 17 Июля, 2012 - 23:58:10
Постоянный участник
Покинул форум
Сообщений всего: 2751
Дата рег-ции: Июль 2010 Откуда: Даугавпилс, Латвия
Помог: 52 раз(а)
KingStar, ну куки можно украсть. Афтар
ид сессии не трогай, пиши это число в сессию и все!
Prizma
Отправлено: 18 Июля, 2012 - 00:13:35
Посетитель
Покинул форум
Сообщений всего: 463
Дата рег-ции: Июнь 2012 Откуда: Санкт-Петербург
Помог: 5 раз(а)
JIamep пишет:
$number = rand (1000000000,9999999999)
вместо этого используй что нибудь что может повторится с более низкий шансом например рандомный текст
$number = md5(uniqid(rand(),1)); если этого мало для вашей безопасности можно их стыковать сколько угодно))
$number = md5(uniqid(rand(),1)).md5(uniqid(rand(),1)).md5(uniqid(rand(),1));
не надо проверять существует ли такое число надо просто свести шанс на нет
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.