PHP PC/SC uvnitř presenteru

jedlicka
Člen | 70
+
0
-

Zdravím,

používám PHP rozšíření PC/SC pro čtení dat z čipové karty (viz https://pecl.php.net/package/pcsc).

Pokud funkce pcsc použiju jako skript v PHP (mimo Nette), tak je vše OK.

Pokud funkce pcsc použiju v Nette uvnitř Presenteru (ať už v action nebo handle), tak se pcsc připojí ke čtečce, načtou se data, ale neukončí se Presenter (opakovaně se volá action) a dojde k ‚ERR_CONNECTION_RESET‘ ⇒ Web není dostupný.

Nemáte někdo radu, kde je problém?

Díky.

PHP kód zde:

public function actionSmartcard() {
     # Get a PC/SC context
     $context = scard_establish_context();

     # Get the reader list
     $readers = scard_list_readers($context);

     # Use the first reader
     $reader = $readers[0];

     # Connect to the card
     $connection = scard_connect($context, $reader);

	 scard_release_context($context);
}
nightfish
Člen | 518
+
+1
-

@jedlicka Nenapadá mě, jaký by mělo mít Nette vliv na volání funkcí nějaké PHP extensiony. Doporučoval bych si to prokrokovat Xdebugem, abys zjistil, co se tam děje.

jedlicka
Člen | 70
+
0
-

Tak jsem zjistil, že problém je ve funkci scard_release_context. Pokud tam je, tak se pořád dokola volá action, dokud to nespadne na ERR_CONNECTION_RESET. Když jí zakomentuju, tak jede vše OK.