PHP" unset()"函数在前一个代码之前有效

时间:2015-02-06 18:09:59

标签: php loops parameter-passing session-variables

我有一个问题。

我在另一个页面中的Graph对象中传递了我的数据(作为会话),如果我之后没有取消会话,我会看到两个相同的图形,否则我看不到任何图形。 我尝试使用unset,var = NULL,使用= array()声明while循环之外的会话;但所有方法都失败了。我疯了!请用你的知识点亮我。感谢。

这是代码(抱歉,但我无法在此网站中缩进您的代码):

//STATISTICHE.PHP

<?php session_start(); ?>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../../css/stile.css">
</head>
<body>

<?php

include_once("../../classi/utils.lib.php");
include_once("../../classi/license.lib.php");
include_once("../../classi/funzioni.php");
include_once("../../classi/config.php");
include_once("../../classi/auth.lib.php");

list($status, $user) = auth_get_status();

if($status == AUTH_LOGGED && license_has($user, "sede_centrale"))
{
    menu();
    echo "<h1>STATISTICHE</h1>";

    $query="SELECT nome FROM negozi ORDER BY id ASC";
    $risultato=$db_magazzino->query($query);
    while($negozio=$risultato->fetch_assoc())
    {      
        $rimanenze=rimanenze($negozio['nome'], NULL, NULL, NULL, NULL);
        $query2="SELECT * FROM elenco_movimenti WHERE causale='Vendita al dettaglio' AND fornitore='".$negozio['nome']."' ORDER BY data DESC";
        $risultato2=$db_magazzino->query($query2);
        while($scarico=$risultato2->fetch_assoc())
        {
            $_SESSION['data'][$scarico['data']]=$scarico['quantita'];
            //echo $_SESSION['data'][$scarico['data']];
        }
        //var_dump($rimanenze);
        if(count($rimanenze)>0)
        {
            echo "<h2>Grafico delle vendite di ".$negozio['nome'].":</h2>";
            echo "<h4>Valore magazzino ".$negozio['nome'].": ".$rimanenze[count($rimanenze)-1]['valorizzazione_magazzino']." Euro</h3>";
            //var_dump($_SESSION['data']);
            if($_SESSION['data']!=NULL){
                echo "<br/><img src=\"grafico.php\"/>";
                unset($_SESSION['data']);}
            }
            //$risultato2->close();
        }

    } else
       non_autorizzato();
?>
</body>

GRAFICO.PHP

<?php
    session_start();
    include_once("../../classi/phpgraphlib-master/phpgraphlib.php");
    $graph=new PHPGraphLib(1000,500);
    //Aggiungo i valori di cui sopra
    $graph->addData($_SESSION['data']);
    //Imposto il titolo
    $graph->setTitle("Prodotti venduti");
    //Indichiamo alla libreria di non mostrare le barre
    $graph->setBars(false);
    //Di conseguenza segnaliamo che si tratta di un grafico a linee
    $graph->setLine(true);
    //Visualizza un bollino nel punto del valore indicato
    $graph->setDataPoints(true);
    //Indichiamo il colore del bollino
    $graph->setDataPointColor("yellow");
    //Visualizza il valore del punto
    $graph->setDataValues(true);
    //Indichiamo il colore
    $graph->setDataValueColor("blue");     
    //Creo il grafico
    $graph->createGraph(); 
?>

2 个答案:

答案 0 :(得分:0)

您可能想尝试使用emptyisset功能,而不仅仅是检查$_SESSION['data']是否等于null

这些函数可用于检查变量是否存在以及它们的值是否为非空。

答案 1 :(得分:0)

在取消设置SESSION变量之前调用grahico.php。基本上它归结为知道本次会议的内容[数据] 执行调试操作。将以下内容放入代码中并粘贴结果。

if ($_SESSION['data'] != NULL) {
    echo "<pre>";
    print_r($_SESSION['data']);
    echo "</pre>";
    exit;

    echo "<br/><img src=\"grafico.php\"/>";
    unset($_SESSION['data']);
}