За последние 24 часа нас посетили 17636 программистов и 1591 робот. Сейчас ищут 1553 программиста ...

Помогите разобраться!

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

  1. Antichrist

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

    С нами с:
    8 фев 2008
    Сообщения:
    14
    Симпатии:
    0
    $login = $HTTP_POST_VARS['login'];
    if(empty($login))
    {
    //ввожу данные о невведенном логине

    echo '<font color=red><LI>Вы должны ввести логин</font><br>';
    echo '<meta http-equiv="refresh" content="1">';
    exit();

    }

    Получается что когда я захожу на страницу, оно автоматом пишет, что не введен логин.
    Помогите ппонять в чем ошибка.
     
  2. S.t.A.M.

    S.t.A.M. Активный пользователь

    С нами с:
    10 сен 2007
    Сообщения:
    1.041
    Симпатии:
    0
    Ну так если ты в первый раз входишь - то переменная пустая и он тебе выдает ошибку!
     
  3. Antichrist

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

    С нами с:
    8 фев 2008
    Сообщения:
    14
    Симпатии:
    0
    А как мне сделать чтоб оно проверяло когда я даю запрос?
     
  4. Kreker

    Kreker Старожил

    С нами с:
    8 апр 2007
    Сообщения:
    5.433
    Симпатии:
    0
  5. Antichrist

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

    С нами с:
    8 фев 2008
    Сообщения:
    14
    Симпатии:
    0
    благодарю!
     
  6. Antichrist

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

    С нами с:
    8 фев 2008
    Сообщения:
    14
    Симпатии:
    0
    Блин, теперь оно вообще не принимает такой элемент как Login!
    можете на примере показать?
     
  7. Elkaz

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

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Antichrist
    Выкинуть вашу книжку.
    $_POST['login']
     
  8. Antichrist

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

    С нами с:
    8 фев 2008
    Сообщения:
    14
    Симпатии:
    0
    исправил, только оно все равно не видит такой элемент как login
     
  9. Elkaz

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

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Antichrist
    Покажите весь код (интересует форма и ее обработка). Скорее всего ошибка именно там
     
  10. Antichrist

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

    С нами с:
    8 фев 2008
    Сообщения:
    14
    Симпатии:
    0
    PHP:
    1.  
    2. <?php
    3. $con = mysql_connect($dbhost,$dbuser,$dbpass,$dbname);
    4.  
    5. if(!con)
    6. {
    7.    echo("База недоступна");
    8.    exit();
    9.    }
    10.    else
    11.    {
    12.    mysql_select_db($dbname);
    13.    }
    14.  
    15. $login = $_POST['login'];
    16.  
    17.  
    18. if(isset($login))
    19.   {
    20.   //ввожу данные о невведенном логине
    21.  
    22.  echo '<font color=red><LI>Вы должны ввести логин</font><br>';
    23.  echo '<meta http-equiv="refresh" content="1">';
    24.    exit();
    25.  
    26.   }
    27.   $psswrd = $_POST['psswrd'];
    28.   if(isset($psswrd))
    29.  {
    30.    echo '<font color=red><LI>Вы должны ввести пароль</font><br>';
    31.    echo '<meta http-equiv="refresh" content="1">';
    32.    exit();
    33.    }
    34.  
    35.  
    36. $query = "select * from users where name='".$login."';";
    37. $ath = mysql_query($query);
    38. if($ath)
    39. {
    40.      $auth = mysql_fetch_array($ath);
    41.      if(strtolower($auth['name']) == strtolower($author))
    42.      echo("К сожалению такое имя уже зарегистрировано.");
    43. }
    44.  
    45. $query_author = "insert into users values(
    46.      0,
    47.       '$login',
    48.       '$psswd',
    49.       '$email' )";
    50. if(!mysql_query($query_author))
    51. {
    52.     echo ("Ошибка регистрации");
    53. }  
    54.  
    55. ?>
    56.  
    57. <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
    58. "http://www.w3.org/TR/html4/loose.dtd">
    59. <html>
    60. <head>
    61. <title>Страница регистрации</title>
    62. <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
    63. </head>
    64. <body>
    65. <form action="reg.php" method="post">
    66. <table>
    67. <tr>
    68. <td>Имя:</td>
    69. <td><input type="text" name="login"></td>
    70.  
    71. </tr>
    72. <tr>
    73. <td>Пароль:</td>
    74. <td><input type="password" name="psswrd"></td>
    75.  
    76. </tr>
    77. <td>E-mail:</td>
    78. <td><input type="text" name="email"></td>
    79.  
    80. </tr>
    81.  
    82. </tr>
    83. <tr>
    84. <td>&nbsp;</td>
    85. <td><input type="submit" value="Зарегисттрировать"></td>
    86.  
    87. </tr>
    88. </table>
    89.  
    90. </form>
    91. </body>
    92. </html>
    93.  
     
  11. Elkaz

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

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Ошибок море.
    Определю основные:
    $con

    Правильнее проверять нажатие кнопки.

    HTML:
    1. <input type='submit' name='ok' value='Отправить данные'>
    ...
    PHP:
    1. <?php
    2. $ok = $_POST['ok'];
    3. $login = $_POST['login'];
    4. if (isset ($ok)){
    5. if (!empty ($login)){
    6. // работаем с логином #
    7. } else echo "Вы не ввели логин";
    8. }
    9. ?>
    Не безопасно. Грозит SQL инъекцией. Читать про mysql escape string
    И зачем вам выбирать все поля? Вам ведь они не потребуются?

    Если вам нужно проверить только существует ли такой пользователей лучше проверить количество. Если > 0 - значит пользователь существует.

    Опять не безопасно

    Зачем?
     
  12. Elkaz

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

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Для подсветки используйте тег php, а не code. В этот раз я поправил.
     
  13. Antichrist

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

    С нами с:
    8 фев 2008
    Сообщения:
    14
    Симпатии:
    0
    а как тогда?
     
  14. Elkaz

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

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Antichrist
    :) Обрабатывать mysql_real_escape_string, хотя бы.
    Ссылку выше дал
     
  15. Antichrist

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

    С нами с:
    8 фев 2008
    Сообщения:
    14
    Симпатии:
    0
    ну теперь работает как хотелось бы, только базу игнорирует и не записывает
     
  16. Elkaz

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

    С нами с:
    26 июн 2006
    Сообщения:
    3.373
    Симпатии:
    0
    Адрес:
    Баку, Азербайджан
    Antichrist
    После mysql_query поставьте or die (mysql_error())
    И в начало скрипта error_reporting (9);
     
  17. Antichrist

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

    С нами с:
    8 фев 2008
    Сообщения:
    14
    Симпатии:
    0
    Спасибо, вы реально помогли!