spracovanie formularu metodou na produkcnom serveri

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
Matej123
Člen | 150
+
0
-

Dobry den,

v aplikacii klasicky odosielam formular (ak data su validne) pre spracovanie metode:

<?php
	$form->onSuccess[] = [$this, 'addCourseSucceeded'];
?>

Tento sposob funguje v pohode ak pracujem na lokalnom serveri. Akonahle to hodim na produkcny web, tak mi vyhodi chybu ze: Parse error, syntax error unexpected ‚[‘ . Neviete v com je asi problem? :)

David Matějka
Moderator | 6445
+
+2
-

protoze mas na produkcnim serveru php 5.3

Matej123
Člen | 150
+
0
-

asi jo, uz som to zmenil na array($this, ‚addCourse…‘) a uz to ide :) . No mam hned dalsi problem :
Mam taku metodu na prihlasovanie:

<?php
public function createLoginForm($instructions = null, Form $form = NULL) {
            $form = $this->createBasicForm($form);
            $form->addSubmit('submit', 'Prihlásiť')
                    ->setAttribute('class', 'btn btn-primary');
            $form->onSuccess[] = function (Form $form) use (

                    $instructions) {
                $this->login($form, $instructions);
            };
            return $form;
        }

?>

Formular mi pekne vypise no opat je problem s tym onSuccess. Tentoraz mi vypise :
Fatal error. Using $this when not in object context a zvyrazni mi tento riadok :

<?php
	$this->login($form, $instructions);
?>

Tiez bude problem s tou verziou php? :)

David Matějka napsal(a):

protoze mas na produkcnim serveru php 5.3

David Matějka
Moderator | 6445
+
+2
-

ano, taky je to verzi. pro 5.3 to musi zapsat nasledovne:

$that = $this;
$form->onSuccess[] = function (Form $form) use ($instructions, $that) {
	$that->login($form, $instructions);
};

ale radeji aktualizuj php na serveru, 5.3 je jiz davno mrtve a nepodporovane. ani 5.4, viz http://php.net/…versions.php

Matej123
Člen | 150
+
0
-

vies ja pouzivam webglobe, kedze som este student tak vyuzivam (zadarmo) sluzby ich serverov, tak velke upravy si tam dovolit nemozem, ale diky za info, som teraz aspon v obraze preco mi niektore veci neidu :) .

David Matějka napsal(a):

ano, taky je to verzi. pro 5.3 to musi zapsat nasledovne:

$that = $this;
$form->onSuccess[] = function (Form $form) use ($instructions, $that) {
	$that->login($form, $instructions);
};

ale radeji aktualizuj php na serveru, 5.3 je jiz davno mrtve a nepodporovane. ani 5.4, viz http://php.net/…versions.php

Matej123
Člen | 150
+
0
-

uz som to poriesil vsetko, na konci vsak dalsia chyba:

Authenticator has not been set.

nevies co s tym?

David Matějka napsal(a):

ano, taky je to verzi. pro 5.3 to musi zapsat nasledovne:

$that = $this;
$form->onSuccess[] = function (Form $form) use ($instructions, $that) {
	$that->login($form, $instructions);
};

ale radeji aktualizuj php na serveru, 5.3 je jiz davno mrtve a nepodporovane. ani 5.4, viz http://php.net/…versions.php

CZechBoY
Člen | 3608
+
0
-

A máš autentikator nastaveny v konfiguraku?
Třeba

services:
    authenticator: App\cesta\Authenticator
Matej123
Člen | 150
+
0
-

nie nemam, take veci som nebol nuteny riesit na localhoste, nastavuje sa to v congig.neon? A pre ten authenticator aku cestu mam zadat?

CZechBoY napsal(a):

A máš autentikator nastaveny v konfiguraku?
Třeba

services:
    authenticator: App\cesta\Authenticator
Matej123
Člen | 150
+
0
-

uz som to nastavil :) . No vyhodilo mi chybu:

Invalid combination of tabs and spaces on line 28, column 9.

Preco mi to vyhodilo, ked som si isty ze som daval iba tabs, ziadne medzery(teda ziadne kombinacie)?

Matej123 napsal(a):

nie nemam, take veci som nebol nuteny riesit na localhoste, nastavuje sa to v congig.neon? A pre ten authenticator aku cestu mam zadat?

CZechBoY napsal(a):

A máš autentikator nastaveny v konfiguraku?
Třeba

services:
    authenticator: App\cesta\Authenticator
Matej123
Člen | 150
+
0
-

aj ked nastavim ten authenticator stale mi vypisuje ze nie je nastaveny:
mam ho nastaveny v config.neon takto:

services:
authenticator: App\Model\UserManager
router: App\RouterFactory::createRouter
- App\Model\CourseManager
- App\Model\PartnerManager
- App\Forms\UserForms

Matej123 napsal(a):

uz som to nastavil :) . No vyhodilo mi chybu:

Invalid combination of tabs and spaces on line 28, column 9.

Preco mi to vyhodilo, ked som si isty ze som daval iba tabs, ziadne medzery(teda ziadne kombinacie)?

Matej123 napsal(a):

nie nemam, take veci som nebol nuteny riesit na localhoste, nastavuje sa to v congig.neon? A pre ten authenticator aku cestu mam zadat?

CZechBoY napsal(a):

A máš autentikator nastaveny v konfiguraku?
Třeba

services:
    authenticator: App\cesta\Authenticator