PHP in decimalke

Noh, pa imam problem, delam online "menjalnico"

problem je da ko iz baze poberem števila za pretvarjanje so recimo 1,38 in jih dobim kot string ...

zato PHP z njimi računa kot 1 če imam recimo 1,38 :confused:

ve kdo kako to rešit ? Polje v bazi je int, tudi z varchar ni delalo ...

13 odgovorov

Pojma nimam, kaj ti pocenjas, ampak tudi naslednja zadeva:

echo number_format('1E-06',6,',','');

prav lepo prikaze 0,000001

Koda z vsemi tistimi abs() in protect() je pa hudo smesna :) Kaj pocenja protect()?

function protect($string) {
    $string = mysql_escape_string(strip_tags(htmlspecialchars($string)));
    return $string;
}

Edit:

prehitro pa preverč na enkrat :(

3 outpute sem mel pa sem na enem probal ... pogledal pa drugi ...

zdaj dela.

Hvala

Si ti rahlo paranoicen? V tem primeru ne rabis vseh teh escapov in strip_tags in htmlspecialchars :)

Povsem varna koda je naslednja:

if (isset($_POST["vrednost"]) && is_numeric($_POST["vrednost"]) &&
    isset($_POST["zacetna_enota"]) && is_numeric($_POST["zacetna_enota"]) &&
    isset($_POST["koncna_enota"]) && is_numeric($_POST["koncna_enota"])) {
    $rezultat = abs($_POST["vrednost"]) * abs($_POST["zacetna_enota"]) / abs($_POST["koncna_enota"]);
}
else $rezultat = "Prosim vnesi število.";

Ce ti funkcija is_numeric() vrne TRUE, potem sigurno nimas v spremenljivki nic drugega, kot stevilko, torej ne more biti notri nobenih HTML tagov, nobenih narekovajev, in tako naprej... Zakaj vidis potrebo po escapanju narekovajev? Zapisujes te spremenljivke v bazo? Vidis kje moznost SQL injectiona, ce sploh ne vpisujes zadeve v SQL?

Ce pomislim, da si v neki temi imel pomisleke glede uporabe isset(), ker je kao pocasna funkcija, ajoj :)