[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: почему из-за echo ломается меню?
studentka
Добрый день! Помогите решить проблему,которая мучает уже несколько дней((Если пытаюсь в php скрипте выводить эхом чего-нить,рушится меню на сайте((перестает ходить по ссылкам.Как только убираем echo все прекрасно работает.Хочется понять что может быть не так...ведь echo видимо только активирует какой-то косяк(



Спустя 8 минут, 1 секунда (5.08.2010 - 08:09) igor717 написал(а):
Скорее всего просто какой-то тег не закрыт. Проверьте...

Спустя 1 минута, 49 секунд (5.08.2010 - 08:11) studentka написал(а):
Уже закоментировала скрипт и шаблон полностью,оставила только строку с эхом,и все равно меню ломается((((а если эхо убрать -работает...

Спустя 2 минуты, 43 секунды (5.08.2010 - 08:14) Basili4 написал(а):
studentka
Выложи исходник вместе посмотрим что нибудь придумаем

Спустя 10 минут, 51 секунда (5.08.2010 - 08:25) studentka написал(а):
Вот как-то так)Это скрипт,могу и шаблон кинуть)

<?php
echo "!!!";

function PageNum($idQuestion,$toProcess,$page_size)
{
global $questiontype;
$query="select num, countq
from
(
select t.id, count(t.id) over (partition by 1) countq,
row_number() over(order by t.creationdate desc) num, t.creationdate
from wauser.nstu_reception_rector t where t.process = ? and t.questiontype = ?
)
where id=?
order by num"
;

$params = array ($toProcess, $questiontype, $idQuestion);
if (exec_query ($query, $params, $result, $num))
error (
'Внутренняя ошибка',
'К сожалению, в настоящий момент продолжение работы невозможно. Примите извинения за доставленные неудобства.',
array (
array ('level' => 1, 'message' => 'ошибка при попытке получения номера страницы с вопросом абитуриента'),
array ('level' => 2, 'message' => 'ошибка БД: '.$result),
array ('level' => 3, 'message' => 'файл: '.__FILE__.':'.__LINE__)
)
);


if (!$num)
$page = 1;
else
$page = (int)($result[0]['NUM'] / $page_size) + ($result[0]['NUM'] % $page_size > 0);

return $page;
}


if($_info['id_page']==99179)
$questiontype=1;
elseif ($_info['id_page']==99177)
$questiontype=2;
elseif ($_info['id_page']==99178)
$questiontype=4;

else
$questiontype=3;

$_smarty->assign("questiontype", $questiontype);

//$questiontype=3;


$nomenu = (int)get_var($_POST, "nomenu",0);

if ($nomenu == 1) $_preferences['display']['design_level'] = 1;

$_smarty->assign("nomenu",$nomenu);

header("Expires: " . gmdate("D, d M Y H:i:s", time() + 60480) . " GMT");


$idQ = (int)get_var($_POST,"del");

$idPubl = (int)get_var($_POST, "publ");

$idRedirect = (int)get_var($_POST, "redirect");

$idDestination = (int)get_var($_POST, "destination");


if($idQ)
{
$query="BEGIN WAUSER.NSTU_RECEPTION_RECTOR_PKG.DELETERECORD(?); end;";
if (exec_query ($query, array($idQ), $result, $num))
error (
'Внутренняя ошибка',
'К сожалению, в настоящий момент продолжение работы невозможно. Примите извинения за доставленные неудобства.',
array (
array ('level' => 1, 'message' => 'ошибка при попытке удаления вопроса абитуриента'),
array ('level' => 2, 'message' => 'ошибка БД: '.$result),
array ('level' => 3, 'message' => 'файл: '.__FILE__.':'.__LINE__)
)
);


}

$page = (int)get_var($_POST, "page");


if($idPubl) // нужно опубликовать ответ на вопрос
{
$query="BEGIN WAUSER.NSTU_RECEPTION_RECTOR_PKG.PUBLRECORD(?); end;";
if (exec_query ($query, array($idPubl), $result, $num))
error (
'Внутренняя ошибка',
'К сожалению, в настоящий момент продолжение работы невозможно. Примите извинения за доставленные неудобства.',
array (
array ('level' => 1, 'message' => 'ошибка при попытке опубликования вопроса абитуриента'),
array ('level' => 2, 'message' => 'ошибка БД: '.$result),
array ('level' => 3, 'message' => 'файл: '.__FILE__.':'.__LINE__)
)
);

}

if($idRedirect)
{

$query="BEGIN WAUSER.NSTU_RECEPTION_RECTOR_PKG.RedirectQuestion(?,?); end;";
if (exec_query ($query, array($idRedirect, $idDestination), $result, $num))
error (
'Внутренняя ошибка',
'К сожалению, в настоящий момент продолжение работы невозможно. Примите извинения за доставленные неудобства.',
array (
array ('level' => 1, 'message' => 'ошибка при попытке удаления вопроса абитуриента'),
array ('level' => 2, 'message' => 'ошибка БД: '.$result),
array ('level' => 3, 'message' => 'файл: '.__FILE__.':'.__LINE__)
)
);


/*отправляем письмо $idRedirect - идентификатор вопроса, 1 - что этот вопрос перенаправили в абит. вопросы*/

mailSend($idRedirect, $idDestination);


header ("Location: https://".$CIU_site_root."/answers/student_answers?where=1&locate=$idRedirect");
}




$query="select distinct to_char(r.creationdate, 'YYYY') year from wauser.nstu_reception_rector r where r.questiontype=?";
$params=array($questiontype);
$all_years=array();
if(exec_query($query,$params,$all_years,$num))
error (
'Внутренняя ошибка',
'К сожалению, в настоящий момент продолжение работы невозможно. Примите извинения за доставленные неудобства.',
array (
array ('level' => 1, 'message' => 'ошибка при попытке получения списка доступных годов'),
array ('level' => 2, 'message' => 'ошибка БД: '.$all_years),
array ('level' => 3, 'message' => 'файл: '.__FILE__.':'.__LINE__)
)
);

$_smarty->assign("all_years", $all_years);

//print_r($all_years);


// подготовим массив с названиями месяцев

$mon_names=array("января", "февраля", "марта", "апреля", "мая", "июня", "июля", "августа", "сентября", "октября", "ноября", "декабря");
$mon_names=array(array("NAME" => "январь", "RNAME" => "января"),
array("NAME" => "февраль", "RNAME" => "февраля"),
array("NAME" => "март", "RNAME" => "марта"),
array("NAME" => "апрель", "RNAME" => "апреля"),
array("NAME" => "май", "RNAME" => "мая"),
array("NAME" => "июнь", "RNAME" => "июня"),
array("NAME" => "июль", "RNAME" => "июля"),
array("NAME" => "август", "RNAME" => "августа"),
array("NAME" => "сентябрь", "RNAME" => "сентября"),
array("NAME" => "октябрь", "RNAME" => "октября"),
array("NAME" => "ноябрь", "RNAME" => "ноября"),
array("NAME" => "декабрь", "RNAME" => "декабря")
);


$_smarty->assign("mon_names", $mon_names);
//print_r($mon_names);

$find=(int)get_var($_POST, "find");
//echo $find;
$_smarty->assign("find", $find);
//echo $find;


if($find==1) // начинаем поиск
{
// получим параметры
$save_log=(int)get_var($_POST, "save_log");
//echo $save_log;
$full_string=(string)get_var($_POST, "search_string");

//$str=get_var($_POST, "str");
$full_search=(int)get_var($_POST, "mode");

//echo $full_search;
$search_type=(int)get_var($_POST, "search_type");


if($full_search==1) // получаем параметры для расширенного поиска
{
$day1=(int)get_var($_POST, "day1");
$month1=(int)get_var($_POST, "month1");
$year1=(int)get_var($_POST, "year1");
$day2=(int)get_var($_POST, "day2");
$month2=(int)get_var($_POST, "month2");
$year2=(int)get_var($_POST, "year2");
$num_question1=(int)get_var($_POST, "num_question1");
}
else
{
$day1=$day2=0;
$month1=$month2=$year1=$year2=0;
$num_question1=0;
}

$full_string=stripslashes($full_string);
//echo $full_string;

// передадим параметры в smarty

$_smarty->assign("full_string", $full_string);
$_smarty->assign("str", $full_string);
$_smarty->assign("full_search", $full_search);
$_smarty->assign("search_type", $search_type);
$_smarty->assign("day1", $day1);
$_smarty->assign("month1", $month1);
$_smarty->assign("year1", $year1);
$_smarty->assign("day2", $day2);
$_smarty->assign("month2", $month2);
$_smarty->assign("year2", $year2);

$mname1 = $mon_names[$month1-1]['RNAME'];
//echo $mname1;
if($month1 > 0) $_smarty->assign("mname1", $mname1);

if($month2>0)
{
if($day2>0)
{
$mname2=$mon_names[$month2-1]['RNAME'];
$_smarty->assign("mname2", $mname2);
}
else
{
$mname2=$mon_names[$month2-1]['NAME'];
$_smarty->assign("mname2", $mname2);
}
}


$_smarty->assign("num_question1", $num_question1);


// подготовим параметры для поиска:
require_once("search_functions.php");

// обработаем строку для поиска по тексту

$search_arr=array();

if(strlen($full_string) > 0)
prepare_string($full_string, $search_type, &$search_arr);


// подготовим даты
$date1=prepare_date_start($day1, $month1, $year1);
$date2=prepare_date_end($day2, $month2, $year2);


// подготовим строку для поиска
$search_params=array();
$subquery=prepare_subquery_answers(&$search_arr, $date1, $date2, $num_question1, &$search_params);
//echo $search_params;

$params=array_merge(array($questiontype), $search_params);

$where = (int)get_var($_POST,"where");
//echo "where= ",$where;
$publish =(int)get_var($_POST,"publish");
//echo "publish= ",$publish;

//$Admin_href="https://".$CIU_site_root."/answers/student_answers";
//$Admin1_href="https://".$CIU_site_root."/answers/student_answers/search_adm";


$param2="";
if(!$where)
{
$param="";
$param1="";
$query = "select count(rr.id) num from nstu_reception_rector rr where rr.process = 0 and rr.questiontype = ?".$subquery;
}
else
{ $param="and y.process = 1";

if (!$publish) //Все обработанные вопросы
{$param1="";
$query = "select count(rr.id) num from nstu_reception_rector rr where rr.process = 1 and rr.questiontype = ?".$subquery;
}
else
{
if($publish==1)// Опубликованные вопросы
{$param1="and y.topublish = 1";
$param2="and rr.topublish = 1";
$query = "select count(rr.id) num from nstu_reception_rector rr where rr.process = 1 and rr.topublish=1 and rr.questiontype = ?".$subquery;
}
if($publish==2)// Неопубликованные вопросы
{$param1="and y.topublish = 0";
$param2="and rr.topublish = 0";
$query = "select count(rr.id) num from nstu_reception_rector rr where rr.process = 1 and rr.topublish=0 and rr.questiontype = ?".$subquery;
}
}
}





//Получение количества вопросов
if (exec_query ($query, $params, $result, $num))
error (
'Внутренняя ошибка',
'К сожалению, в настоящий момент продолжение работы невозможно. Примите извинения за доставленные неудобства.',
array (
array ('level' => 1, 'message' => 'ошибка при попытке получения количества вопросов абитуриентов'),
array ('level' => 2, 'message' => 'ошибка БД: '.$result),
array ('level' => 3, 'message' => 'файл: '.__FILE__.':'.__LINE__)
)
);


// echo $result[0]['NUM'];
$_smarty->assign("num_total", $result[0]['NUM']);

//Определение номера страницы
$page_size = 5;
if(isset ($_GET['locate']) && !$page)
{
$page=PageNum($_GET['locate'],$where,$page_size);
}
else
{
$page = isset ($_POST['page_num']) ? $_POST['page_num'] : 1;
}


$max_page = (int)($result[0]['NUM'] / $page_size) + ($result[0]['NUM'] % $page_size > 0);
if ($page > $max_page) $page = $max_page;


$query =
"select y.*,
case when r.num is not null then rtrim(stragg('№'||r.num||',')over(partition by y.id), ',')
else '0' end nums from
(select row_number() over (order by rr.creationdate desc) num,
rr.id,
rr.question,
rr.answer,
rr.signature,
rr.signaturecheck,
rr.email,
rr.emailcheck,
rr.process,
rr.phone,
rr.topublish,
to_char(rr.creationdate,'dd.mm.yyyy HH24:MI') creationdate,
rr.tosend,
rr.num qnum,
rr.redirect,
rr.id_redirect,
red.topublish topublish_red,
red.process process_red,
red.num num_red,
red.questiontype fromwhere_red
from nstu_reception_rector rr
left join nstu_reception_rector red on rr.id_redirect = red.id
where rr.process = ? and rr.questiontype = ? "
.$param2." ".$subquery." order by rr.creationdate desc

) y
left join nstu_reception_rector r on r.answer like '%education/answers%num='||to_char(y.qnum)||'%'
where (y.num between ? and ?) "
.$param." ".$param1." order by qnum desc
"
;
//and ((lower(rr.answer) like '%'||'здрав'||'%' or lower(rr.question) like '%'||'здрав'||'%' ) and 1=1) order by rr.creationdate desc

$resultQ=array();

$params=array_merge(array_merge(array($where, $questiontype), $search_params),array( ($page - 1) * $page_size + 1, $page * $page_size));
//$params=array($where, $questiontype,$search_params, ($page - 1) * $page_size + 1, $page * $page_size);

//echo $query;
//print_r($params);

if (exec_query ($query, $params, $resultQ, $num_question))
error (
'Внутренняя ошибка',
'К сожалению, в настоящий момент продолжение работы невозможно. Примите извинения за доставленные неудобства.',
array (
array ('level' => 1, 'message' => 'ошибка при попытке получения списка вопросов студентов'),
array ('level' => 2, 'message' => 'ошибка БД: '.$resultQ),
array ('level' => 3, 'message' => 'файл: '.__FILE__.':'.__LINE__)
)
);


//print_r($resultQ);

// подготовим результаты поиска для отображения

for($i=0; $i<count($resultQ); $i++)
{
if(count($search_arr)>0)
//подсвечиваем текст,по которому поиск
{
$resultQ[$i]['QUESTION']=prepare_result($resultQ[$i]['QUESTION'],$search_arr);
$resultQ[$i]['ANSWER']=prepare_result($resultQ[$i]['ANSWER'],$search_arr);
$resultQ[$i]['QNUM']=prepare_result($resultQ[$i]['QNUM'],$search_arr);
// $stripped=htmlspecialchars($resultQ[$i]['QUESTION']);

}

if($num_question1>0)
{
$par=array($num_question1);
$resultQ[$i]['QNUM']=prepare_result($resultQ[$i]['QNUM'], $par);
}
}



$last_start = 1;
$next_end = $max_page;
if($max_page > 11)
{
$next_end = 11;
if($page > 6)
{
$last_start += ($page - 6);
$next_end = $last_start + 10;
if($next_end > $max_page)
{
$next_end = $max_page;
$last_start = $max_page - 10;
}
}
}

$_smarty -> assign ('page', $page);
// echo "page=",$page;
$_smarty -> assign ('max_page', $max_page);
$_smarty -> assign('last_start',$last_start);
$_smarty -> assign('next_end',$next_end+1);
$_smarty -> assign('last_end',$page-1);
$_smarty -> assign('next_start',$page+1);

$_smarty->assign("where",$where);
$_smarty->assign("result",$resultQ);
$_smarty->assign("num_question",$num_question);
$_smarty->assign("publish",$publish);
}


?>

Спустя 21 минута, 26 секунд (5.08.2010 - 08:46) igor717 написал(а):
Крута Вы выложили biggrin.gif ... Ох скока тут всего... Могу конечно ошибиться, но по-моему где-то в середине вашего скрипта промелькнули заголовки, а вывод в начале...

Спустя 1 день, 1 час, 17 минут, 23 секунды (6.08.2010 - 10:04) inpost написал(а):
Скорее всего всё рушится на стороне ХТМЛ, как уже заметили, где-то проблема с тегом! Вы же показали уже ПХП участок, как мне кажется, что проблема совсем не тут =)

Спустя 1 минута, 17 секунд (6.08.2010 - 10:05) inpost написал(а):
Открываете страницу, находите "Исходный код страницы", и внимательно изучаете в первом и во втором случае! Там найдете всё! Проблема не в серверной стороне, а именно то, как обработал браузер и почему появилась проблема! Советую ещё посмотреть и на других браузерах!
Быстрый ответ:

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