Регистрация по ид
1.
Олег (15.03.2011 / 00:38)
Я пишу скрипт авторизации. Как сделать, чтоб при реге генерировался уникальный ид, ну который выступает вместо логина? Скрипт на файлах
2.
iNeeXT (15.03.2011 / 00:54)
rand(1,5500);
можно
3.
Виталий (15.03.2011 / 04:14)
на файлах марока голимая
что же тебе мешает использовать 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';
}
?>
иначе после первого ид последуют только вторые
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)
сколько ж вас неадекватов то??? за советы уже оскорбляют!!!
нее... новички борзые, я им помогать больше не буду
так сказать, не буду блестать своим умом
URL:
https://visavi.net/topics/19745