| 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 | <?php if (isset($params['submit']) ) { $filter=''; $test = false; if (isset($params['select_date']) && $params['select_date'] != '') { if ($test) {$filter .=' AND ';} $filter .= '(DATE(starttime) = \''.$params['select_date'].'\')'; $test = true; } if (isset($params['select_pilot']) && $params['select_pilot'] != '') { if ($test) {$filter .=' AND ';} $filter .= '(firstpilot_id = '.$params['select_pilot'].' or secondpilot_id = '.$params['select_pilot'].')'; $test = true; } if (isset($params['select_airplane']) && $params['select_airplane'] != '') { if ($test) {$filter .=' AND ';} $filter .= '(airplane = \''.$params['select_airplane'].'\')'; $test = true; } } ?> |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 | <?php if (isset($params['submit']) ) { $filter='1=1'; $test = false; if (isset($params['select_date']) && $params['select_date'] != '') { $filter .= ' AND (DATE(starttime) = \''.$params['select_date'].'\')'; } if (isset($params['select_pilot']) && $params['select_pilot'] != '') { $filter .= ' AND (firstpilot_id = '.$params['select_pilot'].' or secondpilot_id = '.$params['select_pilot'].')'; } if (isset($params['select_airplane']) && $params['select_airplane'] != '') { $filter .= ' AND (airplane = \''.$params['select_airplane'].'\')'; } } ?> |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php if (isset($params['submit']) ) { $filterarr=Array(); if (isset($params['select_date']) && $params['select_date'] != '') $filterarr[1] = '(DATE(starttime) = \''.$params['select_date'].'\')'; if (isset($params['select_pilot']) && $params['select_pilot'] != '') $filterarr[2] = '(firstpilot_id = '.$params['select_pilot'].' or secondpilot_id = '.$params['select_pilot'].')'; if (isset($params['select_airplane']) && $params['select_airplane'] != '') $filterarr[3] = '(airplane = \''.$params['select_airplane'].'\')'; $filter=implode(' AND ',$filterarr); } ?> |
quote:Op donderdag 10 februari 2011 19:00 schreef GlowMouse het volgende:
Het aantal reacties valt tegen. Dan zal ik het maar verklappen. Pak dit stukje code:
[ code verwijderd ]
De check op regel4 wordt zonder problemen doorlopen: de laatste vier karakters zijn '.txt'. Bij touch wordt er een stukje C-code uitgevoerd, en in C houden strings op na een nul-byte.
Op http://mysql-apache-php.com/fileupload-security.htm staat dit stukje:
[ code verwijderd ]
Deze check voorkomt niet dat er php-code op de server komt. Een plaatje is een file, en een file is gewoon opgebouwd uit bytes. Ergens tussen die bytes kunnen best de volgende zitten: <?php echo 'hoi'; ?>. Een plaatje met die code kun je makkelijk zelf maken door met een hex-editor een plaatje te editten en wat bytes te overschrijven. Het resulterende plaatje ziet er niet uit, maar dat ziet de software nietNet als bij een html-file, wordt alles tussen <?php en ?> uitgevoerd als PHP-code (en de rest van de file wordt gewoon doorgegeven).
Dit kun je maar op één manier voorkomen. Je kunt het plaatje resizen, maar ondanks dat het een stuk lastiger om een plaatje te vinden dat na resizen de code <?php echo 'hoi'; ?> bevat, is het niet onmogelijk. De manier is daarom om plaatjes waar <?php in voorkomt gewoon te blokkeren. Als plaatjes 1MB zijn, kun je de kans p berekenen dat je een plaatje ten onrechte afkeurt (onder de aanname dat de 0/1'en willekeurig, onafhankelijk en identiek zijn verdeeld):
<?php is vijf bytes. De kans dat vijf willekeurige bytes niet overeenkomen met <?php, is 1-(1/256)5. Je wilt dat in de file van 1MB alle vijf opvolgende bytes verschillend zijn. Er zijn ongeveer een miljoen opeenvolgende series van vijf bytes in een bestand van 1MB. De kans dat er geen <?php in je file zit, is ongeveer 1-p = (1-(1/256)5)1.000.000. Dit is lastig om nauwkeurig te berekenen, daarom pakken we de logaritme: log(1-p) = 1.000.000 log(1-(1/256)5) ~= -10-6. Omdat voor kleine p geldt dat log(1-p) = -p, weten we dat p = 10-6. Je keurt dus één op de miljoen files ten onrechte af.
| 1 2 3 | <?php if (count($filterarr) >> 0 ) ?> |
| 1 2 3 | <?php if (isset($params['submit']) ) ?> |
| 1 2 3 | <?php SELECT TIME_FORMAT(SEC_TO_TIME(SUM(TIME_TO_SEC(TIMEDIFF(landingtime,starttime)))),"%k:%i") AS totaltime ?> |
Just a thought, maar neem aan dat het veldtype DATETIME is ? Kan je dan niet met SUM en TIMEDIFF het verschil berekenen (of een totaal aantal uren) en met PHP de datum/tijd formatten met date() of mktime() ?quote:Op vrijdag 11 februari 2011 02:10 schreef KomtTijd... het volgende:
[ code verwijderd ]
Hiervan heb ik ook het idee dat het efficienter kan
Doel: de totale vlieguren van alle vluchten in een bepaalde selectie
Je kunt beter DATE(MAX(starttime)) gebruiken. En voor zover ik weet wordt de tijdcomponent van een date-field op 0 gesteld als je gaat vergelijken met een datetime, dus daar heb je geen extra functie F voor nodig.quote:Op donderdag 10 februari 2011 15:00 schreef GlowMouse het volgende:
Als je tabel heel veel vliegdagen gaat bevatten, zal het sneller zijn om met een index op starttime te doen starttime >= (SELECT F(MAX(DATE(starttime))) FROM ...)
waarbij je even moet zoeken wat je voor F moet gebruiken om een datetime te krijgen met die datum en als tijdstip 00:00:00.
Die had ik gevonden, maar die doet twee variables optellen, niet een hele kolom...quote:Op vrijdag 11 februari 2011 10:06 schreef GlowMouse het volgende:
http://dev.mysql.com/doc/(...)tml#function_addtime
Je kunt het ook anders proberen: TIMEDIFF(SUM(eindtijd), SUM(begintijd))quote:Op vrijdag 11 februari 2011 09:54 schreef KomtTijd... het volgende:
SUM(TIMEDIFF(tijd,tijd) ging fout.
[knip]reactie op edit [/knip]quote:Op zaterdag 12 februari 2011 09:52 schreef MrNiles het volgende:
open sollicitatie voor anonymous hier ofzo
-nee-
| 1 2 3 4 5 6 | SELECT `pix`.* FROM `pix` WHERE `pix`.`tags` LIKE '%,cool%' AND `pix`.`accepted` = 'y' AND `pix`.`adult` = 'n' LIMIT 0,20 |
| 1 | 1 SIMPLE pix ref accepted,adult accepted 1 const 249142 Using where |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | Sleutelnaam Type Unieke waarde Gecomprimeerd Veld Kardinaliteit Collatie PRIMARY BTREE Ja Nee id 249144 A category BTREE Ja Nee category 0 A filetype 0 A filesize 0 A filex 0 A filey 0 A filecrc 249144 A filedate BTREE Nee Nee filedate 1051 A accepted BTREE Nee Nee accepted 1 A tags BTREE Nee Nee tags 1 A adult BTREE Nee Nee adult 1 A category_2 BTREE Nee Nee category 3663 A |
Goed, dat zou kunnen maar hoe moet ik het dan willen oplossen of moet ik een apart tabel gaan gebruiken om te zoeken op tags?quote:Op zaterdag 12 februari 2011 21:06 schreef GlowMouse het volgende:
LIKE '%,cool%' moet je dan ook niet willen doen.
Ik ga je naslag werk eens lezen, maar hoe moet ik die dan weergeven?quote:Op zaterdag 12 februari 2011 21:13 schreef GlowMouse het volgende:
Voor tags heb ik een mooi naslagwerk gemaakt:
http://gathering.tweakers.net/forum/list_messages/1429432
Je post #202 is onleesbaar trouwens. Zo geef je geen indices weer.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 | <?php $commando_id= "SELECT 'optredens.id' FROM 'optredens' WHERE datum= '$aData[datum]' AND dagdeel = '$aData[dagdeel]' AND wat = '$aData[wat]' AND waar = '$aData[waar]' "; mysql_query($commando_id); $id='optredens.id'; echo $id; ?> |
quote:Op zondag 13 februari 2011 10:09 schreef MrNiles het volgende:
als ik het volgende uitvoer dan krijg op mijn scherm te staan optredens.id
en ik zie eigenlijk ook wel dat het er staat..maar zonder quotes krijg ik de foutmelding:
Use of undefined constant optredens - assumed 'optredens'
ik zie m echt niet
[ code verwijderd ]
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php $commando_id= "SELECT 'optredens.id' FROM 'optredens' WHERE datum= '".$aData['datum']."' AND dagdeel = '".$aData['dagdeel']."' AND wat = '".$aData['wat']."' AND waar = '".$aData['waar']."' "; $result = mysql_query($commando_id); //$id='optredens.id'; ?????? je wilde dit veranderen? in $id? Waaruit? zomaar uit 'optredens.id?' // Dit snapt PHP niet , je speelt nu met 2 talen door elkaar SQL en PHP. // hierdoor is het beter om eerst het in een $result te gooien en voor elke Rij een waarde op te //roepen. While($row = mysql_fetch_assoc($result)){ echo $row['id']; } ?> |
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |