Регистрация по ид

1. Олег (15.03.2011 / 00:38)
Я пишу скрипт авторизации. Как сделать, чтоб при реге генерировался уникальный ид, ну который выступает вместо логина? Скрипт на файлах

2. iNeeXT (15.03.2011 / 00:54)
rand(1,5500);
можно

3. Виталий (15.03.2011 / 04:14)
на файлах марока голимая smile что же тебе мешает использовать MySQL??? O_o

4. Apeccc (15.03.2011 / 07:53)
2. Егор, а когда Rand(); случайно сгенерирует двум людям одинаковый Id?
Автор, при регестрации определяй кол-во уже зарег.людей и присваивай id=кол-во людей+1, но только в том случае, если людей удалять не будешь.

5. Дмитрий (15.03.2011 / 10:04)
4. Apec, В таком случае можна не определять кол-во уже зареганых, а значение последнего id тобишь даже если он будет удалять, автоинкремент будет продолжать отсчет

6. Apeccc (15.03.2011 / 10:24)
5. Mr-General, он на файлах же пишет..

7. ZipeR (15.03.2011 / 10:29)
Одной строкой не обойтись,к примеру в мускуле нужна таблица юзеров,где будет его поля id,pass. Потом сверять много чего надо(вход и.т.п),сессии,можно без сессии(не забывай про XSS если найдут),пароли храни в хэше,на всех страницах ставь проверку авторизации. Удачи автор... Это я ещё далеко не всё написал.

8. smartvbxos7 (15.03.2011 / 10:36)
# Собери массив юзеров и зделай что то на подобие этого
$id = max($users_array) + 1;
while(file_exists('users/data/'.$id)) ++$id;

# write new profile ...

9. Apeccc (15.03.2011 / 13:24)
8. Smart-Man, #4, аналогично.

10. Titov (15.03.2011 / 15:21)
1 я так понимаю нужно чтоб ид по порядку шел, 1,2,3,4,5,6, ... 99999999
файл users.dat должен писаться такого плана
id:|:login:|:pass:|: и т.д. смотря сколько полей ты желаеш заполнить для пользователя, тогда код который ниже будет прекрасно работать.
<?
function user_id() {
$file=file('users.dat');
if (!empty($file[0])) {
$ex=explode(':|:',$file[0]);
return trim($ex[0])+1;
} else {
return '1'; }
}
?>

<?
$id = user_id();
?>


11. Олег (15.03.2011 / 18:03)
Ну я делал так: есть файл ид.дат, в котором хранится число(допустим 1) при успешной реге значение цифры в файле увеличивается на 1 и присваивается юзеру, как ид(в нашем случае ид=2)
 <?
$file = "id.dat"; $f = fopen($file, "r"); $id = fgets($f, 100); fclose($f); $id++; $f = fopen($file, "w"); fputs($f, $id); fclose($f);
?> 
, ну и при следующей реге все то же самое. Но оно тормозит скрипт сильно. Лишних секунд 5-10 при создании нового пользователя(юзер заполнил поля, нажал 'регистрация' и если успешно, то долго идет загрузка). Вот думаю, как можно оптимизировать этот процесс

Добавлено через 08:57 сек.
Тitov (15 Марта 2011 / 14:21)
1 я так понимаю нужно чтоб ид по порядку шел, 1,2,3,4,5,6, ... 99999999
файл users.dat должен писаться такого плана
id:|:login:|:pass:|: и т.д. смотря сколько полей ты желаеш заполнить для пользователя, тогда код который ниже будет прекрасно работать.
<?
function user_id() {
$file=file('users.dat');
if (!empty($file[0])) {
$ex=explode(':|:',$file[0]);
return trim($ex[0])+1;
} else {
return '1'; }
}
?>

<?
$id = user_id();
?>
как я понял, этим можно заменить то, что выполняется у меня в посте выше?

12. Виталий (15.03.2011 / 20:05)
<? 
function user_id() { 
$file=file('users.dat');
$file = array_reverse($file);
if (!empty($file[0])) { 
$ex=explode(':|:',$file[0]); 
return trim($ex[0])+1; 
}
return '1';
} 
?>
или
<? 
function user_id() { 
$file=file('users.dat'); 
if (!empty(end($file))) { 
$ex=explode(':|:',end($file)); 
return trim($ex[0])+1; 
} 
return '1';
} 
?>
иначе после первого ид последуют только вторые smile

13. Олег (15.03.2011 / 20:08)
12. CUl5-AJIb9lHC, главный вопрос: какой способ работает быстрее?

14. ZipeR (16.03.2011 / 02:27)
13: bezh, на БД.

15. Виталий (16.03.2011 / 07:24)
13. bezh, используй бд, нех.. заморачиваться!!!

16. Олег (16.03.2011 / 08:17)
Я спросил как это сделать на файлах а не на чем это делать. Если не знаете как, не надо здесь писать типо переходи на мускул и т.д. Мне ваши 'умные советы' не нужны. Мне нужен ответ на вопрос. А если я выбрал на файлах, значит были на то причины.

17. ZipeR (16.03.2011 / 11:22)
16: bezh, а ты нервы свои убери уважаемый. Тебе сказали и дали примеры наглядные,если ты не соображаешь забей. И читай книжку.

18. Анатолий (16.03.2011 / 11:40)
16. bezh, такое ощущение, что тебе здесь кто то что то должен.
Дали готовый код, что еще?
Загони оба варианта в цыкл на 1-10К итераций и выведи время генерации страницы - увидишь разницу.

19. Олег (16.03.2011 / 13:40)
Я нормально задал вопрос. Я прекрасно понимаю что все хотят блеснуть умом здесь. Но зачем мне мускул, если я ясно написал что на файлах скрипт.

Добавлено через 01:51 сек.
Ну а всем кто написал по теме - спасибо

20. Олег (16.03.2011 / 16:04)
Тема исчерпана. Ответ я получил. Тему #

21. Виталий (16.03.2011 / 19:58)
сколько ж вас неадекватов то??? за советы уже оскорбляют!!! sad нее... новички борзые, я им помогать больше не буду D так сказать, не буду блестать своим умом E

URL: https://visavi.net/topics/19745