Модераторы: skyboy, MoLeX, Aliance, ksnk

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> изменение содержимого страницы 
V
    Опции темы
magnet27
Дата 4.11.2009, 01:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.3.2008

Репутация: нет
Всего: нет



как изменить содержимое страницы, например мне нужно в страничке с формой регистрации после нажатия на кнопку и успешной проверки введенных данных убрать текстовые поля и вывести сообщение об успешной регистрации ?
единственное что удалось придумать это
Код

$start= ' /* html код страницы с формой */ ' ;
$end= ' /* html код страницы с сообщением */ ' ;

if ( !$_POST['do'] OR $_POST['do'] =='' ) // do - имя кнопки
{
  echo $start;
}

//здесь проверки введенных данных и накопление ошибки в $error

if ( empty($error) ) 
{
   echo $end;
}

работает вроде бы как надо, но в случае если были ошибки их надо выводить в форме, а т.к. страница с формой выводится через echo, вставленный внутри нее еще один echo не работает.
подскажите как правильно это реализовать ?
PM MAIL   Вверх
Ипатьев
Дата 4.11.2009, 02:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



что мешает выводить $start в случае, если $error не пустая?
PM MAIL   Вверх
magnet27
Дата 4.11.2009, 02:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.3.2008

Репутация: нет
Всего: нет



условие if ( empty($error) )  вложено в проверку нажатия кнопки

Код

if( !empty($_POST['do']) ) 
{

if ( empty($error) ) 
{
   echo $end;
}

}


если сделать 
Код

if( !empty($_POST['do']) ) 
{

if ( empty($error) ) 
{
   echo $end;

 else echo $start;

}

то изначально страница получается пустой
PM MAIL   Вверх
Ипатьев
Дата 4.11.2009, 02:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



с какой стати пустой-то?
раньше же ведь была не пустая.
у вас лимит на написание кода?
если в одном месте написать echo $start;, то в другом надо сразу убрать?
PM MAIL   Вверх
magnet27
Дата 4.11.2009, 02:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.3.2008

Репутация: нет
Всего: нет



лимита у меня нет  smile 

вот, делаю так
Код

echo $start;
$error="";

if( !empty($_POST['do']) ) {

//проверки

if (empty($error)) {

echo $end;

else {
    echo $start;
        }

}

страница $end выводится не вместо $start а под ней

PM MAIL   Вверх
Photon
Дата 4.11.2009, 04:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Злобный программер
**


Профиль
Группа: Участник
Сообщений: 282
Регистрация: 27.2.2009
Где: Таганрог

Репутация: 10
Всего: 12



Код

if (!array_key_exists('do', $_POST) || empty($_POST['do']))
   echo $start;
else {
  //Проверки
  if (empty($error)) 
     echo $end;
  else
     echo $start;
}


А так сделать религия не позволяет?


--------------------
With best regards..
PM MAIL ICQ Skype GTalk Jabber   Вверх
Ипатьев
Дата 4.11.2009, 09:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



magnet27, а почему теперь первый $start без проверки?
PM MAIL   Вверх
magnet27
Дата 4.11.2009, 12:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.3.2008

Репутация: нет
Всего: нет



код из первого поста работает , там есть else echo $start, моя ошибка я его не привел сразу, поскольку спрашивал немного о другом - если я вывожу страницу через echo $start, то как выводить ошибки ? 
получается нужно написать вывод $error внутри $start, но тогда один echo будет внутри другого и это не работает, в этом вся проблема.
PM MAIL   Вверх
Ипатьев
Дата 4.11.2009, 13:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



ну и ну
пол-суток обсуждать не ту проблему, которая есть, а совсем другую.

кто мешает вывести сообщения об ошибках перед тем, как выводить старт?
PM MAIL   Вверх
magnet27
Дата 4.11.2009, 13:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.3.2008

Репутация: нет
Всего: нет



наверное я неправильно сформулировал вопрос в самом начале, но там я спрашивал об ошибках а вы мне начали помогать с условием  smile 
выводить перед старт никто не мешает, но если просто написать echo $error, то ошибки будут выводиться вверху страницы, а мне нужно их вывести на форме
PM MAIL   Вверх
Ипатьев
Дата 4.11.2009, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



У вас в $start целиком страница?! о_О
А как она туда попадает?
PM MAIL   Вверх
magnet27
Дата 4.11.2009, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.3.2008

Репутация: нет
Всего: нет



$start= ' /* html код страницы с формой */ ' ;
PM MAIL   Вверх
magnet27
Дата 4.11.2009, 14:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.3.2008

Репутация: нет
Всего: нет



вот, сделал так, теперь работает как надо. может быть нерационально, но ничего, я это переживу 
Код

$start       // код html до места в которое нужно вывести
$st_end   // код html после места в которое выводим
$end        //html страница с сообщением об успешной регистрации

if ( !$_POST['do'] OR $_POST['do'] =='' )
{
  echo $start;
}
$error='';

if( !empty($_POST['do']) ) {

//проверки

if (empty($error)) {
echo $end;
} else {
    echo $start;
    echo $error;
    echo $st_end;
        }

}


Ипатьев, спасибо за помощь.

Это сообщение отредактировал(а) magnet27 - 4.11.2009, 14:26
PM MAIL   Вверх
Ипатьев
Дата 4.11.2009, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



и так для каждой страницы?
А меню на этих страницах есть?
А если в меню еще один пункт добавится? Все старты на всех страницах переписывать?
PM MAIL   Вверх
magnet27
Дата 4.11.2009, 15:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 27
Регистрация: 28.3.2008

Репутация: нет
Всего: нет



меню есть
то есть правильно делать чтобы в старте была только форма, а в энде только сообщение, так ?
и сделать шапку где то в отдельном файле и потом на всех страницах его подключать ?

Это сообщение отредактировал(а) magnet27 - 4.11.2009, 15:54
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0840 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.