Avatar billede xenophobia Nybegynder
27. juli 2003 - 11:07 Der er 5 kommentarer og
1 løsning

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 = "&nbsp;";
    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&aelig;ste</a>";
    }else{
$viste = $antalfiler;
$frem = "&nbsp;";
    }
        }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&aelig;ste</a>";
            }else{
            $viste = $antalfiler;
            $frem = "&nbsp;";
            }
        }else{
        $antal_tilbage = ($antalfiler-$_SESSION["vis"]);
        $_SESSION["vis"] = ($antalfiler-$antal_tilbage);
        $viste = $antalfiler;
        $frem = "&nbsp;";
        }
    }

    if($_GET["vis"] == "tilbage") {
        $frem = "<a href=\"". $_SERVER["PHP_SELF"] ."?vis=frem\">N&aelig;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= "&nbsp;";
        }
    }
}
?>
<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
Avatar billede xenophobia Nybegynder
27. juli 2003 - 11:27 #1
Avatar billede detox Nybegynder
27. juli 2003 - 11:29 #2
Bed dit webhotel om at opgradere eller find et andet. For det er da fuldkommen galt, hvis du skal til at ændre dine scripts til en ældre version. De opgraderer vel før eller siden og så kan du starte forfra!
Avatar billede xenophobia Nybegynder
27. juli 2003 - 11:37 #3
Det er ikke en mulighed, de er monster passive. Det er vigtigt jeg får scriptet til at virke, så er der ikke nogen der kan give et forslag til hvordan man kunne få det til at virke? Jeg er villig til at give flere point.
Avatar billede detox Nybegynder
27. juli 2003 - 11:48 #4
Du skal have register_globals() aktiveret og så skal du ændre $_SESSION til $HTTP_SESSION_VARS. Samt ændre den måde du tildeler værdier til din session (session_register(), session_is_registered()).
Det står altsammen her:
http://dk2.php.net/manual/en/ref.session.php
Avatar billede ahv Nybegynder
27. juli 2003 - 11:51 #5
Har prøvet at skrive dit script om, så det fungere uden sessions ->
http://www.ahv.starthotel.dk/listpic.phps
Avatar billede detox Nybegynder
27. juli 2003 - 12:07 #6
ahv -> Fikst!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester