aftellen van 30 min naar 0 min??

Status
Niet open voor verdere reacties.

JB'tje

Gebruiker
Lid geworden
31 mei 2004
Berichten
556
hallo,

het ziet er nu echt naar uit dat er een site gaat komen... (die ook werkt :)) maar, ik heb nog een paar (3 d8 ik) problemen.

1) Ik moet een teller hebben ( time(); of date(M) ) dit continu afteld van 30 min naar 0 min en dan weer overnieuw begint.

2) Ik moet een script hebben, dat om de 30 minuten 1
keer geactiveerd word. Deze moet b.v. gold geven aan de spelers (of drink paketten of voedsel enz.) dit script moet op de server staan.... (ik denk dus niet dat het kan... :'( )

3) de site moet veilig zijn. niet dat iemand zomaar gegevens kan krijgen die die niet mag.... (of met een simpel progje een password kan achterhalen)

ik hoop dat iemand een oplossing weet voor deze probleemen

JB'tje :cool:
 
hmm

Met die teller zou je het beste met time(); en de database kunnen werken en een functie schrijven. Elke keer als die functie aangeroepen word, word er gekeken of er al 30 minuten zijn verschreken. is dat zo, dan word er dus goud gegeven. time(); is in seconden vanaf het jaar 1970 (ofzo :p). Hier beantwoord ik volgens mij ook vraag 2 mee.

Als jij 'n leuk en moeilijk wachtwoord op je database heb staan (dus niet je achternaam ofzo) dan word het al moeilijk om wachtwoorden te achterhalen. PHP genereert de HTML code aan de hand wat er gegeven is. Dus je kan nooit in de broncode opzoeken wat het wachtwoord van de beheerder is (tenzij je dat er zelf inzet :p).

Gr. Thomas
 
Met die teller zou je het beste met time(); en de database kunnen werken en een functie schrijven. Elke keer als die functie aangeroepen word, word er gekeken of er al 30 minuten zijn verschreken. is dat zo, dan word er dus goud gegeven.
ja, dat is de bedoeling. maar hoe doe ik dat???
ik moet daarvoor dus een script continu laten lopen....
dit kan niet door een speler die het activeerd... want, als er op een moment (31 min) geen speler speelt (en dus het script niet geactiveerd is) dan word er ook geen goud bij geschrefen.....

hoe moet ik dit dan doen??? want .exe filles kunnen niet geactiveerd worden op een server :)
Als jij 'n leuk en moeilijk wachtwoord op je database heb staan (dus niet je achternaam ofzo) dan word het al moeilijk om wachtwoorden te achterhalen. PHP genereert de HTML code aan de hand wat er gegeven is. Dus je kan nooit in de broncode opzoeken wat het wachtwoord van de beheerder is (tenzij je dat er zelf inzet :p).
ooh, dan moet ik de w8woorden maar eens uit mijn script gaan verweideren...:eek: dammn....

het gaat niet alleen om w8 woorden maar om de gehele site...

verder het ik er net nog een probleempje bij gekregen.
4) je moet op mijn site berichten kunnen verstuuren, maar ik moet een script laten tellen hoeveel berichten je hebt. Dit lukt niet echt....
b.v. in de tabel staat een "ontvangerID" en als die b.v. 16 is dan moet er een bij op worden geteld (in een varriable) hoe moet dat???

JB'tje :D
 
4) je moet op mijn site berichten kunnen verstuuren, maar ik moet een script laten tellen hoeveel berichten je hebt. Dit lukt niet echt....
b.v. in de tabel staat een "ontvangerID" en als die b.v. 16 is dan moet er een bij op worden geteld (in een varriable) hoe moet dat???

Zelf ben ik nu ook niet zo'n PHP held, maar volgens mij moet je deze variabele gewoon opslaan in de DB en vervolgens iedere keer als er een bericht geplaatst wordt uitlezen, er 1 bij optellen en weer in de DB zetten...

Probleem opgelost (volgens mij dan... :cool: )

Op de andere vragen kan ik geen antwoord geven, want dat weet ik zelf niet :p
 
Je schrijft een functie die ophaalt vanaf wanneer er gereset is. Als de functie 2 uur niet is aangeroepen, dan voert ie dus 4x de actie uit (tot het goud toevoegen)
 
Ik ben nog te noob om je antwoorden te kunnen geven, maar ik vind het wel allemaal spannend klinken...
ben erg benieuwd naar je site :)
 
Geplaatst door masterprut
Je schrijft een functie die ophaalt vanaf wanneer er gereset is. Als de functie 2 uur niet is aangeroepen, dan voert ie dus 4x de actie uit (tot het goud toevoegen)

tja, dat is waar, dat zou moeten werken.... maar, als er b.v. 2 spelers zijn. op het zelfde moment aan het spelen. dan word er als het goed is ook 2 keer goud bijgeschrefen als het maar een keer moet.
en ook weet ik niet echt hoeik het moet doen.... :(

ik zit te denken aan iets als:

je hebt een getal int(time() / 1800) in de database staan. (eeh, bij "int" bedoel ik afronden naar beneden)
als vervolgens blijkt dat int(time() / 1800) groter is dan dat getal dat in de database staat, dan geef je iedereen zoveel goud erbij....

maar, de tijd die het script nodig heeft om alles te berekenen enzo en de gegevens uit de database op te halen en weer wegschrijfen is best veel. dus, in die tijd kan het script meer dan een keer geactiveerd worden....
dus, ik denk niet dat dit gaat werken....

Zelf ben ik nu ook niet zo'n PHP held, maar volgens mij moet je deze variabele gewoon opslaan in de DB en vervolgens iedere keer als er een bericht geplaatst wordt uitlezen, er 1 bij optellen en weer in de DB zetten...

eeh, ja, dan is het probleem opgelost.... het is wel een beetje veel werk om dat op die manier te doen.... ik weet dat het sneller kan met een of andere code mysql_fetch_object of met mysql_fetch_row
maar ik weet niet hoe ik dat moet gebruiken....

Ik ben nog te noob om je antwoorden te kunnen geven, maar ik vind het wel allemaal spannend klinken...
ben erg benieuwd naar je site :)
de site is: http://members.lycos.nl/battlesoftime
maarja, dat is alleen nog maar de voorpagina.... verder is de register pagina af en nog een paar....
het duurt nog wel een tijdje voordat het spel echt klaar is...

JB'tje
 
Geplaatst door JB'tje
het bestaat dus toch......
als jij er niet geweest was JPeetje, dan was mijn site een grote flop geweest.... (vanaf het begin al)
Enkele anderen hebben hier en daar ook meegeholpen (masterprut bijv. ;)), maar thanx :o
alleen, snap na pagina 4 van het artiekel http://www.phpfreakz.nl/artikelen.php?aid=44&page=4 er niet echt veel meer van.

b.v. waar ik de regels moet intypen enzo.
Nu we het commando voor het maken van de HTTP-request weten, wordt het tijd om dit commando op bepaalde tijdstippen uit te laten voeren. Hiertoe kunnen we naar de Linux shell gaan (je dient hiervoor natuurlijk wel over een server te beschikken die shell toegang enabled heeft en je rechten geeft om cron jobs aan te maken) en het volgende commando intikken [...]
 
Geplaatst door JPeetje
Enkele anderen hebben hier en daar ook meegeholpen (masterprut bijv. ;)), maar thanx :o

hoor je dat masterprut??? je bent zo ongeveer meervoud.... :p
ja, het komt natuurlijk ook door masterprut.... zonder hem zou ik nu er nog steeds van overtuigd zijn dat je een php script NIET moet afsluiten met een ; ..... hahahaha :D

Hiertoe kunnen we naar de Linux shell gaan (je dient hiervoor natuurlijk wel over een server te beschikken die shell toegang enabled heeft en je rechten geeft om cron jobs aan te maken) en het volgende commando intikken [...]

eeh ja, het staat er.... (dammn, weer niet goed gelezen...)
goed, volgende vraag, wat is "Linux shell" en waar kan ik het vinden. Ik denk niet dat ik het op mijn locale host kan vinden omdat ik geen linux heb.... maar, kan ik het wel vinden bij tripod??? en hoe kan ik daar dus achter komen???
en dus ook de vraag ALS tripod dat heeft, geeft tripod mij rechten om cron jobs aan te maken????

JB'tje
 
Geplaatst door JB'tje
goed, volgende vraag, wat is "Linux shell" en waar kan ik het vinden.
Een Linux shell is een shell onder Linux, een shell is een commandovenster, net zoiets als een ms-dos prompt onder Windows.
Ik denk niet dat ik het op mijn locale host kan vinden omdat ik geen linux heb.... maar, kan ik het wel vinden bij tripod??? en hoe kan ik daar dus achter komen???
en dus ook de vraag ALS tripod dat heeft, geeft tripod mij rechten om cron jobs aan te maken????
Jij hebt 't hoogst waarschijnlijk niet op je localhost nee :p
De host waarop je cron jobs wil gebruiken moet natuurlijk wel cron jobs ondersteunen, anders kun je 't niet gebruiken en ik geloof niet dat lycos dit ondersteunt ...
 
dammn, dan moet ik dus eerst investeren voordat k er iets kan verdienen...
alleen dan nog mijn probleempje, hoe kan ik te weten komen dat een host cron jobs heeft????
of weet iemand misschien een host die dat heeft en niet al te duur is....


JB'tje
 
Geplaatst door JB'tje
dammn, dan moet ik dus eerst investeren voordat k er iets kan verdienen...
Een online spel op een gratis host met waarschijnlijk ads e.d. zal 't zowieso niet zo goed doen :)
Betaalde hosting is toch wel een must.
alleen dan nog mijn probleempje, hoe kan ik te weten komen dat een host cron jobs heeft????
Tussen de lijst met ondersteuning voor PHP, MySQL enzo heb ik nog nooit 'Cron jobs' gezien, dus of d'r zijn heel weinig hosts die 't hebben of ze zetten 't niet in hun specificatielijst ;)
Het beste wat je dan kan doen is een mailtje sturen naar de host waarin je vraagt of ze 't ondersteunen.
of weet iemand misschien een host die dat heeft en niet al te duur is....
Google
 
Tussen de lijst met ondersteuning voor PHP, MySQL enzo heb ik nog nooit 'Cron jobs' gezien, dus of d'r zijn heel weinig hosts die 't hebben of ze zetten 't niet in hun specificatielijst ;)

voor zover ik te weten ben gekomen (van mijn vader) heeft ELKE linux server cron jobs. alleen of ze het ook door mij laten gebruiken.... dat is de vraag...

Het beste wat je dan kan doen is een mailtje sturen naar de host waarin je vraagt of ze 't ondersteunen.
tja, dat moet dan maar.... 'k hoop dat ik wat vind bij www.cashmoneybrothers.be voor zover ik weet is het een goede hosting bedrijf en ook met linux servers...

maarja, eerst moet de site af.... :confused:

JB'tje
 
Vergeet niet dat als je spel een beetje goed gaat lopen, je het je ook kan veroorloven om een eigen server op te zetten. Dan zijn de mogelijkheden eindeloos ;)
 
ik heb net weer een pagina afgerond.... de pagina waar je komt als je voor het eerst inlogd. Daar kun je je password weizigen....
nu kan ik eindelijk beginnen met de"base.php" de site waar je komt als je gewoon inlogd. :D

maar over die server, hoe bedoel je dat eigenlijk??? want dat kun je op 2 manieren bedoelen (d8 ik) je koopt een nieuwe computter en huurt ruimte bij een provider en dan kun je je eigen comp gebruiken
of
je koopt een comp en zet die in een koel ruimte en legt een paar kabers aan van de kpn (ofzo) met een snelheid van 1GB/sec. en je begind een eigen bedrijf....

verder heb ik nog eeh 3 probleemen waar ik tegenop loop:
1) een teller die continu afloopt van 30 min met stappen van een min, hier kan ik geen oplossing voor vinden.
2) site moet gecheckd worden op schrijffouten en andere fouten (b.v. dat de site niet crached ofzo)
3) ik moet nog een manier hebben om het aantal kolommen in een tabel te tellen die ontvangerID = (b.v.) 17

JB'tje
 
Geplaatst door JB'tje
maar over die server, hoe bedoel je dat eigenlijk??? want dat kun je op 2 manieren bedoelen (d8 ik)
Dit bedoel ik:
je koopt een comp en zet die in een koel ruimte en legt een paar kabers aan van de kpn (ofzo) met een snelheid van 1GB/sec. en je begind een eigen bedrijf....
Alleen begin je geen bedrijf maar zet je je spel gewoon op die server ;)
verder heb ik nog eeh 3 probleemen waar ik tegenop loop:
1) een teller die continu afloopt van 30 min met stappen van een min, hier kan ik geen oplossing voor vinden.
Je kan een redelijk ingewikkeld script schrijven waarmee je bij elke aanroep van 't script die tijd gaat controleren. Als iemand dan bijv. 8 uur lang het script niet heeft aangeroepen, dan kun je 16 keer (omdat je met halve uren werkt, 8 uur = 16 halve uren) de database gaan updaten. Persoonlijk zou ik toch wat anders bedenken ... Cron jobs bijv, daarmee kun je dingen op bepaalde tijdstippen uitvoeren. Hier moet je echter wel de ondersteuning voor hebben :)
3) ik moet nog een manier hebben om het aantal kolommen in een tabel te tellen die ontvangerID = (b.v.) 17
Het lijkt me niet dat je het aantal kolommen wil gaan tellen, waarschijnlijk bedoel je rijen ?
Daar zijn gewoon query's voor:
Code:
SELECT COUNT(*) AS aantal_rijen FROM tabel WHERE ontvangerID = '17'
Snappie ? :)

Succes :thumb:
 
Je kan een redelijk ingewikkeld script schrijven waarmee je bij elke aanroep van 't script die tijd gaat controleren. Als iemand dan bijv. 8 uur lang het script niet heeft aangeroepen, dan kun je 16 keer (omdat je met halve uren werkt, 8 uur = 16 halve uren) de database gaan updaten. Persoonlijk zou ik toch wat anders bedenken ... Cron jobs bijv, daarmee kun je dingen op bepaalde tijdstippen uitvoeren. Hier moet je echter wel de ondersteuning voor hebben
eeh, dat was al opgelost.... met die cron jobs dus.....
maar, nu moet er een tellertje komen op de site die eigenlijk HELEMAAL nix doet alleen aftellen..... en als die op 0 staat dan is die cron jobs ook geactiveerd (cron jobs en teller zijn totaal onafhankelijk van elkaar...)
ik bedoel iets als dit:
PHP:
<?PHP
$tijd = date(M)
if ($tijd == "1")
{ $_session['tijd'] = "29"; // omdat het nog 29 min duurt voordat de 30 min zijn afgelopen}
elseif ($tijd == "2")
{ $_session['tijd'] = "28"; }
enz...

elseif ($tijd == "0")
{ $_SESSION['tijd'] = "0" }
?>

iets als dat bedoel ik... maar dan VEEl korter

JB'tje
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan