Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: помогите решить вопрос

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: завершение цикла exit;
filmotechnic
Отправлено: 20 Января, 2009 - 00:14:47
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




Уважаемы знатоки, помогите!!!
Проблема в чем: главная страница сайта сделана таблицей, в центральной части меняеться вставляемый код '*.php' в зависимости от ссылки. (xxxxxx/index.php?id=xx)

так вот... например делаю так:

файл : xxx.net/index.php?id=msg
CODE (text):
скопировать код в буфер обмена
  1.  
  2. //Проверка на пустоту
  3. if( empty($_POST['login']) || empty($_POST['pass']) || empty($_POST['name'])|| empty($_POST['mail']))
  4. {
  5.      echo $header;
  6.      echo "<center>Не заполнено одно из основных полей<br></center>";
  7.      echo "<center><input type=button value='Назад' OnClick='javascript:history.back()'></center>";
  8.      exit;
  9. }


то при "True" этого события выводится сообщение и срабатывает функция "Exit".....

но когда она срабатывает всё форматирование страницы идет по П#@$Е. Центральная часть таблицы распространяется до конца экрана... а так как центральная часть была вставлена как
CODE (text):
скопировать код в буфер обмена
  1. include('module/'.$id . '.php');
естественно всех остальных частей(модулей) тоже не видно....В итоге выходит очень некрасиво..

желающим посмотреть: _h_t_t_p://l2onet.net/index.php?id=msg (что-бы увидеть оставьте одно поле пустым)

Подскажиет чайнику можно ли вместо "EXIT" ипользовать безусловный переход по метке(есть ли такая функция), а метку расположить в конце файла... Если нет, то пожалуйста подскажите сделать по другому....

Заранее огромное спасибо...
 
 Top
vitaliy_mad
Отправлено: 20 Января, 2009 - 00:19:31
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




сделай наоборот если заполнено только тогда включай другой файл, а если нет тогда ошибку и завершай работу скрипта
(Добавление)
например так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. f( empty($_POST['login']) || empty($_POST['pass']) || empty($_POST['name'])|| empty($_POST['mail']))
  4. {
  5.    include "error.php";
  6. }
  7. else
  8. {
  9.    include "module/$id.php";
  10. }
  11.  
  12. ?>


error.php:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?PHP
  3.   echo $header;
  4.   echo "<center>Не заполнено одно из основных полей<br></center>";
  5.   echo "<center><input type=button value='Назад'       OnClick='javascript:history.back()'></center>";
  6. ?>
  7.  

(Добавление)
или вообще так:

PHP:
скопировать код в буфер обмена
  1. <?PHP
  2.  
  3. f( empty($_POST['login']) || empty($_POST['pass']) || empty($_POST['name'])|| empty($_POST['mail']))
  4. {
  5.   echo $header;
  6.   echo "<center>Не заполнено одно из основных полей<br></center>";
  7.   echo "<center><input type=button value='Назад'       OnClick='javascript:history.back()'></center>";
  8. }
  9. else
  10. {
  11.    include "module/$id.php";
  12. }
  13.  
  14. ?>


без exit
 
 Top
DeepVarvar Супермодератор
Отправлено: 20 Января, 2009 - 05:55:20
Post Id



Активный участник


Покинул форум
Сообщений всего: 10377
Дата рег-ции: Дек. 2008  
Откуда: Альфа Центавра


Помог: 353 раз(а)




filmotechnic пишет:
главная страница сайта сделана таблицей

У вас там и дивы и таблицы (конфликтуют видимо)... Сделайте что-то одно, и проблемы не будет..
 
 Top
Вездеход
Отправлено: 20 Января, 2009 - 07:52:23
Post Id



Частый посетитель


Покинул форум
Сообщений всего: 820
Дата рег-ции: Апр. 2008  
Откуда: Россия


Помог: 0 раз(а)




DeepVarvar, проблема не в них а в коде.


-----
о великий nl2br!
Хочешь невероятных ощущений? Юзай блокнот! Блокнот - чудеса сбываются!
Чем меньше вы знаете PHP - тем ценнее мои знания!
 
 Top
filmotechnic
Отправлено: 20 Января, 2009 - 14:18:07
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




DeepVarvar пишет:
вас там и дивы и таблицы (конфликтуют видимо)... Сделайте что-то одно, и проблемы не будет..


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

vitaliy_mad пишет:
сделай наоборот если заполнено только тогда включай другой файл, а если нет тогда ошибку и завершай работу скрипта


Спасибо, натолкунул на идею... но твай вариант непоможет т.к. всё равно использует функцию 'exit'

смотри как всё сделано у меня:

{index.php?id=xxx
include skin.php
{-------------текст программы------------
include xxx.php (тот, что в индексе)
----продолжение теста программы-----
-------------ещё пару модулей----------
}
}

...так вот если в 'xxx.php' вызывается функция 'exit' не выполняется всё что идет за вызовом 'xxx.php' Нахмурился

хочу попробовать так создать error.php а его вместо еxit вызывать как
index.php?id=err&code='тут код ошибки'

О результатах отпишусь. Поправьте если я в чем-то не прав. (я начинающий в пхп ... когда асме ваял для микроконтроллеров...)

Спасибо всем, кто ответил!!!!!
 
 Top
Гость
Отправлено: 20 Января, 2009 - 14:38:33
Post Id


УДАЛЁН










Чтото Вы странное задумали честно скажу
Уж лучше в таком случае то место где у Вас иммется exit заменить на функцию в которой нцжно делать return если надо завершить ее
 
 Top
vitaliy_mad
Отправлено: 20 Января, 2009 - 18:00:44
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




мой враиант не использует функцию exit(); где ты ее там увидел?
 
 Top
Гость
Отправлено: 20 Января, 2009 - 18:49:40
Post Id


УДАЛЁН










vitaliy_mad В Вашем коде нет этой функции
Я имел в виду про оригинал написанный пользователем filmotechnic
Уж както странно там все это реализовано

(Отредактировано автором: 20 Января, 2009 - 18:50:01)

 
 Top
vitaliy_mad
Отправлено: 20 Января, 2009 - 19:31:20
Post Id


Участник


Покинул форум
Сообщений всего: 1107
Дата рег-ции: Окт. 2008  
Откуда: Украина, Мариуполь


Помог: 0 раз(а)




JustUserR, а я не тебе писал! Радость предыдущее сообщение было адресовано к filmotechnic
 
 Top
filmotechnic
Отправлено: 21 Января, 2009 - 14:08:01
Post Id


Новичок


Покинул форум
Сообщений всего: 3
Дата рег-ции: Янв. 2009  


Помог: 0 раз(а)




И снова я....

Тут смотрю меня уже некоторые начали пинать.... Говорю-же пхп начал осваивать примерно 2 месяца назад...

Теперь к теме....

Вобщем у меня всё получилось!!! Улыбка

реализовал так:

вместо exit:
PHP:
скопировать код в буфер обмена
  1.  
  2. <?
  3. //.........................
  4. echo("<script>location.href='index.php?id=error&code=004'</script>");
  5. //.........................
  6. ?>



в файле error.php так:
PHP:
скопировать код в буфер обмена
  1. <?
  2. //...........................................
  3. if($_GET['code']=='004')
  4.                 {
  5.                 print ("<center>Не заполнено одно из основных полей.</center><br>");
  6.                 print ("<center><input type=button value=\"Назад\" OnClick=\"document.location.href ='index.php?id=msg'\"></center>");
  7.                 }
  8. //..........................
  9. ?>


возможно не рационально, но зато много разных функций я теперь вывожу через errror.php


Огромное спасибо за помощь vitaliy_mad т.к. именно он натолкнул меня на вариант решения проблемы!!!

JustUserR пишет:
Чтото Вы странное задумали честно скажу
Уж лучше в таком случае то место где у Вас иммется exit заменить на функцию в которой нцжно делать return если надо завершить ее


Если чесно, то про эту функцию я не знал. Вечерком изучу.... тоже спасибо!!!
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB