1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <?php // set_time_limit(10); session_start(); $t = 2; function __time() { list($usec, $sec) = explode(" ", microtime()); $t = ((float)$usec + (float)$sec); return $t; } $abort = false; $start = __time(); ignore_user_abort(true); echo 'start test<br />'; while ($abort != true) { if (isset($_SESSION['test'])) { $abort = true; unset($_SESSION['test']); echo 'abort<br />'; } if (__time() - $start > $t) { echo __time() . "<br />"; $start = __time(); } } ?> |
1 2 3 4 5 6 7 | <?php session_start(); $_SESSION['test'] = true; ?> |
Voordeel van ignore_user_abort is dat het script doorloopt als de browser gesloten wordt... dat vind ik het handige er aan. Maar stel het project loopt fout, maar blijft fout doorlopen... dan moet ik php killen en dat is niet echt praktisch als je geen server admin bent.. Dus ben ik opzoek naar een methode die wel werkt!quote:Op vrijdag 17 mei 2013 11:07 schreef slacker_nl het volgende:
Waarom zou dat het spul moeten opheven, als dat waar is doe je niks met ignore_user_abort(); Dus dat blijft gewoon zoals het is..
Maak van misschien maar, het werkt! LOLquote:edit: misschien werkt het ook gewoon al als je session_destroy() en session_start() weer aanroept.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 | <?php function __time() { list($usec, $sec) = explode(" ", microtime()); $t = ((float)$usec + (float)$sec); return $t; } ob_start(); // set_time_limit(10); session_start(); ignore_user_abort(true); $t = 2; $abort = false; $start = __time(); if (isset($_SESSION['test'])) { unset($_SESSION['test']); } while ($abort != true) { if (isset($_SESSION['test'])) { $abort = true; unset($_SESSION['test']); echo 'abort<br />'; } if (__time() - $start > $t) { $start = __time(); echo $start;} session_destroy(); session_start(); } ?> |
1 2 3 4 | <?php session_start(); $_SESSION['test'] = true; ?> |
Daar zou ik dan een APC variabele voor gebruiken, die staat in het werkgeheugen.quote:Op vrijdag 17 mei 2013 12:00 schreef Chandler het volgende:
Zat zelf nog aan een extra bestandje (kijken of deze bestaat) te denken, die te plaatsen waardoor ALLE jobs gestopt worden, alleen weet ik niet of dat dat leuk is voor de server qua preformance?!
1 2 3 4 5 6 7 8 9 10 | <?php ignore_user_abort(1); // run script in background set_time_limit(0); // run script forever $interval=60*15; // do every 15 minutes... do{ // add the script that has to be ran every 15 minutes here // ... sleep($interval); // wait 15 minutes }while(true); ?> |
1 2 3 4 5 6 7 8 9 10 11 12 | Array ( [0] => 172.340.194.2 [1] => 39.64.51.232 [2] => 1.2.3.4 [3] => 81.119.83.275 [4] => 15.211.81.90 ) |
1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $findIP = '1.2.3.4'; foreach ($arrIP as $IP) { if ($findIP == $IP) { echo 'IP FOUND'; echo '<br>'; } else { echo 'IP NOT FOUND'; echo '<br>'; } } ?> |
Omdat je datatypes niet gelijk zijn. Je vergelijkt 1.2.3.4 met '1.2.3.4'.quote:Op vrijdag 17 mei 2013 14:07 schreef xaban06 het volgende:
[ code verwijderd ]
[ code verwijderd ]
Waarom krijg ik geen IP FOUND te zienAlleen maar IP NOT FOUND.
Beide zijn strings, dus het moet goed zijn.quote:Op vrijdag 17 mei 2013 14:09 schreef Maringo het volgende:
[..]
Omdat je datatypes niet gelijk zijn. Je vergelijkt 1.2.3.4 met '1.2.3.4'.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | <?php $arrIP = array("123.123.123.123", "10.0.0.1", "1.2.3.4", "121.111.85.11", "onzin"); $findIP = '1.2.3.4'; foreach ($arrIP as $IP) { if ($findIP == $IP) { echo 'IP FOUND'; echo '<br>'; } else { echo 'IP NOT FOUND'; echo '<br>'; } } ?> |
maar doe zoiets:quote:Op vrijdag 17 mei 2013 14:07 schreef xaban06 het volgende:
[ code verwijderd ]
[ code verwijderd ]
Waarom krijg ik geen IP FOUND te zienAlleen maar IP NOT FOUND.
1 2 3 4 5 6 7 8 9 10 | <?php $ip_regexp = '/^1.2.3.4/$'; $found = preg_grep($ipregexp, $array_met_ip); if ($found) { print "$ip_regexp found\n"; print_r($found) } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $arrIP = array('172.340.194.2', '39.64.51.232', '1.2.3.4', '81.119.83.275', '15.211.81.90'); $findIP = '1.2.3.4'; foreach ($arrIP as $IP) { if ($findIP == $IP) { echo 'IP FOUND'; echo '<br>'; } else { echo 'IP NOT FOUND'; echo '<br>'; } } ?> |
Beide zijn sowieso strings dus niet nodig om ook het type te controleren.quote:Op vrijdag 17 mei 2013 14:13 schreef rekenwonder het volgende:
Maar == is toch geen type-safe comparison?
Omdat ik die functie niet kenquote:Op vrijdag 17 mei 2013 14:14 schreef rekenwonder het volgende:
Waarom gebruik je niet array_search() trouwens?
quote:Op vrijdag 17 mei 2013 14:51 schreef Chandler het volgende:
probeer eens trim om het ip adres heen?
dus trim($IP)
You are so (ontiegelijk) welkom!quote:Op vrijdag 17 mei 2013 14:49 schreef xaban06 het volgende:
Volgens mij ben ik gek of ik doe iets heel erg fout.
/edit
Opgelost, thanks Chandler.
Ik zou zelf in_array() aanraden.quote:Op vrijdag 17 mei 2013 14:14 schreef rekenwonder het volgende:
Waarom gebruik je niet array_search() trouwens?
quote:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | <?php $dbc = mysqli_connect('localhost', 'voorbeeld', 'wachtwoord', 'aliendatabase') or die('Error connecting to MySQL server'); $query = "INSERT INTO aliens_abduction (first_name, last_name, when_it_happened, how_long, " . "how_many, alien_description, what_they_did, fang_spotted, other, email) " . "VALUES ('$first_name', '$last_name', '$when_it_happened', '$how_long', '$how_many', " . "'$alien_description', '$what_they_did', '$fang_spotted', '$other', '$email')"; $result = mysqli_query($dbc, $query) or die('Error connecting to MySQL server'); mysqli_close($dbc); ?> |
quote:Return Values
Returns FALSE on failure. For successful SELECT, SHOW, DESCRIBE or EXPLAIN queries mysqli_query() will return a mysqli_result object. For other successful queries mysqli_query() will return TRUE.
quote:En ik dacht dat de codes achter de "$result =" werden opgeslagen en niet werden uitgevoerd,
$dbc is geen string, zoals php.net aangeeft: " Returns an object which represents the connection to a MySQL Server. ". Na de functie te hebben uitgevoerd zit in de variabel een object die de connectie representeert.quote:Op zaterdag 18 mei 2013 21:11 schreef DutchErrorist het volgende:
[ code verwijderd ]
Ik heb even een vraagje over deze code. Ik snap waarom je de twee strings bij $dbc en $query in variabelen zet, maar voor die msqli_query in $result is dat toch niet nodig?
En ik dacht dat de codes achter de "$result =" werden opgeslagen en niet werden uitgevoerd, maar hij plaatst wel alles in de tabel. Kan iemand hier mij even duidelijkheid over geven. Sorry als ik onduidelijk ben, maar ben voor het eerst bezig met PHP.
Aangezien je nieuw bent in PHP: mysqli wegflikkeren en PDO gebruiken. Leer je het in een keer goed.quote:Op zaterdag 18 mei 2013 21:11 schreef DutchErrorist het volgende:
[ code verwijderd ]
Ik heb even een vraagje over deze code. Ik snap waarom je de twee strings bij $dbc en $query in variabelen zet, maar voor die msqli_query in $result is dat toch niet nodig?
En ik dacht dat de codes achter de "$result =" werden opgeslagen en niet werden uitgevoerd, maar hij plaatst wel alles in de tabel. Kan iemand hier mij even duidelijkheid over geven. Sorry als ik onduidelijk ben, maar ben voor het eerst bezig met PHP.
waarom?quote:Op zaterdag 18 mei 2013 23:50 schreef slacker_nl het volgende:
[..]
Aangezien je nieuw bent in PHP: mysqli wegflikkeren en PDO gebruiken. Leer je het in een keer goed.
Omdat het makkelijk, transparant, voor alle DB's dezelfde calls, return values, kek en het OO is. Dat ze die ouwe meuk er nog niet uitgegooid hebben snap ik niet, PDO moet gewoon omarmt worden door PHP developers.quote:
ik heb werkelijk nog nooit PDO gebruikt.. (en tot een jaar terug ofzo niet eens wat over gehoord...)quote:Op zondag 19 mei 2013 00:13 schreef slacker_nl het volgende:
[..]
Omdat het makkelijk, transparant, voor alle DB's dezelfde calls, return values, kek en het OO is. Dat ze die ouwe meuk er nog niet uitgegooid hebben snap ik niet, PDO moet gewoon omarmt worden door PHP developers.
Het wordt al een tijdje door PHP zelf aangeraden (samen met mysqli): http://nl1.php.net/manual/en/mysqlinfo.api.choosing.phpquote:Op zondag 19 mei 2013 00:16 schreef mschol het volgende:
[..]
ik heb werkelijk nog nooit PDO gebruikt.. (en tot een jaar terug ofzo niet eens wat over gehoord...)
Dat is het probleem. Ik denk dat ik er drie jaar geleden in dit topic ook vaak over heb lopen zagen. Herstel, 2008 alweer. Dat is vijf jaar..quote:Op zondag 19 mei 2013 00:16 schreef mschol het volgende:
[..]
ik heb werkelijk nog nooit PDO gebruikt.. (en tot een jaar terug ofzo niet eens wat over gehoord...)
ahaquote:Op zondag 19 mei 2013 00:21 schreef Tijn het volgende:
[..]
Het wordt al een tijdje door PHP zelf aangeraden (samen met mysqli): http://nl1.php.net/manual/en/mysqlinfo.api.choosing.php
Naaah ik volg eerst het boek maar eens.quote:Op zaterdag 18 mei 2013 23:50 schreef slacker_nl het volgende:
[..]
Aangezien je nieuw bent in PHP: mysqli wegflikkeren en PDO gebruiken. Leer je het in een keer goed.
Lees dan dit eens: http://php.net/mysqli_query. Die functie kan meerdere dingen terug geven, ook na een INSERT query. Dat kun je dan gebruiken om te zien of de query gelukt is.quote:Op zondag 19 mei 2013 00:31 schreef DutchErrorist het volgende:
[..]
Naaah ik volg eerst het boek maar eens.
Ik zal als ik dit boek heb door gewerkt me eens concentreren op hoe PDO precies werkt. Ik wil toch eerst de basics onder de knie hebben.quote:Op zondag 19 mei 2013 12:24 schreef papernote het volgende:
[..]
Lees dan dit eens: http://php.net/mysqli_query. Die functie kan meerdere dingen terug geven, ook na een INSERT query. Dat kun je dan gebruiken om te zien of de query gelukt is.
Nu staat er in jouw code (heel slecht) "or die" achter, waardoor het opslaan van de boolean die mysqli_query() terug geeft niet meer nodig is. Maar als je een nette error afhandeling maakt, dan wil je de waarde van $result na een INSERT query ook bekijken.
Ik zou zeggen dat PDO juist de basis is en je daarna eventueel mysqli eens zou kunnen bekijken voor geavanceerdere dingen.quote:Op zondag 19 mei 2013 12:27 schreef DutchErrorist het volgende:
[..]
Ik zal als ik dit boek heb door gewerkt me eens concentreren op hoe PDO precies werkt. Ik wil toch eerst de basics onder de knie hebben.
Ja maar het lijkt me ook wel handig dat ik even weet hoe PHP precies werkt. Hoe PDO werkt kan ik later nog wel opzoeken.quote:Op zondag 19 mei 2013 12:41 schreef Tijn het volgende:
[..]
Ik zou zeggen dat PDO juist de basis is en je daarna eventueel mysqli eens zou kunnen bekijken voor geavanceerdere dingen.
Maar niet de comments bij de documentatie, daar moet je soms wel om huilen.quote:Op zondag 19 mei 2013 12:44 schreef Tijn het volgende:
Dat begrijp ik.
Als ik jou was zou ik de documentatie op php.net goed lezen. Zeker voor beginners is het goed geschreven vind ik.
Waar ik naar linkte is geen PDO hè.quote:Op zondag 19 mei 2013 12:27 schreef DutchErrorist het volgende:
[..]
Ik zal als ik dit boek heb door gewerkt me eens concentreren op hoe PDO precies werkt. Ik wil toch eerst de basics onder de knie hebben.
Nee klopt dat zie ik nu, maar iedereen begint over PDO en weet ik veel terwijl ik zelf nog maar net begonnen ben. Dan kan ik beter even met msqli beginnen en in mijn achterhoofd houden dan ik nog even moet kijken naar hoe het nu precies zit met 'or die' en PDO.quote:
Kun je al programmeren in andere talen?quote:Op zondag 19 mei 2013 12:56 schreef DutchErrorist het volgende:
[..]
Nee klopt dat zie ik nu, maar iedereen begint over PDO en weet ik veel terwijl ik zelf nog maar net begonnen ben. Dan kan ik beter even met msqli beginnen en in mijn achterhoofd houden dan ik nog even moet kijken naar hoe het nu precies zit met 'or die' en PDO.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |