$ session数据仅返回0

时间:2014-11-27 11:20:23

标签: php session-variables

我试图将一个脚本放在一起,为用户做一些数学运算 这工作正常但是当我尝试将其放入会话并尝试向用户显示该值时,如果将其设置为0,则仅返回0。
有谁知道我做错了什么?

<?php
session_start();
if( isset( $_SERVER['HTTP_X_REQUESTED_WITH'] ) ){            
$class1 = filter_var($_POST['class1'], FILTER_SANITIZE_STRING);
$class2 = filter_var($_POST['class2'], FILTER_SANITIZE_STRING);
$class3 = filter_var($_POST['class3'], FILTER_SANITIZE_STRING);
$class4 = filter_var($_POST['class4'], FILTER_SANITIZE_STRING);
$class5 = filter_var($_POST['class5'], FILTER_SANITIZE_STRING);
$class1C = $class1 * 35;
$class2C = $class2 * 5;
$class3C = $class3 * 7.5;
$class4C = $class4 * 26;
$class5C = $class5 * 2.5;
$totaal1 = $class1C + $class2C + $class3C + $class4C + $class5C;

$res = array($class1C, $class2C, $class3C, $class4C, $class5C, $totaal1);
foreach($res as $name => $var) {
$_SESSION[$name] = $var;
}


$result = array("error" => false, "html" => null);
$result["error"] = false;
$result["html"] = "<h3>Session information: var_dump($_SESSION[$class1C]) ($_SESSION[$class2C]) ($_SESSION[$totaal1])</h3>";
} else {
$result["error"] = true;
$result["html"] = "<h3>Error</h3>";
}
echo json_encode($result);
exit;
?>

1 个答案:

答案 0 :(得分:0)

你不能在双引号字符串中调用var_dump,并且var_dump不会返回任何内容:它只显示内容。

即使可以,$class1C也不是$_SESSION

的有效索引

保持与代码相同的逻辑,您可以将您的行更改为以下内容:

$result["html"] = "<h3>Session information:";
ob_start();
var_dump($_SESSION[0]); // contains $class1C
echo $_SESSION[1]; // contains $class2C
echo $_SESSION[5]; // contains $totaal1
$result["html"] .= ob_get_clean();
$result["html"] .= "</h3>";

修改: 如果你想使用索引&#39; class2C&#39;,&#39; totaal1&#39;等等。你需要初始化$res如下:

$res = array(
'class1C' => $class1C,
'class2C' => $class2C, 
'class3C' => $class3C,
'class4C' => $class4C, 
'class5C' => $class5C,
'totaal1' => $totaal1
);

然后,设置$_SESSION的循环将设置正确的索引,您将能够使用$_SESSION['class1C']来获取正确的值。