passaggio di array tra due pagine php

Ciao a tutti. vi posto il codice che mi dovrebbe permettere di passare un array da una pagina all'altra per poi fare un istogramma:

<?PHP include("membersonly.inc.php");

$url1 = $HTTP_GET_VARS["url"];

$orario = $HTTP_GET_VARS["orario"];

$query = "Select * from ping where url='$url1'";

$result = mysql_query($query);

$muero=mysql_num_rows ($result);

$pacchettipersi=0;

$pacchettiricevuti=0;

$maxt=0;

$mint=100000;

$sommatot=0;?>

$minimograf=array();

for ($i=0;$i<$muero;$i++)

{$sommatot+=$somma;

$pacchettipersi+=$persi;

$pacchettirivecuti+=$ric;

if($row = mysql_fetch_array($result)){

echo "$row[primo]";

echo"$row[secondo]";

echo"$row[terzo]";

echo"$row[quarto]";

$max=0;$min=100000;$somma=0;$elemento=0;$cento=0;$duecento=0;$trecento=0;$cinquecento=0;

for ($j=1;$j<5;$j++)

{if ($row[$j]<99999){$somma+=$row[$j];

$elemento+=1;

$media=$somma/$elemento; if ($row[$j]>$max){$max=$row[$j];}

if ($row[$j]<$min){$min=$row[$j];}}

if ($min>99999) {$min=0;echo $min;} else {echo $min;}

if ($max>$maxt){$maxt=$max;}

if ($min<$mint){$mint=$min;}

if ($min<>0) {array_push($minimograf,$min);}

echo $max;

if ($elemento==0){echo 0;}else {echo $media;}}

else{echo "<title>Errore!</title><meta http-equiv=\"Content-Type\" content=\"text/html; charset=iso-8859-1\"></head><body>Errore, non riesco a vedere informazioni per il sito.<br><a href=\"user.php?action=more&username=$url1\">Torna indietro</a>";}}

<?php echo $stringa =serialize($minimograf);

echo $mass=max($minimograf);echo $minimo=min($minimograf);

echo "<a href='Untitled-1.php?m=$minimo&s=$mass&action=$stringa' title='Grafico' target='_blank'>Grafico</a>"; ?>

UNTITLED-1.php

<?php

$post=$_POST["action"];

echo $max=$_GET["s"];

echo $min=$_GET["m"];

$valori = unserialize($post);

print_r($valori);

$ampiezza = $max - $min;

$maxX = 1000;

$maxY = 500;

$img = imagecreatetruecolor($maxX, $maxY);

$background = imagecolorallocate($img,1,1,1);

imagefill($img, 0, 0, $background);

$pencolor = imagecolorallocate($img, 200,100,150);

$ascissecolor = imagecolorallocate($img, 123,32,43);

$bordocolor = imagecolorallocate($img, 234,45,44);

$passoy = ($ampiezza / ($maxY - 80)) ;

$larghezzabarra = round(($maxX-10)/sizeof($valori));

$mezzo = $maxY-10;

imageline($img, 0, $mezzo, $maxX, $mezzo, $ascissecolor);

for ($i = 0; $i < count($valori); $i++){

$x1 = $i*$larghezzabarra+5;//echo "\n";

$y1 = round($mezzo - $valori[$i]/$passoy);//echo "\n";

$x2 = $i*$larghezzabarra + $larghezzabarra;//echo "\n";

$y2 = $mezzo;//echo "<br>";

imagefilledrectangle($img, $x1, $y1, $x2, $y2, $pencolor);

imagerectangle($img, $x1, $y1, $x2, $y2, $bordocolor);

}

$messaggio = "istogramma";

$textcolor = imagecolorallocate($img, 30,40, 50);

imagestring($img, 3, 5, 5, $messaggio, $textcolor);

imagejpeg($img, "istogramma.jpeg");

imagedestroy($img);

?>

<html>

<head>

<title> GD - istogramma </title>

<meta name="Generator" content="EditPlus">

<meta name="Author" content="">

<meta name="Keywords" content="">

<meta name="Description" content="">

</head>

<body>

<img src="istogramma.jpeg" border=0 alt="istogramma">

</body>

</html>

Quando vado a fare l'"echo" di $valori nel secondo script ho un risultato vuoto. Cosa pu essere? ki mi pu dare delle dritte sugli script?

Aspetto una risposta al + presto... :bye:

inviato 9 anni fa
peppebrioscia
X 0 X

in untittled-1.php:

$post=$_POST["action"];

ma non invii nulla con il metodo post, devi usare get come per il minimo e massimo.

risposto 9 anni fa
LonelyWolf
X 0 X

ok, l'ha passato! ma il problema ke quando vado a "unserializzarlo", nn mi ritorna niente e mi da sizeof($valore)=1. come faccio realmente a recuperare i 3 valori che si trovano nella variabile $post?

risposto 9 anni fa
peppebrioscia
X 0 X

usa count invece di sizeof (anche se si equivalgono).

print_r($valori)

Ti visualizza tutti i valori corretti?

risposto 9 anni fa
LonelyWolf
X 0 X

la risp sempre quella... il valore dell'array 1. E come se vedesse l'array come un unico valore (ecco il perk dice ke 1). Non so se il problema l'unserialize... ke ne dici?

risposto 9 anni fa
peppebrioscia
X 0 X

A questo punto penso proprio che sia l il problema, prova a mettere direttamente:

$valori = unserialize($_GET["stringa"]);

risposto 9 anni fa
LonelyWolf
X 0 X

niente... :'(.

Ho provato di tutto ma niente!

risposto 9 anni fa
peppebrioscia
X 0 X

nel primo script con "$stringa=serialize($minimograf) ottengo: a:3:{i:0;s:2:"76";i:1;s:4:"75.3";i:2;s:4:"72.1";}.

nel secondo script facendo "echo $_GET[$stringa]" ottengo lo stesso a:3:{i:0;s:2:"76";i:1;s:4:"75.3";i:2;s:4:"72.1";}. dopo questa istruzione faccio unserialize($_GET[$stringa]); ma nn ottengo niente. Ecco perk secondo me il problema unserialize. con cosa lo potrei sostituire? :-\ :(

risposto 9 anni fa
peppebrioscia
X 0 X

prova a mettere questo per avere la certezza:

if (!($valori=unserialize($_GET[$stringa]))) { echo "Fallito!";}
else (echo "OK!";}
risposto 9 anni fa
LonelyWolf
X 0 X

LA RISPOSTA E' :( fallito!!! :'( Ma cosa pu essere?

risposto 9 anni fa
peppebrioscia
X 0 X

Potrebbe essere un problema con i caratteri nell'url. prova cos.

Nella prima pagina:

$stringa=urlencode(serialize($minimograf));

E nella seconda:

$valori=unserialize(urldecode($_GET[$stringa]));
risposto 9 anni fa
LonelyWolf
X 0 X

avevo gi provato... nn questo! :-\

Secondo me sar una cosa da niente alla fine... ma cosa????

risposto 9 anni fa
peppebrioscia
X 0 X

perch siamo passati da $_GET["stringa"] a $_GET[$stringa]?

risposto 9 anni fa
LonelyWolf
X 0 X

nel mio caso il passaggio viene con ppp=$stringa, quindi $_GET["ppp"]. Cmq nn questo il problema... o no? nn ke l'unserialize ha problemi con la versione del php? se si, dove si vede la ver usata? :police: :bye:

risposto 9 anni fa
peppebrioscia
X 0 X

unserialize disponibile da php4 in poi, se fosse quello il problema avresti ricevuto l'errore di funzione non definita.

per vedere la ver4sione basta fare una pagina con phpinfo().

il fatto che ha restituito fallito vuol dire che unserialize non riesce a fare l'operazione inversa per qualche motivo, potrebbe esser l'aggiunta di qualche carattere strano che non permette il riconoscimento del formato originale.

Puoi provare a salvare il valore dell'array serializzato nella sessione invece di passarlo attraverso get?

risposto 9 anni fa
LonelyWolf
X 0 X

HO PROVATO CON TUTTE LE $_ ... MA NIENTE. LA VERSIONE LA 5.2.1... NN SO, PER FARE DEI GRAFICI PASSANDO DEI VALORI IN DEGLI ARRAY CI SONO ALTRE SOLUZIONI? IL PROBLEMA NASCE DA QUESTO, CIOE': DAL MIO PRIMO SCRIPT IN CUI FACCIO LE STATISTICHE, PRENDO TUTTI I TEMPI MINIMI VOLENDO FARE UN COLLEGAMENTO IPERT AD UNA PAGINE CHE RICEVE TT QUESTI VALORI FACENDO UN GRAFICO. LO SCRIPT DEL GRAFICO XO' DEVE POTER ESSERE UTILIZZATO ANKE DAI TEMPI MEDI E DAI TEMPI MASSIMI... ECCO DA DOVE NASCE L'ESIGENZA DI POTER PASSARE L'ARRAY. SE SAI QUALKE MODO PI FACILE DIMMELO E PROVO A RISOLVERE...CIAO :coolsmiley:

risposto 9 anni fa
peppebrioscia
X 0 X

HO PROVATO CON TUTTE LE $_ ...

Che vuol dire? Hai salvato nella sessione il valore dell'array e poi nella seconda pagina recuperato?

risposto 9 anni fa
LonelyWolf
X 0 X

Ho fatto quello ke hai detto tu... niente!!! potrei fare in questo modo:

faccio l'array nel 1pag, la passo in una pagina txt... nella 2pagina acquisisco il contenuto del txt lasciando il file bianco e acquisendo l'array per i grafici. a mali estremi...

risposto 9 anni fa
peppebrioscia
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda