За последние 24 часа нас посетили 18185 программистов и 1606 роботов. Сейчас ищет 931 программист ...

Ув. Професионалы по PHP

Тема в разделе "Вопросы от блондинок", создана пользователем Klin, 27 июл 2008.

  1. Klin

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

    С нами с:
    15 май 2008
    Сообщения:
    82
    Симпатии:
    0
    Ув. Професионалы Скажите на сколько коректно написан этот код, я знаю что там много неработок например: там нет проверки на вводимые данные. Меня интересует насколько я правильно написал код с точки зрения Про.
    Код (Text):
    1. <form method="POST" action="<?=$_SERVER['SCRIPT_NAME']?>">
    2. Имя<input type="text" name="user"><br>
    3. Пароль <input type="password" name="pass"><br>
    4. Повторите пароль<input type="password" name="confirmpass"><br>
    5. <input type="submit" value="Регистрация"><br>
    6. </form>
    7. <?php
    8. if($_REQUEST['user']=='' || $_REQUEST['pass']=='' || $_REQUEST['confirmpass']=='')
    9. {
    10.     echo "Вы не ввели всех данных";
    11.     exit();
    12. }
    13. else
    14. {
    15.     $name = $_REQUEST['user'];
    16.     $pass = $_REQUEST['pass'];
    17.     $confpass = $_REQUEST['confirmpass'];
    18. if($pass != $confpass)
    19. {
    20.     echo "Не совпадает пароль";
    21.     exit();
    22. }
    23. else
    24. {
    25.     unset($confpass);
    26. }
    27. $mysql = mysql_connect('localhost','root');
    28. if(!$mysql)
    29. {
    30.     echo "Нет соеденение с базой данных";
    31.     exit();
    32. }
    33. $mysql = mysql_select_db('test');
    34. if(!$mysql)
    35. {
    36.     echo "Проблеммы с базой данных";
    37.     exit();
    38. }
    39. $query = "INSERT INTO user (user,pas) VALUES ('$name','$pass')";
    40. $query = mysql_query($query);
    41. if($query)
    42. {
    43.     echo "Вы успешно зарегистрировались.";
    44. }
    45. else
    46. {
    47.     echo "Вы не зарегистрировались.";
    48. }
    49. }
    50.  
    51. ?>
    Заранее Спасибо
     
  2. antonn

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

    С нами с:
    10 июн 2007
    Сообщения:
    2.996
    Симпатии:
    0
    в коде sql-иньекция. две штуки :)
     
  3. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    Klin
    В целом код написан нормально. Уже давненько для данных, принятых по HTTP методом POST в PHP выделен специальный массив - $_POST.

    Ну и вообще, без потери удобочитаемости кода, код можно сократить:
    PHP:
    1. <?php
    2. if(empty($_POST['user']) || empty($_POST['pass']) || empty($_POST['confirmpass']))
    3. {
    4.     exit("Вы не ввели всех данных");
    5. }
    6. $name = $_POST['user'];
    7. $pass = $_POST['pass'];
    8. $confpass = $_POST['confirmpass'];
    9. if($pass != $confpass)
    10. {
    11.     exit("Не совпадает пароль");
    12. }
    13. $mysql = mysql_connect('localhost','root');
    14. if(!$mysql)
    15. {
    16.     exit("Нет соеденение с базой данных");
    17. }
    18. $mysql = mysql_select_db('test');
    19. if(!$mysql)
    20. {
    21.     exit("Проблеммы с базой данных");
    22. }
    23. $query = "INSERT INTO user (user,pas) VALUES ('$name','$pass')";  
    24. if(mysql_query($query))
    25. {
    26.     echo "Вы успешно зарегистрировались.";
    27. }
    28. else
    29. {
    30.     echo "Вы не зарегистрировались.";
    31. }  
    32. ?>
    Конечно нужно проверять на корректность принятые данные и обрабатывать их перед вставкой в запрос SQL.
     
  4. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    а ещё соединение с БД забыл закрыть
    Зы. Klin, почитай КМБ http://www.inattack.ru/group_article/45.html
     
  5. [vs]

    [vs] Суперстар
    Команда форума Модератор

    С нами с:
    27 сен 2007
    Сообщения:
    10.559
    Симпатии:
    632
    PHP сам его закрывает при завершении работы скрипта.
     
  6. Mr.M.I.T.

    Mr.M.I.T. Старожил

    С нами с:
    28 янв 2008
    Сообщения:
    4.586
    Симпатии:
    1
    Адрес:
    у тебя канфетка?
    ненай ненай, говорят надо закрывать, нагрузка на БД уменьшается...
     
  7. Johnatan

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

    С нами с:
    6 мар 2008
    Сообщения:
    508
    Симпатии:
    0
    Адрес:
    Испания
    Из http://www.php.net/manual/ru/function.mysql-close.php
     
  8. Klin

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

    С нами с:
    15 май 2008
    Сообщения:
    82
    Симпатии:
    0
    Всем большое спасибо за ответы, буду учится на ошибках