PHP-CGI obsługa cookies

Odpowiedz Nowy wątek
2011-03-23 14:34

Rejestracja: 13 lat temu

Ostatnio: 2 lata temu

0

Jak z poziomu wiersza poleceń wywołać plik php ze zdefiniowanymi ciasteczkami i vice versa, jak później odczytać ciasteczka po wywołaniu pliku?

Skoro tego nikt nie wie, to może chociaż podeśle mi ktoś jakiś tutek o php-cgi/cli?


edytowany 2x, ostatnio: wanter, 2011-03-24 13:55

Pozostało 580 znaków

2011-03-26 22:22

Rejestracja: 8 lat temu

Ostatnio: 8 lat temu

0
wanter napisał(a)

Jak z poziomu wiersza poleceń wywołać plik php

#php skrypt.php
#php /var/www/skrypt.php


php, js-jquery, java, as3:: lamp

Pozostało 580 znaków

2011-03-26 23:58

Rejestracja: 12 lat temu

Ostatnio: 8 miesięcy temu

0
wanter napisał(a)

Jak z poziomu wiersza poleceń wywołać plik php ze zdefiniowanymi ciasteczkami i vice versa, jak później odczytać ciasteczka po wywołaniu pliku?

Skoro tego nikt nie wie, to może chociaż podeśle mi ktoś jakiś tutek o php-cgi/cli?

Z ciasteczkami? Od tego jest $_SERVER['argc'] i $_SERVER['argv'] w PHP/CLI akurat...


Women were the reason I became a monk - and, ah, the reason I switched back...
edytowany 1x, ostatnio: Demonical Monk, 2011-03-26 23:58

Pozostało 580 znaków

2011-03-27 00:41

Rejestracja: 13 lat temu

Ostatnio: 2 lata temu

0
root4 napisał(a)
wanter napisał(a)

Jak z poziomu wiersza poleceń wywołać plik php

#php skrypt.php
#php /var/www/skrypt.php

Tyle to wiem, ale ciasteczka, które wymaga plik php nie zostaną przekazane.

Demonical Monk napisał(a)
wanter napisał(a)

Jak z poziomu wiersza poleceń wywołać plik php ze zdefiniowanymi ciasteczkami i vice versa, jak później odczytać ciasteczka po wywołaniu pliku?

Skoro tego nikt nie wie, to może chociaż podeśle mi ktoś jakiś tutek o php-cgi/cli?

Z ciasteczkami? Od tego jest $_SERVER['argc'] i $_SERVER['argv'] w PHP/CLI akurat...

A można jaśniej? Jakiś przykład z linii poleceń?


edytowany 1x, ostatnio: wanter, 2011-03-27 00:44

Pozostało 580 znaków

2011-03-27 00:51

Rejestracja: 12 lat temu

Ostatnio: 8 miesięcy temu

0

php skrypt.php lubie kaszke

<?php
echo $_SERVER['argv'][1]; //lubie
echo $_SERVER['argv'][2]; //kaszke
?>

php skrypt.php "lubie kaszke"

<?php
echo $_SERVER['argv'][1]; //lubie kaszke
?>

Jeśli nie masz polecenia "php" to użyj "php5" albo "php-cgi" - działanie identyczne. Dodatkowo, możesz zrobić z PHP tak samo jak ze skryptem basha. Piszesz plik:

#!/usr/bin/php-cgi
<?php
echo $_SERVER['argv'][1];
?>

Zapisujesz (np. pod nazwą skrypt.php), robisz chmod +x skrypt.php i możesz wywoływać sobie skrypt wpisując w terminalu po prostu:
./skrypt.php "lubie kaszke"
W przypadku takiego "upraszczania" musimy rozpocząć skrypt od linii #!/usr/bin/php-cgi która wskaże ścieżkę do interpretera. Oczywiście nie trzeba tego robić jeśli wywołujemy skrypt komendą php-cgi skrypt.php costam.


Women were the reason I became a monk - and, ah, the reason I switched back...

Pozostało 580 znaków

2011-03-27 01:00

Rejestracja: 13 lat temu

Ostatnio: 2 lata temu

0

Niestety takie rozwiązanie mnie nie interesuje. Muszę z linii poleceń wysłać jakoś ciastka do PHP i je odebrać.


Pozostało 580 znaków

2011-03-27 01:12

Rejestracja: 12 lat temu

Ostatnio: 8 miesięcy temu

0

Nie da się. To jest specyficzny mechanizm używany wyłącznie w skryptach serwujących zawartość stron internetowych. Nie można zrobić z tego użytku w trybie CLI. Możesz zrobić mały workaround:

// na górze skryptu:
$ciastka = array();
foreach($_SERVER['argv'] as $arg) {
   $tmp = explode('=', $arg, 1);
   $ciastka[$tmp[0]] = $tmp[1];
}
$_COOKIE = $ciastka;

Wtedy wywołując skrypt tak:

php skrypt.php "kaszka=tania pozywna" "piwo=debowe mocne" x=333

Dostaniesz w $_COOKIE coś takiego:

echo $_COOKIE['kaszka']; //tania pozywna
echo $_COOKIE['piwo']; //debowe mocne
echo $_COOKIE['x']; //333

Ale to i tak tylko obejście problemu. (No i nie odbierzesz ciastek, chyba że sobie wygrepujesz) Wypadałoby przepisać skrypt jeśli chcesz używać go w CLI, tak żeby nie używał ciastek.


Women were the reason I became a monk - and, ah, the reason I switched back...
edytowany 1x, ostatnio: Demonical Monk, 2011-03-27 01:13

Pozostało 580 znaków

2011-03-27 01:15

Rejestracja: 13 lat temu

Ostatnio: 2 lata temu

0

Musi się jakoś dać. To jak Apache w trybie CGI obsługuje ciastka? Dzięki w każdym razie za odpowiedzi.


Pozostało 580 znaków

2011-03-27 01:18

Rejestracja: 12 lat temu

Ostatnio: 8 miesięcy temu

0

Ciasteczka są wysyłane do użytkownika nagłówkiem odpowiedzi, a otrzymywane od użytkownika nagłówkiem zapytania. Czyli de facto wszystko siedzi w nagłówkach które apache parsuje i ustawia odpowiednie zmienne środowiskowe w PHP. Cały ten interes idzie przez HTTP. Pod CLI nie ma gdzie przechować tych ciastek, dodatkowo CLI używa po prostu konsoli jako wejścia/wyjścia, nie korzysta z HTTP. Skrypt kompatybilny z CLI niestety nie może używać ciastek, jest wiele innych możliwości do wykorzystania. Jeśli coś wymaga ciastek w trybie konsolowym to jest źle napisane...


Women were the reason I became a monk - and, ah, the reason I switched back...
edytowany 1x, ostatnio: Demonical Monk, 2011-03-27 01:20

Pozostało 580 znaków

2011-03-27 01:24

Rejestracja: 13 lat temu

Ostatnio: 2 lata temu

0

A masz może namiary na jakiś tutorial, który opisuje jak to zrobić przez fcgi phpa? Czyli jak połączyć się z serwerem php na porcie i przesłać mu to wszystko do przetrawienia, a później odebrać?


Pozostało 580 znaków

2011-03-27 01:27

Rejestracja: 12 lat temu

Ostatnio: 8 miesięcy temu

0

Co to jest za skrypt, że nie możesz go po prostu przerobić? Łącznie się przez HTTP jest bezcelowe i mniej wydajne...


Women were the reason I became a monk - and, ah, the reason I switched back...

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0