lus met pauze

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

30/06/2004 05:12:00
Quote Anchor link
Hallo allemaal,

Ik heb een logbestand waarin geschreven wordt op het moment dat er iemand in mijn chatbox komt. Is er niemand, dan is het logbestand leeg.
Nu wil ik dat als er iemand de chatbox inkomt ik een waarschuwingssignaal krijg in de vorm van geluid.
Hier ben ik in zoverre in geslaagd dat er op zich wel een geslaagde beoordeling en afhandeling plaatsvindt, echter maar 1 keer.
Daarentegen wil ik voortdurend op de hoogte gehouden worden. Ik heb dit geprobeerd te bereiken met een oneindige while-lus, echter werkt dit niet. Mijn computer moet dan waarschijnlijk zo hard werken dat deze niet eens tijd heeft enige output te geven (mijn systeem wordt uiterst traag), behalve dan na 30 seconden, wanneer mijn systeem zelf met een error-bericht aan de noodrem trekt.
Dus dacht ik vervolgens aan een kleine vertraging in te bouwen voor elke herhaling van de lus.
Ik weet dat ik dit (lang geleden) eerder heb gedaan met JavaScript, maar heb geen idee meer hoe dat ging. Bovendien is JavaScript natuurlijk niet het zelfde als PHP.

Kan iemand mij aan de hand van onderstaand script uitleggen hoe ik dit het beste kan doen?

(Het begin en eind van waar de lus moet plaatsvinden heb ik aangegeven met commentaarregels.
Met o.a. de toevoeging en bewerking van [$geheugen] probeer ik te bereiken dat ik alleen een geluidsignaal te horen krijg als er iets aan het logbestand wordt toegevoegd en niet al toegevoegd is.)


Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
<?php

$bewaar
=1;

/* begin herhalingslus */

$fopen = fopen("data/usr","r");

$data = fgets($fopen, 45);
$len = strlen($data);

if (($len > 1) && ($len > $geheugen))
{

echo ("<script>document.write('<object type=\"application/x-shockwave-flash\" data=\"msg.swf\" width=\"1\" height=\"1\"><param name=\"movie\" value=\"msg.swf\"></object>');</script>");
}


fclose ($fopen);
$len = $geheugen;

/* einde herhalingslus. Vanaf dit punt wil ik een vertraging van enkele seconden inbouwen voordat er terug wordt gekeerd naar het begin van de herhalingslus */

?>
 
PHP hulp

PHP hulp

23/11/2024 10:17:20
 

30/06/2004 05:15:00
Quote Anchor link
Herstel:

$bewaar=1;

moet zijn

$geheugen =1;
 
B a s
Beheerder

B a s

30/06/2004 09:10:00
Quote Anchor link
ik weet niet hoe je zoiets doet maar ik zou even goed nadenken over alternatieven, want lussen met php die oneindig zijn doen idd niet echt veel, ligt niet aan je systeem maar hij trekt het gewoon niet.. je moet altijd wel een max. nummer hebben.

wat jij wil is een lus waar af en toe 2 sec. tussen zit en vervolgens weer laten denken, 2sec. weer laten denken etc. Ik kan je nu al vertellen, dat dit zo traag is dat je het niet eens wil want hij is constant bezig, dat trektie ook niet...

wat je wel kunt doen, (zover je dit kunt gebruiken) is een tijd bijhouden oid en als er wat gedaan wordt de huidige tijd matchen met de bijgehouden tijd, misschien levert dat je iets op?! ik raad je de oneindige met interval lus af iig, maar je mag het altijd nog zelf ondervinden als je het toch wil.. :) laat ff horen wat je gaat doen ben wel benieuwd
 
Mitch X

Mitch X

30/06/2004 10:36:00
Quote Anchor link
Mss een ifje en dan de page elke 10 secs refreshen ipv die loop?
 
Harald

Harald

30/06/2004 12:17:00
Quote Anchor link
Quote:
wat je wel kunt doen, (zover je dit kunt gebruiken) is een tijd bijhouden oid en als er wat gedaan wordt de huidige tijd matchen met de bijgehouden tijd, misschien levert dat je iets op?!


Dit lijkt me uitstekend!
Ook dit heb ik lang geleden ooit met JavaScript gedaan, maar helaas ook vergeten hoe dat moet. Ik zal weer effe moeten gaan zoeken.

Quote:
Mss een ifje en dan de page elke 10 secs refreshen ipv die loop?


Deze optie valt af, aangezien ik wil dat bepaalde waarden onthouden worden, zodat als er iemand in de chatbox is er niet om de seconde een bel klinkt aangezien hij bij controle steeds weer opnieuw ontdekt dat er iemand is.
 
Mitch X

Mitch X

30/06/2004 12:18:00
Quote Anchor link
Dat kun je in een sessie, koekje of file zetten ...
 
Harald

Harald

30/06/2004 12:39:00
Quote Anchor link
Quote:
Dat kun je in een sessie, koekje of file zetten ...


Ja, dat is waar. Alleen ben ik bang dat ik voor de optie sessie en cookie nog een tijdje moet doorleren, want daar heb ik werkelijk nog geen kaas van gegeten. Ik weet niet eens wat "sessie" betekent. Een functie? Zoals onder?

functie()
{
whatever...
}
 
Mitch X

Mitch X

30/06/2004 12:50:00
Quote Anchor link
Neej een sessie is een serverside cookie :)
En die gebruik je zo:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
<?
$waarde
= "De data die ik wil bewaren!";
$_SESSION['bewaar'] = $waarde;
?>
 
Harald

Harald

01/07/2004 11:10:00
Quote Anchor link
Ik neem aan dat die waarde dan in de MySQL-database wordt opgeslagen?
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.