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 :: скрипт регистрации

 PHP.SU

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


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

> Описание: скрипт авторизации
ferrum88
Отправлено: 11 Апреля, 2010 - 20:40:40
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Апр. 2010  


Помог: 0 раз(а)




помогите нубу с авторизацией:

PHP:
скопировать код в буфер обмена
  1. <form action='2.php' method='POST'>
  2. <INPUT TYPE=text SIZE=20 NAME='asd1' VALUE='ваш ник'>
  3. <INPUT TYPE=text SIZE=20 NAME='asd2' VALUE='пароль'>
  4. <INPUT TYPE='submit' name='enter' VALUE='авторизация'></form>
  5. <?PHP
  6. $asd=$_POST['asd1'];
  7. $asd2=$_POST['asd2'];
  8. $nikname = "base.txt";
  9. if  (file_exists("$nikname"))   {$contents = file($nikname);}  else {echo "извините, ошибка регистрации, обратитесь к администратору";}
  10.  
  11. print $contents[0]." -первая строка-<br>";#построчный вывод#
  12. print $contents[1]." -2<br>";
  13. $contents2 = readfile($nikname);
  14. print $contents2."весь файл<br>";
  15.  
  16.  
  17.  
  18.  
  19. $fp = fopen($nikname, "r";)
  20. $str = null;
  21. while (!feof($fp);)
  22.  
  23.   $tmp = explode("-",$contents[$str];)
  24.   if ($asd == $tmp[0];)
  25.   {if ($asd2 == $tmp[2]); echo "авторизация!"; endwhile;}
  26.   else
  27.   $str++;
  28.  
  29.  
  30. ?>

пишет: Parse error: syntax error, unexpected ';' in Z:\home\test1.ru\www\guest000\registr\2.php on line 18

если несложно напишите другой вариант или укажите мне на мои ошибки в этом


Отредактировано модератором: JustUserR, 13 Апреля, 2010 - 16:47:27
Обрамил PHP-код в соответствующие BB-теги


-----
<?php?>
 
 Top
Мелкий Супермодератор
Отправлено: 11 Апреля, 2010 - 21:02:46
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




ferrum88 пишет:
fopen($nikname, "r";)

ferrum88 пишет:
while (!feof($fp);)

ferrum88 пишет:
endwhile;

Вы вообще на каком языке пишете? Первые 10 строк ещё похожи на что-то, а дальше уже идёт бред, косящий под php.

(Отредактировано автором: 11 Апреля, 2010 - 21:03:49)



-----
PostgreSQL DBA
 
 Top
ferrum88
Отправлено: 11 Апреля, 2010 - 21:15:53
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Апр. 2010  


Помог: 0 раз(а)




php, а про бред знаю, просто мой апачи вадаёт бредовые ошибки всегда, я точку с запятой перемещал в конец он выдаёт ошибку в этой строке, когда в ношу в скобки, всё норм...
да и я предупреждал, что я нуб...
лучше помогли бы, откорректировали скрипт


-----
<?php?>
 
 Top
ferrum88
Отправлено: 12 Апреля, 2010 - 19:28:18
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Апр. 2010  


Помог: 0 раз(а)




видать мне никто не поможет... Огорчение


-----
<?php?>
 
 Top
SAD
Отправлено: 12 Апреля, 2010 - 19:30:59
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2508
Дата рег-ции: Май 2009  
Откуда: Днепропетровск, Украина


Помог: 75 раз(а)




Это элементарные ошибки, что вы за каждой мелочью идете на форум? Читайте литературу, а потом пишите скрипты.
 
 Top
ferrum88
Отправлено: 12 Апреля, 2010 - 19:59:19
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Апр. 2010  


Помог: 0 раз(а)




то что это элементарные ошибки я знаю, но скрипт с правильно расставленными знаками ещё больше ошибок выдавал, подскажите пожалуйста нужную литературу в chm формате


-----
<?php?>
 
 Top
JustUserR
Отправлено: 13 Апреля, 2010 - 16:49:37
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




ferrum88 пишет:
Подскажите пожалуйста нужную литературу в chm формате
Смотрите сайт ниже раздел PHP


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
Maksim337
Отправлено: 13 Апреля, 2010 - 17:01:42
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Июнь 2009  


Помог: 0 раз(а)




PHP:
скопировать код в буфер обмена
  1. $fp = fopen($nikname, "r");
  2. while (!feof($fp))
  3. {
  4.    $tmp = explode("-",$contents[$str]);
  5.   if ($asd == $tmp[0])
  6.  {
  7. if ($asd2 == $tmp[2])
  8. { echo "авторизация!";}  else{
  9.   $str++;}
  10. }}

(Добавление)
Что смог понять Радость Радость
 
 Top
ferrum88
Отправлено: 13 Апреля, 2010 - 19:28:59
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Апр. 2010  


Помог: 0 раз(а)




спасибо Maksim337, отредактировал код до такого состояния
PHP:
скопировать код в буфер обмена
  1. <form action='2.php' method='POST'>
  2. <INPUT TYPE=text SIZE=20 NAME='asd1' VALUE='ваш ник'>
  3. <INPUT TYPE=text SIZE=20 NAME='asd2' VALUE='пароль'>
  4. <INPUT TYPE='submit' name='enter' VALUE='авторизация'></form>
  5. <?PHP
  6. $asd=$_POST['asd1'];
  7. $asd2=$_POST['asd2'];
  8. $nikname = "mikl.txt";
  9. if  (file_exists("$nikname"))   {$contents = file($nikname);}  else {echo "извините, ошибка регистрации, обратитесь к администратору";}
  10.  
  11. $fp = fopen($nikname, "r");
  12. $str == "0";
  13. while ($asd = $tmp[0])
  14. {
  15.   $tmp = explode("-",$contents2[$str]);
  16.   if ($asd == $tmp[0])
  17.  {   if ($asd2 == $tmp[2])
  18.    { echo "авторизация!";}
  19.          else {echo "пароль не совпадает";} }
  20.          else {$str++;}
  21.  }
  22. else
  23. { echo "такого пользователя не существует"}
  24. ?>


но всё равно выдаёт ошибку:
Цитата:
Parse error: syntax error, unexpected T_ELSE in Z:\home\test1.ru\www\guest000\registr\3.php on line 26

не пойму в чем проблема, вроде лишних else нету


-----
<?php?>
 
 Top
НЕЗНАЙКА
Отправлено: 13 Апреля, 2010 - 19:51:10
Post Id



Новичок


Покинул форум
Сообщений всего: 27
Дата рег-ции: Март 2010  
Откуда: Россия


Помог: 0 раз(а)




Развивайте базовые навыки. В последней строчке промущен ";"

(Отредактировано автором: 13 Апреля, 2010 - 19:51:43)

 
 Top
ferrum88
Отправлено: 13 Апреля, 2010 - 19:59:18
Post Id


Новичок


Покинул форум
Сообщений всего: 20
Дата рег-ции: Апр. 2010  


Помог: 0 раз(а)




поставил, пишет ту же ошибку на 21 строке
вот так, через форум и буду развиваться, а то одному тяжело...


-----
<?php?>
 
 Top
Jlblcblu
Отправлено: 14 Апреля, 2010 - 01:58:22
Post Id



Новичок


Покинул форум
Сообщений всего: 36
Дата рег-ции: Март 2010  


Помог: 1 раз(а)




CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2. else{ echo "такого пользователя не существует";}
  3.  


этот else и выдает тебе ошибку. Убери и будет тебе счастье)
 
 Top
JustUserR
Отправлено: 14 Апреля, 2010 - 09:09:02
Post Id



Активный участник


Покинул форум
Сообщений всего: 8715
Дата рег-ции: Июнь 2009  


Помог: 17 раз(а)




ferrum88 пишет:
if ($asd2 == $tmp[2])
Лучше хранить пароли в файле в зашифрованном виде например с помощью MD5 и проверять по аналогии if(md5($asd2)==tmp[2]) - это даст лучшую защиту И еще все данные лучше всегда заранее кодировать - у вас например имя пользователя и пароль разделяются знаком тире - а что если пользователя заходет использовать его в совем им имени? Можно кодировать с помощью того же самого urlencode если хотите - тогда у вас как минимум будут доступны символы & и = для разделения данных


-----
Сделать можно все что угодно - нужно только старание, терпение и хороший поисковик Улыбка
Безлимитный web-хостинг от 15 рублей за 40 МБ дискового пространства - http://ihost[dot]oks71[dot]ru/
 
 Top
jfr
Отправлено: 14 Апреля, 2010 - 17:17:27
Post Id



Посетитель


Покинул форум
Сообщений всего: 332
Дата рег-ции: Март 2010  
Откуда: Таджикистан, Худжанд


Помог: 0 раз(а)

[+]


читайте литературу Радость где нужно вставить ";" а где нет. Радость
 
 Top
markus4
Отправлено: 15 Апреля, 2010 - 08:47:41
Post Id



Гость


Покинул форум
Сообщений всего: 78
Дата рег-ции: Март 2010  


Помог: 0 раз(а)




Рекомендую ещё проверять на время.

Перед отправкой данных формы.

$activ=date(His); // Вычисляем час, минуту, секунду ОТКРЫТИЯ ФАЙЛА С ФОРМОЙ.
$_SESSION['ACTIV']=$activ;


А при получении данных
Сначала
$time=date(His); // Вычисляем час, минуту, секунду.

Далее получаем разницу времени открытия формы
и времени получения данных с формы . если меньше 2 секунд - это робот.
Человек за 2 секунды не заполнит поля ввода (если только не пустые поля отправил).
Только тут нюанс - сразу не выдавайте себя. Просто подарите ему эту сессию на память, как метку.
А при попытке запоститься, отправить письмо, и т.д. уже знаете что делать.


-----
Нет вокруг ничего кроме бесконечного журчания опкодов вселенной...
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB