发送$ _SESSION错误值

时间:2016-09-28 18:17:41

标签: php html session

我做了一个

<?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>';

让我的价值回归。

1 个答案:

答案 0 :(得分:2)

您不需要为使用额外的代码付费;你呢?为什么不这样反过来试试呢:

<?php
    session_start();

    $gesamtumsatz_kcal              = round(($grund + $arbeit + $sonst), 0);
    $_SESSION["gesamtumsatz_kcal"]  = $gesamtumsatz_kcal;
  

仅为了更加彻底(如果任何变量不包含有效FloatInteger);尝试在表达式之前检查值,如下所示:

<?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;