За последние 24 часа нас посетил 26691 программист и 1814 роботов. Сейчас ищут 1211 программистов ...

Скрипт регистрации.Помогите разобраться.

Тема в разделе "PHP для новичков", создана пользователем Volonter, 14 авг 2009.

  1. Volonter

    Volonter Активный пользователь

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    Доброго всем! Прошу уважаемых посетителей форума разобраться с парочкой скриптов, скрипты честно скажу- не мои, но никаких копирайтов и тому подобного там небыло, так что думаю если найдется автор он не будет против использования их в моих образовательных целях.Собственно вопрос:

    есть файлы- register.php

    PHP:
    1.  
    2. <?php
    3. if ( isset ($name) AND isset ($password) )
    4. {
    5. $data = File ("users.txt");
    6. for ($i=0;$i<count($data);$i++) {
    7. $dat = explode (";", $data[$i]);
    8. if ($name == $dat[0])
    9. {
    10. echo "<b><center>Такой пользователь уже есть !";
    11. }
    12. }
    13. $pass = md5 ($password);
    14. $fp = fopen ("users.txt", "a");
    15. flock ( $fp, 1);
    16. fputs ($fp, $name.";".$pass."\r\n");
    17. flock ($fp, 3);
    18. fclose ($fp);
    19. echo "<b><center><h2>Спасибо за регистрацию !";
    20. }
    21. ?>
    22. <html>
    23. <head>
    24. <title>регистрация</title>
    25. </head>
    26. <body>
    27. <center><b><h3>РЕГИСТРАЦИЯ</h3></b></center><p>
    28. <form action=<?php print $PHP_SELF ?> method=post>
    29. <table>
    30. <tr><td>
    31. <center>Ваше имя<td><input type=text size=15 name=name></tr><br>
    32. <tr><td><center>Ваш пароль<td><input type=text size=15 name=password></tr><br>
    33. </table>
    34. <p><input type=submit value="Зарегистрироваться">
    35. </form></body></html>
    36.  
    37.  
    ################
    и файл login.php
    ################

    PHP:
    1.  
    2. <?php
    3.  
    4. if ( isset ($name) AND isset ($password))
    5. {
    6.  
    7. $data = File ("users.txt");
    8. $pass = md5 ($password);
    9.  
    10. for ($i=0;$i<count($data);$i++) {
    11. $dat = explode (";", $data[$i]);
    12. if ($name == $dat[0] && $pass."\r\n" == $dat[1])
    13.   {
    14.   echo "<b><center>Пример</b><p><a href=\"\">Статистика ваших посещений</a><p><a href=\"\">Общая статистика вашей страницы</a>";
    15.   exit;
    16.   }
    17. }
    18. }
    19.  
    20. ?>
    21. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
    22. <html>
    23. <head>
    24. <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    25. <title>авторизация</title>
    26. <link rel="stylesheet" type="text/css" href="style.css">
    27. <style type="text/css">
    28. </head>
    29. </style>
    30. <body>
    31. <b><center>Вход в гостевую</b></center>
    32. <form action=<?php print $PHP_SELF ?> method=post>
    33. <table>
    34. <tr><td>Ваш логин<td><input type=text size=15 name=name></tr>
    35. <tr><td>Ваш пароль<td><input type=text size=15 name=password></tr>
    36. </table>
    37. <p><input type = submit value="Войти"></p>
    38. <a href="register.php"><p><font color=red>Или зарегистрироваться</a></p></font>
    39. </form>
    40. </body>
    41. </html>
    42.  
    43.  
    и файл users.txt
    Подскажите пожалуйста, что не правильно, потому как это не работает, то есть введя логин и пароль при регистрации и нажав кнопку получаеться 404.. тоже самое при авторизации. И еще- что,как и куда прописать чтобы после авторизации пользователь попадал на нужную страницу?
    Заранее благодарю за помощь!!!![/code][/php]
     
  2. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
  3. Silicium

    Silicium Активный пользователь

    С нами с:
    1 апр 2008
    Сообщения:
    205
    Симпатии:
    0
    Адрес:
    Киев
    Рецепт:

    google -> php -> register_globals
     
  4. Volonter

    Volonter Активный пользователь

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    Спасибо за поддержку, извиняюсь за оформление- немного запарился с формулировкой вопроса и не разобрался как оформлять)) по Вашим ссылкам если честно применительно к моему вопросу ничего не понял, может все таки я не с того начинаю? Всмысле- надо начинать с более простых скриптов? И все таки просьба- подсказать где ошибка, мне так реально легче будет разбираться.
     
  5. iliavlad

    iliavlad Активный пользователь

    С нами с:
    24 янв 2009
    Сообщения:
    1.689
    Симпатии:
    4
    попробуйте в поиске форума вбить "авторизация", посмотрите, попробуйте разные варианты.
     
  6. 440Hz

    440Hz Старожил
    Команда форума Модератор

    С нами с:
    21 дек 2012
    Сообщения:
    8.003
    Симпатии:
    1
    Адрес:
    Оттуда
    login.php

    # <?php
    #
    # if ( isset ($name) AND isset ($password))
    # {


    замени на

    # <?php
    #
    # print_r($_POST);
    #
    # if ( isset ($name) AND isset ($password))
    # {


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

    нуи прочитай еще раз ВНИМАТЕЛЬНО те ссылки что я тебе дал.
     
  7. Volonter

    Volonter Активный пользователь

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    на странице появилось надпись arrey() ....прямо около поля логина.
    заполнять поля и жать кнопку не стал)))) на всякий случай..
     
  8. cypok

    cypok Активный пользователь

    С нами с:
    2 авг 2009
    Сообщения:
    9
    Симпатии:
    0
    в первом скрипте register.php:

    всюду заменить
    $name на $_POST['name']
    $password на $_POST['password']

    вместо $PHP_SELF писать $_SERVER['PHP_SELF']
     
  9. Volonter

    Volonter Активный пользователь

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    А если не затруднит не покажете как конкретно заменить, я сомневаюсь что правильно проставлю скобки(во всем коде если можно).

    попробовал поменять только это, ничего не изменилось за исключением того что при нажатии "зарегистрироваться" не происходит ровным счетом ничего, а до изменения выводилась ошибка 404
     
  10. cypok

    cypok Активный пользователь

    С нами с:
    2 авг 2009
    Сообщения:
    9
    Симпатии:
    0
    Код (Text):
    1.  <?php
    2.  
    3. // import_request_variables("p");
    4.  
    5.  if ( isset ($_POST['name']) AND isset ($_POST['password']) )
    6.  {
    7.  $data = File ("users.txt");
    8.  for ($i=0;$i<count($data);$i++) {
    9.  $dat = explode (";", $data[$i]);
    10.  if ($_POST['name'] == $dat[0])
    11.  {
    12.  echo "<b><center>Такой пользователь уже есть !";
    13.  exit;
    14.  }
    15.  }
    16.  $pass = md5 ($_POST['password']);
    17.  $fp = fopen ("users.txt", "a");
    18. // flock ( $fp, 1);
    19.  fputs ($fp, $_POST['name'].";".$pass."\r\n");
    20. // flock ($fp, 3);
    21.  fclose ($fp);
    22.  echo "<b><center><h2>Спасибо за регистрацию !";
    23.  exit;
    24.  }
    25.  ?>
    26.  <html>
    27.  <head>
    28.  <title>регистрация</title>
    29.  </head>
    30.  <body>
    31.  <center><b><h3>РЕГИСТРАЦИЯ</h3></b></center><p>
    32.  <form action=<?php print $_SERVER['PHP_SELF'] ?> method=post>
    33.  <table>
    34.  <tr><td>
    35.  <center>Ваше имя<td><input type=text size=15 name=name></tr><br>
    36.  <tr><td><center>Ваш пароль<td><input type=text size=15 name=password></tr><br>
    37.  </table>
    38.  <p><input type=submit value="Зарегистрироваться">
    39.  </form></body></html>
     
  11. Volonter

    Volonter Активный пользователь

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    Спасибо!!! Регистрация работает, но есть проблема- регистрируются даже не заполненные поля.И второй момент- как сделать, чтобы юзер зарегившись и авторизовавшись попадал на нужную страницу?
    Еще раз огромное спасибо за участие и помощь!!
     
  12. dots_rei

    dots_rei Активный пользователь

    С нами с:
    7 авг 2009
    Сообщения:
    193
    Симпатии:
    0
    сделайте проверку, если поля не пустые, выполнять регистрацию, иначе - выдать сообщение о том, что поля не заполнены.
    PHP:
    1. if (($_POST['name']=='') or ($_POST['password'])=='')
    2. {
    3. echo ('Поля пустые');
    4. }
    5. else
    6. {
    7. // код регистрации
    8. }
    используйте в случае авторизации
    PHP:
    1. header('location:index.php');
    index.php в данном случае - "нужная" страница. следите за тем, чтоб перед функцией header в браузер не выводилась никакая другая информация. иными словами чтоб код пхп был перед хтмл-кодом
     
  13. Volonter

    Volonter Активный пользователь

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    Не совсем понятно где в коде это прописывать, если не трудно- покажите пожалуйста)
    И спасибо за помощь конечно-же!
     
  14. dots_rei

    dots_rei Активный пользователь

    С нами с:
    7 авг 2009
    Сообщения:
    193
    Симпатии:
    0
    файл login.php

    вместо строк
    PHP:
    1. echo "<b><center>Пример</b><p><a href=\"\">Статистика ваших посещений</a><p><a href=\"\">Общая статистика вашей страницы</a>";
     
  15. Volonter

    Volonter Активный пользователь

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    Неа.. не работает.. путь в ссылке прописываю правильно, но ничего не происходит.
     
  16. cypok

    cypok Активный пользователь

    С нами с:
    2 авг 2009
    Сообщения:
    9
    Симпатии:
    0
    как же вы с таким уровнем знаний работаете?
     
  17. Volonter

    Volonter Активный пользователь

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    В том то и дело что я не РАБОТАЮ, а УЧУСЬ!!! В одной из моих мессаг выше я многоуважаемому 440Hz задал вопрос по поводу того, что может я начал не с того уровня.. скорее всего так и есть, но все таки хотелось бы с этим скриптом разобраться. И реально проще понять принцип, когда тебе подсказали где ошибка и как ее исправить, если конешно не собираешься в дальнейшем расчитывать только на подсказки, а пытаешься сам проанализировать и понять.Но на старте всетаки подсказки нужны. Тем более что мне кроме как на форумах никто и не подскажет, ну нету у меня знакомых программистов))) А мануалы и учебники хороши тогда, когда знаешь основные моменты, смысла нет пытаться понять назначение функции, если даже примерно не представляешь где она должна быть в коде.. как то так.
     
  18. dots_rei

    dots_rei Активный пользователь

    С нами с:
    7 авг 2009
    Сообщения:
    193
    Симпатии:
    0
    когда знаешь назначение функции, ответ на вопрос о том, где она должна быть в коде, становится очевидным...
     
  19. Volonter

    Volonter Активный пользователь

    С нами с:
    8 авг 2009
    Сообщения:
    68
    Симпатии:
    0
    Адрес:
    Москва
    Я в свое время сам учился играть на гитаре, абсолютно сам, используя самоучители и т.п., сейчас играю очень даже неплохо, в дальнейшем научил играть человек 10, многие из них играют лучше меня, но!!! Если бы не один человек, который в начале обучения мне "на пальцах" не показал бы что я делаю не правильно, думаю вряд ли бы я умел то что умею сейчас.И в названии темы я специально указал- помогите разобраться, именно с той целью чтобы зная правильное решение, понять почему оно правильное. Ну и оставив лирику- сделал все так как вы сказали, но скрипт не работает все же..