Форум сетевых администраторов
Показаны 7 сообщений на этой странице

Форум сетевых администраторов (http://netadmin.ws/forum/index.php)
- PHP (http://netadmin.ws/forum/forumdisplay.php?forumid=6)
-- Опять прошу помощи. reg.php (http://netadmin.ws/forum/showthread.php?threadid=3034)


Помещено rio 09-09-2002 в 00:04:

Опять прошу помощи. reg.php

Вот тут значит такая ситуация возникла с регестрацией ... Помогите плз.

имееться два файла

accounts.txt
-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=--=-=-=-=-=-
структура такая :
Account
{
Name admin
Password admin
Enabled 1
Banned 0
CProp Email admin@admin.ru
}

Account
{
Name user
Password user
Enabled 1
Banned 0
CProp Email user@user.ru
}
-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=--=-=-=-=-=-


reg.php
-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=--=-=-=-=-=-
if(strlen($acc) < 5 || strlen($acc) >15)
{
Echo "<font color=red><b>Error : Account name must be between 5 and 15 characters long.</font>";
echo "<br>Please push back button.</b>";
}
else
{
if(strlen($pwd1) < 4 || strlen($pwd1) >16)
{
Echo "<font color=red><b>Error : Passwords must be between 4 and 10 characters long.</font>";
echo "<br>Please push back button.</b>";
}
else
{
if($pwd1==$pwd2)
{
if($email=="")
{
}
else
{
$fo = @fopen ($Path_accountfile,"a") or die ("<br>Error : Cant read account file. Please wright to $dev_mail on this bag.");

$addacc ="
Account
{
Name $acc
Password $pwd1
Enabled 1
Banned 0
CProp Email $email
}
";

@fwrite($fo, $addacc) or die ("Write error!");
@fclose($Path_accountfile);
}

?>
-=-=-=-=-=-==-=-=-=-=-=-=-=-=-=-=-=-=-==-=-=-=-=--=-=-=-=-=-


Требуеться сделать проверку , если в строке Name файла accounts.txt уже существует $acc False а если нету то регистрация продолжаеться + сложность еще в том что $acc может быть например ADM а пользователь регистрирует ADMIN , соответственно нужно чтобы Аккаунт зарегистрировался .Помогите плз .

__________________________________________________
________________
Ковчег построили дилетанты, а профессионаллы построили "Титаник" .


Помещено polo 09-09-2002 в 20:31:

а зачем такую структуру делать, это чтобы его разобрать двинуться можно. Лучще всего чтобы легко можно было проверять, сохранять все в массиве. Например:

PHP:


$user
['0'] = array('name'=>'admin',
                           
'Password'=>'admin',
                            
'Enabled'=>'1',
                            
'Banned'=>'0',
                            
'Email'=>'admin@admin.ru'
                            
);
$user['1'] = array('name'=>'admin1',
                           
'Password'=>'admin1',
                            
'Enabled'=>'1',
                            
'Banned'=>'0',
                            
'Email'=>'admin1@admin.ru'
                            
);
//и т.д.


в таком случае проверить наличие имени пользователя не составит труда.
Второй вариант сохранять в формате типа:

code:
username|password|enambled|banned|email


и так на каждую строку по юзеру. Потом это все загружать в массив и проверять на наличие дубликатов. Опять же потеря производительности, и при каждой опирацией над юзерами все нужно грузить в массив. В данном случае предпочтительнее всего использовать готовые массивы как в первом случае. А вообще чтобы полностью избавится от гемороя юзай БД.

__________________
Всегда есть решение.


Помещено rio 09-09-2002 в 20:36:

Вот в том то и проблемма , так как надо сделать именно такую структуру ( это регилка на игрушку онлайновую , и ее сервер читает accounts.dat именно по такой структуре

__________________
Ковчег построили дилетанты, а профессионаллы построили "Титаник" - не бойтесь спрашивать то , чего вы не знаете , а так же делать то - чего не умеете !


Помещено polo 09-09-2002 в 20:51:

тогда пройдись по каждой строке файла и просто регекс-ом проверь, типа:

PHP:


$lines 
= file("$Path_accountfile");
foreach (
$lines AS $line) {
if(
ereg("^Name $acc$", $line)) {
$userexist = 1;
}
}


__________________
Всегда есть решение.


Помещено rio 09-09-2002 в 23:42:

а если блоками ?

просто файлик оч.большой

__________________
Ковчег построили дилетанты, а профессионаллы построили "Титаник" - не бойтесь спрашивать то , чего вы не знаете , а так же делать то - чего не умеете !


Помещено polo 10-09-2002 в 00:17:

Блоками не получится, ты лучше веди отдельный файл или БД с именами пользователей, там и проверяй.

__________________
Всегда есть решение.


Помещено rio 10-09-2002 в 06:56:

я это сделал вообщем с помощью файла , ххотя хотелось ...... Ð_эээхххх

БД бд бд бд .... хмммм а сысл ? инфы ведь на одну таблицу , и ради этого бд юзать , ну не знаю , а так оч большое спасиба за быструю и квалифицированную помощь , даже не оч.большое а ОГÐ_ОМНОЕ СПАСИБО Поло !

__________________
Ковчег построили дилетанты, а профессионаллы построили "Титаник" - не бойтесь спрашивать то , чего вы не знаете , а так же делать то - чего не умеете !


Формат времени GMT. Текущее время 02:28.
Показаны 7 сообщений на этой странице

Powered by: vBulletin Version 2.2.4
Copyright © Jelsoft Enterprises Limited 2000, 2001.