$login = $HTTP_POST_VARS['login']; if(empty($login)) { //ввожу данные о невведенном логине echo '<font color=red><LI>Вы должны ввести логин</font><br>'; echo '<meta http-equiv="refresh" content="1">'; exit(); } Получается что когда я захожу на страницу, оно автоматом пишет, что не введен логин. Помогите ппонять в чем ошибка.
PHP: <?php $con = mysql_connect($dbhost,$dbuser,$dbpass,$dbname); if(!con) { echo("База недоступна"); exit(); } else { mysql_select_db($dbname); } $login = $_POST['login']; if(isset($login)) { //ввожу данные о невведенном логине echo '<font color=red><LI>Вы должны ввести логин</font><br>'; echo '<meta http-equiv="refresh" content="1">'; exit(); } $psswrd = $_POST['psswrd']; if(isset($psswrd)) { echo '<font color=red><LI>Вы должны ввести пароль</font><br>'; echo '<meta http-equiv="refresh" content="1">'; exit(); } $query = "select * from users where name='".$login."';"; $ath = mysql_query($query); if($ath) { $auth = mysql_fetch_array($ath); if(strtolower($auth['name']) == strtolower($author)) echo("К сожалению такое имя уже зарегистрировано."); } $query_author = "insert into users values( 0, '$login', '$psswd', '$email' )"; if(!mysql_query($query_author)) { echo ("Ошибка регистрации"); } ?> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <title>Страница регистрации</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> </head> <body> <form action="reg.php" method="post"> <table> <tr> <td>Имя:</td> <td><input type="text" name="login"></td> </tr> <tr> <td>Пароль:</td> <td><input type="password" name="psswrd"></td> </tr> <td>E-mail:</td> <td><input type="text" name="email"></td> </tr> </tr> <tr> <td> </td> <td><input type="submit" value="Зарегисттрировать"></td> </tr> </table> </form> </body> </html>
Ошибок море. Определю основные: $con Правильнее проверять нажатие кнопки. HTML: <input type='submit' name='ok' value='Отправить данные'> ... PHP: <?php $ok = $_POST['ok']; $login = $_POST['login']; if (isset ($ok)){ if (!empty ($login)){ // работаем с логином # } else echo "Вы не ввели логин"; } ?> Не безопасно. Грозит SQL инъекцией. Читать про mysql escape string И зачем вам выбирать все поля? Вам ведь они не потребуются? Если вам нужно проверить только существует ли такой пользователей лучше проверить количество. Если > 0 - значит пользователь существует. Опять не безопасно Зачем?
Antichrist После mysql_query поставьте or die (mysql_error()) И в начало скрипта error_reporting (9);