Не первый день бьюсь над проблемой и уже не знаю на что грешить.
Суть:
модули (классы) подключаются __autoload().
Данные формы не отображаются в подключаемых модулях. Принт_р, вар_дамп == приходит пустой массив. Если отправлять из класса в простой скрипт -- всё отлично. Наоборот -- нуль.
Прошу помощи
Спустя 14 минут, 6 секунд (25.08.2010 - 21:41) linker написал(а):
Код давайте и поточнее суть проблемы, а то ничего не понятно.
Спустя 8 минут, 36 секунд (25.08.2010 - 21:50) Гость_Николай написал(а):
собственно файл который не принимает ПОСТЫ-ГЕТЫ свои и чужие.
http://ifolder.ru/19029855
тут архив со всем кодом.
<?php
class Admin
{
public $mysql;
public $xml;
function __construct()
{
$this->mysql = new Mysql();
$this->xml = new Array2XML();
if($this->check_rights())
{
$this->show_menu();
}else
{
header("Location : '/admin/enter/'");
}
}
//проверка на админа и уникальность входа
function check_rights()
{
return true;
}
//показывает меню админки:
function show_menu()
{
//постоянные пункты меню:
$stat_menu_modules = array('statistics', 'lang_vars', 'settings', 'admins');
$pos = 0;
$result = $this->mysql->mysql_array("SELECT * FROM ".tbl."lang_var
WHERE var_key IN ('".join('',' ', $stat_menu_modules)."')");
foreach($stat_menu_modules as $element)
{
$data['menu'][$pos]['pos'] = $pos;
$data['menu'][$pos]['module_name'] = $element;
$data['menu'][$pos]['name_element'] = $result['value'];
$data['menu'][$pos]['protected'] = 1;
$data['menu'][$pos]['stat'] = 4;
$pos++;
}
//достали массив доступных модулей, и добавили в меню
$result = $this->mysql->mysql_array("SELECT m.*, l.value AS name_element FROM
".tbl."reg_modules m,
".tbl."lang_var l
WHERE m.active = '1' AND l.var_key = CONCAT('module_name_', m.module_name) AND l.lang = '".LANG."'");
//print_r($result);
$data['menu'] = array_merge($data['menu'], $result);
$content = $this->xml->convert($data['menu']);
$xml_file = XML_PATH.'admin/menu.xml';
file_put_contents($xml_file, $content) or die("Неудалось записать xml");
Page::get_html($xml_file, 'admin/menu');
}
/**
* Действия адмикни
* @see www/class/Page::parse_url()
*/
function parse_url($url)
{
switch(array_shift($url))
{
case 'lang_vars' : self::lang_vars($url); break;
case 'users': $this->users($url); break;
default: self::statistics(); break;
}
}
/**
* Индекс для админки, показыает статистику.
*
*/
function statistics()
{
}
/**
*
* Управление языковыми переменными
* @param $url
*/
function lang_vars($url)
{
// if(isset($_POST['new_var']))//пришла новая переменная
// {
print_r($_POST);
// }
// else
// {
$lang = array_shift($url);
if($lang){$where = "WHERE lang = '$lang'";} //если указан язык в запросе -- то для одного языка
$result = $this->mysql->mysql_array("SELECT * FROM ".tbl."lang_var $where");
$content = $this->xml->convert($result);
$xml_file = XML_PATH.'admin/lang_vars.xml';
file_put_contents($xml_file, $content) or die("Неудалось записать xml");
Page::get_html($xml_file, 'admin/lang_vars');
//print_r($result);
$langArr = $this->mysql->mysql_array("SELECT * FROM ".tbl."lang");
//print_r($langArr);
//}
return $_POST;
}
}
?>
http://ifolder.ru/19029855
тут архив со всем кодом.
Спустя 5 минут, 26 секунд (25.08.2010 - 21:55) Guest написал(а):
короче lang_vars() по урлу вызывается, но поста не выводит, откуда бы он не приходил.
Спустя 17 минут, 59 секунд (25.08.2010 - 22:13) Mizka написал(а):
и где ты экземпляр класса создаешь? и с чего ты взял что вызывается lang_vars()? я так понял у тебя в <form action= этому файлу. Да и вообще код местами странный

Спустя 2 дня, 13 часов, 12 минут, 59 секунд (28.08.2010 - 11:26) Гость_Николай написал(а):
Код странный, да, сырой потому что, только наброски, чуть менее чем полностью всё "туду"
lang_vars() явно в parse_url вызывается, когда урл разбирается. короче в браузере вижу что вызвано -- html тот что надо выводиться. А если в её теле распечатывать пост, гет -- пустые массивы.
Mizka, да action туда же. Если в другой файл послать, напрямую (index.php , например, реально существующий) -- из него видно ПОСТ. Как понимаю беда в этом -- страница формируется автолоадами, по адресу. Тут видно прореха в моих знаниях? Какие-нибудь есть соображения на этот счёт?

lang_vars() явно в parse_url вызывается, когда урл разбирается. короче в браузере вижу что вызвано -- html тот что надо выводиться. А если в её теле распечатывать пост, гет -- пустые массивы.
Mizka, да action туда же. Если в другой файл послать, напрямую (index.php , например, реально существующий) -- из него видно ПОСТ. Как понимаю беда в этом -- страница формируется автолоадами, по адресу. Тут видно прореха в моих знаниях? Какие-нибудь есть соображения на этот счёт?
Спустя 6 дней, 5 часов, 10 минут, 29 секунд (4.09.2010 - 16:37) Guest написал(а):
Вопрос открыт.
Отправка происходит, фаербагом убедился, а в ответе ПОСТ - пустой. Я уже голову сломал!
Отправка происходит, фаербагом убедился, а в ответе ПОСТ - пустой. Я уже голову сломал!
Спустя 6 часов, 37 минут, 22 секунды (4.09.2010 - 23:14) Гость_Николай написал(а):
что может делать невидимым супер-глобальный массив???
Спустя 4 минуты, 23 секунды (4.09.2010 - 23:18) Winston написал(а):
Возможно эти переменные не инициализируются ?
Спустя 8 минут, 41 секунда (4.09.2010 - 23:27) Guest написал(а):
то есть не инициализируются?
если action="", или другая виртуальная страница, то пост приходит - пустой массив. если action="test.php" -- то всё нормально видно.
фаербаг показывает всё переменные из формы в запросе как они есть!
если action="", или другая виртуальная страница, то пост приходит - пустой массив. если action="test.php" -- то всё нормально видно.
фаербаг показывает всё переменные из формы в запросе как они есть!