我做了一个
<?php session_start(); ?>
在我的两页顶部。 Seacond我已经制作了一些$_SESSION
变量并给了它们值,但我得到了错误的值。在我原来的网站上是绝对正确的价值我不知道...
在我的原始页面上设置:
$_SESSION["gesamtumsatz_kcal"] = $gesamtumsatz_kcal = round(($grund + $arbeit + $sonst), 0);
但是当我把它设置在那里时,我会在我的seacond页面上看到值 655 但它应该 2573 。
这是我不明白的奇怪事情。当我将代码从原始代码更改为此处
时$_SESSION["gesamtumsatz_kcal"] = round(($grund + $arbeit + $sonst), 0);
它运作正常吗?!
我刚刚删除$gesamtumsatz_kcal
。
在我的seacond页面上,我使用
echo $_SESSION['gesamtumsatz_kcal'] . '</br>';
让我的价值回归。
答案 0 :(得分:2)
您不需要为使用额外的代码付费;你呢?为什么不这样反过来试试呢:
<?php
session_start();
$gesamtumsatz_kcal = round(($grund + $arbeit + $sonst), 0);
$_SESSION["gesamtumsatz_kcal"] = $gesamtumsatz_kcal;
仅为了更加彻底(如果任何变量不包含有效
Float
或Integer
);尝试在表达式之前检查值,如下所示:
<?php
session_start();
// JUST FOR DEBUGGING... TRY TO SEE THE CONTENTS OF THE VARIABLES:
// $grund, $arbeit AND $sonst:
var_dump("\$grund=" . $grund);
var_dump("\$arbeit=" . $arbeit);
var_dump("\$sonst=" . $sonst);
$gesamtumsatz_kcal = null;
if($grund && $arbeit && $sonst){
// ALL THESES A'INT NECESSARY BUT JUST BEING A LITTLE THOROUGH
// EXPLICITLY CAST THE VALUES OF THESE VARIABLES TO FLOAT...
$grund = floatval($grund);
$arbeit = floatval($arbeit);
$sonst = floatval($sonst);
$gesamtumsatz_kcal = round(($grund + $arbeit + $sonst), 0);
}
$_SESSION["gesamtumsatz_kcal"] = $gesamtumsatz_kcal;