Avatar billede taager-kongen Nybegynder
11. august 2003 - 18:52 Der er 8 kommentarer og
1 løsning

fejl med kode, som er fundet på exp.dk

Sorry den dårlige overskrift, men kunne ikke finde en bedre en.. har fundet denne kode, hvor jeg har rettet libery :
<?php
//----  Settings Start ---\\
// Image Information
$imageWidth=100;
$imageHeight=100;

// Table Layout
$rows=3;
$cols=5;

//Image path
$libery="billeder/"; // remember to finish with /

// Settings Stop----------//

$viewNum=$cols*$rows;
if(!$firstImage){ // so it works if you just enter default.php and show the pictures without having to define the variables in the path
        $firstImage=1;
}
function getImages($firstImage){
    global $viewNum, $imageWidth, $imageHeight,$cols,$libery;  //insures that the function gets the variables
    $handle=opendir($libery); //opens directory
    while($file=readdir($handle)){ // reads the directory
        $extension=substr($file,-4); // gets the extension of the files
        if(($extension == ".jpg") || ($extension == ".gif") || ($extension == ".png") ){ // checks for image files
            $all[]=$file;  //adds positive results to the archive
        }
    }
    $colscounter=0; // variable that controls the tablebuilding system below
    $firstImage--; // variable that insures that the first image is being showed. Case: It looks best if the links begins with 1 but the array begins with 0
    if(isset($all)){  // if array is set build the table
        print "<table>";
        for($i=$firstImage; $i < $firstImage+$viewNum; $i++){
            if($all[$i]){ // checks for rinning dry of imges
                if($i==$firstImage + $colscounter*$cols){ // if true: new row
                    $colscounter++;
                    print "<tr>";
                } // add the image
                print "<td><a href='".$libery."".$all[$i]."'><img src='".$libery."".$all[$i]."' border='0' width='$imageWidth' height='$imageHeight' alt='klik og se billedet i normal størelse'></a></td>";
            }
            else{ // stop if no more images
                break;
            }
        }
        print "</table><br>";
        $num=count($all);  //number of pictures in actual libery
        makeList($num); // function to make the links list
    }
    else{
        print "Der var desværre ingen billeder i dette bibliotek<br><a href='java script:history.back()'>Go Back</a>";
    }
}
function makeList($num){
    global $libery, $firstImage, $viewNum; //insures that the function gets the variables
    $numLinks = $num / $viewNum; // finds the number og links to be maked
    for($a=0; $a < $numLinks;$a++){
            $start=$a*$viewNum+1;  //adds 1 because then the links begins with ex. number 1-10 and 11-20 instead of 0-10 and 10-20
            $finish=$a*$viewNum+$viewNum;
            if($finish>$num){ // insures that the final link returns the right amount of pictures instead of to much
                $finish=$num;
            }
        if(($firstImage >= $start) && ($firstImage < $a * $viewNum+$viewNum)){ // if true: makes no link because you already are on the page
            print "$start - $finish</a>&nbsp;&nbsp;";
        }
        else{ // makes the link
            print "<a href='billeder.php?libery=$libery&firstImage=$start' target='_blanc'>$start - $finish</a>&nbsp;&nbsp;";
        }
    }
}

?>


men den giver denne fejl:
Notice: Undefined variable: firstImage in c:\inetpub\wwwroot\rasmus\rasmusmadsen\klasse\default.php on line 17

siden kan ses her:
http://80.160.115.22/rasmus/rasmusmadsen/klasse/default.php


ved nogen hvorfor?
Avatar billede fangel Nybegynder
11. august 2003 - 19:48 #1
jep, fordi din server kører med register_globals = off, ændre scriptet til at tage højde for dette, eller ændre denne setting

Morten
Avatar billede taager-kongen Nybegynder
11. august 2003 - 19:49 #2
hmm.. vil helst rette scriptet da det skal op på en server bag efter (cliche) .. men ved du hvordan jeg ændre i det der register_globals = off ?
Avatar billede taager-kongen Nybegynder
11. august 2003 - 19:52 #3
har sat det der til on.. og nu er fejlen den samme :(
Avatar billede fangel Nybegynder
11. august 2003 - 19:54 #4
alle variabler der komme fra adresselinien hedder $_GET['navn']

en liste over navne:

$_GET['navn'] = adresselinie
$_POST['navn'] = fra en form (med method=post)
$_FILES['navn'] = bruges til upload af filer
$_COOKIE['navn'] = sjovt nok, cookies
$_SESSION['navn'] = sjov nok, sessions
$_SERVER['navn'] = ting som PHP_SELF, REQUST_URI osv
$_ENV['navn'] = ting som brugers IP osv...

du kan altid tjekke indholdet af dem ved at sige fx

print_r($_SERVER);

---

desuden er der fordi error_reporting står til E_ALL, så du også får vist notice's - dette undgås ved at bruge funktionen isset() til at tjekke om variabler findes

---

dvs istedet for "if(!$firstImage)" skriver du "if(!isset($_GET['firstImage']))"

Morten
Avatar billede taager-kongen Nybegynder
11. august 2003 - 19:56 #5
sorry men fatter ikke så meget af :(
Avatar billede taager-kongen Nybegynder
11. august 2003 - 19:57 #6
dvs istedet for "if(!$firstImage)" skriver du "if(!isset($_GET['firstImage']))"

nu er siden blank :(
Avatar billede fangel Nybegynder
11. august 2003 - 20:00 #7
har ikke lige tid til at kigge det igennem - prøv dig frem

Morten
Avatar billede taager-kongen Nybegynder
11. august 2003 - 20:00 #8
øv
Avatar billede taager-kongen Nybegynder
11. august 2003 - 20:29 #9
fandt et andet script ... lukker
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