Ik denk een afrondingsfout zoals je die wel vaker ziet met floats. Dezelfde reden dat dit niet werkt bv:quote:
| 1 2 3 4 5 6 7 8 9 10 | <?php if((0.1 + 0.2) === 0.3) { die('true'); } else { die('false'); } ?> |
Het punt is dat 8.45 * 100 gewoon 845 zou moeten zijn, met of zonder afronding.quote:Op donderdag 2 augustus 2012 11:50 schreef Boze_Appel het volgende:
Als je gaat rekenen met float en (int) gebruikt dan werkt het als floor en wordt dus naar beneden afgerond.
| 1 2 3 4 5 6 7 | public function setAmount($amount) { $tmpAmount = (int) ($amount * 100); if ($tmpAmount / 100 == $amount && $tmpAmount >= 0 && $tmpAmount <= 999999999999 ) { $this->amount = $tmpAmount; } } |
Maar als je 5.45 gebruikt gaat het wel goed.quote:Op donderdag 2 augustus 2012 11:50 schreef Boze_Appel het volgende:
Als je gaat rekenen met float en (int) gebruikt dan werkt het als floor en wordt dus naar beneden afgerond.
Floats zijn gewoon niet exact. Sommige getallen kunnen wel, anderen niet.quote:Op donderdag 2 augustus 2012 11:54 schreef mstx het volgende:
Maar als je 5.45 gebruikt gaat het wel goed.
Het is waarschijnlijk een combinatie. 8.45 * 100 geeft waarschijnlijk iets van 844.98989898989 ofzo. Afronden geeft 845, maar casten naar int geeft 844 want een cast trunkeert (is dit nederlands?) alleen.quote:Op donderdag 2 augustus 2012 11:52 schreef Tijn het volgende:
[..]
Het punt is dat 8.45 * 100 gewoon 845 zou moeten zijn, met of zonder afronding.
Maar dat is het niet, want 8.45 bestaat niet in floats.
En dat is zo omdat 8.45 niet in floats uit te drukken is.quote:Op donderdag 2 augustus 2012 12:02 schreef ralfie het volgende:
[..]
8.45 * 100 geeft waarschijnlijk iets van 844.98989898989 ofzo.
| 1 2 3 4 5 6 7 8 | Message :='Date: '||to_char(sysdate,'DD-MON-YYYY HH24:MI')||crlf|| 'From: '||sender||crlf|| 'To: '||res_recipient||crlf|| 'Cc: '||cc_recipient||crlf|| 'Cc: '||cc_recipient2||crlf|| 'Subject: '||subj||crlf|| ''||crlf|| BODY; |
Wat voor gegeven kan je gebruiken dan?quote:Op dinsdag 14 augustus 2012 10:20 schreef Scorpie het volgende:
Zonder data kunnen we alleen maar gissen natuurlijk.
Dit ook al geprobeerd? http://www.java2s.com/Tut(...)THDDYYYYHH24MISS.htmquote:Op dinsdag 14 augustus 2012 10:22 schreef Cue_ het volgende:
[..]
Wat voor gegeven kan je gebruiken dan?
Want ik denk/dacht dat het hem in de
'Date: '||to_char(sysdate,'DD-MON-YYYY HH24:MI')|
zou moeten zitten. En dat die het format niet herkend. Maar verschillende variaties geprobeerd.
Daarnet, geen effectquote:Op dinsdag 14 augustus 2012 10:24 schreef Scorpie het volgende:
Dit ook al geprobeerd? http://www.java2s.com/Tut(...)THDDYYYYHH24MISS.htm
wat ik al heb:quote:ik wil graag het menu in 1x kunnen opbouwen, voor elke pagina
heb nu 1 pagina (de index) met html/css, hierin staat een stukje php die uit een andere file een functie haalt op het moment dat er op een link wordt geklikt, in die functie staat de tekst die in het "main"-venster komt te staan.
Dus 1 opmaak pagina...
nu wil ik dus in die opmaakpagina ook mijn menu zetten..maar hoe krijg ik zo'n "complex" menu gevangen op 1 pagina
mijn pagina met een werkend menu maar dit is dus heel omslachtig gemaakt door heel veel html pagina's
heb deze pagina gemaakt toen ik eigenlijk alleen nog maar de include van php kon.
elke pagina bestaat dus uit een complete html pagina...ben nu wel zover dat ik weet dat dat niet slim is als je iets wilt aanpassen
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | <?php function menu() { $sql = mysql_query("SELECT * FROM contentmenu WHERE C_name = C_hoofd ORDER BY C_id ASC"); $array = array(); $i = 0; while($tmp = mysql_fetch_array($sql)) { $array[$i]["naam"] = $tmp["C_hoofd"]; $i++; } return $array; } $menu = menu(); foreach($menu as $menudata) { $actief = $menudata["naam"] == $_GET['func'] ? ' actief' : ''; echo "<a href = 'index_new2.php?func=".$menudata["naam"]."' class='".$menudata["naam"]. $actief ." ' >".$menudata["naam"]."</a>"; } ?> |
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 | <?php function submenu(){ $func= mysql_real_escape_string($_GET['func']); $sql = mysql_query ("SELECT * FROM contentmenu WHERE C_name != C_hoofd AND C_hoofd = '$func' ORDER BY C_id ASC ") or die (mysql_error()); $array = array(); $i = 0; while($tmp = mysql_fetch_array($sql)) { $array[$i]["naam"] = $tmp["C_name"]; $i++; } return $array; } $submenu = submenu(); foreach($submenu as $submenudata) { $actief = $submenudata["naam"] == $_GET['func'] ? ' actief' : ''; echo "<li><a href = 'index_new2.php?func=".$submenudata["naam"]."' class='".$submenudata["naam"]. $actief ." ' >".$submenudata["naam"]."</a></li>"; } ?> ?> |
| 1 2 3 4 5 6 7 | <?php $sql = 'SELECT * FROM machines'; if (!empty($ids)) { $sql .= 'WHERE id IN '.$ids; } $sql .= 'ORDER BY ...'; ?> |
| 1 2 3 4 5 | <?php if (empty($ids)) $ids = '*'; $sql = 'SELECT * FROM machines WHERE id IN '.$ids.' ORDER BY ...'; ?> |
IN werkt met ('1','2','3').quote:Op donderdag 16 augustus 2012 14:33 schreef KomtTijd... het volgende:
kan ik ipv dit:
[ code verwijderd ]
ook zoiets doen?
[ code verwijderd ]
zoals in het laatste voorbeeld is het veel duidelijker wat de query doet, alleen met * werkt het niet. Met % ook niet. Of moet ik dit gewoon niet willen?
ja zoiets zat ik ook al te denken maar dat maakt het alleen maar vager inderdaad.quote:Op donderdag 16 augustus 2012 14:39 schreef GlowMouse het volgende:
Dat moet je niet willen, IN kent geen wildcards. Misschien kun je nog iets doen als (id IN (-1) OR 1=1), maar dat vergroot de leesbaarheid niet.
$ids is normaalgesproken een comma seperated lijst met id's inderdaad, maar als die leeg is wil ik alles selecteren ipv niets. Voorbeeld 1 werkt gewoon maar vond ik lelijkquote:Op donderdag 16 augustus 2012 14:36 schreef remi1986 het volgende:
[..]
IN werkt met ('1','2','3').
als $ids een array is kan je implode gebruiken. Of bedoel je dit niet?
| 1 2 3 | RewriteRule ^/?product/(.*)/(.*)/(.*).php$ /p/$2/$3.php [L,R=301] RewriteRule ^/?hoofdgroep/(.*)/(.*).php$ /g/$1/$2.php [L,R=301] RewriteRule ^(.*)\?*$ index.php?_route_=$1 [L,QSA] |
Ik zet altijd dit voor m'n rewriterules zodat gewone files & folders nog wel gelinkt kunnen worden:quote:Op vrijdag 24 augustus 2012 17:39 schreef cablegunmaster het volgende:
[ code verwijderd ]
Dit wou ik toepassen, alleen nu zit ik met de fout dat de pagina de CSS niet leuk vind.Heb ik ergens een fout zitten in mijn rewrite Rules? Zonder bovenste 2 werkt het , maar dan is het nut van de 301 redirect weg. Kortom het werkt , maar niet volledig.. het pakt de CSS niet meer.
| 1 2 3 | RewriteCond %{REQUEST_URI} -f RewriteCond %{REQUEST_URI} -d RewriteRule (.*) $1 [L] |
Ja , mijn denkwijzequote:Op vrijdag 24 augustus 2012 18:13 schreef Tijn het volgende:
[..]
Ik zet altijd dit voor m'n rewriterules zodat gewone files & folders nog wel gelinkt kunnen worden:
[ code verwijderd ]
Helpt dat niet?
| 1 2 3 4 5 | <?php if(isset($_POST)) { //hier iets met je data doen. } ?> |
OOP en classes laten geen belletje rinkelenquote:Op maandag 27 augustus 2012 23:41 schreef mafkees10 het volgende:
Maak je gebruik van OOP en classes? Anders kun je je bijvoorbeeld een pagecontroller aanroepen die de juiste klasses instantieert. Ik denk dat je hier geen gebruik van maakt en daarom zou ik gewoon geen action opgeven bij je form. Dan reload de pagina als het ware als je op de submit knop drukt.
Bovenaan/Onderdaan je pagina zet je dan gewoon:
[ code verwijderd ]
Niet een mooie oplossing omdat alles overal komt te staan, maar het houdt het wel een beetje bij elkaar! Je zou ook een ajax request kunnen doen op je submit knop. Op die pagina, b.v. submit.php doe je wat je wilt doen..
Hoe zit je structuur nu in elkaar. Geef eens een voorbeeld?
Nee. De regel: isset($_POST) geeft altijd true terug omdat deze superglobal door PHP geïnitialiseerd wordt.quote:Op dinsdag 28 augustus 2012 01:04 schreef mafkees10 het volgende:
$_POST kan prima, zolang je maar checkt of de request wel van je eigen server komt
| 1 2 3 4 5 | <?php if(!empty($_POST)) { print 'blablabla'; } ?> |
| 1 2 3 4 5 6 7 | <?php $jan = 2; $piet = 5; $henk = 3 $suus = 3; $ingrid = 6; ?> |
Je wil dus een functie die "ingrid" als string teruggeeft?quote:Op dinsdag 28 augustus 2012 19:20 schreef Faux. het volgende:
Ik heb een aantal variabelen:
[ code verwijderd ]
Nu wil ik weten welke van deze variabelen het hoogste is. Geloof ik als je dat met max(); doet krijg je alleen het hoogste cijfer terug, terwijl ik juist de hoogste variabelenaam terug wil. Iemand een idee?
| 1 2 3 4 5 6 7 8 9 | <?php $data = array( 'jan' => 2, 'piet' => 5, 'henk' => 3, 'suus' => 3, 'ingrid' => 6 ); ?> |
| 1 2 3 | <?php $maxs = array_keys($data, max($data)); ?> |
| 1 2 3 | <?php echo $maxs[0]; ?> |
Ik zal ($_SERVER['REQUEST_METHOD'] === 'POST') eens gaan bekijken.quote:Op dinsdag 28 augustus 2012 10:48 schreef The_Terminator het volgende:
[..]
Nee. De regel: isset($_POST) geeft altijd true terug omdat deze superglobal door PHP geïnitialiseerd wordt.
Als je het al zo wil doen, doe het dan zo:
[ code verwijderd ]
Die van Tijn is natuurlijk nog beter.
| 1 2 3 4 5 6 7 8 | <?php if($_POST["action"] === "add") { //add user } elseif($_POST["action"] === "edit") { //edit user } ?> |
wat een onzin, dit is slechts een discussie over de leesbaarheid van de code en niet over de veiligheidquote:Op donderdag 30 augustus 2012 21:58 schreef mafkees10 het volgende:
Dat kan, echter kan dit ook voor problemen zorgen.
Stel dat jij doet
[ code verwijderd ]
Loop je de kans dat iemand je "action" kan wijzigen terwijl je dit niet wilt.
Als mensen de action wijzigen, kunnen ze ook de url waarnaar gepost wordt wijzigen.quote:Op donderdag 30 augustus 2012 21:58 schreef mafkees10 het volgende:
Dat kan, echter kan dit ook voor problemen zorgen.
Stel dat jij doet
[ code verwijderd ]
Loop je de kans dat iemand je "action" kan wijzigen terwijl je dit niet wilt.
Wat maakt het uit? Als je het veilig wilt maken dan voeg je sowieso checks toe aan edit om te kijken of diegene wel de rechten heeft etc.quote:Op donderdag 30 augustus 2012 21:58 schreef mafkees10 het volgende:
Dat kan, echter kan dit ook voor problemen zorgen.
Stel dat jij doet
[ code verwijderd ]
Loop je de kans dat iemand je "action" kan wijzigen terwijl je dit niet wilt.
Daarom is het, in deze opzet, wellicht het makkelijkst om save.php, edit.php and new.php te hebben.
Het enige wat die doet is gegevens opslaan/wijzigen. Zo houd je alles gescheiden qua code en die pagina hoeft niets meer te doen dan alleen PHP code en daarna door'header'en met header() naar success.php oid!
Heb je ook je userinputs allemaal geescaped? Anders is een select-query zo omgetoverd in een truncate of whatever.quote:Op vrijdag 31 augustus 2012 09:53 schreef WheeleE het volgende:
Overigens had ik al voor elkaar dat alleen de publieke overzichtjes door iedereen zijn te bekijken. De insert/update/delete zijn alleen door ingelogde gebruikers met de juiste rechten te doen.
Die heb ik nog .iet, maar staat al wel op de lijst om te implementeren.quote:Op vrijdag 31 augustus 2012 10:24 schreef KomtTijd... het volgende:
[..]
Heb je ook je userinputs allemaal geescaped? Anders is een select-query zo omgetoverd in een truncate of whatever.
Dit is wel iets om gelijk goed te doen, anders is het onwijs veel dubbel werk om achteraf alles na te gaan lopen, met bovendien de grote kans dat je ergens iets vergeet. Eén foutje is genoeg om je site hackbaar te maken.quote:Op vrijdag 31 augustus 2012 10:59 schreef WheeleE het volgende:
[..]
Die heb ik nog .iet, maar staat al wel op de lijst om te implementeren.
Sja die fase hebben we natuurlijk allemaal gehad (of nog steeds af-en-toe). Maar het is wel echt belangrijk om jezelf dit gelijk goed aan te leren. Het gebeurt nog veel te vaak dat zelfs professionals hiermee volledig de mist in gaan. Voor je het weet sta je op tweakers.net met het zoveelste bericht over uitgelekte persoonsgegevens en gehackte accounts.quote:Op vrijdag 31 augustus 2012 11:27 schreef WheeleE het volgende:
Gelukkig zit ik nog in de ontwerp- en probeerfase
Echt iets bruikbaars en definitiefs heb/had ik nog niet.
| Forum Opties | |
|---|---|
| Forumhop: | |
| Hop naar: | |