function g2() { foreach ($GLOBALS['usr_langs'] as $lang) { f2(); echo $lang . ' '; } }
function f1($a) { echo $a; $a = htmlspecialchars($a); echo $a; $a = htmlspecialchars($a); $a = f2($a); }
function f3() { /* * Global requires a variable_name */ // global f1(); // Illegal global ${f2()}; // Legal // global $c->d; // Illegal }
function main() { f1(); f2(); f3(); f4(); f5(); f6(); f7(); f8(); }
<?php # [OK] function f2($b) { $b = htmlspecialchars($b); return $b; } $A = $_POST['b']; $A = f2($A); echo $A;
<?php function f2($b) { $b = htmlspecialchars($b); return $b; # filtering left side permanently } echo f2($_GET['a']); # NOTHING echo $_GET['a']; # XSS
<?php function f1() { debug_print_backtrace(); } function f2($arg1, $arg2) { f1(); yield; // force generator } function f3($gen) { $gen->rewind(); // trigger run } $gen = f2('foo', 'bar'); f3($gen);
//*/ ///* // 2 default followed by one non-default; unusual, but permitted function f2($p1 = 100, $p2 = 1.23, $p3) { $argList = func_get_args(); echo "f2: # arguments passed is " . count($argList) . "\n"; foreach ($argList as $k => $e) { echo "\targ[{$k}] = >{$e}<\n"; } echo "\$p1: " . ($p1 == NULL ? "NULL" : $p1) . ", \$p2: " . ($p2 == NULL ? "NULL" : $p2) . ", \$p3: " . ($p3 == NULL ? "NULL" : $p3) . "\n"; } f2(); f2(10); f2(10, 20); f2(10, 20, 30); //*/ ///* // 1 default followed by one non-default followed by 1 default; unusual, but permitted function f3($p1 = 100, $p2, $p3 = "abc") { $argList = func_get_args(); echo "f3: # arguments passed is " . count($argList) . "\n"; foreach ($argList as $k => $e) { echo "\targ[{$k}] = >{$e}<\n"; } echo "\$p1: " . ($p1 == NULL ? "NULL" : $p1) . ", \$p2: " . ($p2 == NULL ? "NULL" : $p2) . ", \$p3: " . ($p3 == NULL ? "NULL" : $p3) . "\n"; } f3(); f3(10); f3(10, 20);
$x = 2; function f1($par) { var_dump($par); $par *= 2; } f1($x); // int(2) var_dump($x); // int(2) function f2(&$par) { var_dump($par); $par *= 2; } f2($x); // int(2) var_dump($x); // int(4) function f3(&$par) { global $par; var_dump($par); $par *= 2; } f3($x); // NULL var_dump($x); // int(4) /* * signature ::= '&'? IDENT formal_parameter*
function print_level($query, &$summa_p, $irbrakis_p, $suga, $id) { global $lang; global $translate; $select = ""; $orderby = "ORDER BY "; $criteria = array(); for ($level = 1; $level <= $this->lsk; $level++) { // tekošā grupēšanas līmeņa lauks $lauks = $this->MyPOST["gtype" . $this->grup . $level]; if ($lauks == 'garums' || $lauks == 'mind_pirms_red') { $this->build_value_ranges($level, $suga); if ($lauks == 'garums') { $this->gar_allowed_values = $this->allowed_values; } elseif ($lauks == 'mind_pirms_red') { $this->diam_allowed_values = $this->allowed_values; } } if ($lauks == 'fsc') { $this->allowed_values = array(); $this->allowed_values[0] = '0'; $this->allowed_values[1] = '1'; $typ = 'string'; } if ($lauks == 'kad_piegad' || $lauks == 'auto' || $lauks == 'brakis' || $lauks == 'cenu_matrica' || $lauks == 'cirsmas_kods' || $lauks == 'kad_piegad' || $lauks == 'kravas_id' || $lauks == 'pavadzime.pavadzime' || $lauks == 'piegad_kods' || $lauks == 'soferis' || $lauks == 'skira' || $lauks == 'suga' || $lauks == 'iecirknis') { //no visiem atlas?tajiem ba??iem pavadz?m? atlasa attiec?g? lauka atrodam?s v?rt?bas (pa vienai) $this->build_single_values($lauks, $query); } $row = 0; $summa_p->init(); $myid = 0; while (list($key, $val) = each($this->allowed_values)) { $myid++; if ($lauks == 'suga') { $suga = $val; } // virsm?ru sadal?jums if ($suga && $this->MyPOST['dalit_virsmeri' . $this->grup]) { if ($this->MyPOST['virsmeri' . $this->grup . '_' . $suga] != '') { $virsmeri = explode(',', $this->MyPOST['virsmeri' . $this->grup . '_' . $suga]); for ($i = 0; $i < count($virsmeri); $i++) { $virsmeri[$i] = $virsmeri[$i] / 100; } } } else { if ($this->MyPOST['virsmeri' . $this->grup] != '') { $virsmeri = explode(',', $this->MyPOST['virsmeri' . $this->grup]); for ($i = 0; $i < count($virsmeri); $i++) { $virsmeri[$i] = $virsmeri[$i] / 100; } } } if ($suga && $this->MyPOST['dalit_raukums' . $this->grup]) { $raukums = raukums_2_array($this->MyPOST['raukums' . $this->grup . '_' . $suga]); } else { $raukums = raukums_2_array($this->MyPOST['raukums' . $this->grup]); } if ($suga && $this->MyPOST['dalit_koeficients' . $this->grup]) { $koeficients = $this->MyPOST['koeficients' . $this->grup . '_' . $suga]; } else { $koeficients = $this->MyPOST['koeficients' . $this->grup]; } if ($typ != 'string') { $mbounds = explode('-', $this->allowed_values[$key]); } if (count($mbounds) > 1) { $low_range_brakis = 0; $high_range_brakis = 0; if ($mbounds[0] > 5) { $low_range_brakis = $mbounds[0] + 5; } else { $low_range_brakis = $mbounds[0]; } if ($mbounds[1] < 994) { $high_range_brakis = $mbounds[1] + 5; } else { $high_range_brakis = $mbounds[1]; } //pievienots 17.07.2007 if ($myid == 1) { $select .= ", CASE \n"; } if ($this->MyPOST["gtype" . $this->grup . $level] == 'mind_pirms_red') { $select .= "WHEN ((balkis_temp.import_type <> 'zbm' AND mind_pirms_red BETWEEN {$mbounds['0']} AND {$mbounds['1']}) OR (balkis_temp.import_type = 'zbm' AND mind_pirms_red BETWEEN {$low_range_brakis} AND {$high_range_brakis})) THEN {$myid} \n"; if ($myid == sizeof($this->allowed_values)) { $select .= "END AS diam_group"; $orderby .= "diam_group"; $criteria[] = "diam_group"; // } //$myquery = $query . " and ((". $this->MyPOST["gtype".$this->grup.$level] . ">=" . $mbounds[0] ." and " . $this->MyPOST["gtype".$this->grup.$level] . "<=" . $mbounds[1] . " AND balkis_temp.import_type <> 'zbm') or (". $this->MyPOST["gtype".$this->grup.$level] . ">=" . $low_range_brakis ." and " . $this->MyPOST["gtype".$this->grup.$level] . "<=" . $high_range_brakis . " AND balkis_temp.import_type = 'zbm'))"; } else { $select .= "WHEN (garums BETWEEN {$mbounds['0']} AND {$mbounds['1']}) THEN {$myid} \n"; if ($myid == sizeof($this->allowed_values)) { $select .= "END AS gar_group"; $orderby .= "gar_group"; $criteria[] = "gar_group"; //$this->gar_allowed_values = $this->allowed_values; } //$myquery = $query . " and (". $this->MyPOST["gtype".$this->grup.$level] . ">=" . $mbounds[0] ." and " . $this->MyPOST["gtype".$this->grup.$level] . "<=" . $mbounds[1] . ")"; } } else { if ($myid == sizeof($this->allowed_values)) { $orderby .= $this->MyPOST["gtype" . $this->grup . $level]; $criteria[] = $this->MyPOST["gtype" . $this->grup . $level]; } } if ($myid == sizeof($this->allowed_values) && $level < $this->lsk) { $orderby .= ","; } } } $query__ = "select mind_pirms_red as DBruto, garums as LBruto, mind_pec_red as DPecReduc, gar_pec_red as LPecReduc, brakis, suga, pavadzime.cenu_matrica as cm" . $select . $query . $orderby; $r = mysql_query($query__); $same_group = false; $gostu_tabula = $this->MyPOST['gostu_tabula' . $this->grup]; while ($m = mysql_fetch_array($r)) { $last = $m; $same_group = true; $criteria_changed = 6; for ($ci = $this->lsk - 1; $ci >= 0; $ci--) { $value = $criteria[$ci]; if ($old_values[$value] != $m[$value]) { $criteria_changed = $ci; } if ($old_values[$value] != $m[$value]) { if ($same_group) { $old_bak = $old_values; } $same_group = false; $old_values[$value] = $m[$value]; } } if (!$same_group && $old_bak) { for ($ci = $this->lsk - 2; $ci >= 0; $ci--) { if (!$summa[$ci + 1]) { $summa[$ci + 1] = new CSumma(); } $summa[$ci + 1]->add_skaits($SSkaits); $summa[$ci + 1]->add_skaits_bad($SSkaitsBad); $summa[$ci + 1]->add_virsmers($SVVirsm); $summa[$ci + 1]->add_redukcija_d($SVReducD); $summa[$ci + 1]->add_redukcija_l($SVReducL); $summa[$ci + 1]->add_brakis($SVBrakis); $summa[$ci + 1]->add_neto($SVNeto); $summa[$ci + 1]->add_bruto($SVBruto); if ($criteria_changed <= $ci && !$this->XML_Variants) { //fb($summa,'Summa'); $this->AddSumRowAtLevel($ci, $criteria, $summa, $old_bak); } } $this->arr_index++; $this->arr[$this->arr_index] = array(); foreach ($criteria as $key => $value) { $this->arr[$this->arr_index][$key] = $this->kodi($value, $old_bak[$value]); } $sm = new CSumma(); $sm->skaits = $SSkaits; $sm->skaits_bad = $SSkaitsBad; $sm->virsmers = $SVVirsm; $sm->redukcija_d = $SVReducD; $sm->redukcija_l = $SVReducL; $sm->brakis = $SVBrakis; $sm->neto = $SVNeto; $sm->bruto = $SVBruto; //fb($sm,'Sm'); $this->arr[$this->arr_index][summa] = $sm; //echo $m['brakis']; $summa_p->add_skaits($SSkaits); $summa_p->add_skaits_bad($SSkaitsBad); $summa_p->add_virsmers($SVVirsm); $summa_p->add_redukcija_d($SVReducD); $summa_p->add_redukcija_l($SVReducL); $summa_p->add_brakis($SVBrakis); $summa_p->add_neto($SVNeto); $summa_p->add_bruto($SVBruto); /*NULL vertibu ievietosana*/ $SVBruto = 0; $SVReducD = 0; $SVReducL = 0; $SVVirsm = 0; $SVNeto = 0; $SVBrakis = 0; $SSkaits = 0; $SSkaitsBad = 0; } $SSkaits++; /*Vai ir Vika Wood*/ // $min_virsmers = 0; if ($suga && $this->MyPOST['dalit_virsmers' . $this->grup]) { $min_virsmers = $this->MyPOST['virsmers' . $this->grup . '_' . $suga] / 100; } else { $min_virsmers = $this->MyPOST['virsmers' . $this->grup] / 100; } if ($this->MyPOST['metode'] == '1') { } else { if ($this->MyPOST['metode'] == '2') { } else { if ($this->MyPOST['metode'] == '3') { } else { if ($this->MyPOST['metode'] == '4') { } else { } } } } $tilp_Metode = $this->MyPOST['metode']; $gar_PirmsRed = 0; $gar_PecRed = 0; $diam_TievPirmsRed = 0; $diam_TievPecRed = 0; $diam_VidusPirmsRed = 0; $diam_VidusPecRed = 0; $diam_ResPirmsRed = 0; $diam_ResPecRed = 0; //---Tiek veikta pārbaude, pēc kādiem nosacījumiem noapaļot garumu pirms redukcijas, no kura tiek rēķināts Bruto tilpums!------------------------------------------------------------------------- $gar_PirmsRed = $m['LBruto'] / 100; if ($this->MyPOST['noapalot_garumu'] == '1') { $gar_PirmsRed = floor($m['LBruto'] / 10) / 10; } elseif ($this->MyPOST['noapalot_garumu'] == '2') { $gar_PirmsRed = (floor($m['LBruto'] / 10) + 0.5) / 10; } //---Tiek pārbaudīts, vai garums tiek ņemts kā nominālais garums, vai notiek nominālā garuma aprēķināšana, no kura tiks rēķināts Neto tilpums!------------------------------------------------------------------------- $gar_PecRed = gAtskaite::nom($gar_PirmsRed, $virsmeri, $min_virsmers); if ($this->MyPOST['is_vika'] == 'on') { $gar_PecRed = $m['LPecReduc'] / 100; } //---Tiek aprēķināts nominālais garums pirms pirms redukcijas, lai varētu aprēķināt tilpumu bez virsmēra!------------------------------------------------------------------------- $gar_NomPirsmRed = gAtskaite::nom($gar_PirmsRed, $virsmeri, $min_virsmers); //---------------------------------------------------------------------------- $diam_TievPirmsRed = $m['DBruto'] / 1000; $diam_VidusPirmsRed = $m['DBruto'] / 1000; $diam_ResPirmsRed = $m['DBruto'] / 1000; $rauk_koef = get_raukums_no_diam($raukums, $diam_TievPirmsRed * 1000); if ($this->MyPOST['noapalot_diametru'] == 'on') { $diam_TievPirmsRed = (floor($m['DBruto'] / 10) + 0.5) / 100; $diam_VidusPirmsRed = (floor($m['DBruto'] / 10) + 0.5) / 100; $diam_ResPirmsRed = (floor($m['DBruto'] / 10) + 0.5) / 100; } //---------------------------------------------------------------------------- if ($this->MyPOST['braka_virsmers'] == 'on') { } else { } $DPecReduc = $m['DPecReduc'] / 1000; $DReduc = $DBruto - $DPecReduc; if ($m[brakis] != '255') { $irbrakis = true; $brkods = 'standart'; } $tilpums_bruto = f2($diam_TievPirmsRed, $gar_PirmsRed, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_neto = f2($DPecReduc, $gar_PecRed, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_bruto_bez_virsmera = f2($diam_TievPirmsRed, $gar_NomPirsmRed, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_virsmers = $tilpums_bruto - $tilpums_bruto_bez_virsmera; $tilpums_garuma_redukcija = $tilpums_bruto_bez_virsmera - $tilpums_neto; $tilpums_diametrs_redukcija = 0; //---------- $SVBruto += $tilpums_bruto; if ($gostu_tabula) { if ($VBruto == -1 || $VReducD == -1 || $VReducL == -1 || $VVirsm == -1) { $SSkaitsBad++; } if ($VBruto == -1) { $VBruto = 0; } if ($VReducD == -1) { $VReducD = 0; } if ($VReducL == -1) { $VReducL = 0; } if ($VVirsm == -1) { $VVirsm = 0; } } $VBrakis = 0; if (strlen($this->rejected_values[$key]) == 1) { $irbrakis = true; $brkods = $this->rejected_values[$key]; } if (!$irbrakis) { /*Vai ir brakis?*/ $SVReducD += $tilpums_diametrs_redukcija; $SVReducL += $tilpums_garuma_redukcija; if ($gar_PecRed != 0) { $SVVirsm += $tilpums_virsmers; $SVNeto += $tilpums_neto; } else { $SVBrakis += $SVBruto; } } else { if ($gar_PecRed != 0) { $SVVirsm += $tilpums_virsmers; $VBrakis = $tilpums_bruto - $tilpums_virsmers; $SVBrakis += $VBrakis; } else { $VBrakis = $tilpums_bruto; $SVBrakis += $VBrakis; } } } /*Ievietosana*/ //$this->arr[$this->arr_index][$level-1] = $this->kodi($this->MyPOST['gtype'.$this->grup.$this->lsk],$val); /* Vienu reizi pašās beigās papildina ar pēdējo ierakstu */ $this->arr_index++; $this->arr[$this->arr_index] = array(); foreach ($criteria as $key => $value) { //fb($m['value']); $this->arr[$this->arr_index][$key] = $this->kodi($value, $last[$value]); } $sm = new CSumma(); $sm->skaits = $SSkaits; $sm->skaits_bad = $SSkaitsBad; $sm->virsmers = $SVVirsm; $sm->redukcija_d = $SVReducD; $sm->redukcija_l = $SVReducL; $sm->brakis = $SVBrakis; $sm->neto = $SVNeto; $sm->bruto = $SVBruto; $this->arr[$this->arr_index][summa] = $sm; for ($ci = $this->lsk - 2; $ci >= 0; $ci--) { if (!$summa[$ci + 1]) { $summa[$ci + 1] = new CSumma(); } $summa[$ci + 1]->add_skaits($SSkaits); $summa[$ci + 1]->add_skaits_bad($SSkaitsBad); $summa[$ci + 1]->add_virsmers($SVVirsm); $summa[$ci + 1]->add_redukcija_d($SVReducD); $summa[$ci + 1]->add_redukcija_l($SVReducL); $summa[$ci + 1]->add_brakis($SVBrakis); $summa[$ci + 1]->add_neto($SVNeto); $summa[$ci + 1]->add_bruto($SVBruto); if (!$this->XML_Variants) { $this->AddSumRowAtLevel($ci, $criteria, $summa, $last); } } $summa_p->add_skaits($SSkaits); $summa_p->add_skaits_bad($SSkaitsBad); $summa_p->add_virsmers($SVVirsm); $summa_p->add_redukcija_d($SVReducD); $summa_p->add_redukcija_l($SVReducL); $summa_p->add_brakis($SVBrakis); $summa_p->add_neto($SVNeto); $summa_p->add_bruto($SVBruto); }
{ $arr = array(1, 2, 3); foreach ($arr as &$v1) { foreach ($arr as $v2) { return; } } } function f3() { $arr = array(1, 2, 3); foreach ($arr as $v1) { foreach ($arr as &$v2) { return; } } } function f4() { $arr = array(1, 2, 3); foreach ($arr as &$v1) { foreach ($arr as &$v2) { return; } } } f1(); f2(); f3(); f4(); echo "Done\n";
<?php # not entry point, vuln function f1($a) { echo $a; } function f2($b) { echo $_GET['a']; } if (!defined('SOME_CONST')) { die; } f2(3);
echo "f1 fetch\n"; (yield $row); } function f2() { $db = new db(); $obj = $db->async_query('select sleep(1)'); echo "f2 async_query\n"; (yield $obj); $row = $db->fetch(); echo "f2 fetch\n"; (yield $row); } $start = microtime(); $gen1 = f1(); $gen2 = f2(); $gen1->current(); $gen2->current(); $gen1->next(); $gen2->next(); $ret1 = $gen1->current(); $ret2 = $gen2->current(); var_dump($ret1); var_dump($ret2); $end = microtime(); echo "Total time: ", $end - $start; class db { static $links; private $obj; function getConn()
function f() { f2(); }
echo "--------------- test type hint class-name ---------------------\n"; class C1 { } class D1 extends C1 { } function f2(C1 $p1) { echo "Inside " . __METHOD__ . "\n"; var_dump($p1); } //f2(123); // Argument 1 passed to f1() must be an instance of C1, integer give //f2([10,20]); // Argument 1 passed to f2() must be an instance of C1, array given f2(new C1()); f2(new D1()); echo "--------------- test type hint object ---------------------\n"; function f3(object $p1) { echo "Inside " . __METHOD__ . "\n"; var_dump($p1); } //f3(123); // Argument 1 passed to f1() must be an instance of object, integer given //f3([10,20]); // Argument 1 passed to f2() must be an instance of object, array given //f3(new C1); // must be an instance of object, instance of C1 given // object is not a special/recognized marker in this context echo "--------------- test type hint interface-name ---------------------\n"; interface I1 { } interface I2 extends I1
echo 'f(10, 12) + g(15) = ' . (f(10, 12) + g(15)) . "\n"; echo 'f(10, 12) - g(15) = ' . (f(10, 12) - g(15)) . "\n"; echo 'f(10, 12) * g(15) = ' . f(10, 12) * g(15) . "\n"; echo 'f(10, 12) / g(15) = ' . f(10, 12) / g(15) . "\n"; function f1($a) { echo "Inside f1\n"; return $a; } function f2($a) { echo "Inside f2\n"; return $a; } function f3($a) { echo "Inside f3\n"; return $a; } function f4($a) { echo "Inside f4\n"; return $a; } $values = array(0, 1, 2, 3, 4, 5, 6); var_dump($values); $values[f1(4) - f2(2)] = $values[f3(3) * f4(2)]; var_dump($values); $values = array(0, 1, 2, 3, 4, 5, 6); $values[f1(1) + f2(2)] = $values[f3(6) / f4(3)]; var_dump($values);
} function f2() { } } namespace functions\ns1 { function f1() { } f1(); // local \f1(); // global f2(); // global \f2(); // global } namespace functions\ns2 { function f2() { } } namespace functions\foo\bar\baz { function f3() { } } namespace { f1(); // global
function f1($a, $b) { $d = c1::a(5, $a + $b); $a = $a + $d['abcd']; echo f2($a + $b, $a * $b) . "\n"; }
<?php # entry point, vuln function f1($a) { echo $a; } function f2($b) { f1($b); } f2($_GET['a']);
<?php function f2() { $i = 0; $foo = array(1, 2, 3, 4); foreach ($foo as $key => &$val) { (yield null); echo "key={$key} val={$val}\n"; if ($val == 2) { $foo[$key] = 0; } else { if ($val == 3) { $foo['a'] = 7; } else { $val++; } } ++$i; if ($i >= 20) { break; } } var_dump($foo); } foreach (f2() as $_) { }
} } class Test2 implements IfaceInvoke { public function __invoke($x) { var_dump(__CLASS__); var_dump($x); } } function f1($x, $y) { $x($y); $x->__invoke($y); } function f2(A $x, $y) { $x($y); $x->__invoke($y); } function f3(IfaceInvoke $x, $y) { $x($y); $x->__invoke($y); } $t1 = new Test1(); $t2 = new Test2(); f1($t1, 1); f1($t2, 2); f2($t1, 1); f3($t2, 2);
<?php function id($x) { return $x; } function f1($x) { $z = id($x[0]); foreach ($x[0] as $a) { $z[] = array(id($z), count($x[0])); } } f1(array(array(0, 1, 2, 3))); function f2($x) { var_dump($x[0]); $y = 'foo' . $x[0] . 'bar'; } f2('foobar'); function f3($x) { $x = is_string($x[0]) ? $x[0] : get_class($x[0]); return $x; } var_dump(f3('abc')); var_dump(f3(array(new stdClass())));
function print_level($level, $query, &$summa_p, $irbrakis_p, $suga, $id) { global $lang; global $translate; // tekošā grupēšanas līmeņa lauks $lauks = $this->MyPOST["gtype" . $this->grup . $level]; ////////////////////////////////////////////////////////////////// JA IR DAL?JUMS PA SUG?M ////////////////// if ($lauks == 'garums' || $lauks == 'mind_pirms_red' || $lauks == 'skira') { if ($this->MyPOST["dalit" . $this->grup . $level] && $suga) { // ja ir sadalījums pa sugām ņemam attiecīgo lauku $gvalues = "gvalues" . $this->grup . $level . "_" . $suga; } else { // ja nav tad ņemam kopīgo $gvalues = "gvalues" . $this->grup . $level; } // sadalam nepieciešamās vērtības //echo $this->MyPOST[$gvalues]; $a = explode(',', $this->MyPOST[$gvalues]); $a = str_replace(' ', '', $a); // brāķis $abr = array(); for ($i = 0; $i < count($a); $i++) { if (substr($a[$i], 0, 1) == 'b' || substr($a[$i], 0, 1) == 'B') { $abr[$i] = '1'; //kursh masiva elements apzime braki $a[$i] = substr($a[$i], 1); //masiva elements bez B prieksa } } } ////////////////////////////////////////////////////////////////// JA IR DAL?JUMS PA SUG?M ////////////////// if ($lauks == 'fsc') { $a = array(); $a[0] = '0'; $a[1] = '1'; $typ = 'string'; } if ($lauks == 'kad_piegad' || $lauks == 'auto' || $lauks == 'brakis' || $lauks == 'cenu_matrica' || $lauks == 'cirsmas_kods' || $lauks == 'kad_piegad' || $lauks == 'kravas_id' || $lauks == 'nelss_pavadzime.pavadzime' || $lauks == 'piegad_kods' || $lauks == 'soferis' || $lauks == 'suga' || $lauks == 'iecirknis' || $lauks == 'skira' && $a[0] == '' && sizeof($abr) == 0) { //no visiem atlas?tajiem ba??iem pavadz?m? atlasa attiec?g? lauka atrodam?s v?rt?bas (pa vienai) $a = array(); $query__ = "select DISTINCT {$lauks} as lauks " . $query . " order by {$lauks} "; $r = $this->DB->query($query__); $ii = 0; while ($m = $this->DB->get_row($r)) { $a[$ii] = $m['lauks']; $ii++; } if ($lauks == 'brakis') { if ($a[count($a) - 1] == '255') { for ($j = count($a) - 1; $j > 0; $j--) { $a[$j] = $a[$j - 1]; } $a[0] = '255'; } } $typ = 'string'; } $row = 0; $summa_p->init(); $myid = 0; while (list($key, $val) = each($a)) { $myid++; if ($lauks == 'suga') { $suga = $val; } // virsm?ru sadal?jums if ($suga && $this->MyPOST['dalit_virsmeri' . $this->grup]) { if ($this->MyPOST['virsmeri' . $this->grup . '_' . $suga] != '') { $virsmeri = explode(',', $this->MyPOST['virsmeri' . $this->grup . '_' . $suga]); for ($i = 0; $i < count($virsmeri); $i++) { $virsmeri[$i] = $virsmeri[$i] / 100; } } } else { if ($this->MyPOST['virsmeri' . $this->grup] != '') { $virsmeri = explode(',', $this->MyPOST['virsmeri' . $this->grup]); for ($i = 0; $i < count($virsmeri); $i++) { $virsmeri[$i] = $virsmeri[$i] / 100; } } } if ($suga && $this->MyPOST['dalit_raukums' . $this->grup]) { $raukums = raukums_2_array($this->MyPOST['raukums' . $this->grup . '_' . $suga]); } else { $raukums = raukums_2_array($this->MyPOST['raukums' . $this->grup]); } if ($suga && $this->MyPOST['dalit_koeficients' . $this->grup]) { $koeficients = $this->MyPOST['koeficients' . $this->grup . '_' . $suga]; } else { $koeficients = $this->MyPOST['koeficients' . $this->grup]; } if ($typ != 'string') { $mbounds = explode('-', $a[$row]); } if (count($mbounds) > 1) { $low_range_brakis = 0; $high_range_brakis = 0; if ($mbounds[0] > 5) { $low_range_brakis = $mbounds[0]; } else { $low_range_brakis = $mbounds[0]; } if ($mbounds[1] < 994) { $high_range_brakis = $mbounds[1]; } else { $high_range_brakis = $mbounds[1]; } //pievienots 17.07.2007 if ($this->MyPOST["gtype" . $this->grup . $level] == 'mind_pirms_red') { $myquery = $query . " and ((" . $this->MyPOST["gtype" . $this->grup . $level] . ">=" . $mbounds[0] . " and " . $this->MyPOST["gtype" . $this->grup . $level] . "<=" . $mbounds[1] . " AND nelss_balkis_temp.import_type <> 'zbm') or (" . $this->MyPOST["gtype" . $this->grup . $level] . ">=" . $low_range_brakis . " and " . $this->MyPOST["gtype" . $this->grup . $level] . "<=" . $high_range_brakis . " AND nelss_balkis_temp.import_type = 'zbm'))"; } else { $myquery = $query . " and (" . $this->MyPOST["gtype" . $this->grup . $level] . ">=" . $mbounds[0] . " and " . $this->MyPOST["gtype" . $this->grup . $level] . "<=" . $mbounds[1] . ")"; } //echo 'adding to query = ' . $query . " and (". $this->MyPOST["gtype".$this->grup.$level] . ">=" . $mbounds[0] ." and " . $this->MyPOST["gtype".$this->grup.$level] . "<=" . $mbounds[1] . ")" . '<br />'; //echo '$myquery = ' . $myquery . '<br />'; //$myquery = $query . " and (". $this->MyPOST["gtype".$this->grup.$level] . ">=" . $mbounds[0] ." and " . $this->MyPOST["gtype".$this->grup.$level] . "<=" . $mbounds[1] . ")"; } else { if ($typ == 'string') { $myquery = $query . " and " . $this->MyPOST["gtype" . $this->grup . $level] . "='" . $a[$row] . "'"; } else { $myquery = $query . " and " . $this->MyPOST["gtype" . $this->grup . $level] . "=" . $a[$row]; } } $row = $row + 1; if ($this->rowclosed == true) { $this->rowclosed = false; $this->arr_index++; $this->arr[$this->arr_index] = array(); } if ($level == 1) { $this->arr[$this->arr_index][0] = ""; } else { if ($row > 1) { for ($i = 1; $i < $level + 1; $i++) { $this->arr[$this->arr_index][$i - 1] = ""; } } } $irbrakis = false; if ($irbrakis_p == true) { $irbrakis = true; } // Ja ir v?l dzi??ki l?me?i if ($level < $this->lsk) { if (!$val || $val == '') { $this->arr[$this->arr_index][$level - 1] = "nav"; } else { $this->arr[$this->arr_index][$level - 1] = $this->kodi($this->MyPOST['gtype' . $this->grup . $level], $val); } $sum = new CSumma(); if (strlen($abr[$key]) == 1) { $irbrakis = true; $brkods = $abr[$key]; } //$rrow = mysql_query("select * from gatskaite where rowid = '".dig3($id).dig3($myid)."'"); //if ($mrow = mysql_fetch_array($rrow)) //{ // $saved = 1; // $x = unserialize($mrow['data']); // $sum = $x[summa]; //} //else //{ //} $this->print_level($level + 1, $myquery, $sum, $irbrakis, $suga, $id . $myid); /* Testa nolūkiem */ // Te saskaita kop? par l?meni summu - XML varianta tas nav jadara if (!$this->XML_Variants) { $this->arr_index++; $this->arr[$this->arr_index] = array(); if ($sum->bruto) { $this->arr[$this->arr_index][-1] = $translate['kopa'][$lang]; for ($i = 0; $i < $this->lsk; $i++) { if ($level == $i + 1) { $this->arr[$this->arr_index][$i] = $this->kodi($this->MyPOST['gtype' . $this->grup . $level], $val); } else { $this->arr[$this->arr_index][$i] = ""; } } if (!$this->MyPOST['negrupet']) { $this->arr[$this->arr_index][summa] = $sum; } //echo "<tr><td height=1 colspan=".(7+$this->lsk)."><hr></tr>"; } } $this->rowclosed = true; if (!$this->MyPOST['negrupet']) { $summa_p->add_skaits($sum->skaits); $summa_p->add_skaits_bad($sum->skaits_bad); $summa_p->add_virsmers($sum->virsmers); $summa_p->add_redukcija_d($sum->redukcija_d); $summa_p->add_redukcija_l($sum->redukcija_l); $summa_p->add_brakis($sum->brakis); $summa_p->add_neto($sum->neto); $summa_p->add_bruto($sum->bruto); //print_r($summa_p); $this->lasttype = 'sum'; } } else { $this->lasttype = 'data'; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Saakums//////////////////////////////////////////////////////////////////////////////////// if ($this->MyPOST['metode'] == '1') { /*Query izvilksana*/ $tbl_field_identity = ""; $tbl_field_mind_pirms_red = ""; $tbl_field_garums = ""; $tbl_field_mind_pec_red = ""; $tbl_field_gar_pec_red = ""; $tbl_field_brakis = ""; $tbl_field_cenu_matrica = ""; $query__ = "select nelss_balkis_temp.id as Ident, mind_pirms_red as DBruto, garums as LBruto, mind_pec_red as DPecReduc, gar_pec_red as LPecReduc, brakis, nelss_pavadzime.cenu_matrica as cm " . $myquery; $r = $this->DB->query($query__); $SVBruto = 0; $SVReducD = 0; $SVReducL = 0; $SVVirsm = 0; $SVNeto = 0; $SVBrakis = 0; $SSkaits = 0; $SSkaitsBad = 0; $gostu_tabula = $this->MyPOST['gostu_tabula' . $this->grup]; while ($m = $this->DB->get_row($r)) { $SSkaits++; /*Vai ir Vika Wood*/ $min_virsmers = $this->MyPOST['virsmers' . $this->grup] / 100; if ($suga && $this->MyPOST['dalit_virsmers' . $this->grup]) { $min_virsmers = $this->MyPOST['virsmers' . $this->grup . '_' . $suga] / 100; } $DBruto = $m['DBruto'] / 1000; /*Noapalosana Test*/ if ($this->MyPOST['noapalot_garumu'] == '1') { $LBruto = floor($m['LBruto'] / 10) / 10; } elseif ($this->MyPOST['noapalot_garumu'] == '2') { $LBruto = (floor($m['LBruto'] / 10) + 0.5) / 10; } else { $LBruto = $m['LBruto'] / 100; } $rauk_koef = get_raukums_no_diam($raukums, $DBruto * 1000); $DPecReduc = $m['DPecReduc'] / 1000; $DReduc = $DBruto - $DPecReduc; $VBruto = f2($DBruto, $LBruto, $rauk_koef, $koeficients, $gostu_tabula); $VBezReducD = f2($DPecReduc, $LBruto, $rauk_koef, $koeficients, $gostu_tabula); $DBrutoNoap = $m['DBruto'] / 1000; if ($this->MyPOST['noapalot_diametru'] == 'on') { $DBrutoNoap = (floor($m['DBruto'] / 10) + 0.5) / 100; } if ($m[brakis] != '255') { $irbrakis = true; $brkods = 'standart'; } if ($this->MyPOST['is_vika'] == 'on') { $LNeto = $m['LPecReduc'] / 100; $LNom = nom($LBruto, $virsmeri, $min_virsmers); $LPecVirsm = $LNom; $LReduc = round($LPecVirsm - $LNeto, 3); $LVirsm = round($LBruto - $LPecVirsm, 3); $VBezVirsm = f2($DPecReduc, $LBruto - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsmNeredD = f2($DBruto, $LBruto - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); if (!$irbrakis) { $VVirsm = $VBezReducD - $VBezVirsm; } else { $VVirsm = $VBruto - $VBezVirsmNeredD; // $VVirsm = $VBezReducD-$VBezVirsm; } $VBezReducL = f2($DPecReduc, $LPecVirsm - $LReduc, $rauk_koef, $koeficients, $gostu_tabula); $VReducL = $VBezVirsm - $VBezReducL; } else { $LPecReduc = $m['LPecReduc'] / 100; if ($this->MyPOST['noapalot_garumu'] == '1') { $LPecReduc = floor($m['LPecReduc'] / 10) / 10; $LNeap = $m['LPecReduc'] / 100; } $LNom = nom($LNeap, $virsmeri, $min_virsmers); $LNeto = $LNom; $LVirsm = round($LPecReduc - $LNeto, 3); $LReduc = round($LBruto - $LPecReduc, 3); $VBruto_redukcija = f2($DBruto, $LNom, $rauk_koef, $koeficients, $gostu_tabula); $VBezReducD_redukcija = f2($DPecReduc, $LNom, $rauk_koef, $koeficients, $gostu_tabula); $VReducD = $VBruto_redukcija - $VBezReducD_redukcija; $VBezReducL = f2($DBrutoNoap, $LBruto - $LReduc, $rauk_koef, $koeficients, $gostu_tabula); $VReducL = $VBruto - $VBezReducL; $VBezReduc = f2($DPecReduc, $LPecReduc, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsm = f2($DPecReduc, $LPecReduc - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsmNeredD = f2($DBruto, $LPecReduc - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); $VVirsm = $VBruto - $VBezVirsmNeredD; } $SVBruto += $VBruto; if ($gostu_tabula) { if ($VBruto == -1 || $VReducD == -1 || $VReducL == -1 || $VVirsm == -1) { $SSkaitsBad++; } if ($VBruto == -1) { $VBruto = 0; } if ($VReducD == -1) { $VReducD = 0; } if ($VReducL == -1) { $VReducL = 0; } if ($VVirsm == -1) { $VVirsm = 0; } } $VBrakis = 0; if (strlen($abr[$key]) == 1) { $irbrakis = true; $brkods = $abr[$key]; } if (!$irbrakis) { /*Vai ir brakis?*/ if ($LNom != 0) { $SVVirsm += $VVirsm; //$SVNeto += f2($DPecReduc,$LNeto,$rauk_koef,$koeficients,$gostu_tabula); $SVNeto += $VBruto - $VReducL - $VReducD - $VVirsm; $SVReducD += $VReducD; $SVReducL += $VReducL; } else { $SVBrakis += $VBruto; } } else { if ($LNom != 0) { if ($this->MyPOST['braka_virsmers'] == 'on') { $SVVirsm += $VVirsm; $VBrakis = $VBruto - $VVirsm; } else { $VBrakis = $VBruto; } $SVBrakis += $VBrakis; } else { $VBrakis = $VBruto; $SVBrakis += $VBrakis; } } } //-------------------------------------------TEST-Line-> } elseif ($this->MyPOST['metode'] == '2') { } elseif ($this->MyPOST['metode'] == '3') { } else { } // $this->arr[$this->arr_index][$level-3] = $this->kodi($this->MyPOST['gtype'.$this->grup.$this->lsk],$val); // echo $this->arr[$this->arr_index][$level]; /* Testēšanas nolūkiem */ if (!$this->MyPOST['negrupet']) { $this->arr[$this->arr_index][b_kods] = $this->kodi($this->MyPOST['gtype' . $this->grup . $this->lsk], $val); $sm = new CSumma(); $sm->skaits = $SSkaits; $sm->skaits_bad = $SSkaitsBad; $sm->virsmers = $SVVirsm; $sm->redukcija_d = $SVReducD; $sm->redukcija_l = $SVReducL; $sm->brakis = $SVBrakis; $sm->neto = $SVNeto; $sm->bruto = $SVBruto; $this->arr[$this->arr_index][summa] = $sm; $this->rowclosed = true; $summa_p->add_skaits($SSkaits); $summa_p->add_skaits_bad($SSkaitsBad); $summa_p->add_virsmers($SVVirsm); $summa_p->add_redukcija_d($SVReducD); $summa_p->add_redukcija_l($SVReducL); $summa_p->add_brakis($SVBrakis); $summa_p->add_neto($SVNeto); $summa_p->add_bruto($SVBruto); } } } /* */ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////Beigas///////////////////////////////////////////// // "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"; // Aizpild?m tuk?umus // "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"; if ($this->lsk > 1) { for ($j = $this->lsk - 2; $j >= 0; $j--) { $v = $this->arr[0][$j]; for ($i = 0; $i < count($this->arr); $i++) { // iekop?jam ja tuk?s if ($this->arr[$i][$j] == "" && $this->arr[$i][$j + 1] != "") { $this->arr[$i][$j] = $v; } // ja nav tuk?s pa?em v?rt?bu if ($this->arr[$i][$j] != "") { $v = $this->arr[$i][$j]; } } } } }
<?php function f2($b) { echo $b; } function f1($c) { ## this shit doesn't work either $b = htmlspecialchars($c); return $b; } $A = $_POST['a']; $A = f1($A); f2($A);
unset($a); // remove only alias from point, so destructor runs echo "Done\n"; //*/ ///* echo "----------------- value returning of handle types ----------------------\n"; function f2() { $b = new Point(5, 7); // create first new point, and make $b an alias to it echo "After 'new Point(5, 7)', \$b is {$b}\n"; return $b; // return a temporary copy, which is a new alias // However, as $b goes away, remove its alias } $a = f2(); // make a new alias in $a and remove the temporary alias echo "After '\$a = f2()', \$a is {$a}\n"; unset($a); // remove only alias from point, so destructor runs echo "Done\n"; //*/ ///* echo "----------------- byRef returning of handle types ----------------------\n"; function &g2() { $b = new Point(5, 7); // create first new point, and make $b an alias to it echo "After 'new Point(5, 7)', \$b is {$b}\n"; return $b; // return as though using $a =& $b
var_dump($k, $v); } } function f5($x) { switch ($x[0]) { case 0: var_dump($x[0]); } } function f6($x, $y, $z) { if ($z) { goto my_clause; } if ($y) { var_dump($y); } else { if ($x[0]) { var_dump($x[0]); my_clause: var_dump($x); } } } f1(array(0, 0)); f2(array(10)); f3(array(10), false); f4(array(array(1, 2, 3))); f5(array(false, false)); f6(array(true), false, false);
<?php function f1($a) { echo $a; // final_call_vulnerable{xss}{f1::$a}=code=>'echo($a);' ,line=>4,current_local_virtual_line_number=>2 } function f2($b) { $b = trim($b); f1($b); } f2($_GET['page']);
function f1($a, $b) { echo f2($a + $b, $a * $b) . "\n"; }
function print_level($level, $query, &$summa_p, $irbrakis_p, $suga, $id) { global $lang; global $translate; // tekošā grupēšanas līmeņa lauks $lauks = $this->MyPOST["gtype" . $this->grup . $level]; ////////////////////////////////////////////////////////////////// JA IR DAL?JUMS PA SUG?M ////////////////// if ($lauks == 'garums' || $lauks == 'mind_pirms_red' || $lauks == 'skira') { if ($this->MyPOST["dalit" . $this->grup . $level] && $suga) { // ja ir sadalījums pa sugām ņemam attiecīgo lauku $gvalues = "gvalues" . $this->grup . $level . "_" . $suga; } else { // ja nav tad ņemam kopīgo $gvalues = "gvalues" . $this->grup . $level; } // sadalam nepieciešamās vērtības //echo $this->MyPOST[$gvalues]; $a = explode(',', $this->MyPOST[$gvalues]); $a = str_replace(' ', '', $a); // brāķis $abr = array(); for ($i = 0; $i < count($a); $i++) { if (substr($a[$i], 0, 1) == 'b' || substr($a[$i], 0, 1) == 'B') { $abr[$i] = '1'; //kursh masiva elements apzime braki $a[$i] = substr($a[$i], 1); //masiva elements bez B prieksa } } } ////////////////////////////////////////////////////////////////// JA IR DAL?JUMS PA SUG?M ////////////////// if ($lauks == 'fsc') { $a = array(); $a[0] = '0'; $a[1] = '1'; $typ = 'string'; } if ($lauks == 'kad_piegad' || $lauks == 'auto' || $lauks == 'brakis' || $lauks == 'cenu_matrica' || $lauks == 'cirsmas_kods' || $lauks == 'kad_piegad' || $lauks == 'kravas_id' || $lauks == 'pavadzime.pavadzime' || $lauks == 'piegad_kods' || $lauks == 'soferis' || $lauks == 'suga' || $lauks == 'iecirknis' || $lauks == 'skira' && $a[0] == '' && sizeof($abr) == 0) { //no visiem atlas?tajiem ba??iem pavadz?m? atlasa attiec?g? lauka atrodam?s v?rt?bas (pa vienai) $a = array(); $query__ = "select DISTINCT {$lauks} as lauks " . $query . " order by {$lauks} "; $r = $this->DB->query($query__); $ii = 0; while ($m = $this->DB->get_row($r)) { $a[$ii] = $m['lauks']; $ii++; } if ($lauks == 'brakis') { if ($a[count($a) - 1] == '255') { for ($j = count($a) - 1; $j > 0; $j--) { $a[$j] = $a[$j - 1]; } $a[0] = '255'; } } $typ = 'string'; } $row = 0; $summa_p->init(); $myid = 0; while (list($key, $val) = each($a)) { $myid++; if ($lauks == 'suga') { $suga = $val; } // virsm?ru sadal?jums if ($suga && $this->MyPOST['dalit_virsmeri' . $this->grup]) { if ($this->MyPOST['virsmeri' . $this->grup . '_' . $suga] != '') { $virsmeri = explode(',', $this->MyPOST['virsmeri' . $this->grup . '_' . $suga]); for ($i = 0; $i < count($virsmeri); $i++) { $virsmeri[$i] = $virsmeri[$i] / 100; } } } else { if ($this->MyPOST['virsmeri' . $this->grup] != '') { $virsmeri = explode(',', $this->MyPOST['virsmeri' . $this->grup]); for ($i = 0; $i < count($virsmeri); $i++) { $virsmeri[$i] = $virsmeri[$i] / 100; } } } if ($suga && $this->MyPOST['dalit_raukums' . $this->grup]) { $raukums = raukums_2_array($this->MyPOST['raukums' . $this->grup . '_' . $suga]); } else { $raukums = raukums_2_array($this->MyPOST['raukums' . $this->grup]); } if ($suga && $this->MyPOST['dalit_koeficients' . $this->grup]) { $koeficients = $this->MyPOST['koeficients' . $this->grup . '_' . $suga]; } else { $koeficients = $this->MyPOST['koeficients' . $this->grup]; } if ($typ != 'string') { $mbounds = explode('-', $a[$row]); } if (count($mbounds) > 1) { $low_range_brakis = 0; $high_range_brakis = 0; if ($mbounds[0] > 5) { $low_range_brakis = $mbounds[0]; } else { $low_range_brakis = $mbounds[0]; } if ($mbounds[1] < 994) { $high_range_brakis = $mbounds[1]; } else { $high_range_brakis = $mbounds[1]; } //pievienots 17.07.2007 if ($this->MyPOST["gtype" . $this->grup . $level] == 'mind_pirms_red') { $myquery = $query . " and ((" . $this->MyPOST["gtype" . $this->grup . $level] . ">=" . $mbounds[0] . " and " . $this->MyPOST["gtype" . $this->grup . $level] . "<=" . $mbounds[1] . " AND balkis_temp.import_type <> 'zbm') or (" . $this->MyPOST["gtype" . $this->grup . $level] . ">=" . $low_range_brakis . " and " . $this->MyPOST["gtype" . $this->grup . $level] . "<=" . $high_range_brakis . " AND balkis_temp.import_type = 'zbm'))"; } else { $myquery = $query . " and (" . $this->MyPOST["gtype" . $this->grup . $level] . ">=" . $mbounds[0] . " and " . $this->MyPOST["gtype" . $this->grup . $level] . "<=" . $mbounds[1] . ")"; } //echo 'adding to query = ' . $query . " and (". $this->MyPOST["gtype".$this->grup.$level] . ">=" . $mbounds[0] ." and " . $this->MyPOST["gtype".$this->grup.$level] . "<=" . $mbounds[1] . ")" . '<br />'; //echo '$myquery = ' . $myquery . '<br />'; //$myquery = $query . " and (". $this->MyPOST["gtype".$this->grup.$level] . ">=" . $mbounds[0] ." and " . $this->MyPOST["gtype".$this->grup.$level] . "<=" . $mbounds[1] . ")"; } else { if ($typ == 'string') { $myquery = $query . " and " . $this->MyPOST["gtype" . $this->grup . $level] . "='" . $a[$row] . "'"; } else { $myquery = $query . " and " . $this->MyPOST["gtype" . $this->grup . $level] . "=" . $a[$row]; } } $row = $row + 1; if ($this->rowclosed == true) { $this->rowclosed = false; $this->arr_index++; $this->arr[$this->arr_index] = array(); } if ($level == 1) { $this->arr[$this->arr_index][0] = ""; } else { if ($row > 1) { for ($i = 1; $i < $level + 1; $i++) { $this->arr[$this->arr_index][$i - 1] = ""; } } } $irbrakis = false; if ($irbrakis_p == true) { $irbrakis = true; } // Ja ir v?l dzi??ki l?me?i if ($level < $this->lsk) { if (!$val || $val == '') { $this->arr[$this->arr_index][$level - 1] = "nav"; } else { $this->arr[$this->arr_index][$level - 1] = $this->kodi($this->MyPOST['gtype' . $this->grup . $level], $val); } $sum = new CSumma(); if (strlen($abr[$key]) == 1) { $irbrakis = true; $brkods = $abr[$key]; } //$rrow = mysql_query("select * from gatskaite where rowid = '".dig3($id).dig3($myid)."'"); //if ($mrow = mysql_fetch_array($rrow)) //{ // $saved = 1; // $x = unserialize($mrow['data']); // $sum = $x[summa]; //} //else //{ //} $this->print_level($level + 1, $myquery, $sum, $irbrakis, $suga, $id . $myid); /* Testa nolūkiem */ // Te saskaita kop? par l?meni summu - XML varianta tas nav jadara if (!$this->XML_Variants) { $this->arr_index++; $this->arr[$this->arr_index] = array(); if ($sum->bruto) { $this->arr[$this->arr_index][-1] = $translate['kopa'][$lang]; for ($i = 0; $i < $this->lsk; $i++) { if ($level == $i + 1) { $this->arr[$this->arr_index][$i] = $this->kodi($this->MyPOST['gtype' . $this->grup . $level], $val); } else { $this->arr[$this->arr_index][$i] = ""; } } if (!$this->MyPOST['negrupet']) { $this->arr[$this->arr_index][summa] = $sum; } //echo "<tr><td height=1 colspan=".(7+$this->lsk)."><hr></tr>"; } } $this->rowclosed = true; if (!$this->MyPOST['negrupet']) { $summa_p->add_skaits($sum->skaits); $summa_p->add_skaits_bad($sum->skaits_bad); $summa_p->add_virsmers($sum->virsmers); $summa_p->add_redukcija_d($sum->redukcija_d); $summa_p->add_redukcija_l($sum->redukcija_l); $summa_p->add_brakis($sum->brakis); $summa_p->add_neto($sum->neto); $summa_p->add_bruto($sum->bruto); //print_r($summa_p); $this->lasttype = 'sum'; } //$this->arr[$this->arr_index]['type']='sum'; //$this->arr[$this->arr_index]['level']=$level; //$st = serialize($this->arr[$this->arr_index]); //if ($level==1) // mysql_query("insert into gatskaite (rowid,data) values ('".dig3($myid)."','$st')"); //else // mysql_query("insert into gatskaite (rowid,data) values ('".dig3($id).dig3($myid)."','$st')"); } else { $this->lasttype = 'data'; ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Saakums//////////////////////////////////////////////////////////////////////////////////// if ($this->MyPOST['metode'] == '1') { /*Query izvilksana*/ $query__ = "select balkis_temp.id as Ident, mind_pirms_red as DBruto, garums as LBruto, mind_pec_red as DPecReduc, gar_pec_red as LPecReduc, brakis, pavadzime.cenu_matrica as cm " . $myquery; // echo $query__.'<br /><br />'; $r = $this->DB->query($query__); /*NULL vertibu ievietosana*/ $SVBruto = 0; $SVReducD = 0; $SVReducL = 0; $SVVirsm = 0; $SVNeto = 0; $SVBrakis = 0; $SSkaits = 0; $SSkaitsBad = 0; $gostu_tabula = $this->MyPOST['gostu_tabula' . $this->grup]; /* */ while ($m = $this->DB->get_row($r)) { $SSkaits++; /*Vai ir Vika Wood*/ if ($suga && $this->MyPOST['dalit_virsmers' . $this->grup]) { $min_virsmers = $this->MyPOST['virsmers' . $this->grup . '_' . $suga] / 100; } else { $min_virsmers = $this->MyPOST['virsmers' . $this->grup] / 100; } $Ident = $m['Ident']; // $LBruto = $m['LBruto'] / 100; $DBruto = $m['DBruto'] / 1000; /*Noapalosana Test*/ if ($this->MyPOST['noapalot_garumu'] == '1') { $LBruto = floor($m['LBruto'] / 10) / 10; // echo "Bruto noapaļots = ".$DBrutoNoap.'<br>'; } elseif ($this->MyPOST['noapalot_garumu'] == '2') { $LBruto = (floor($m['LBruto'] / 10) + 0.5) / 10; // echo "Bruto noapaļots = ".$DBrutoNoap.'<br>'; } elseif ($this->MyPOST['noapalot_garumu'] == '3') { $LBruto = $m['LBruto'] / 100; // echo "Bruto noapaļots = ".$DBrutoNoap.'<br>'; } else { $LBruto = $m['LBruto'] / 100; } $rauk_koef = get_raukums_no_diam($raukums, $DBruto * 1000); $DPecReduc = $m['DPecReduc'] / 1000; $DReduc = $DBruto - $DPecReduc; $VBruto = f2($DBruto, $LBruto, $rauk_koef, $koeficients, $gostu_tabula); /* echo "DBruto = ".$DBruto.'<br/>'; echo "LBruto= ".$LBruto.'<br/>'; echo "rauk_koef= ".$rauk_koef.'<br/>'; echo "koeficients = ".$koeficients.'<br/>'; echo "gostu_tabula = ".$gostu_tabula.'<br/>','<br/>','<br/>'; */ //echo $rauk_koef . '; ' . $koeficients . '; ' . $VBruto . '<br />'; $VBezReducD = f2($DPecReduc, $LBruto, $rauk_koef, $koeficients, $gostu_tabula); // $VReducD = $VBruto-$VBezReducD; // echo "VReducD => ".$VReducD." = ".$VBruto." - ".$VBezReducD.'<br/>','<br/>','<br/>'; /*Noapalosana*/ if ($this->MyPOST['noapalot_diametru'] == 'on') { $DBrutoNoap = (floor($m['DBruto'] / 10) + 0.5) / 100; } else { $DBrutoNoap = $m['DBruto'] / 1000; } if ($m[brakis] != '255') { $irbrakis = true; $brkods = 'standart'; } //print_r($this->MyPOST); //echo '<<<<<<<<<<<<<<<<<<<<' . $this->MyPOST['piegad_grupa']; // if (strtoupper($this->MyPOST['pieg_lig_num'])=='VIKA WOOD') { if ($this->MyPOST['is_vika'] == 'on') { $LNeto = $m['LPecReduc'] / 100; $LNom = nom($LBruto, $virsmeri, $min_virsmers); $LPecVirsm = $LNom; $LReduc = round($LPecVirsm - $LNeto, 3); $LVirsm = round($LBruto - $LPecVirsm, 3); $VBezVirsm = f2($DPecReduc, $LBruto - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsmNeredD = f2($DBruto, $LBruto - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); if (!$irbrakis) { $VVirsm = $VBezReducD - $VBezVirsm; } else { $VVirsm = $VBruto - $VBezVirsmNeredD; // $VVirsm = $VBezReducD-$VBezVirsm; } $VBezReducL = f2($DPecReduc, $LPecVirsm - $LReduc, $rauk_koef, $koeficients, $gostu_tabula); $VReducL = $VBezVirsm - $VBezReducL; } else { if ($this->MyPOST['noapalot_garumu'] == '1') { $LPecReduc = floor($m['LPecReduc'] / 10) / 10; $LNeap = $m['LPecReduc'] / 100; } else { $LPecReduc = $m['LPecReduc'] / 100; } $LNom = nom($LNeap, $virsmeri, $min_virsmers); $LNeto = $LNom; $LVirsm = round($LPecReduc - $LNeto, 3); $LReduc = round($LBruto - $LPecReduc, 3); $VBruto_redukcija = f2($DBruto, $LNom, $rauk_koef, $koeficients, $gostu_tabula); //echo $rauk_koef . '; ' . $koeficients . '; ' . $VBruto . '<br />'; $VBezReducD_redukcija = f2($DPecReduc, $LNom, $rauk_koef, $koeficients, $gostu_tabula); $VReducD = $VBruto_redukcija - $VBezReducD_redukcija; $VBezReducL = f2($DBrutoNoap, $LBruto - $LReduc, $rauk_koef, $koeficients, $gostu_tabula); $VReducL = $VBruto - $VBezReducL; $VBezReduc = f2($DPecReduc, $LPecReduc, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsm = f2($DPecReduc, $LPecReduc - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsmNeredD = f2($DBruto, $LPecReduc - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); if (!$irbrakis) { $VVirsm = $VBruto - $VBezVirsmNeredD; } else { $VVirsm = $VBruto - $VBezVirsmNeredD; } /* if($Ident == 12774972) { // $VBruto = f2($DBruto,$LBruto,$rauk_koef,$koeficients,$gostu_tabula); $Neto = $VBruto - $VReducL - $VReducD - $VVirsm; echo "Bruto tilp.= ".$VBruto.'<br />'."Diametrs = ".$DBruto.'<br />'."Neto = ".$Neto.'<br />'."Diametrs (Tīrais) = ".$m['DBruto'].'<br />'."Garums = ".$LBruto.'<br />'."Garums (Tīrais) = ".$m['LBruto'].'<br />'."Raukums = ".$rauk_koef.'<br />'."Koeficents = ".$koeficients.'<br />'; } */ } $SVBruto += $VBruto; /* Parveidosana uz mazakam mervienibam $DBruto = $DBruto/1000; $DPecReduc = $DPecReduc/1000; $LBruto = $LBruto/100; $LPecReduc = $LPecReduc/100; */ /* $DReduc = round($DBruto - $DPecReduc,3); */ /* echo '<br />','$ID = ' . $r_id . '<br />'; echo '$LPecReduc = ' . $LPecReduc . '<br />'; echo '$LBruto = ' . $LBruto . '<br />'; echo '$DBruto = ' . $DBruto . '<br />'; echo '$DPecReduc = ' . $DPecReduc . '<br />'; echo '$DReduc = ' . $DReduc . '<br />'; echo '$LNeto = ' . $LNeto . '<br />'; echo '$LVirsm = ' . $LVirsm . '<br />'; echo '$LPecVirsm = ' . $LPecVirsm . '<br />'; echo '$LNom = ' . $LNom . '<br />'; echo '$LReduc = ' . $LReduc . '<br />'; echo '$VBruto = ' . $VBruto . '<br />'; echo '$SVBruto = ' . $SVBruto . '<br />'; echo '$SVNeto = ' . $SVNeto . '<br />'; echo '$VReducD = ' . $VReducD . '<br />'; echo '$VBezReducL = ' . $VBezReducL . '<br />'; echo '$VBezReducD = ' . $VBezReducD . '<br />'; echo '$VBezVirsm = ' . $VBezVirsm . '<br />'; echo '$VReducL = ' . $VReducL . '<br />'; echo '$SVReducD = ' . $SVReducD . '<br />'; echo '$SVReducL = ' . $SVReducL . '<br />'; echo '$VBezReduc = ' . $VBezReduc . '<br />'; echo '$VVirsm = ' . $VVirsm . '<br />'; echo '$min_virsmers = ' . $min_virsmers . '<br />'; echo '<br /><br /><br />'; */ /* $bruto_temp = f2($DBruto,$LBruto,$rauk_koef,$koeficients,$gostu_tabula); $bruto_temp_red = f2($DNoapReduc,$LBruto,$rauk_koef,$koeficients,$gostu_tabula); $DReduc = f2($DPecReduc,$LBruto,$rauk_koef,$koeficients,$gostu_tabula); $LReduc = f2($DNoapReduc,$LPecReduc,$rauk_koef,$koeficients,$gostu_tabula); $Reduc = f2($DPecReduc,$LPecReduc,$rauk_koef,$koeficients,$gostu_tabula); $virsm = f2($DPecReduc,$l3,$rauk_koef,$koeficients,$gostu_tabula); $virsm_nered = f2($DBruto,$l3,$rauk_koef,$koeficients,$gostu_tabula); */ /* */ if ($gostu_tabula) { if ($VBruto == -1 || $VReducD == -1 || $VReducL == -1 || $VVirsm == -1) { $SSkaitsBad++; } if ($VBruto == -1) { $VBruto = 0; } if ($VReducD == -1) { $VReducD = 0; } if ($VReducL == -1) { $VReducL = 0; } if ($VVirsm == -1) { $VVirsm = 0; } } // echo '$irbrakis = ' . $irbrakis . '<br />'; /*Vai nav brakis?*/ /* if (!$irbrakis) { $DRed_temp = round($LBruto-$DRed,3); $LRed_temp = round($DBruto-$LRed,3); $VDRed = round($VDRed + $DRed_temp,3); $VLRed = round($VLRed + $LRed_temp,3); } */ $VBrakis = 0; if (strlen($abr[$key]) == 1) { $irbrakis = true; $brkods = $abr[$key]; } // echo '$irbrakis2 = ' . $irbrakis . '<br />'; // echo "VReducD = ".$VReducD.'<br/>'; if (!$irbrakis) { /*Vai ir brakis?*/ if ($LNom != 0) { $SVVirsm += $VVirsm; //$SVNeto += f2($DPecReduc,$LNeto,$rauk_koef,$koeficients,$gostu_tabula); $SVNeto += $VBruto - $VReducL - $VReducD - $VVirsm; $SVReducD += $VReducD; $SVReducL += $VReducL; } else { $SVBrakis += $VBruto; } } else { if ($LNom != 0) { if ($this->MyPOST['braka_virsmers'] == 'on') { $SVVirsm += $VVirsm; $VBrakis = $VBruto - $VVirsm; } else { $VBrakis = $VBruto; } $SVBrakis += $VBrakis; } else { $VBrakis = $VBruto; $SVBrakis += $VBrakis; } } } //-------------------------------------------TEST-Line-> } elseif ($this->MyPOST['metode'] == '2') { $query__ = "select mind_pirms_red as DBruto, garums as LBruto, mind_pec_red as DPecReduc, gar_pec_red as LPecReduc, brakis, pavadzime.cenu_matrica as cm, balkis_temp.id as r_id" . $myquery; $r = $this->DB->query($query__); /*NULL vertibu ievietosana*/ $SVBruto = 0; $SVReducD = 0; $SVReducL = 0; $SVVirsm = 0; $SVNeto = 0; $SVBrakis = 0; $SSkaits = 0; $SSkaitsBad = 0; $gostu_tabula = $this->MyPOST['gostu_tabula' . $this->grup]; /* */ while ($m = $this->DB->get_row($r)) { $SSkaits++; /*Vai ir Vika Wood*/ if ($suga && $this->MyPOST['dalit_virsmers' . $this->grup]) { $min_virsmers = $this->MyPOST['virsmers' . $this->grup . '_' . $suga] / 100; } else { $min_virsmers = $this->MyPOST['virsmers' . $this->grup] / 100; } $r_id = $m['r_id']; // $LBruto = $m['LBruto'] / 100; $DBruto = $m['DBruto'] / 1000; /*Noapalosana Test*/ if ($this->MyPOST['noapalot_garumu'] == '1') { $LBruto = floor($m['LBruto'] / 10) / 10; // echo "Bruto noapaļots = ".$DBrutoNoap.'<br>'; } elseif ($this->MyPOST['noapalot_garumu'] == '2') { $LBruto = (floor($m['LBruto'] / 10) + 0.5) / 10; // echo "Bruto noapaļots = ".$DBrutoNoap.'<br>'; } elseif ($this->MyPOST['noapalot_garumu'] == '3') { $LBruto = $m['LBruto'] / 100; // echo "Bruto noapaļots = ".$DBrutoNoap.'<br>'; } else { $LBruto = $m['LBruto'] / 100; } $rauk_koef = get_raukums_no_diam($raukums, $DBruto * 1000); $DPecReduc = $m['DPecReduc'] / 1000; $DReduc = $DBruto - $DPecReduc; $VBruto = f2_mod($DBruto, $LBruto, $rauk_koef, $koeficients, $gostu_tabula); /* echo "DBruto = ".$DBruto.'<br/>'; echo "LBruto= ".$LBruto.'<br/>'; echo "rauk_koef= ".$rauk_koef.'<br/>'; echo "koeficients = ".$koeficients.'<br/>'; echo "gostu_tabula = ".$gostu_tabula.'<br/>','<br/>','<br/>'; */ //echo $rauk_koef . '; ' . $koeficients . '; ' . $VBruto . '<br />'; $VBezReducD = f2_mod($DPecReduc, $LBruto, $rauk_koef, $koeficients, $gostu_tabula); // $VReducD = $VBruto-$VBezReducD; // echo "VReducD => ".$VReducD." = ".$VBruto." - ".$VBezReducD.'<br/>','<br/>','<br/>'; /*Noapalosana*/ if ($this->MyPOST['noapalot_diametru'] == 'on') { $DBrutoNoap = (floor($m['DBruto'] / 10) + 0.5) / 100; } else { $DBrutoNoap = $m['DBruto'] / 1000; } if ($m[brakis] != '255') { $irbrakis = true; $brkods = 'standart'; } //print_r($this->MyPOST); //echo '<<<<<<<<<<<<<<<<<<<<' . $this->MyPOST['piegad_grupa']; // if (strtoupper($this->MyPOST['pieg_lig_num'])=='VIKA WOOD') { if ($this->MyPOST['is_vika'] == 'on') { $LNeto = $m['LPecReduc'] / 100; $LNom = nom($LBruto, $virsmeri, $min_virsmers); $LPecVirsm = $LNom; $LReduc = round($LPecVirsm - $LNeto, 3); $LVirsm = round($LBruto - $LPecVirsm, 3); $VBezVirsm = f2_mod($DPecReduc, $LBruto - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsmNeredD = f2_mod($DBruto, $LBruto - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); if (!$irbrakis) { $VVirsm = $VBezReducD - $VBezVirsm; } else { $VVirsm = $VBruto - $VBezVirsmNeredD; // $VVirsm = $VBezReducD-$VBezVirsm; } $VBezReducL = f2_mod($DPecReduc, $LPecVirsm - $LReduc, $rauk_koef, $koeficients, $gostu_tabula); $VReducL = $VBezVirsm - $VBezReducL; } else { if ($this->MyPOST['noapalot_garumu'] == '1') { $LPecReduc = floor($m['LPecReduc'] / 10) / 10; $LNeap = $m['LPecReduc'] / 100; } else { $LPecReduc = $m['LPecReduc'] / 100; } $LNom = nom($LNeap, $virsmeri, $min_virsmers); $LNeto = $LNom; $LVirsm = round($LPecReduc - $LNeto, 3); $LReduc = round($LBruto - $LPecReduc, 3); $VBruto_redukcija = f2_mod($DBruto, $LNom, $rauk_koef, $koeficients, $gostu_tabula); //echo $rauk_koef . '; ' . $koeficients . '; ' . $VBruto . '<br />'; $VBezReducD_redukcija = f2_mod($DPecReduc, $LNom, $rauk_koef, $koeficients, $gostu_tabula); $VReducD = $VBruto_redukcija - $VBezReducD_redukcija; $VBezReducL = f2_mod($DBrutoNoap, $LBruto - $LReduc, $rauk_koef, $koeficients, $gostu_tabula); $VReducL = $VBruto - $VBezReducL; $VBezReduc = f2_mod($DPecReduc, $LPecReduc, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsm = f2_mod($DPecReduc, $LPecReduc - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsmNeredD = f2_mod($DBruto, $LPecReduc - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); if (!$irbrakis) { $VVirsm = $VBruto - $VBezVirsmNeredD; } else { $VVirsm = $VBruto - $VBezVirsmNeredD; } } $SVBruto += $VBruto; /* */ /* Parveidosana uz mazakam mervienibam $DBruto = $DBruto/1000; $DPecReduc = $DPecReduc/1000; $LBruto = $LBruto/100; $LPecReduc = $LPecReduc/100; */ /* $DReduc = round($DBruto - $DPecReduc,3); */ /* echo '<br />','$ID = ' . $r_id . '<br />'; echo '$LPecReduc = ' . $LPecReduc . '<br />'; echo '$LBruto = ' . $LBruto . '<br />'; echo '$DBruto = ' . $DBruto . '<br />'; echo '$DPecReduc = ' . $DPecReduc . '<br />'; echo '$DReduc = ' . $DReduc . '<br />'; echo '$LNeto = ' . $LNeto . '<br />'; echo '$LVirsm = ' . $LVirsm . '<br />'; echo '$LPecVirsm = ' . $LPecVirsm . '<br />'; echo '$LNom = ' . $LNom . '<br />'; echo '$LReduc = ' . $LReduc . '<br />'; echo '$VBruto = ' . $VBruto . '<br />'; echo '$SVBruto = ' . $SVBruto . '<br />'; echo '$SVNeto = ' . $SVNeto . '<br />'; echo '$VReducD = ' . $VReducD . '<br />'; echo '$VBezReducL = ' . $VBezReducL . '<br />'; echo '$VBezReducD = ' . $VBezReducD . '<br />'; echo '$VBezVirsm = ' . $VBezVirsm . '<br />'; echo '$VReducL = ' . $VReducL . '<br />'; echo '$SVReducD = ' . $SVReducD . '<br />'; echo '$SVReducL = ' . $SVReducL . '<br />'; echo '$VBezReduc = ' . $VBezReduc . '<br />'; echo '$VVirsm = ' . $VVirsm . '<br />'; echo '$min_virsmers = ' . $min_virsmers . '<br />'; echo '<br /><br /><br />'; /* /* $bruto_temp = f2($DBruto,$LBruto,$rauk_koef,$koeficients,$gostu_tabula); $bruto_temp_red = f2($DNoapReduc,$LBruto,$rauk_koef,$koeficients,$gostu_tabula); $DReduc = f2($DPecReduc,$LBruto,$rauk_koef,$koeficients,$gostu_tabula); $LReduc = f2($DNoapReduc,$LPecReduc,$rauk_koef,$koeficients,$gostu_tabula); $Reduc = f2($DPecReduc,$LPecReduc,$rauk_koef,$koeficients,$gostu_tabula); $virsm = f2($DPecReduc,$l3,$rauk_koef,$koeficients,$gostu_tabula); $virsm_nered = f2($DBruto,$l3,$rauk_koef,$koeficients,$gostu_tabula); */ /* */ if ($gostu_tabula) { if ($VBruto == -1 || $VReducD == -1 || $VReducL == -1 || $VVirsm == -1) { $SSkaitsBad++; } if ($VBruto == -1) { $VBruto = 0; } if ($VReducD == -1) { $VReducD = 0; } if ($VReducL == -1) { $VReducL = 0; } if ($VVirsm == -1) { $VVirsm = 0; } } // echo '$irbrakis = ' . $irbrakis . '<br />'; /*Vai nav brakis?*/ /* if (!$irbrakis) { $DRed_temp = round($LBruto-$DRed,3); $LRed_temp = round($DBruto-$LRed,3); $VDRed = round($VDRed + $DRed_temp,3); $VLRed = round($VLRed + $LRed_temp,3); } */ $VBrakis = 0; if (strlen($abr[$key]) == 1) { $irbrakis = true; $brkods = $abr[$key]; } // echo '$irbrakis2 = ' . $irbrakis . '<br />'; // echo "VReducD = ".$VReducD.'<br/>'; if (!$irbrakis) { /*Vai ir brakis?*/ if ($LNom != 0) { $SVVirsm += $VVirsm; //$SVNeto += f2($DPecReduc,$LNeto,$rauk_koef,$koeficients,$gostu_tabula); $SVNeto += $VBruto - $VReducL - $VReducD - $VVirsm; $SVReducD += $VReducD; $SVReducL += $VReducL; } else { $SVBrakis += $VBruto; } } else { if ($LNom != 0) { if ($this->MyPOST['braka_virsmers'] == 'on') { $SVVirsm += $VVirsm; $VBrakis = $VBruto - $VVirsm; } else { $VBrakis = $VBruto; } $SVBrakis += $VBrakis; } else { $VBrakis = $VBruto; $SVBrakis += $VBrakis; } } } //-------------------------------------------TEST-Line-> } elseif ($this->MyPOST['metode'] == '3') { /*3.metode<------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /*Query izvilksana*/ $query__ = "select mind_pirms_red as tievgalis_pirms_redukcijas,maxd_miza as resgalis_pirms_redukcijas, garums as LBruto,balkis_temp.id as bb_id,mind_pirms_red as DPirmsReduc, mind_pec_red as DPecReduc, gar_pec_red as LPecReduc, brakis, pavadzime.cenu_matrica as cm" . $myquery; $r = $this->DB->query($query__); $SVBruto = 0; $SVReducD = 0; $SVReducL = 0; $SVVirsm = 0; $SVNeto = 0; $SVBrakis = 0; $SSkaits = 0; $SSkaitsBad = 0; $gostu_tabula = $this->MyPOST['gostu_tabula' . $this->grup]; while ($m = $this->DB->get_row($r)) { /* Testēšanas nolūkiem */ if ($this->MyPOST['negrupet']) { $SVBruto = 0; $SVReducD = 0; $SVReducL = 0; $SVVirsm = 0; $SVNeto = 0; $SVBrakis = 0; $SSkaits = 0; $SSkaitsBad = 0; } $SSkaits++; /*Vai ir Vika Wood*/ $idents = $m['bb_id']; if ($suga && $this->MyPOST['dalit_virsmers' . $this->grup]) { $min_virsmers = $this->MyPOST['virsmers' . $this->grup . '_' . $suga] / 100; } else { $min_virsmers = $this->MyPOST['virsmers' . $this->grup] / 100; } $r_id = $m['r_id']; $DBruto = $m['tievgalis_pirms_redukcijas'] / 1000; $Diametra_starpiba = $m['DPirmsReduc'] - $m['DPecReduc']; $balkis_id = $m['balkis_id']; /*Noapalosana Test*/ if ($this->MyPOST['noapalot_garumu'] == '1') { $LBruto = floor($m['LBruto'] / 10) / 10; } elseif ($this->MyPOST['noapalot_garumu'] == '2') { $LBruto = (floor($m['LBruto'] / 10) + 0.5) / 10; } elseif ($this->MyPOST['noapalot_garumu'] == '3') { $LBruto = $m['LBruto'] / 100; } else { $LBruto = $m['LBruto'] / 100; } $rauk_koef = get_raukums_no_diam($raukums, $DBruto * 1000); $DPecReduc = $m['DPecReduc'] / 1000; $DPecReducResg = ($m['resgalis_pirms_redukcijas'] - $Diametra_starpiba) / 1000; $DReduc = $DBruto - $DPecReduc; if ($this->MyPOST['noapalot_diametru'] == 'on') { $DBrutoNoap = (floor($m['tievgalis_pirms_redukcijas'] / 10) + 0.5) / 100; $DBrutoResg = (floor($m['resgalis_pirms_redukcijas'] / 10) + 0.5) / 100; } else { $DBrutoNoap = $m['tievgalis_pirms_redukcijas'] / 1000; $DBrutoResg = $m['resgalis_pirms_redukcijas'] / 1000; } if ($m[brakis] != '255') { $irbrakis = true; $brkods = 'standart'; } /* echo "Tievgalis = ".$DBrutoNoap.'<br />'; echo "Tievgalis pec redukcijas = ".$DPecReduc.'<br />'; echo "Resgalis = ".$DBrutoResg.'<br />'; echo "Resgalis pec redukcijas = ".$DPecReducResg.'<br />'.'<br />'; */ if ($this->MyPOST['is_vika'] == 'on') { if ($this->MyPOST['noapalot_garumu'] == '1') { $LPecReduc = floor($m['LPecReduc'] / 10) / 10; } else { $LPecReduc = $m['LPecReduc'] / 100; } $LNomBruto = nom_3($m['LBruto'], $virsmeri, $min_virsmers) / 100; $LnomNeto = $m['LPecReduc'] / 100; $tilpums_bruto = f2_mod_3($DBrutoNoap, $DBrutoResg, $LBruto, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_neto = f2_mod_3($DPecReduc, $DPecReducResg, $LnomNeto, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_bruto_virsmeram = f2_mod_3($DBrutoNoap, $DBrutoResg, $LNomBruto, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_garuma_redukcijai = f2_mod_3($DBrutoNoap, $DBrutoResg, $LnomNeto, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_diametra_redukcijai_neto = f2_mod_3($DPecReduc, $DPecReducResg, $LnomNeto, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_virsmers = $tilpums_bruto - $tilpums_bruto_virsmeram; $tilpums_kopejai_redukcijai = $tilpums_bruto_virsmeram - $tilpums_diametra_redukcijai_neto; $tilpums_garuma_redukcija = $tilpums_kopejai_redukcijai; $tilpums_diametrs_redukcija = 0; } else { if ($this->MyPOST['noapalot_garumu'] == '1') { $LPecReduc = floor($m['LPecReduc'] / 10) / 10; } else { $LPecReduc = $m['LPecReduc'] / 100; } $LNomBruto = nom_3($m['LBruto'], $virsmeri, $min_virsmers) / 100; $LnomNeto = nom_3($m['LPecReduc'], $virsmeri, $min_virsmers) / 100; $tilpums_bruto = f2_mod_3($DBrutoNoap, $DBrutoResg, $LBruto, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_neto = f2_mod_3($DPecReduc, $DPecReducResg, $LnomNeto, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_bruto_virsmeram = f2_mod_3($DBrutoNoap, $DBrutoResg, $LNomBruto, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_garuma_redukcijai = f2_mod_3($DBrutoNoap, $DBrutoResg, $LnomNeto, $rauk_koef, $koeficients, $gostu_tabula); $tilpums_virsmers = $tilpums_bruto - $tilpums_bruto_virsmeram; $tilpums_kopejai_redukcijai = $tilpums_bruto_virsmeram - $tilpums_neto; $tilpums_garuma_redukcija = $tilpums_kopejai_redukcijai; $tilpums_diametrs_redukcija = 0; } $SVBruto += $tilpums_bruto; if ($gostu_tabula) { if ($VBruto == -1 || $VReducD == -1 || $VReducL == -1 || $VVirsm == -1) { $SSkaitsBad++; // echo "Skaits = ".$SSkaitsBad.'<br />'; } if ($VBruto == -1) { $VBruto = 0; } if ($VReducD == -1) { $VReducD = 0; } if ($VReducL == -1) { $VReducL = 0; } if ($VVirsm == -1) { $VVirsm = 0; } } $VBrakis = 0; if (strlen($abr[$key]) == 1) { $irbrakis = true; $brkods = $abr[$key]; } if (!$irbrakis) { if ($LnomNeto != 0) { $SVVirsm += $tilpums_virsmers; $SVNeto += $tilpums_neto; } else { $tilpums_diametrs_redukcija = 0; $tilpums_garuma_redukcija = 0; $VBrakis = $tilpums_bruto; $SVBrakis += $tilpums_bruto; } $SVReducD += $tilpums_diametrs_redukcija; $SVReducL += $tilpums_garuma_redukcija; } else { if ($LnomNeto != 0) { if ($this->MyPOST['braka_virsmers'] == 'on') { $SVVirsm += $tilpums_virsmers; $VBrakis = $tilpums_bruto - $tilpums_virsmers; } else { $VBrakis = $tilpums_bruto; } $SVBrakis += $VBrakis; } else { $VBrakis = $tilpums_bruto; $SVBrakis += $VBrakis; } } /* Testēšanas nolūkiem */ if ($this->MyPOST['negrupet']) { $this->arr[$this->arr_index][$level - 1] = $this->kodi($this->MyPOST['gtype' . $this->grup . $this->lsk], $val); //Pievienoju pārbaudi uz redukcijas negatīvu lielumu 2010-03-09, Ervīns if ($SVReducD + $SVReducL < 0) { $this->ERRORS .= "<font color=red>Pavadzīmē " . $this->MyPOST['pavadzime'] . " izveidojās negatīvs redukcijas lielums!</font><br><br>"; return false; } $this->arr[$this->arr_index][2] = $m['tievgalis_pirms_redukcijas']; $this->arr[$this->arr_index][3] = $m['LBruto']; $sm = new CSumma(); $sm->skaits = $SSkaits; $sm->skaits_bad = $SSkaitsBad; $sm->virsmers = $SVVirsm; $sm->redukcija_d = $SVReducD; $sm->redukcija_l = $SVReducL; $sm->brakis = $SVBrakis; $sm->neto = $SVNeto; $sm->bruto = $SVBruto; $this->arr[$this->arr_index][summa] = $sm; $this->rowclosed = true; $summa_p->add_skaits($SSkaits); $summa_p->add_skaits_bad($SSkaitsBad); $summa_p->add_virsmers($SVVirsm); $summa_p->add_redukcija_d($SVReducD); $summa_p->add_redukcija_l($SVReducL); $summa_p->add_brakis($SVBrakis); $summa_p->add_neto($SVNeto); $summa_p->add_bruto($SVBruto); $this->arr_index++; } } /*------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ } else { /*4.metode<------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ /*Query izvilksana*/ $query__ = "select mind_pirms_red as DBruto, garums as LBruto, mind_pec_red as DPecReduc, gar_pec_red as LPecReduc, brakis, pavadzime.cenu_matrica as cm" . $myquery; // echo $query__.'<br />'; $r = $this->DB->query($query__); /*NULL vertibu ievietosana*/ $SVBruto = 0; $SVReducD = 0; $SVReducL = 0; $SVVirsm = 0; $SVNeto = 0; $SVBrakis = 0; $SSkaits = 0; $SSkaitsBad = 0; $gostu_tabula = $this->MyPOST['gostu_tabula' . $this->grup]; /**/ while ($m = $this->DB->get_row($r)) { $SSkaits++; /*Vai ir Vika Wood*/ if ($suga && $this->MyPOST['dalit_virsmers' . $this->grup]) { $min_virsmers = $this->MyPOST['virsmers' . $this->grup . '_' . $suga] / 100; } else { $min_virsmers = $this->MyPOST['virsmers' . $this->grup] / 100; } // $LBruto = $m['LBruto'] / 100; $DBruto = $m['DBruto'] / 1000; /*Noapalosana Test*/ if ($this->MyPOST['noapalot_garumu'] == '1') { $LBruto = floor($m['LBruto'] / 10) / 10; // echo "Bruto noapaļots = ".$DBrutoNoap.'<br>'; } elseif ($this->MyPOST['noapalot_garumu'] == '2') { $LBruto = (floor($m['LBruto'] / 10) + 0.5) / 10; // echo "Bruto noapaļots = ".$DBrutoNoap.'<br>'; } elseif ($this->MyPOST['noapalot_garumu'] == '3') { $LBruto = $m['LBruto'] / 100; // echo "Bruto noapaļots = ".$DBrutoNoap.'<br>'; } else { $LBruto = $m['LBruto'] / 100; } $rauk_koef = get_raukums_no_diam($raukums, $DBruto * 1000); $DPecReduc = $m['DPecReduc'] / 1000; $DReduc = $DBruto - $DPecReduc; $VBruto = f2($DBruto, $LBruto, $rauk_koef, $koeficients, $gostu_tabula); // echo $rauk_koef . '; ' . $koeficients . '; ' . $VBruto . '<br />'; $VBezReducD = f2($DPecReduc, $LBruto, $rauk_koef, $koeficients, $gostu_tabula); $VReducD = $VBruto - $VBezReducD; /*Noapalosana*/ if ($this->MyPOST['noapalot_diametru'] == 'on') { $DBrutoNoap = (floor($m['DBruto'] / 10) + 0.5) / 100; } else { $DBrutoNoap = $m['DBruto'] / 1000; } if ($m[brakis] != '255') { $irbrakis = true; $brkods = 'standart'; } //print_r($this->MyPOST); //echo '<<<<<<<<<<<<<<<<<<<<' . $this->MyPOST['piegad_grupa']; // if (strtoupper($this->MyPOST['pieg_lig_num'])=='VIKA WOOD') { if ($this->MyPOST['is_vika'] == 'on') { $LNeto = $m['LPecReduc'] / 100; $LNom = nom($LBruto, $virsmeri, $min_virsmers); $LPecVirsm = $LNom; $LReduc = round($LPecVirsm - $LNeto, 3); $LVirsm = round($LBruto - $LPecVirsm, 3); $VBezVirsm = f2($DPecReduc, $LBruto - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsmNeredD = f2($DBruto, $LBruto - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); if (!$irbrakis) { $VVirsm = $VBezReducD - $VBezVirsm; } else { $VVirsm = $VBezReducD - $VBezVirsm; // $VVirsm = $VBruto-$VBezVirsmNeredD; } // $VVirsm = $VBezReducD-$VBezVirsm; $VBezReducL = f2($DPecReduc, $LPecVirsm - $LReduc, $rauk_koef, $koeficients, $gostu_tabula); $VReducL = $VBezVirsm - $VBezReducL; } else { if ($this->MyPOST['noapalot_garumu'] == '1') { $LPecReduc = floor($m['LPecReduc'] / 10) / 10; } else { $LPecReduc = $m['LPecReduc'] / 100; } $LNom = nom($LPecReduc, $virsmeri, $min_virsmers); $LNeto = $LNom; $LVirsm = round($LPecReduc - $LNeto, 3); $LReduc = round($LBruto - $LPecReduc, 3); $VBezReducL = f2($DBrutoNoap, $LBruto - $LReduc, $rauk_koef, $koeficients, $gostu_tabula); $VReducL = $VBruto - $VBezReducL; $VBezReduc = f2($DPecReduc, $LPecReduc, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsm = f2($DPecReduc, $LPecReduc - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); $VBezVirsmNeredD = f2($DBruto, $LPecReduc - $LVirsm, $rauk_koef, $koeficients, $gostu_tabula); if (!$irbrakis) { $VVirsm = $VBezReduc - $VBezVirsm; } else { $VVirsm = $VBezReduc - $VBezVirsm; // $VVirsm = $VBruto-$VBezVirsmNeredD; } } $SVBruto += $VBruto; if ($gostu_tabula) { if ($VBruto == -1 || $VReducD == -1 || $VReducL == -1 || $VVirsm == -1) { $SSkaitsBad++; } if ($VBruto == -1) { $VBruto = 0; } if ($VReducD == -1) { $VReducD = 0; } if ($VReducL == -1) { $VReducL = 0; } if ($VVirsm == -1) { $VVirsm = 0; } } /*Vai nav brakis?*/ /* if (!$irbrakis) { $DRed_temp = round($LBruto-$DRed,3); $LRed_temp = round($DBruto-$LRed,3); $VDRed = round($VDRed + $DRed_temp,3); $VLRed = round($VLRed + $LRed_temp,3); } */ $VBrakis = 0; if (strlen($abr[$key]) == 1) { $irbrakis = true; $brkods = $abr[$key]; } if (!$irbrakis) { /*Vai ir brakis?*/ $SVReducD += $VReducD; $SVReducL += $VReducL; if ($LNom != 0) { $SVVirsm += $VVirsm; //$SVNeto += f2($DPecReduc,$LNeto,$rauk_koef,$koeficients,$gostu_tabula); $SVNeto += $VBruto - $VReducL - $VReducD - $VVirsm; } else { $SVBrakis += $VBezReduc; } } else { if ($LNom != 0) { if ($this->MyPOST['braka_virsmers'] == 'on') { $SVVirsm += $VVirsm; $VBrakis = $VBruto - $VVirsm; } else { $VBrakis = $VBruto; } $SVBrakis += $VBrakis; } else { $VBrakis = $VBruto; $SVBrakis += $VBrakis; } } } /*------------------------------------------------------------------------------------------------------------------------------------------------------------------*/ } // echo '$brakis = ' . $SVBrakis . '<br />'; // echo '<br /><br /><br />'; /*Ievietosana*/ /* Testēšanas nolūkiem */ if (!$this->MyPOST['negrupet']) { $this->arr[$this->arr_index][$level - 1] = $this->kodi($this->MyPOST['gtype' . $this->grup . $this->lsk], $val); $sm = new CSumma(); $sm->skaits = $SSkaits; $sm->skaits_bad = $SSkaitsBad; $sm->virsmers = $SVVirsm; $sm->redukcija_d = $SVReducD; $sm->redukcija_l = $SVReducL; $sm->brakis = $SVBrakis; $sm->neto = $SVNeto; $sm->bruto = $SVBruto; $this->arr[$this->arr_index][summa] = $sm; $this->rowclosed = true; $summa_p->add_skaits($SSkaits); $summa_p->add_skaits_bad($SSkaitsBad); $summa_p->add_virsmers($SVVirsm); $summa_p->add_redukcija_d($SVReducD); $summa_p->add_redukcija_l($SVReducL); $summa_p->add_brakis($SVBrakis); $summa_p->add_neto($SVNeto); $summa_p->add_bruto($SVBruto); } } } /* */ /////////////////////////////////////////////////////////////////////////////////////////////////////////////////Beigas///////////////////////////////////////////// // "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"; // Aizpild?m tuk?umus // "<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"; if ($this->lsk > 1) { for ($j = $this->lsk - 2; $j >= 0; $j--) { $v = $this->arr[0][$j]; for ($i = 0; $i < count($this->arr); $i++) { // iekop?jam ja tuk?s if ($this->arr[$i][$j] == "" && $this->arr[$i][$j + 1] != "") { $this->arr[$i][$j] = $v; } // ja nav tuk?s pa?em v?rt?bu if ($this->arr[$i][$j] != "") { $v = $this->arr[$i][$j]; } } } } }
echo "f:1 \$gVar1 = " . $gVar1 . "\n"; // still seeing $gVar1 even though global decl // is presumed to have gone out of scope, and there is // global import at block level 1 } f(TRUE); echo "--- Back at top-level\n"; f(TRUE); echo "--- Back at top-level\n"; ///* echo "Top2: CON1 = " . CON1 . "\n"; echo "Top2: CON2 = " . CON2 . "\n"; echo "Top2: CON3 = " . CON3 . "\n"; echo "Top2: CON4 = " . CON4 . "\n"; echo "---\n"; //*/ echo "Top2: \$sVar1 = " . $sVar1 . "\n"; echo "Top2: \$tmp = " . $tmp . "\n"; echo "Top2: \$gVar1 = " . $gVar1 . "\n"; echo "-----------------------------------------\n"; function f2($p) { static $s2 = 100; if ($p) { // global $s2; // with this in, var_dump($s2) is NULL, becuse there is no such global var_dump($s2); var_dump(isset($s2)); } } f2(TRUE);