Avatar billede coldshadow Nybegynder
16. november 2003 - 20:11 Der er 26 kommentarer og
1 løsning

SAFE MODE og gallerier

Jeg er ikke specielt god til PHP, men det er lykkedes mig at få banket nogen gallerier sammen (med en hel del hjælp). Uheldigvis virker det ikke.
Systemet består af:
1 PHP-side (default.php)
og en .inc-fil (functions.inc)
+en masse billeder i .jpg format, og jeg laver dem ikke om!

Alle filer ligger i mappen: ../Billeder/Bad-taste/
----------------------------------------------------------
indhold af default.php:


<?
include("functions.inc");
?>

<html>
<head>
<title>Untitled Document</title>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
</head>

<body bgcolor="#FFFFFF" text="#000000">

<?
getImages($firstImage);
?>

<p>&nbsp;</p>
<p>&nbsp;</p>
<p>&nbsp;</p>
</body>
</html>


-------------------------------------------------------------------------------

Indhold af functions.inc:

<?
//----  Settings Start ---\\
// Image Information
$imageWidth=100;
$imageHeight=100;

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

//Image path
$libery="../Billeder/Bad-taste/"; // 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('../Billeder/Bad-taste/'); //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='Click to Enlarge'></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='default.php?libery=$libery&firstImage=$start'>$start - $finish</a>&nbsp;&nbsp;";
        }
    }
}
?>






----------------------------------------------------------------

Hvorfor dur det ikke (jeg har opfattet at det har noget at gøre med at serveren kører i SAFE MODE at gøre)?
Og vigtigere, hvordan får jeg det til at virke?
Avatar billede coldshadow Nybegynder
16. november 2003 - 20:13 #1
Når jeg åbner default.php kommer der den her fejl:

Warning: SAFE MODE Restriction in effect. The script whose uid is 33152 is not allowed to access /customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder owned by uid 0 in /customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste/functions.inc on line 22

Warning: readdir(): supplied argument is not a valid Directory resource in /customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste/functions.inc on line 23
Der var desværre ingen billeder i dette bibliotek
Go Back
Avatar billede googolplex Novice
16. november 2003 - 20:27 #2
Mange af de gallerier der er derude kan IKKE fungere med safemode on, desværre :(
Avatar billede coldshadow Nybegynder
16. november 2003 - 20:33 #3
Det kan det her, jeg har haft det til at virke, men dum som jeg er slettede jeg min test side efter at jeg havde fået den til at virke.
Avatar billede googolplex Novice
16. november 2003 - 20:34 #4
Avatar billede coldshadow Nybegynder
16. november 2003 - 20:36 #5
Så vidt jeg husker lå fejlen i addressen til mappen/mapperne som billederne ligger i
Avatar billede googolplex Novice
16. november 2003 - 20:36 #6
Måske kan det have noget med stien at gøre, har du kigget i functions.inc linie 23 ?
Avatar billede googolplex Novice
16. november 2003 - 20:37 #7
Ja, det lyder som om fejlen ligger her, havde ikke lige set din kommentar :)
Avatar billede googolplex Novice
16. november 2003 - 20:39 #8
Ellers smid lige din functions.inc her.
Avatar billede coldshadow Nybegynder
16. november 2003 - 20:41 #9
Ja, men jeg kan ikke finde ud af det.

functions.inc
linie 22:     $handle=opendir('../Billeder/Bad-taste/'); //opens directory
linie 23:     while($file=readdir($handle)){ // reads the directory
Avatar billede googolplex Novice
16. november 2003 - 20:43 #10
I hvilken mappe (fra roden) ligger dine billeder på serveren ?
Avatar billede coldshadow Nybegynder
16. november 2003 - 20:44 #11
Indhold af functions.inc:
<?
//----  Settings Start ---\\
// Image Information
$imageWidth=100;
$imageHeight=100;

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

//Image path
$libery="../Billeder/Bad-taste/"; // 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('../Billeder/Bad-taste/'); //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='Click to Enlarge'></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='default.php?libery=$libery&firstImage=$start'>$start - $finish</a>&nbsp;&nbsp;";
        }
    }
}
?>
Avatar billede coldshadow Nybegynder
16. november 2003 - 20:45 #12
Så vidt jeg ved: /Billeder/Bad-taste/
Men det er muligt at der er  /customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste (det skriver den i fejlen der handler om linie 22)
Avatar billede googolplex Novice
16. november 2003 - 20:50 #13
Nu glemte jeg at spørge hvor functions.inc lå...men du kan da lige prøve at skifte linie 22 ud med dette:

$handle=opendir('Billeder/Bad-taste/'); //opens directory

Eller

$handle=opendir('/Billeder/Bad-taste/'); //opens directory

Eller

$handle=opendir(/customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste); //opens directory

Eller

$handle=opendir($_SERVER['DOCUMENT_ROOT'] . '/Billeder/Bad-taste/'); //opens directory

Nogen steder virker det ene, nogen steder det andet, du kan da altid prøve og se om det hjælper :)
Avatar billede coldshadow Nybegynder
16. november 2003 - 20:52 #14
Functions.inc ligger i /Billeder/Bad-Taste/ ligesom alt det andet
Avatar billede googolplex Novice
16. november 2003 - 20:53 #15
Har du prøvet at skifte linie 22 ud med de fire muligheder ?
Avatar billede coldshadow Nybegynder
16. november 2003 - 20:57 #16
$handle=opendir($_SERVER['DOCUMENT_ROOT'] . '/Billeder/Bad-taste/'); //opens directory

Viser en side men i stedet for billeder er der kasser med et rødt kryds i


----------------------------------------------------------------------------------------

$handle=opendir(/customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste); //opens directory


Giver den her fejl:

Parse error: parse error, unexpected '/', expecting ')' in /customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste/functions.inc on line 22

Fatal error: Call to undefined function: getimages() in /customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste/default.php on line 14
Avatar billede googolplex Novice
16. november 2003 - 20:59 #17
Prøv lige det her:

$handle=opendir('/customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste');

Samt

$handle=opendir('/customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste/');

Man kan jo altid prøve sig lidt frem :)
Avatar billede coldshadow Nybegynder
16. november 2003 - 21:04 #18
$handle=opendir('/customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste/');

Giver de samme kasser som

$handle=opendir($_SERVER['DOCUMENT_ROOT'] . '/Billeder/Bad-taste/'); //opens directory
Avatar billede coldshadow Nybegynder
16. november 2003 - 21:04 #19
Avatar billede googolplex Novice
16. november 2003 - 21:08 #20
Kan jeg se det sted du har taget scriptet fra ?
Avatar billede coldshadow Nybegynder
16. november 2003 - 21:10 #21
Det er et jeg har fået fra en anden, og jeg ved ikke hvor han har det fra.
Avatar billede coldshadow Nybegynder
16. november 2003 - 21:13 #22
Nu virker det, bortset fra et billede.

jeg satte:
$libery="http://www.ie-billeder.dk/Billeder/Bad-taste/"; // remember to finish with /
ind is stedet for:
$libery="../Billeder/Bad-taste/"; // remember to finish with /

Ny functions.inc

<?
//----  Settings Start ---\\
// Image Information
$imageWidth=100;
$imageHeight=100;

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

//Image path
$libery="http://www.ie-billeder.dk/Billeder/Bad-taste/"; // 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('/customers/ie-billeder.dk/ie-billeder.dk/httpd.www/Billeder/Bad-taste/'); //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='Click to Enlarge'></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='default.php?libery=$libery&firstImage=$start'>$start - $finish</a>&nbsp;&nbsp;";
        }
    }
}
?>
Avatar billede coldshadow Nybegynder
16. november 2003 - 21:14 #23
Hovas, siden skulle bare lige loades igen, så virkede det sidste billede.

Tak for hjælpen, jeg havde aldrig fundet ud af det alene
Avatar billede googolplex Novice
16. november 2003 - 21:15 #24
Hmm, kan ikke lige gennemskue det...


Kan se er står '$libery="../Billeder/Bad-taste/"; // remember to finish with /' i en linie, den skal su også huske at rette når du finder fejlen.

Men opret et nyt spørgsmål og spørg direkte til STIEN, så er der sikkert en der er klogere end mig der kan :)
Avatar billede googolplex Novice
16. november 2003 - 21:15 #25
Virker det så ?
Avatar billede coldshadow Nybegynder
16. november 2003 - 21:16 #26
Det virker 100%
Avatar billede googolplex Novice
16. november 2003 - 21:18 #27
Jamen det var da heldigt :)

Takker for point!!
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