Istalacar
19.12.2010, 00:50:46
Witam
Ostatnimi czasy udało mi się stworzyć w c# prymitywny, ale mimo wszystko skuteczny serwer http.
Zacząłem się bawić w rozszerzanie jego funkcjonalności i na obecną chwilę potrafi przekazać skrypt do php.exe, a następnie to co aplikacja wyrzuci, wysłać do klienta. Wszystko było by dobrze, gdyby nie to, że niestety nie wiem jak przekazać dane php tak bym mógł ich użyć za pomocą $_GET i $_POST. Google by zapewne mi pomogło, ale nie wiem nawet o co pytać, żeby mi nie wyskoczyły kolejne "how to" instalacji php z Apachem.
Czy ktoś kiedyś natknął się na taki problem i byłby w stanie mnie nakierować na rozwiązanie?
Z góry dzięki
Istalacar
Crozin
19.12.2010, 01:22:27
A patrzyłeś może jak to wygląda w przypadku Apachea właśnie? W źródłach PHP są również źródła mod_php dla Apachea i z tego co widzę nie ma tego wiele - możesz podejrzeć.
Istalacar
21.12.2010, 22:00:41
W te moduły trzeba by się jakoś bardziej zagłębić. Po prostu otworzenie ich i przeczytanie nie da za wiele, bo jest za dużo odwołań do funkcji używanych w całym projekcie, a całego kodu php mimo nie mam ani czasu, ani siły na przeczytanie.
Jako rozwiązanie tymczasowe używam uruchamiania php.exe przekazując mu adres do kodu źródłowego, oraz zmienne jako parametry, potem za pomocą dyrektywy "auto_prepend_file" w php.ini, przed każdym wywołaniem skrypty php wywołuję mój kod, który przerabia parametry na zmienne $_GET etc.
Pomimo wydajności wystarczyło by mi to rozwiązanie, gdyby nie to, że php.exe nie wysyła nagłówków (informacji wysyłanych za pomocą funkcji header).
Funkcję tą obsługuje php-cgi.exe, jednakże ten nie obsługuje przekazywania danych przez argumenty (nie tworzy zmiennych argv i argc).
Na obecną chwilę znalazłem, że uruchamiając php-cgi z parametrem -B, można go uruchomić w trybie fastcgi, zatem przekopuję google i szukam w jaki sposób można to wykorzystać, jeśli się dokopię, oraz znajdę chwilę czasu to napiszę tutaj o tym.
JohnnyB
22.12.2010, 08:34:35
kiedyś zrobiłem coś podobnego, ale tak dawno, że już nie pamiętam po co

moim zdaniem najprościej będzie korzystać z php-cgi
teoretycznie parametry GET przekazujesz ustawiając zmienną środowiskową QUERY_STRING zgodnie z tym co pisze
tu i
tu ale czy to wystarczy to nie pamiętam
jeśli chodzi o POST to chyba przekazujesz przez standardowe wejście, ale najlepiej sprawdź w specyfikacji CGI