Ahoj, narazil jsem na problém se session se kterým už si vážně nevím rady. Mám hlavní skript, který začíná session_start(). Do něj vložím na jednom místě přes require další skript ve kterém volám funkci obsahující tento cyklus pro vykreslení tabulky s obrázky:
for ($top_akt=$start; $top_akt < $strana; $top_akt++):
echo "<tr>";
for ($left_akt=$start; $left_akt < $strana; $left_akt++):
echo "<td>";
$_SESSION["obrazek"] = zobraz_obsah_pole(Substr($nalez['cislo'], 0, 1)); //získání cesty na obrázek, ověřeno výpisem přes echo, session je naplněna platnou cestou na obrázek
echo "<a href='karwak.php?stav=$stav&get[pozice_top]=$top_akt&get[pozice_left]=$left_akt'><img src='picture.php'></a>";
$_SESSION["obrazek"] = "";
echo "</td>";
endfor;
echo "</tr>";
endfor;
V cyklu se volá skript picture.php pro zobrazení obrázku do pole tabulky, cestu na obrázek předávám přes $SESSION["obrazek"]. Cesta před vstupem do picture.php je opravdu v příslušné session a je platná (prověřeno přes echo). V tabulce mají být dva druhy obrázků, cesta na ně se natahuje ve funkci zobraz_obsah_pole. Zkoušel jsem $_SESSION["obrazek"] v každém kole cyklu vyprázdnit, ale obrázky se pak přestanou zobrazovat úplně, zkoušením různých variant s vyprázděnín jsem zjistil toto:
- jakmile se session vynuluje mimo picture.php (jako v kódu výše), přestane se obrázek úplně zobrazovat (na žádném políčku není nic)
- když vynuluji session přímo v picture.php, na jeho konci, je po vypsání $_SESSION["obrazek"] za picture.php pořád naplněná
-když se session nevynuluje vůbec, vykresluje se na všechny políčka pořád jeden a ten samý obrázek bez ohledu na cestu, uloženou do session (k obrázkům jsem nechával přes echo vypisovat cesty na soubor a byly různé)
Tady je skript picture.php
<?php
session_start();
$obr_name = $_SESSION["obrazek"];
$im = imagecreatefromjpeg($obr_name);
header("Content-type: image/jpeg");
imagejpeg($im);
imagedestroy($im);
?>