[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: регистрационная анкета
franko
Привет! При регистрации пользователя в случае отсуствия заполненных полей выводится надпись
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!");

Вопрос, как сделать чтобы вместо этого оставалась таже регистрационная анкета с заполненными данными + надпись "Некоторые необходимые поля не заполнены!"

есть два файла - сама форма
<form action="save_user.php" method="post" enctype="multipart/form-data"> 

и файл save_user.php в котором проводится проверка
if (empty($login) or empty($password)or empty($code) or empty($email) or empty($gender)) 
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!"); //останавливаем выполнение сценариев
}

я так понимаю, что изменения нужно внести во втрой файл.



Спустя 7 минут, 49 секунд (27.02.2011 - 14:22) Lenarfate написал(а):
print вместо exit

Спустя 27 минут, 27 секунд (27.02.2011 - 14:49) PiratXXX написал(а):
Lenarfate

Не правильно!

мы выведим пользователю сообщение а скрипт продолжит работу! а это я так понял ему не надо.

и если на то пошло то echo!

franko
во-первых отучивайся от этой привычки в два файла(форма в одно, а обработчи в другом).
не удобно!

вот код разбири, а будут впросы спрашивай.

index.php

<?php
$login = NULL;
$pass = NULL;
$mail = NULL;

$false = NULL;

if(isset($_POst['submit'])) {
$login = (isset($_POST['login'])) ? $_POST['login'] : NULL;
$pass = (isset($_POST['pass'])) ? $_POST['pass'] : NULL;
$mail = (isset($_POST['mail'])) ? $_POST['mail'] : NULL;

/* не забудь сделать обработку переменных(данных)-sql инъекция */
if((!empty($login)) && (!empty($pass)) && (!empty($mail))) {
/* делаешь свои манипуляции заносишь в бд или что там тебе надо */
}
else {
$false = "Вы ввели не всю информацию!";
}
}


echo $false; // ну это например а там выводи его где тебе надо
?>
<form name="form" action="index.php" method="POST">
<
label for="login" id="">Логин:</label>
<
input type="text" name="login" value="<?php echo $login; ?>" maxlength="30" />

<
label for="pass" id="">Пароль:</label>
<
input type="pass" name="pass" value="<?php echo $pass; ?>" maxlength="30" />

<
label for="mail" id="">E-mail:</label>
<
input type="text" name="mail" value="<?php echo $mail; ?>" maxlength="30" />

<
input type="submit" name="submit" value="submit" id="" />
</
form>

Спустя 6 минут, 24 секунды (27.02.2011 - 14:56) franko написал(а):
вопрос № 1
ну если в моем случае <form action="save_user.php" обработчик будет вместе с формой,
а форма у меня записана в файле reg.php, то обработчик тоже будет reg.php
те. <form action="reg.php.php" - верно?

Спустя 3 минуты, 19 секунд (27.02.2011 - 14:59) Lenarfate написал(а):
Цитата
и если на то пошло то echo!

без разницы в данном случае



Цитата
Не правильно!

мы выведим пользователю сообщение а скрипт продолжит работу!

я не верно выразился. имел ввиду как у тебя в примере. в переменную, а потом ее на вывод.

franko
Цитата
а форма у меня записана в файле reg.php, то обработчик тоже будет reg.php
те. <form action="reg.php.php" - верно?

верно, акшион тут пустой будет

Спустя 8 минут, 44 секунды (27.02.2011 - 15:08) PiratXXX написал(а):
franko
нет смотри!

reg.php тут у тебя форма. ти того

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta
http-equiv="Content-Type" content="text/html; charset=utf-8" />
<link
rel="stylesheet" type="text/css" href="design/style.css" />
<title>
Регистрация</title>
</head>
<body>

<!-- тут твоя форма например: -->
<form name="form" action="index.php" method="POST">
<label
for="login" id="">Логин:</label>
<input
type="text" name="login" value="<?php echo $login; ?>" maxlength="30" />

<label
for="pass" id="">Пароль:</label>
<input
type="pass" name="pass" value="<?php echo $pass; ?>" maxlength="30" />

<label
for="mail" id="">E-mail:</label>
<input
type="text" name="mail" value="<?php echo $mail; ?>" maxlength="30" />

<input
type="submit" name="submit" value="submit" id="" />
</form>
</body>
</html>



save_user.php тут сам обработчик.

<?php
// весь твой обработчик например:
$login = NULL;
$pass = NULL;
$mail = NULL;

$false = NULL;

if(isset($_POst['submit'])) {
$login = (isset($_POST['login'])) ? $_POST['login'] : NULL;
$pass = (isset($_POST['pass'])) ? $_POST['pass'] : NULL;
$mail = (isset($_POST['mail'])) ? $_POST['mail'] : NULL;

/* не забудь сделать обработку переменных(данных)-sql инъекция */
if((!empty($login)) && (!empty($pass)) && (!empty($mail))) {
/* делаешь свои манипуляции заносишь в бд или что там тебе надо */
}
else {
$false = "Вы ввели не всю информацию!";
}
}

?>


а теперь делаем следующее

файл reg.php

<?php
$login = NULL;
$pass = NULL;
$mail = NULL;

$false = NULL;

if(isset($_POst['submit'])) {
$login = (isset($_POST['login'])) ? $_POST['login'] : NULL;
$pass = (isset($_POST['pass'])) ? $_POST['pass'] : NULL;
$mail = (isset($_POST['mail'])) ? $_POST['mail'] : NULL;

/* не забудь сделать обработку переменных(данных)-sql инъекция */
if((!empty($login)) && (!empty($pass)) && (!empty($mail))) {
/* делаешь свои манипуляции заносишь в бд или что там тебе надо */
}
else {
$false = "Вы ввели не всю информацию!";
}
}


echo $false; // ну это например а там выводи его где тебе надо
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<
html xmlns="http://www.w3.org/1999/xhtml">
<
head>
<
meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<
link rel="stylesheet" type="text/css" href="design/style.css" />
<
title>Регистрация</title>
</
head>
<
body>
<
form name="form" action="reg.php" method="POST">
<
label for="login" id="">Логин:</label>
<
input type="text" name="login" value="<?php echo $login; ?>" maxlength="30" />

<
label for="pass" id="">Пароль:</label>
<
input type="pass" name="pass" value="<?php echo $pass; ?>" maxlength="30" />

<
label for="mail" id="">E-mail:</label>
<
input type="text" name="mail" value="<?php echo $mail; ?>" maxlength="30" />

<
input type="submit" name="submit" value="submit" id="" />
</
form>
</
body>
</
html>

а файл save_user.php нам уже не нужен т.к. у нас все в одном файле и форма и обработчик.
так проще и удобней и лучше. и файлов меньше..

надеюсь понятно

Спустя 1 минута, 29 секунд (27.02.2011 - 15:09) PiratXXX написал(а):
Lenarfate

не внемателен!

ну что это получиться <form action="reg.php.php"

Спустя 2 часа, 43 минуты, 36 секунд (27.02.2011 - 17:53) franko написал(а):
<?php
$login = NULL;
$password = NULL;
$code = NULL;
$email = NULL;
$gender = NULL;
$city_ru = NULL;

$false = NULL;

if(isset($_POST['submit'])) {
$login = (isset($_POST['login'])) ? $_POST['login'] : NULL;
$password = (isset($_POST['password'])) ? $_POST['password'] : NULL;
$code = (isset($_POST['code'])) ? $_POST['code'] : NULL;
$email = (isset($_POST['email'])) ? $_POST['email'] : NULL;
$gender = (isset($_POST['gender'])) ? $_POST['gender'] : NULL;
$city_ru = (isset($_POST['city_ru'])) ? $_POST['city_ru'] : NULL;

/* не забудь сделать обработку переменных(данных)-sql инъекция */
if ((!empty($login)) && (!empty($password)) && (!empty($code)) && (!empty($email)) && (!empty($gender)) && (!empty($city_ru)) {
/* делаешь свои манипуляции заносишь в бд или что там тебе надо */

Parse error: syntax error, unexpected '{' in on line 48
48 строка - if ((!empty($login)) && (!empty($password)) && (!empty($code)) && (!empty($email)) && (!empty($gender)) && (!empty($city_ru)) {

Спустя 42 минуты, 51 секунда (27.02.2011 - 18:36) YVSIK написал(а):
if (isset($login,$password,$code,$email,$gender,$city_ru))
//так будет короче и это проверка на заполненность полей
}
// здесь есль прошли проверку то разрешаем и записываем в базу
{
else
{
//здесь соответственно не разрешаем и отправляем
//при помощи <form action="reg.php.php" (формы)

}



тут есть полный пример как это реализовано

Спустя 11 минут, 39 секунд (27.02.2011 - 18:48) inpost написал(а):
franko
В подпись мою загляни, особенно последняя ссылка, там есть мини пример, как организовывается такие формы.

Спустя 3 часа, 36 минут, 48 секунд (27.02.2011 - 22:24) franko написал(а):
Цитата (YVSIK @ 27.02.2011 - 15:36)
if (isset($login,$password,$code,$email,$gender,$city_ru))
//так будет короче и это проверка на заполненность полей
}
// здесь есль прошли проверку то разрешаем и записываем в базу
{
else
{
//здесь соответственно не разрешаем и отправляем
//при помощи <form action="reg.php.php" (формы)

}



тут есть полный пример как это реализовано

тут все советуют форму объединить с обработчиком. а у тебя в примере все раздельно

что думаешь?

Спустя 10 минут, 6 секунд (27.02.2011 - 22:34) YVSIK написал(а):
что-то думаю wink.gif wink.gif wink.gif
вот обработчик ставить надо как будет удобно
а как в частном примере
это пример для понимания а не пример для точного выполнения
dry.gif dry.gif dry.gif
и ещё смотря про что вы конкретно говорите
вот и думать про это надо?
blink.gif blink.gif blink.gif

Спустя 19 минут, 1 секунда (27.02.2011 - 22:53) franko написал(а):
думать? объединять форму с обработчиком? это же не обязательно?

тогда как решить мой вопрос. чтобы такого написать в обраьотчике чтобы не пустое окно появлялась, а форма?

Спустя 28 минут, 45 секунд (27.02.2011 - 23:22) nugle написал(а):
PiratXXX
вот смотрите, да для этого случая реально удобнее засунуть обработчик и форму в один файл! Судя по тому что вы говорите, что бы franko переучивался, я готов на 99% быть уверен, что вы даже не слышали про Ajax! На будущее, лучше не заявляйте что нужно переучиваться на что-то, если вы не профессионал в этой области, ну так, чтобы человек обратно не переучивался!

Спустя 24 минуты, 16 секунд (27.02.2011 - 23:46) YVSIK написал(а):
Цитата
тогда как решить мой вопрос. чтобы такого написать в обраьотчике чтобы не пустое окно появлялась, а форма?

доооооооооооолго дума про что вы тут спрашиваете franko

заполняем форму
в форме проверка при помощи операторов if
есль проверка не проходит то при помощи action=в той-же форме
перенаправляем на страницу регистрации чтоб полностью все данные (необходимые)
были переданы
дале
есль всё ОК то делаем запрос к базе и заносим в базу (это уже должно быть понято вами)
после запроса опять при помощи оператора if и его условий
перенаправляем его на нужную страницу
опертором

echo
что терь понятно?
как думаешь? cool.gif

Спустя 11 минут, 49 секунд (27.02.2011 - 23:58) franko написал(а):
да непонятно. что написать вместо exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!"); //останавливаем выполнение сценариев

if (empty($login) or empty($password)or empty($code) or empty($email) or empty($gender)) 
{
exit ("Вы ввели не всю информацию, вернитесь назад и заполните все поля!"); //останавливаем выполнение сценариев
}

Спустя 12 минут, 43 секунды (28.02.2011 - 00:11) YVSIK написал(а):
возьми мой код и попробуй его реализовать
ссылку я давал код полностью рабочий
вы упрямо делаете всё наоборот !
как вам говорят чтож эт ваше дело какие тут могут быть коменты
и всёж так вы далеко не уедите что впрочем тож ваше дело
что до вашего кода
так===>
вместо exit (exit останавливает код и ни куда не ведёт)
поэтому применяем опертор echo
или
так
 if($resylt1 == true)
{
echo 'регистрация прошла УСПЕШНО!...';
}/*ЭТОГО мы и добиваемся есль всё ок знач рега вышла как хотелось*/
else
{ /*есле крипт не полнотью рабочий выход буде сюда*/
echo 'Неверны данные, не соответствуют логике скрипа.';
include 'regist.php';
}

как пример
include этим оператором вызываете нужную страницу !!!!!!!!!!!!!!!!!!!
Интересно а сколько вам лет?плиз пожалуйта скажаите!

Спустя 10 минут, 1 секунда (28.02.2011 - 00:21) SerginhoLD написал(а):
YVSIK сколько тебе лет?

Спустя 6 минут, 54 секунды (28.02.2011 - 00:28) YVSIK написал(а):
50

Спустя 6 минут, 45 секунд (28.02.2011 - 00:35) SerginhoLD написал(а):
50-летний троль? ohmy.gif biggrin.gif laugh.gif

Спустя 4 минуты, 28 секунд (28.02.2011 - 00:39) inpost написал(а):
SerginhoLD
Тебе не кажется твоя фраза грубой? Или ты считаешь, что это нормально с людьми общаться?

Спустя 6 минут, 8 секунд (28.02.2011 - 00:45) SerginhoLD написал(а):
franko
если хочешь в 2 страницы, обработка и форма, то так можно

if (empty($login) or empty($password)or empty($code) or empty($email) or empty($gender))
{
// в сессию кидаем изза чего ошибка, и идем обратно на страницу с формой
header('Location: наСтраницуСформой.php');
}
else
{
//делааншь че тебе надо =)
}



а на странице с формой

if (isset($_SESSION['ошибкаЗаполненияФормы']))
{
echo $_SESSION['ошибкаЗаполненияФормы'];
}

Спустя 8 минут, 51 секунда (28.02.2011 - 00:54) SerginhoLD написал(а):
inpost
мне кажется человеку рано советы давать, я лично люблю в тихушку читать форум, и кое где узнавать чтото новое, а вижу не понятно что, и мне жалко свой трафик на мобиле. (и вообще это было в защиту franko, хотя я его и знать не знаю, убивает меня вопрос "сколько тебе лет", а после него куча знаков препинания, как будто палец такой толстый, что поднять его тяжело)
И еще есть на форуме пользователь uWeb (вроде так), которому почемуто трудно запостить код в теме, и делает он это на какомнить ucoz'е

 ! 

М
Поступим по другому, это первое и последнее предупреждение за грубое отношение к другим членам нашего форума! Повторюсь, последнее, если по нормальному не понимаешь.
inpost

Спустя 5 минут, 16 секунд (28.02.2011 - 00:59) YVSIK написал(а):
SerginhoLD

ВОТА специально для вас прочитайте что тут прописано

Цитата
Интересно а сколько вам лет?плиз пожалуйта скажаите!

а есль вы тихушник то в тихом месте черти водятся
и всё-ж за речью надобно последить

умница===> SerginhoLD

Спустя 1 час, 28 минут, 1 секунда (28.02.2011 - 02:27) inpost написал(а):
SerginhoLD
У нас свободный форум, каждый может написать всё, что хочет.
Кто общается, тот познаёт, а кто сидит полча, тот врядли что-то толковое узнает, если кто-то ошибется, другой его поправит, его поправит третий, а третьего - четвертый, и за одну тему все станут умнее.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.