Skocz do zawartości

Witamy na polskim forum Contao
Zarejestruj się teraz, aby skorzystać ze wszystkich funkcji forum. Kiedy się zalogujesz, będziesz mógł tworzyć tematy, pisać posty, rozdawać punkty reputacji, korzystać z prywatnych wiadomości i zarządzać swoim profilem. Jeśli posiadasz już konto, zaloguj się - w przeciwnym wypadku zarejestruj się już teraz!
Zdjęcie

przekazywanie zmiennych do modulu


  • Proszę się zalogować aby odpowiedzieć
6 odpowiedzi na ten temat

#1
mosilver

mosilver

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 162 postów
  • Strona www:zobacz
  • LokalizacjaOpole, Poznań, Kamienna Góra
witam, tworze wlasny modul, wszystko jest ok, jednak lacze go na stronie z formularzem, potrzebuje aby po wywolaniu formularza - po przeladowaniu strony odczytac wartosci zmiennych POST we wlasnym module

w klasie modulu probuje wypisac:

protected function compile()
{
echo "modul MGS Couple";
echo "<br><br>zmienne POST:<br>-----------------------------------------<br>";
var_dump($_POST);
echo "<br>-------------------------------------------------";
$this->Template->tytul = "modul MGS Couple";

}

co daje w rezultacie:

zmienne POST:
-----------------------------------------
array(0) { }
-------------------------------------------------

rowiez zapytanie

<?php var_dump($_REQUEST); ?>

nie zwraca mi zmiennych ktore potrzebuje a jedynie

array(7) { ["PHPSESSID"]=> string(26) "2gq8v3437pgm33cq15je1cb9n6" ["BE_PAGE_OFFSET"]=> string(1) "0" ["__utma"]=> string(52) "7941806.305073795.1335871462.1335871462.1335871462.1" ["__utmb"]=> string(23) "7941806.6.10.1335871462" ["__utmc"]=> string(7) "7941806" ["__utmz"]=> string(68) "7941806.1335871462.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none)" ["BE_USER_AUTH"]=> string(40) "97d709186c23f57d30799ddf78f5b2717062ea84" }


bardzo prosze o wskazowke jak sie dobrac do tych zmiennych POST formularza

debug mi tez za wiele nie pomogl - sa tam same odczyty z bazy danych, natomiast firebug wskazuje ze POST jest obecny:

FORM_SUBMIT auto_reg
REQUEST_TOKEN 77be0dda1ed3f908bb2cc2af781f1ef7
MAX_FILE_SIZE 4294967295
imie fgh
widocznosc1
widocznosc1 public
zdjecie
  • 0
www.it-inspire.pl - from love to design -

#2
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
Sprawdź

print_r($_SESSION['FORM_DATA']);

  • 1

Codefog - Contao web development


#3
mosilver

mosilver

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 162 postów
  • Strona www:zobacz
  • LokalizacjaOpole, Poznań, Kamienna Góra
ok dziekuje - rzeczywiscie przechowywuje te dane w sesji, przy czym mam jeszcze jedno pytanie - czy jest mozliwosc uzyskania informacji jakie zdjecie (nazwa / sciezka) zostalo przeslane na serwer po przeladowaniu formularza ?
w sesji zachowany jest tylko parametr [MAX_FILE_SIZE]

probuje sie dostac do tych informacji przez $HTTP_POST_FILES ale contao nie bardzo chce cokolwiek wyswietlic

mysle tez nad rozwiazaniem wylistowania plikow w folderze i sortowanie po dacie aby wykryc ktore zdjecie zostalo ostatnio uploadowane, ale nie wiem czy takie rozwiazanie daje gwarancje zwrotu prawidlowego zdjecia przy duzym jednoczesnym ruchu na stronie
  • 0
www.it-inspire.pl - from love to design -

#4
Kamil

Kamil

    Contao ambassador

  • Administratorzy
  • 1538 postów
  • Strona www:zobacz
  • LokalizacjaLidzbark Warminski
$_SESSION['FILES'];
;)
  • 1

Codefog - Contao web development


#5
mosilver

mosilver

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 162 postów
  • Strona www:zobacz
  • LokalizacjaOpole, Poznań, Kamienna Góra
hmm no niestety nie widzi, wrzucam ponizej cala sesje, niestety FILES jest puste a formularz uploadowal na serwer plik okulary.jpg

cala sesja:
-----------------------------------------
Array ( [REQUEST_TOKEN] => 81f1d16851b082963da53f97e5c92abe [TL_LANGUAGE] => pl [DISABLE_CACHE] => 1 [TL_USER_LOGGED_IN] => [FE_DATA] => Array ( [referer] => Array ( [last] => [current] => /register-form.html ) ) [FORM_DATA] => Array ( [imie] => testZdjecia [widocznosc1] => public [FORM_SUBMIT] => auto_reg [REQUEST_TOKEN] => 81f1d16851b082963da53f97e5c92abe [MAX_FILE_SIZE] => 4294967295 ) [FILES] => Array ( ) [BE_DATA] => Array ( [referer] => Array ( [last] => /contao/main.php?do=form [current] => /contao/main.php?do=form&table=tl_form_field&id=1 [tl_page] => /contao/main.php?do=page [tl_theme] => /contao/main.php?do=themes [tl_article] => /contao/main.php?do=article [tl_form] => /contao/main.php?do=form ) [CURRENT] => Array ( [IDS] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) ) [CLIPBOARD] => Array ( [tl_page] => Array ( ) [tl_user_group] => Array ( ) [tl_theme] => Array ( ) [tl_module] => Array ( ) [tl_layout] => Array ( ) [tl_content] => Array ( ) [tl_form] => Array ( ) [tl_form_field] => Array ( ) ) [new_records] => Array ( [tl_page] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 [4] => 5 [5] => 6 [6] => 7 ) [tl_user_group] => Array ( [0] => 1 ) [tl_theme] => Array ( [0] => 1 ) [tl_module] => Array ( [0] => 1 [1] => 2 ) [tl_layout] => Array ( [0] => 1 ) [tl_content] => Array ( [0] => 1 [1] => 2 [2] => 3 ) [tl_form] => Array ( [0] => 1 ) [tl_form_field] => Array ( [0] => 1 [1] => 2 [2] => 3 [3] => 4 ) ) [fieldset_states] => Array ( [tl_page] => Array ( [sitemap_legend] => 1 [layout_legend] => 1 [cache_legend] => 1 [chmod_legend] => 1 [expert_legend] => 1 [tabnav_legend] => 1 ) [tl_module] => Array ( [reference_legend] => 1 [template_legend] => 1 ) [tl_settings] => Array ( [global_legend] => 1 [cache_legend] => 1 [privacy_legend] => 1 [security_legend] => 1 [files_legend] => 1 [uploads_legend] => 1 [search_legend] => 1 [smtp_legend] => 1 [timeout_legend] => 1 [chmod_legend] => 1 [update_legend] => 1 ) [tl_layout] => Array ( [sections_legend] => 1 [expert_legend] => 1 ) [tl_article] => Array ( [teaser_legend] => 1 [expert_legend] => 1 ) [tl_content] => Array ( [expert_legend] => 1 [protected_legend] => 1 ) [tl_form] => Array ( [store_legend] => 1 [expert_legend] => 1 ) [tl_form_field] => Array ( [expert_legend] => 1 [store_legend] => 1 ) ) [tl_page_tree] => Array ( [2] => 1 [3] => 0 [4] => 0 [5] => 0 [6] => 0 [7] => 0 ) [CURRENT_ID] => 1 [tl_article_tl_page_tree] => Array ( [2] => 1 ) [tl_article_tl_article_tree] => Array ( [1] => 0 [2] => 0 [3] => 0 [4] => 0 [5] => 0 ) [tree_tl_form_field_uploadFolder] => Array ( [fd7ccf78c5e2c20e058f1c8f13a99974] => 1 ) [repository_catalog_settings] => Array ( [repository_tag] => [repository_type] => [repository_category] => [repository_state] => [repository_author] => [repository_order] => popular [repository_page] => 0 [repository_find] => inputvar ) ) )


w firebugu w podgladzie POSTA mozna znalezc:

Źródło
Content-Type: multipart/form-data; boundary=---------------------------31101243933548
Content-Length: 35534
-----------------------------31101243933548

Content-Disposition: form-data; name="FORM_SUBMIT"
auto_reg -----------------------------31101243933548

Content-Disposition: form-data;
name="REQUEST_TOKEN" 45232bdf3db35978aedbe8383f76f0b4
-----------------------------31101243933548

Content-Disposition: form-data; name="MAX_FILE_SIZE" 4294967295
-----------------------------31101243933548

Content-Disposition: form-data; name="imie"
testZdjecia
-----------------------------31101243933548

Content-Disposition: form-data; name="widocznosc1"
-----------------------------31101243933548

Content-Disposition: form-data; name="widocznosc1"
public
-----------------------------31101243933548
Content-Disposition: form-data; name="zdjecie"; filename="okulary.jpg"
Content-Type: image/jpeg
  • 0
www.it-inspire.pl - from love to design -

#6
mosilver

mosilver

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 162 postów
  • Strona www:zobacz
  • LokalizacjaOpole, Poznań, Kamienna Góra
ok, znalazlem przyczyne:

http://www.contao-co....php?f=9&t=3310

tablica jest czyszczona: (FormFileUpload.php) that the file references are deleted (unset($_FILES[$this->strName]).

w tym watku radza skorzystac z hooka:
$GLOBALS['TL_HOOKS']['processFormData'][] = array('MyHookClass', 'myProcessFormData');

wszystko ok, 1) dodaje do konfiga:

$GLOBALS['TL_HOOKS']['processFormData'][] = array('ModuleZapisMGC', 'myProcessFormData');

2) do klasy ModuleZapisMGC.php dodaje funkcje:

class ModuleZapisMGC extends Module
{
 
	protected $strTemplate = 'mod_ZapisMGC';
 
 
	protected function compile()
	{
	  
		echo "modul MGS Couple";
		echo "<br><br>zmienne POST form'a:<br>-----------------------------------------<br>";
		print_r($_SESSION['FORM_DATA']);
		echo "<br><br>-----------------------------------------<br>";
 
		
 
		$this->Template->tytul = "modul MGS Couple";
   	
	}
	
	
	
public function myProcessFormData($arrPost, $arrForm, $arrFiles)
{echo 'hook ok ';}
 
  
}


i po przeladowaniu formularza otrzymuje fatala:

Recoverable error: Argument 1 passed to Module::__construct() must be an instance of Database_Result, none given, called in /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/libraries/System.php on line 164 and defined in /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Module.php on line 73
#0 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Module.php(73): __error(4096, 'Argument 1 pass...', '/var/www/virtua...', 73, Array)
#1 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/libraries/System.php(164): Module->__construct()
#2 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Form.php(459): System->import('ModuleZapisMGC')
#3 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Form.php(214): Form->processFormData(Array, Array)
#4 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Hybrid.php(163): Form->compile()
#5 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Form.php(74): Hybrid->generate()
#6 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/libraries/Controller.php(511): Form->generate()
#7 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/ModuleArticle.php(194): Controller->getContentElement('3')
#8 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Module.php(140): ModuleArticle->compile()
#9 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/ModuleArticle.php(71): Module->generate()
#10 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/libraries/Controller.php(443): ModuleArticle->generate(false)
#11 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/libraries/Controller.php(307): Controller->getArticle('5', false, false, 'main')
#12 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/PageRegular.php(100): Controller->getFrontendModule('0', 'main')
#13 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/index.php(266): PageRegular->generate(Object(DB_Mysql_Result))
#14 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/index.php(401): Index->run()
#15 {main}


Warning: Missing argument 1 for Module::__construct(), called in /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/libraries/System.php on line 164 and defined in /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Module.php on line 73
#0 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Module.php(73): __error(2, 'Missing argumen...', '/var/www/virtua...', 73, Array)
#1 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/libraries/System.php(164): Module->__construct()
#2 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Form.php(459): System->import('ModuleZapisMGC')
#3 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Form.php(214): Form->processFormData(Array, Array)
#4 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Hybrid.php(163): Form->compile()
#5 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Form.php(74): Hybrid->generate()
#6 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/libraries/Controller.php(511): Form->generate()
#7 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/ModuleArticle.php(194): Controller->getContentElement('3')
#8 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Module.php(140): ModuleArticle->compile()
#9 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/ModuleArticle.php(71): Module->generate()
#10 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/libraries/Controller.php(443): ModuleArticle->generate(false)
#11 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/libraries/Controller.php(307): Controller->getArticle('5', false, false, 'main')
#12 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/PageRegular.php(100): Controller->getFrontendModule('0', 'main')
#13 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/index.php(266): PageRegular->generate(Object(DB_Mysql_Result))
#14 /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/index.php(401): Index->run()
#15 {main}

Fatal error: Call to a member function row() on a non-object in /var/www/virtual/mariagemma.com/domeny/mgs-couple.com/htdocs/system/modules/frontend/Module.php on line 77


robie dokladnie jak w powyzszym przykladzie lub zgodnie z watkiem http://www.contao-co....php?f=6&t=1895
wedlug watku zachaczajacego o ten blad konstruktor mojej klasy wymaga danych z bazy, dlaczego? (bez hooka o nie nie prosi), zamiana dziedziczenia z module na frontend rowniez nie zadzialalo
http://www.contao-co....php?f=9&t=1712
  • 0
www.it-inspire.pl - from love to design -

#7
mosilver

mosilver

    Znawca

  • Zarejestrowani
  • PipPipPipPip
  • 162 postów
  • Strona www:zobacz
  • LokalizacjaOpole, Poznań, Kamienna Góra
ok, rozwiazne za pomoca lokalnego programisty :)

nie wiem dlaczego, z hookiem nalezalo nadpisac konstruktor aby nie wymagl argumnentow bazodanowych oraz co dziwniejsze
hook przeladowania formularza wykonywuje sie chyba szybciej niz rendering strony i echo tam raczej nie zadziala, pomostem moze byc na szczescie sesja

Kamil, dzieki wielkie za pomoc!
  • 0
www.it-inspire.pl - from love to design -




2 użytkowników czyta ten temat

0 użytkowników, 2 gości, 0 anonimowych użytkowników