Session fejl?
Jeg har et script:<?php
session_start();
$sti = "D:/web/aero-sport.dk_p1m9an/SAC/pictures/";
$listfiler = array();
$path = opendir($sti);
while (false !== ($files = readdir($path))) {
if($files == "." || $files == ".." || is_dir($sti . $files)) {
continue;
}
$listfiles[] = $files;
}
closedir($path);
$maxvist = 4;//antal viste ad gangen
$nytrow= 1;//Hvornår skal der være linieskift i visning af filer? sørg for at det går op $maxvist, for "look'ets" skyld
$antalfiler = count($listfiles);
//bruger sessions så der kun står frem eller tilbage i adresselinien.
//Nok ikke videre brugervenligt, medmindre man laver "sublinks" 4-8, 8-12 12-16 o.s.v.
if(!isset($_SESSION["vis"])) {
$_SESSION["vis"] = 0;
}
if(!isset($_GET["vis"])) {
$back = " ";
if($antalfiler > $maxvist) { //Kikker lige efter om der er flere filer end $maxvist ad gangen
$viste = $maxvist;
$frem = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=frem\">Næste</a>";
}else{
$viste = $antalfiler;
$frem = " ";
}
}else{ // GET["vis"] er sat
if($_GET["vis"] == "frem") {
$back = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=tilbage\">Tilbage</a>";
if(($_SESSION["vis"]+$maxvist) < $antalfiler) {
$_SESSION["vis"] = ($_SESSION["vis"]+$maxvist);
if(($_SESSION["vis"]+$maxvist) < $antalfiler) {
$viste = ($_SESSION["vis"]+$maxvist);
$frem = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=frem\">Næste</a>";
}else{
$viste = $antalfiler;
$frem = " ";
}
}else{
$antal_tilbage = ($antalfiler-$_SESSION["vis"]);
$_SESSION["vis"] = ($antalfiler-$antal_tilbage);
$viste = $antalfiler;
$frem = " ";
}
}
if($_GET["vis"] == "tilbage") {
$frem = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=frem\">Næste</a>";
if(($_SESSION["vis"]-$maxvist) >= $maxvist) {
$_SESSION["vis"] = ($_SESSION["vis"]-$maxvist);
$viste = ($_SESSION["vis"]+$maxvist);
$back = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=tilbage\">Tilbage</a>";
}else{
$_SESSION["vis"] = 0;
$viste = $maxvist;
$back= " ";
}
}
}
?>
<html><head></head>
<body>
<center>
<table width="480" border="1"><tr>
<td width="10"><?php echo $back; ?></td>
<td width="460" align="center"><?php echo ($_SESSION["vis"]+1) ." - ". $viste ." af ialt ". $antalfiler; ?></td>
<td width="10"><?php echo $frem; ?></td>
</tr><tr>
<td align="center" colspan="3"><?php
for($i = $_SESSION["vis"]; $i < $viste; $i++) {
if($i%$nytrow == 0 && $i !=0 && $i != $_SESSION["vis"]) {
echo "<br>\n";
}
echo $listfiles[$i] ." ";
}
?></td>
</tr></table></center>
Det viser billederne i en mappe over flere sider, men der er et problem: Det virker på min egen b0x (winxp m. Apache), men ikke på mit webhotels (win2k tror jeg). Når man klikker "Næste" kommer de næste filer som planlagt, men når man klikker "Næste" igen kommer sker der ikke noget. Som sagt virker det fejlfrit på min egen computer så jeg kunne tror at scriptet ikke passer så godt overens med webhotellets (man kan fx ikke bruge $_SERVER["DOCUMENT_ROOT"]). Hvad kan man ændre i scriptet så det fungerer?
Mvh
Xenophobia
