[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: скрипт не принимает POST
Гость_Николай
Здравствуйте уважаемые!
Не первый день бьюсь над проблемой и уже не знаю на что грешить.
Суть:
модули (классы) подключаются __autoload().
Данные формы не отображаются в подключаемых модулях. Принт_р, вар_дамп == приходит пустой массив. Если отправлять из класса в простой скрипт -- всё отлично. Наоборот -- нуль.
Прошу помощи



Спустя 14 минут, 6 секунд (25.08.2010 - 21:41) linker написал(а):
Код давайте и поточнее суть проблемы, а то ничего не понятно.

Спустя 8 минут, 36 секунд (25.08.2010 - 21:50) Гость_Николай написал(а):
собственно файл который не принимает ПОСТЫ-ГЕТЫ свои и чужие.

<?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= этому файлу. Да и вообще код местами странный smile.gif

Спустя 2 дня, 13 часов, 12 минут, 59 секунд (28.08.2010 - 11:26) Гость_Николай написал(а):
Код странный, да, сырой потому что, только наброски, чуть менее чем полностью всё "туду" smile.gif
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" -- то всё нормально видно.
фаербаг показывает всё переменные из формы в запросе как они есть!
Быстрый ответ:

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