Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP“unset()”函数在前面的代码之前工作_Php_Loops_Parameter Passing_Session Variables - Fatal编程技术网

PHP“unset()”函数在前面的代码之前工作

PHP“unset()”函数在前面的代码之前工作,php,loops,parameter-passing,session-variables,Php,Loops,Parameter Passing,Session Variables,我有个问题 我将数据作为会话在另一个页面的Graph对象中传递,如果之后没有取消设置会话,我将看到两个相同的图形,否则我将看不到任何图形。 我尝试使用unset,var=NULL,在while循环之外用=array声明会话;但所有的方法都失败了。我快疯了!请把你的知识告诉我。谢谢 这是代码抱歉,但我无法在此站点缩进您的代码: //STATISTICHE.PHP <?php session_start(); ?> <html> <head> <link

我有个问题

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

这是代码抱歉,但我无法在此站点缩进您的代码:

//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(); 
?>

您可能希望尝试使用or函数,而不是只检查$\u SESSION['data']是否等于null


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

您可以在取消设置会话变量之前调用grahico.php。基本上,它归结为了解这个会话中的内容[数据] 执行调试操作。将以下内容放入代码中并粘贴结果

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

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

如果$\u会话['data'],则已更改=空{to if!empty$_SESSION['data']{?如果是,您是否尝试将未设置的$_SESSION['data']修改为$_SESSION['data']=null;?是的,也在if之外,在parenthetis之前的while循环结束时。不工作:/session是在我使用var dump测试的statistiche.php页面中设置的。我不知道在另一个页面中,因为它是一个图像。我正在尝试使用标头。它可以看到其他会话变量,但看不到。session destroy之前不工作也可以是在循环之后。如果我把它放在循环之外的页面中,您正在使用every while循环周期设置会话[data]。我不能设置会话,将数据传递到graph.php,然后在循环中取消设置吗??