Здравствуйте! Есть форма входа http://cn41983.tmweb.ru/ Если неправильно указать логин или пароль то при выводе соответствующего сообщения на экран input'ы меняют размер. Подскажите пожалуйста как это исправить, что я делаю не так? Я так понимаю в css надо выставить какое то свойство, но не могу понять какое. На всякий случай исходники. Сама форма: HTML: <?php $error = '<div class="error_login">Неверно введен логин или пароль</div>'; if(isset($_POST['B1'])) { $username = mysql_real_escape_string($_POST['username']); $upass = mysql_real_escape_string($_POST['pass']); $res=mysql_query("SELECT * FROM users WHERE username='$username'"); $row=mysql_fetch_array($res); if($row['password']==$upass) { $_SESSION['user'] = $row['user_id']; header("Location: home.php"); // куда направить если юзер ввел // правильно логин с паролем } else { echo $error; } } ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en"> <head> <link rel="shortcut icon" href="favicon.ico"/> <title>Вход</title> <link href="css/style_capcha_login.css" rel="stylesheet" type="text/css" /> </head> <body style="height: 100%; margin: 0; padding: 0; "> <body> <div class="wrap"> <form name="register" method="post" id="register"> <div class="fields"> <input name="username" type="text" placeholder="Логин" size="50" id="username" required="required"> <input name="pass" type="password" placeholder="Пароль" size="50" id="pass" required="required"> </div> <div> <input type="submit" value="Войти" name="B1" class="submit"> </div> </div> </form> </body> </html> И стиль который с ней работает: Код (CSS): .wrap { display:block; width: 520px; height: 205px; margin: 0 auto; margin-top: 20px; background: #7F7F7F; padding: 20px; border-radius: 10px; } .fields input[type=text], input[type=password] { height: 20px; width: 485px; margin: 7px 0; font-size: 17px; border: #CBCBCB; border-radius: 5px; padding: 15px; margin-top: 10px; vertical-align: top; } .submit { width: 515px; background: #282828; color: #FFFFFF; height: auto; margin-left: 0px; margin-left: 0px; font-size: 16px; border-radius: 5px; border: #CBCBCB; padding: 10px; margin-top: 0px; cursor: pointer; letter-spacing: 1px; padding: 20px 15px; } .submit:hover { background: #FFFFFF; color: #FF8600; } .error_login { width: 100%; height: 50px; position: relative; top: 0; z-index: 2; background: #FF5C2D; color: #FFF; margin: 0 auto; padding: 10px; font-weight: 300; text-align: center; font-size: 20px; line-height: 45px; font-family: TitilliumText22LBold,ArtifikaMedium,Arial,Helvetica,sans-serif; letter-spacing: 1px; }
PHP: $error = '<div class="error_login">Неверно введен логин или пароль</div>'; это ломает DOCTYPE который должен быть первой строчкой, даже переноса строки и пробел перед ним лучше не ставить.
Так пытался сделать, но из за того что div выводится по условию if не могу понять как его туда впихать, пробовал сделать div hidden- но не знаю как его тогда запустить по if
Вот https://secure.php.net/manual/ru/language.basic-syntax.phpmode.php Ещё логику можно поменять. $error инициализировать как false, там в else присваивать true. Уже в body если $error == true, то выводить div с ошибкой.
Если просто удалить эту строку: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> насколько это критично?
Так попробуй. Можно её заменить на это HTML: <!DOCTYPE html> Но сам подумай, проблему возможно это решит, но совсем дурным образом. HTML: тут не размещай div и другие теги <!DOCTYPE html> <html> <head> <title></title> </head> <body> во тут самое место для тегов </body> </html>
Замени PHP: $error = '<div class="error_login">Неверно введен логин или пароль</div>'; на PHP: $error = false; это PHP: else { echo $error; } на PHP: else { $error = true; } это удали, body уже есть выше HTML: <body> после HTML: <body style="height: 100%; margin: 0; padding: 0; "> вставь PHP: <?php if($error) { ?> <div class="error_login">Неверно введен логин или пароль</div> <?php } ?>