Hoe kun je een oneindige loop voorkomen?
Als je bijv. in een 2.php include('1.php') ingeeft en in 1.php include('2.php') ingeeft dan heb je een loop.
Volgens mij heeft er al wel eens een stukje hierover gestaan maar kan het niet terug vinden.
Likes: 0
Hoe kun je een oneindige loop voorkomen?
Als je bijv. in een 2.php include('1.php') ingeeft en in 1.php include('2.php') ingeeft dan heb je een loop.
Volgens mij heeft er al wel eens een stukje hierover gestaan maar kan het niet terug vinden.
zal niet echt de beste oplossing zijn;
php1.inc
##############################################
$1="1";
if ($2!="2")
{
include 'php2.inc';
}
##############################################
php2.inc
##############################################
$2="2";
if ($1!="1")
{
include 'php1.inc';
}
##############################################
verder bestaat er ook nog de functie include_once,.......... ofterwel "ïnclude maar 1 keer"
verder is het natuurlijk wel een beetje onlogish om files te includen in een files dat reeds is included in het file dat je wil includen,.
waarom zou je de files bij elkaar includen?
Mijn vraag kwam erop neer hoe je de loop tegen kunt houden?
Een gebruiker op mijn server die had een loop veroorzaakt waardoor de server op hol sloeg.
Ik wil hier namelijk een beveiliging tegen hebben..
Door je script goed te controlerenHoe kun je een oneindige loop voorkomen?
Als je bijv. in een 2.php include('1.php') ingeeft en in 1.php include('2.php') ingeeft dan heb je een loop.![]()
Of bedoel je automatisch in alle scripts van je klanten ofzo?
Dit is sterk afhankelijk van je script.
Post het eens zou ik zeggen.
Er is geen standaard manier hoe je een oneindige loop kunt stoppen.
In PHP kunnen de functies exit() en break() worden gebruikt, maar netter is om het hele probleem te verhelpen.
Maar vooralsnog, zonder je script kan ik niks voor je betekenen.
Edit:
Simpel (dom) foutje die je makkelijk kunt voorkomen:
Deze lus is bedoelt om een array $waarden met getallen te vullen maar bevat een fout. De voorwaarde in de while-lus verwijst naar de variabele $j, maar deze wordt nergens bijgewerkt!PHP Code:<?php
var $i = 1;
var $j = 1;
while($j <= 10){
$waarden[$i] = $i;
$i++
}
?>
Hieruit blijkt goed dat er niet 1 bepaalde manier voor is.
Laatst gewijzigd door Jos2; 11/09/04 om 19:36.
Het gaat niet om zijn scripts maar om users op de server die loops zouden kunnen programmeren... als ik het goed begrepen heb![]()
Zo oneidig zal ie dan wel niet zijnmax_execution_time = 30 ; Maximum execution time of each script, in seconds
(php.ini onder resource limits, 1ste instelling)
Edit: Zal waarschijnlijk de enige echte manier zijn om zoiets te voorkomen (staat standaard op 30 sec).
Laatst gewijzigd door Thiaz; 11/09/04 om 20:03.
wou het er net neer zetten, en beter had ik her er niet neerkunnen zetten.Origineel geplaatst door Thiaz
Zo oneidig zal ie dan wel niet zijn
(php.ini onder resource limits, 1ste instelling)
Edit: Zal waarschijnlijk de enige echte manier zijn om zoiets te voorkomen (staat standaar dop 30 sec).
"Zo zijn ook wij één leverancier. Dé leverancier in gedegen Linux kennis, wanneer jij dat nodig hebt."
Boek je admin vandaag nog via : www.admin.nu
Gevestigd in Nederland en Moldavië
Lees hier de webhostingtalk.nl forum regels en voorwaarden!
Mensen toch, leer PHP.
Of te wel RTFM :PPHP Code:require_once();
include_once();
Dat kan jij wel mooi zeggen, maar wie zegt dat die klant dat doet?Origineel geplaatst door Deimos
Mensen toch, leer PHP.
Of te wel RTFM :PPHP Code:require_once();
include_once();
![]()

Deze topic wordt me een beetje onduidelijk?
Wil je nu als webhoster voorkomen dat je klanten files oneindig vaak gaan includen?
PHP include een file nooit meerdere keren. Loopen is op deze manier dus niet nodig.
Een oneindige while of for-loop is wel mogelijk. Hoe je hier iets aan doet? Geen idee.
Nou je zou een klant kunnen hebben die bewust je server wil laten crashen, de max execution time van een script gaat dit tegen.Origineel geplaatst door DennisCitus
Deze topic wordt me een beetje onduidelijk?
Wil je nu als webhoster voorkomen dat je klanten files oneindig vaak gaan includen?
PHP include een file nooit meerdere keren. Loopen is op deze manier dus niet nodig.
Een oneindige while of for-loop is wel mogelijk. Hoe je hier iets aan doet? Geen idee.
"Zo zijn ook wij één leverancier. Dé leverancier in gedegen Linux kennis, wanneer jij dat nodig hebt."
Boek je admin vandaag nog via : www.admin.nu
Gevestigd in Nederland en Moldavië
Lees hier de webhostingtalk.nl forum regels en voorwaarden!
Maar een oneindige loop die in een slordige while of for loop staat, is misschien voor je php script oneindig, maar voor php zelf niet. Die zal alles na 30 seconden afbreken, omdat je maximum execution time daarop staat. Via ini_set of set_time_limit kan je dit maximum omzeilen, behalve als je php op safe_mode draait. Op die manier kan je dat beveiligen.
Ben wel heel nieuwsgierig hoe je klant het voor elkaar heeft gekregen om in php je server op hol te laten slaan met iets van een oneindige loop...
Ik was er vanavond niet had een feestje maar om even te reageren op alle reakties het volgende:
Sommige hebben het door wat ik bedoelde, het gaat dus om klanten die van de server gebruik maken.
Ik kan moeilijk zeggen voordat je iets upload laat het me eerst zien zodat ik het kan kontroleren
Die klant van mij zorgde ervoor dat er ruim 15.000 reloads achter elkaar werden gedaan, komt volgens mij overeen met een dos attack van buitenaf met als gevolg dat de rest niet meer vooruit te branden was.
Hoe het heeft kunnen gebeuren is mij ook een raadsel, de max_execution_time = 30
Nogmaals het gaat NIET om mijzelf maar om de clients.