Archief - PHP: mogelijk om "refresh" in client browser te forceren?

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

Calvin

Legacy Member
Hoi,
Is het mogelijk om met php een "refresh" van een client browser af te dwingen?
Het zit dus zo: Er draait een php applicatie op de webserver, daarop zijn 2 of meer gebruikers aangelogd. Wanneer één van de twee iets wijzigt door middel van forms in zijn browser, dan zou de andere dat meteen moeten zien.
bv: ik typ een text in een textform en klik op een submit button, in mijn browser komt er dmv mysql een tabel tevoorschijn. De ander zou die tabel ook moeten zien wanneer er ge-submit wordt. m.a.w. mijn klik op submit moet beide client browsers "refreshen"
Is dat eigenlijk mogelijk?

Lieven

Zero Grav

Legacy Member
ik geloof wel dat het mogelijk is want www.e-messenger.net & webmessenger.msn.com maken er allebei gebruik van. Het zal ook werken met een combinatie van javascript en php ipv alleen php..

Verder kan ik er ook niks over zeggen.

xml

Legacy Member
daarvoor moet ge denk ik een applicatie draaien. (gebeurt waarschijnlijk ook zo op die messenger-services via webpages)

Calvin

Legacy Member
Klinkt hoopgevend :confused:
Maar da wordt dus zoeken gelijk ne zot verondestel ik. Enfin, 'k zal da wel uitvlooien.
merci hé.

Lashknife

Legacy Member
applet, want ge moet een connectie naar een server leggen die continue checkt of er wijzigingen zijn, en een applet is daarvoor het beste...

via php kan dit niet, aangezien php niks anders doet dan wat pre-renderen en doorsturen...

javascript? ja het kan, maar je zou quasi elke seconde moeten liggen checken met een server (dus een php-page refreshen) en dat is alles behalve optimaal...

H@voc_!nc.

Legacy Member
gewoon met ne meta-tag

Code:
<meta http-equiv="refresh" content="5; URL=http://" />

Lashknife

Legacy Member
havoc, tgaat hem niet om elke keer te refreshen, maar om een goede manier om data polling te doen om te zien of er iets gewijzigd is...

bovendien zou je met een applet een open-connectie kunnen houden, en vanop de server een puls naar jouw sturen als er iets wijzigt (alle, denk da, ben al laaaang uit java :p )

dJeez

Legacy Member
Een applet lijkt mij idd ook wel de meest aangewezen oplossing voor dit probleem. Via een applet kan je een nieuwe URL opvragen (en dus ook de huidige pagina refreshen). Het simpelste hierbij is om de X aantal seconden te gaan pollen (kan ook via javascript met XML requests trouwens).

Calvin

Legacy Member
Ok, als ik dat zo zie, dan moet ik javascript gaan leren.
Allé, merci ver de replies, kga me vandaag nog een boekske over javascript aanschaffen.

H@voc_!nc.

Legacy Member
Idd niet tegoei gelezen... hetgeen gij wilt doen is niet mogelijk met php, dan moette met client-server oplossing werken. Want php werkt via request response ... Een mogelijkheid is idd een java-applet maar das nog nie zo simpel :p

het beste da ge kunt doen is... as ge submit controleren of er een meer reecente versie en dan de 2 versies naast elkaar laten zien.
da ist famueze principe van deadlocks (dining philosophers, bankiersalgorithme :p) dus hf :) et beste is imo ner ne lock op leggen met nen time-out. bvb user_1 wilt pagina2 aanpassen user_2 wil hetzelfde doen gewoon user_1 laten weten no can do resource in gebruik

Calvin

Legacy Member
het zou sowieso door ne "submit" gebeure, 't gaat over een stom turn-based spelleke en der is één webpage die als gameboard dienst doet. elke keer as ne speler zijne move heeft gedaan, dan klikt em op ene button en devolgende mag. Maar dan moet die dus best wel zien wat den eerste gedaan heeft hé. :)
Da wordt prutse en prulle denk ik.
As ge da zo zie staan, welke programmeertaal / script zoudt ge mij dan aanraden misschien?

H@voc_!nc.

Legacy Member
gen http protocol in ieder geval :)

java/c++/delphi/perl/vb .net ... (in de volgorde van verschijnen :p)

GEEEEEN JAVASCRIPT

killgore

Legacy Member
Het kan zelfs volledig in php :p.

Als je timeout op zowat ongelimiteerd zijn kan je met een while lus en sleep() al veel uitvoeren in php alleen :p.

vb.:

PHP:
flush();
while(true)
{
     // Checken of refresh nodig is
     if(refresh)
     {
         //Refresh code
     }
     sleep(2); //Sleep for x seconds
}
nadelen: load, html output volledig met php zenden, page wordt bij client nooit volledig geladen
voordelen: eigenlijk geen, buiten dat je geen fancy dingen nodig hebt :p.

Calvin

Legacy Member
tja, php was sowieso al géén goed keus om mee te beginnen. Voor dit soort applicaties dan toch. Enfin, wat ik ondertussen van php heb geleerd kan ook nog handig van pas komen voor allerlei andere projectjes.

Maar voor m'n spelleke te maken hebbek ff in m'n kast gaan graven en vette cursus van C++ terug opgediept. Moetek alleen nog een cursuske of boekske vinden over sockets. Java heb ik ook nog ff overwogen maar da's altijd zo'n gekloot met die runtime enzo. Trouwens, de server marcheert op linux en da is gewoon gemaakt voor en door C/C++

allé, lezen die handel!

dJeez

Legacy Member
Heb je een dedicated server? Indien neen, ben ik er vrij zeker van dat hosting providers bij shared hosting accounts niet direct om 't even wie toelaten om extra software te installeren. Berg je boeken dan maar terug op...

Calvin

Legacy Member
dJeez zei:
Heb je een dedicated server? Indien neen, ben ik er vrij zeker van dat hosting providers bij shared hosting accounts niet direct om 't even wie toelaten om extra software te installeren. Berg je boeken dan maar terug op...

:D Ik heb mijn eigen apache2 server met mysql en php en héél de nest geïnstalleerd. 't is wel nen ouden bak AMD K6-II maar da marcheert toch goe genoeg. En da spul is bereikbaar vanop 't net en alles dus da zou geen probleem mogen zijn. :)
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan