[PHP] Communicatie met niet php apps

Pagina: 1
Acties:

  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Klein vraagje..

Stel een programma stuurt data naar een php script, doormiddel van een socket. Oftewel, het proggie maakt een connectie naar de host op poort 80, en schrijft data naar een php script aldaar. Als ik niet weet hoe die data eruit ziet, is er dan een manier om dat op te vragen?
Dus om de toegezonden data weg te schrijven naar een log file, zodat ik kan zien wat er naar het script is toe gestuurd? Slaat php dat ergens op?

edit:
Vraagstelling iets aangepast :)

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • Dryw.Filtiarn
  • Registratie: September 2001
  • Laatst online: 18-03 12:10
Je zou even in je access_log kunnen kijken, misschien dat je daar iets in terug kunt vinden, maar volgens mijn logt PHP(of eigenlijk Apache) geen variabelen die gepost worden, alleen de aanroep naar de specifieke pagina.

=( Protected by witchcraft )=


  • Soultaker
  • Registratie: September 2000
  • Laatst online: 01:47
Met Apache 2 zou je wel een filter kunnen bouwen dat alle inkomende data van een request naar een logfile schrijft (als dat is wat je bedoelt). In PHP zelf wordt die content al naar de HTTP_POST_VARS geconverteerd. Overigens is het me niet helemaal duidelijk wat je nu wilt, dus als ik je hier niet mee help, moet je je vraagstelling (nog) maar even wat toelichten. =)

Apache zelf logt trouwens alleen de request; niet de headers of de body van een request.

  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Op zaterdag 26 januari 2002 21:21 schreef Soultaker het volgende:
Met Apache 2 zou je wel een filter kunnen bouwen dat alle inkomende data van een request naar een logfile schrijft (als dat is wat je bedoelt).
Nope, dat bedoel ik niet.. ik bedoel echt vanuit het php script.
Op zaterdag 26 januari 2002 21:21 schreef Soultaker nog meer:
In PHP zelf wordt die content al naar de HTTP_POST_VARS geconverteerd.
Yupz, dat d8 ik nou ook. Maar hoewel het programma wel lijkt te posten, gezien dat onderstaande via de socket wordt verstuurd, is HTTP_POST_VARS leeg (track_vars staat aan!).
code:
1
POST /script.php HTTP/1.0\r\n

Dus stel dat dat niet lukt, is er nog een andere manier
om te zien waar de verstuurde data is gebleven?
Is er nog een overkoepelende variabele waar HTTP_POST_VARS een onderdeel van is? Aangezien deze alleen wordt gevuld als er daadwerkelijk gepost is.. En misschien is dat dan niet het geval..

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • vinnux
  • Registratie: Maart 2001
  • Niet online
Het enige wat je kan doen is een socket verbinding maken naar een webserver en via een GET aanroep, de betreffende pagina opvragen. Je kunt geen data naar een willekeurig script pompen, althans niet direct. Dus je dien HTTP's tegen dat socket te praten.
Je zult dan altijd zoiets moeten doen als GET /bla/php.php?w=cbkcbewjkcbewjklcbwkecbwekcbwekbcjkwbc.ekwbc(hoop onzin)

Wat je wel kunt doen is een php script maken dat naar een poort luisterd. Daar kan je wel direct contact mee maken.
Maar dan moet je nog steed een daarna een php pagina aanroepen om de data te verwerken.

Maar wat wil je er precies mee ?

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op zaterdag 26 januari 2002 20:44 schreef Funcracker het volgende:
Als ik niet weet hoe die data eruit ziet, is er dan een manier om dat op te vragen?
Als je geen correcte http-requests wilt gaan sturen kan je beter een "dedicated" server maken (op een andere poort met een eigen 'protocol') ;)

Verder is alles er wel over gezegd vermoed ik.

  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Okay.. Laat ik heel duidelijk proberen te zijn nu :)

Ik heb een stuk software (niet zelf geschreven) wat kan communiceren met programma's/scripts over het internet.
Dat dit kan werken is al bewezen, want normaliter communiceert het met een CGI(Perl) script. Ik probeer deze te vervangen door een eigen PHP script om de functionaliteit te veranderen. Het PHP script wordt aangeroepen, dat blijkt uit de logfiles die het script zelf wegschrijft, elke keer als het wordt uitgevoerd. Het programma zou met de POST methode data moeten versturen, maar dit lijkt niet te werken en dat ligt of aan mijn script, of aan het programma.. Logischerwijs zou de data van het programma in mijn HTTP_POST_VARS moeten staan.. Maar deze is elke keer leeg. Ik vroeg me af of ik dan op een andere manier, vanuit het php script, dan kon zien of ik wel data had gekregen..

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy


  • Janoz
  • Registratie: Oktober 2000
  • Laatst online: 12-09 21:31

Janoz

Moderator Devschuur®

!litemod

Het is mischien het makkelijkst om zelf ff een echo server te maken (Een prog dat op een poort luistert, en alles dat binnenkomt in een log gooit oid).. Dan kun je vervolgens in het log kijken wat er allemaal gestuurd is. Een andere mogelijkheid is om het programma te laten posten naar een script met daarin alleen php_info();. Hierdoor kun je precies zien wat er wel enniet gevuld is.

Ken Thompson's famous line from V6 UNIX is equaly applicable to this post:
'You are not expected to understand this'


  • Funcracker
  • Registratie: Juni 2001
  • Laatst online: 28-04 18:17

Funcracker

The LedZ Collective

Topicstarter
Op zondag 27 januari 2002 13:47 schreef Janoz het volgende:
Een andere mogelijkheid is om het programma te laten posten naar een script met daarin alleen php_info();. Hierdoor kun je precies zien wat er wel enniet gevuld is.
Ehmm.. Klinkt leuk.. maar dat programma krijgt dan de output van phpinfo() voor zijn kiezen, in tegenstelling tot wat hij terug wil.. En ik zie dan dus niet wat er teruggestuurd is. Toch? Of begrijp ik dit verkeerd?

I am one hell of a guy, I can do anything I want, only I just don't have the faintest idea what.
Zaphod Beeblebrox, in The Hitch Hiker's Guide To The Galaxy

Pagina: 1