Extern PHP script(URL) oproepen en sluiten

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op een externe server draait een PHP script.
Dit script laad bij het aanroepen van het URL (http://domein.nl/script.php) wat gegevens uit een database, en plaatst deze vervolgens in een database op de webserver.
Ik heb dit script niet zelf gemaakt, dat doet de leverancier. Deze heeft het script afgeleverd, maar is nu in feite is het nog niet af.

Wat moet gebeuren is dat er op een andere server(win2003), dit script (URL) aangeroepen moet worden, wat er vervolgens gebeurt is dat er in de betreffende browser informatie te zien is, dat de database gegevens zijn geladen.. mooi, maar nu heb ik een browser welke open blijft. Dit wil ik niet.

Ik heb de tip gekregen 'ja, kijk anders even naar Cron', maar dit zegt mij dus totaal niets.. daarnaast is Cron Unix, en bestaat er wel een Windows versie van, maar ik betwijfel of ik hier nou echt in moet gaan duiken om iets wenselijks als dit te realiseren.
Ik ben benieuwd of iemand een simpele tip heeft.. normalitair kom ik wel uit dit soort omstandigheden door logisch denken, maar zit hier gewoon even vast in.

Acties:
  • 0 Henk 'm!

  • TheRookie
  • Registratie: December 2001
  • Niet online

TheRookie

Nu met R1200RT

Scheduled Tasks is het Windows equivalent van Cron.
wget is een command-line tool om url's te kunnen openen...

Acties:
  • 0 Henk 'm!

  • Jermaine
  • Registratie: Januari 2003
  • Laatst online: 18-09 12:16
Ik kan me vergissen, maar kun je dit niet oplossen met cURL?

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

En als je zoek op cron for Windows kom je niet op de Windows scheduler uit? Met alleen logisch nadenken kom je er niet hoor, soms moet je ook even zoeken. ;)

De scheduler is trouwens (net als cron) bedoeld om te timen wanneer een taak uitgevoerd moet worden. Het probleem van een open browser kun je, als zo'n taakplanner geen oplossing is, ook op andere manieren oplossen. Bijvoorbeeld door uberhaupt geen browser te starten. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • Big Womly
  • Registratie: Oktober 2007
  • Laatst online: 01-09 13:39

Big Womly

Live forever, or die trying

Via
Visual Basic .NET:
1
2
3
Dim app: Set app = CreateObject("InternetExplorer.Application")
app.Visible = False
app.Navigate "http://domein.nl/script.php"

kan je in VBScript een hidden InternetExplorer object aanmaken waarmee je je openstaande browser kan nabootsen.

When you talk to God it's called prayer, but when God talks to you it's called schizophrenia


Acties:
  • 0 Henk 'm!

  • _eXistenZ_
  • Registratie: Februari 2004
  • Laatst online: 19-09 01:03
Jij wilt dus op een externe server een PHP-script om de zoveel uur laten draaien, door met een andere machine deze te openen in de browser? Zonder dat die 2e machine eigenlijk de gegevens nodig heeft die op het scherm getoond worden?

Heb je SSH-toegang tot de server waar het script op draait?
Is dit een BSD-/ Linux-bak?
Dan gewoon je PHP-script verplaatsen naar /user/cron/jouwscript/ ofzo en 'm in de cronjob plaatsen.

[ Voor 12% gewijzigd door _eXistenZ_ op 29-07-2010 11:25 ]

There is no replacement for displacement!


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
Big Womly schreef op donderdag 29 juli 2010 @ 10:16:
Via
Visual Basic .NET:
1
2
3
Dim app: Set app = CreateObject("InternetExplorer.Application")
app.Visible = False
app.Navigate "http://domein.nl/script.php"

kan je in VBScript een hidden InternetExplorer object aanmaken waarmee je je openstaande browser kan nabootsen.
En wat je niet ziet is er niet! Je weet dat je jezelf voor de gek houdt zo?
_eXistenZ_ schreef op donderdag 29 juli 2010 @ 11:25:
Is dit een BSD-/ Linux-bak?
Dan gewoon je PHP-script verplaatsen naar /user/cron/jouwscript/ ofzo en 'm in de cronjob plaatsen.
Heb je de topicstart überhaupt gelezen na de eerste paar regels?

Gewoon de taakplanner gebruiken en met een stukje VBS of PowerShell een keer die URL aantrappen.
Visual Basic:
1
2
3
4
Set oReq = Wscript.CreateObject("WinHttp.WinHttpRequest.5.1")
oReq.Open "GET", "http://domein.nl/script.php", false
oReq.Send()
Set oReq = Nothing

Rocket science. En geen browser die telkens gelaunched wordt om niks.

[ Voor 42% gewijzigd door RobIII op 29-07-2010 13:10 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
RobIII schreef op donderdag 29 juli 2010 @ 13:03:
[...]

En wat je niet ziet is er niet! Je weet dat je jezelf voor de gek houdt zo?

[...]

Heb je de topicstart überhaupt gelezen na de eerste paar regels?

Gewoon de taakplanner gebruiken en met een stukje VBS of PowerShell een keer die URL aantrappen.
Visual Basic:
1
2
3
4
Set oReq = Wscript.CreateObject("WinHttp.WinHttpRequest.5.1")
oReq.Open "GET", "http://domein.nl/script.php", false
oReq.Send()
Set oReq = Nothing

Rocket science. En geen browser die telkens gelaunched wordt om niks.
Ontzettend bedankt, dit is inderdaad oplossing.
Wat gebeurt er precies met bij dit script? Er wordt op de achtergrond eenmaal naar een URL gecommuniceerd? Sluit deze automatisch?
Het lijkt me van wel want ik merk zo goed als geen procc load als ik de scripts (7 stuks) achter elkaar uitvoer.

Acties:
  • 0 Henk 'm!

  • HuHu
  • Registratie: Maart 2005
  • Niet online
Verwijderd schreef op vrijdag 27 augustus 2010 @ 16:04:
[...]


Ontzettend bedankt, dit is inderdaad oplossing.
Wat gebeurt er precies met bij dit script? Er wordt op de achtergrond eenmaal naar een URL gecommuniceerd? Sluit deze automatisch?
Het lijkt me van wel want ik merk zo goed als geen procc load als ik de scripts (7 stuks) achter elkaar uitvoer.
Is google stuk ofzo?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
He Tick het punt in dit script zit hem in WinHttp.
Joh? He tof man, ik zal het eens verder na lezen.

Zo kan het ook he.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

De laatste drie regels bevatten amper iets en alleen de eerste regel bevat code. Daar had je toch gewoon op kunnen zoeken? ;) Hij zegt het wat bot, maar het leek mij vrij duidelijk dat je WinHttp moest hebben. :)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • DiedX
  • Registratie: December 2000
  • Laatst online: 12:03
Sodemieter, ik vind het wel lef van TS om een extern script automatisch uit te laten voeren....

DiedX supports the Roland™, Sound Blaster™ and Ad Lib™ sound cards


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Extern wil niet zeggen dat hij geen controle heeft over wat er in dat script staat. Ik heb ook wel eens een script op mijn eigen server via een scheduled task ingepland hoor. Niks geks aan. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • RaZ
  • Registratie: November 2000
  • Niet online

RaZ

Funky Cold Medina

DiedX schreef op vrijdag 27 augustus 2010 @ 17:42:
Sodemieter, ik vind het wel lef van TS om een extern script automatisch uit te laten voeren....
Doe ik ook regelmatig hoor. Het pingen van blogservices bijvoorbeeld... Een exern script (serverside) is dus behoorlijk safe, aangezien het extern wordt uitgevoerd ;)

Ey!! Macarena \o/


Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
DiedX schreef op vrijdag 27 augustus 2010 @ 17:42:
Sodemieter, ik vind het wel lef van TS om een extern script automatisch uit te laten voeren....
RaZ schreef op vrijdag 27 augustus 2010 @ 17:50:
Doe ik ook regelmatig hoor. Het pingen van blogservices bijvoorbeeld... Een exern script (serverside) is dus behoorlijk safe, aangezien het extern wordt uitgevoerd ;)
Als je het browser object (zoals Big Womly suggereert) gebruikt is dat wel degelijk een gevaar inderdaad (en zeker in het geval van InternetExplorer.Application :X ). Die browser zal namelijk ook de response gaan parsen en renderen en uitvoeren. God knows wat je aan meuk terug krijgt (zo zou 'ie een mediaplayer kunnen launchen, java applets gaan runnen, pdf's openen etc.). Zolang je gewoon de plain HTML terug krijgt en het als tekst blijft behandelen (wat WinHTTP dus doet) is het echter completely safe (bugs daargelaten; het principe is iig safe).

[ Voor 55% gewijzigd door RobIII op 27-08-2010 22:29 ]

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Uiteraard, maar waarom quote je mij dan? :P Mijn quote gaat ook op voor het InternetExplorer.Application-verhaal, mits je server tenminste niet besmet raakt met een of ander virus. :P Maar goed, dan nog is WinHttp een betere keuze om tenminste 3 verschillende redenen. :Y)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • kluyze
  • Registratie: Augustus 2004
  • Niet online
Mag ik vragen waarom je hier zoveel servers nodig hebt? Gewoon uit nieuwsgierigheid.

Zoals ik het begrijp heb je server A met database A, en server B met database B en een php script. Nu ga je op server C een link leggen naar server B om een script uit te voeren om data van database A naar database B te kopiëren. Is het niet handiger om dit script te laten runnen op server B? Met een beetje geluk is dit een linux machine en kan je rechtstreeks 'php /path/script.php' in de crontab van die server zetten ipv. dit via de webserver software te moeten uitvoeren wat eigenlijk onmiddellijk een extra belasting van de servers met zich mee brengt.

Is server B een server die online staat? Wat gebeurt er als ik toevallig op dat adres uitkom en dat script uitvoer? Of moet je nog user en pwd mee geven?


Even nog een aanvulling van bovenstaande scripts, is het misschien niet handig om daarbij de output te controleren en dit ergens te loggen met een timestamp of het script zijn werk heeft gedaan zonder fouten?

Acties:
  • 0 Henk 'm!

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)
NMe schreef op vrijdag 27 augustus 2010 @ 19:23:
Uiteraard, maar waarom quote je mij dan? :P
Foutje, bedankt :X Opgelost :Y)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
kluyze schreef op vrijdag 27 augustus 2010 @ 21:23:
Mag ik vragen waarom je hier zoveel servers nodig hebt? Gewoon uit nieuwsgierigheid.

Zoals ik het begrijp heb je server A met database A, en server B met database B en een php script. Nu ga je op server C een link leggen naar server B om een script uit te voeren om data van database A naar database B te kopiëren. Is het niet handiger om dit script te laten runnen op server B? Met een beetje geluk is dit een linux machine en kan je rechtstreeks 'php /path/script.php' in de crontab van die server zetten ipv. dit via de webserver software te moeten uitvoeren wat eigenlijk onmiddellijk een extra belasting van de servers met zich mee brengt.

Is server B een server die online staat? Wat gebeurt er als ik toevallig op dat adres uitkom en dat script uitvoer? Of moet je nog user en pwd mee geven?


Even nog een aanvulling van bovenstaande scripts, is het misschien niet handig om daarbij de output te controleren en dit ergens te loggen met een timestamp of het script zijn werk heeft gedaan zonder fouten?
Ik denk dat de situatie hier een beetje verkeerd begrepen word.

Bedrijf heeft een database, wat met website (dus vertrouwde hosting), data synchroniseerd.
Script op de website, wordt aangeroepen middels een command op servers/bedrijf (scheduled task).
Data synchroniseerd, maar wordt pas ververst in de live (website) database om 6 uur 's ochtends.
SSL en codering is aanwezig. Perfect.
Pagina: 1