<LINK REL=StyleSheet HREF="css/style.css" TYPE="text/css">
<div id=regform>
Регистрация
<div id=box><div id="val">
Ваше Имя<br />
Е-мейл<br />
Пароль<br /></div>
<div id="from_left">
<form action="" method="post">
<input name="fname" type="text" value="<?php echo htmlspecialchars($fname) ?>"/><br />
<input name="email" type="text" value="<?php echo htmlspecialchars($email) ?>"/><br />
<input name="passwd" type="text" value="<?php echo htmlspecialchars($passwd) ?>"/><br />
<input id="submit" name="ok" type="submit" value="Отправить"/>
</form>
</div>
</div>
</div>
<?php
$fname = !empty($_POST['fname']) ? $_POST['fname'] : null;
$email = !empty($_POST['email']) ? $_POST['email'] : null;
$passwd = !empty($_POST['passwd']) ? $_POST['passwd'] : null;
if(!empty($_POST['ok']))
if(!$fname)
echo 'Введите Ваше имя.';
elseif(!$email)
echo 'Укажите ваш Е-мейл.';
elseif(!$passwd)
echo 'Укажите ваш пароль.';
elseif(!preg_match('#^[a-z0-9]{2,8}$#i', $fname))
echo 'Неверное имя';
elseif(!preg_match('#^[a-z0-9_\.-]+@[a-z0-9\.-]+\.[a-z]{2,6}$#i', $email))
echo 'Е-мейл введен не верно.';
elseif(!preg_match('#^[a-z0-9]{2,8}$#i', $passwd))
echo 'Неверный пароль.';
else echo 'Поля заполнены верно';
?>
Спустя 22 минуты, 50 секунд (20.09.2011 - 20:49) caballero написал(а):
в чем проблемма вообще
с пустым action отправит на этот же файл
если что вставил открой в браузере view-html
провер что синтаксис в порядке
как ты вообще понял что оно не отправляется
сделай echo $fname в начале кода - пусть выведет
с пустым action отправит на этот же файл
если что вставил открой в браузере view-html
провер что синтаксис в порядке
как ты вообще понял что оно не отправляется
сделай echo $fname в начале кода - пусть выведет
Спустя 17 минут, 16 секунд (20.09.2011 - 21:06) pavelzol написал(а):
Вставляю адрес, но в таком случае переход происходит 100%, а мне нужно что бы поля которые заполнены неверно подсвечивались красным светом и было извещение об ошибке без перехода на другую страницу. а переход должен быть только в случае если все поля заполнены верно.
<form action="registered.php" method="post">
<input name="fname" type="text" value="<?php echo htmlspecialchars($fname) ?>"/><br />
<input name="email" type="text" value="<?php echo htmlspecialchars($email) ?>"/><br />
<input name="passwd" type="text" value="<?php echo htmlspecialchars($passwd) ?>"/><br />
<input id="submit" name="ok" type="submit" value="Отправить"/>
</form>
Спустя 2 минуты, 9 секунд (20.09.2011 - 21:09) inpost написал(а):
pavelzol
Какой смысл пересылать данные на другую страницу? Обработчик на этой же странице используй. В крайнем случае его include!
Какой смысл пересылать данные на другую страницу? Обработчик на этой же странице используй. В крайнем случае его include!
Спустя 7 минут, 31 секунда (20.09.2011 - 21:16) pavelzol написал(а):
Такое тз.. обработчик и форма у меня на одной странице. Но результат надо вывести на другую. Плюс к тому в гугле не могу найти толкового совета как средствами php динамически изменить css стиль поля index что бы оно становилось красным когда введены недопустимые символы.
Спустя 14 минут, 57 секунд (20.09.2011 - 21:31) inpost написал(а):
pavelzol
Что значит результат вывести? Для юмора? Или может в БД занести?
Обычно происходит так, ссылка идёт сама на себя, внутри идёт обработка, если всё правильно ввели, то заносятся данные в БД и редирект уже на страницу личного кабинета, откуда и выводятся данные уже из БД, а не из формы(!). Если неправильно, тогда продолжается открытие этой страницы.
И что за поле такое INDEX ?
Что значит результат вывести? Для юмора? Или может в БД занести?
Обычно происходит так, ссылка идёт сама на себя, внутри идёт обработка, если всё правильно ввели, то заносятся данные в БД и редирект уже на страницу личного кабинета, откуда и выводятся данные уже из БД, а не из формы(!). Если неправильно, тогда продолжается открытие этой страницы.
И что за поле такое INDEX ?
Спустя 25 минут, 9 секунд (20.09.2011 - 21:56) caballero написал(а):
стиль меняешь
style="border: 1px solid red;"
если все в порядке переправляешь на другую страницу
через header(location...
Спустя 37 минут, 32 секунды (20.09.2011 - 22:34) pavelzol написал(а):
inpost благодарю. буду старатся..
Спустя 6 минут, 26 секунд (20.09.2011 - 22:40) m4a1fox написал(а):
ИМХО! Я в таких случаях проще делал, ведь можно организовать проверку формы на этой же страницы, но! Допустим сделать так. Если данные не полны, то есть мы знаем поле кот. пусто, тогда можно в это поле сделать переменную и приравнять ее к 'style="border: 1px solid red;"'. А в самой форме сделать echo этой переменной... как-то так.
Спустя 55 минут, 1 секунда (20.09.2011 - 23:35) pavelzol написал(а):
ребят, помогите. нужна простая конструкция если условие выполняется - идет редирект на указаный урл. если не выполняется - сообщение об ошибке.
проблема в том что до того как использовать header(location...
есть много тегов и пхп. а header(location...
работает только в начале страницы. есть еще другие варианты просто перейти на другую страницу без конкретных действий со стороны пользователя?
проблема в том что до того как использовать header(location...
есть много тегов и пхп. а header(location...
работает только в начале страницы. есть еще другие варианты просто перейти на другую страницу без конкретных действий со стороны пользователя?
Спустя 7 часов, 40 минут, 50 секунд (21.09.2011 - 07:16) Панч написал(а):
Что то вроде этого?
<?php
$fname = !empty($_POST['fname']) ? $_POST['fname'] : null;
$email = !empty($_POST['email']) ? $_POST['email'] : null;
$passwd = !empty($_POST['passwd']) ? $_POST['passwd'] : null;
$error = NULL;
if(!empty($_POST['ok']))
{
if(!$fname)
$error .= 'Введите Ваше имя<br />';
else
if(!preg_match('#^[a-z0-9]{2,8}$#i', $fname))
$error .= 'Неверное имя<br />';
if(!$email)
$error .= 'Укажите ваш Е-мейл<br />';
else
if(!preg_match('#^[a-z0-9_\.-]+@[a-z0-9\.-]+\.[a-z]{2,6}$#i', $email))
$error .= 'Е-мейл введен не верно<br />';
if(!$passwd)
$error .= 'Укажите ваш пароль<br />';
else
if(!preg_match('#^[a-z0-9]{2,8}$#i', $passwd))
$error .= 'Неверный пароль<br />';
if(empty($error))
header("Location: /test/index.php?form=Y"); //Указываешь страницу на которую нужно сделать редирект
else
echo '<p style="color:red">'.$error.'</p>';
}
?>
<LINK REL=StyleSheet HREF="css/style.css" TYPE="text/css">
<div id=regform>
Регистрация
<div id=box>
<div id="val">
Ваше Имя<br />
Е-мейл<br />
Пароль<br />
</div>
<div id="from_left">
<form action="" method="post">
<input name="fname" type="text" value="<?php echo htmlspecialchars($fname) ?>"/><br />
<input name="email" type="text" value="<?php echo htmlspecialchars($email) ?>"/><br />
<input name="passwd" type="text" value="<?php echo htmlspecialchars($passwd) ?>"/><br />
<input id="submit" name="ok" type="submit" value="Отправить"/>
</form>
</div>
</div>
</div>
Спустя 13 часов, 7 минут, 19 секунд (21.09.2011 - 20:23) pavelzol написал(а):
Всем спасибо кто помог. жаль никто не посоветовал использовать сессии. у меня практики мало и сам не додумался. но все уже получилось