Avatar billede bb_maze Nybegynder
16. august 2003 - 11:32 Der er 27 kommentarer og
1 løsning

Rand funktion?

Hejsa!

Jeg har hentet et lille script fra sukos.dk... Det er sådan et der gør at det er tilfældigt hvilket billede der bliver loadet....

Her er det:

      <?php

            //sti til mappen som skal åbnes for læsning. I dette tilfælde den aktuelle mappe
            $path = opendir("www.minhjemmeside.frac.dk/Banner/");

            //filerne skal i et array for at kunne tælles
            $billeder = array();

            //Vi læser dir igennem for filer
            while (false !== ($dir = readdir($path))){

            //Laver et array med de filer i mappen som ikke skal vises
            $ejvist = array(".");

            //Er filen i arrayet ejvist fortsætter vi
              if (in_array($dir, $ejvist)) {
            continue;
                }else{

            //"tilegner" filerne til arrayet billeder vi definerede tidligere
                $billeder[] = $dir;
                }
            }
            closedir($path);

            //Tæl billeder og brug rand
            $vistbillede = rand(0, count($billeder) -1);

            //find størrelsen for det billede som skal vises
            $str = GetImageSize("$billeder[$vistbillede]");

            //Lav output for visning af tilfældigt billede
            echo "<img src=\"$billeder[$vistbillede]\" $str[3]>";

            ?>

--------------Men når jeg sætter det ind så får jeg denne fejl:

Warning: opendir() [function.opendir]: SAFE MODE Restriction in effect. The script whose uid is 4619 is not allowed to access /web/www/frac/users/minhjemmeside owned by uid 0 in /web/www/frac/users/minhjemmeside/top.php on line 32 Warning: opendir(www.minhjemmeside.frac.dk/Banner/) [function.opendir]: failed to open dir: No such file or directory in /web/www/frac/users/minhjemmeside/top.php on line 32

Warning: readdir(): supplied argument is not a valid Directory resource in /web/www/frac/users/minhjemmeside/top.php on line 38

Warning: closedir(): supplied argument is not a valid Directory resource in /web/www/frac/users/minhjemmeside/top.php on line 5

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

Mine billeder ligger i en mappe som hedder Banner !

Håber der er én eller anden der kan hjælpe!

HYGGE
Avatar billede sukos Juniormester
16. august 2003 - 11:38 #1
Prøv:
$path = opendir($_SERVER["DOCUMENT_ROOT"] ."/banner/");

Når du bruger fil og dir funktioner, så definer gerne den exacte sti du vil åbne, og her gjort med $_SERVER["DOCUMENT_ROOT"]

Prøv at kikke på en fil med flg.
<?php phpinfo(); ?>
for at se forskellige varibler.
Avatar billede bb_maze Nybegynder
16. august 2003 - 11:43 #2
Øh..... Hvis jeg skal være ærlig, så er jeg altså ikke helt med....

Har prøvet det her i stedet:
$path = opendir($_SERVER["DOCUMENT_ROOT"] ."./Banner/");

Men det virker heller ik...

HYGGE
Avatar billede bb_maze Nybegynder
16. august 2003 - 12:28 #3
Nu fandt jeg ud af det.... Der var et punktum som ikke skulle være med..... Men nu kommer der en anden fejl....:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /web/www/frac/users/minhjemmeside/top.php on line 32

HYGGE
Avatar billede bb_maze Nybegynder
16. august 2003 - 13:12 #4
ARGH!!!!! Nu har jeg siddet og bøvlet, og den vil bare ikke!!! Jeg får samme fejl:

Parse error: parse error, unexpected T_CONSTANT_ENCAPSED_STRING in /web/www/frac/users/minhjemmeside/top.php on line 32

Håber rigtigt meget at der er en der kan hjælpe!!!!!!

HYGGE
Avatar billede bb_maze Nybegynder
16. august 2003 - 13:43 #5
Ingen der kan hjælpe???????? :-(

HYGGE
Avatar billede marduk666 Nybegynder
16. august 2003 - 13:58 #6
top.php er vist en anden fil? Viser du indeholdet af den?
Avatar billede bb_maze Nybegynder
16. august 2003 - 14:02 #7
Det er det der står i toppen..... Altså af denne side...... Og så er der noget html omkring, og så en menu.....

HYGGE
Avatar billede marduk666 Nybegynder
16. august 2003 - 14:18 #8
Brug det her istedet:


<?php

            //sti til mappen som skal åbnes for læsning. I dette tilfælde den aktuelle mappe
            $path = opendir($_SERVER["DOCUMENT_ROOT"] ."/Banner/");

            //filerne skal i et array for at kunne tælles
            $billeder = array();

            //Vi læser dir igennem for filer
            while (false !== ($dir = readdir($path))){

              if ($dir != ".." AND $dir != "."){
                //Laver et array med de filer i mappen som ikke skal vises
                $ejvist = array(".");

                //Er filen i arrayet ejvist fortsætter vi
                if (in_array($dir, $ejvist)) {
                continue;
                }else{

                //"tilegner" filerne til arrayet billeder vi definerede tidligere
                $billeder[] = $dir;
                }
              }
            }
            closedir($path);

            //Tæl billeder og brug rand
            $vistbillede = rand(0, count($billeder) -1);

            //find størrelsen for det billede som skal vises
            $str = "banner/$billeder[$vistbillede]";

            //Lav output for visning af tilfældigt billede
            echo "<img src=\"banner/$billeder[$vistbillede]\" $str[3]>";

            ?>
Avatar billede bb_maze Nybegynder
16. august 2003 - 14:24 #9
Det virker altså ikke, marduk666

Får følgende fejl:
Warning: opendir() [function.opendir]: SAFE MODE Restriction in effect. The script whose uid is 4619 is not allowed to access /web/www/frac/users owned by uid 0 in /web/www/frac/users/minhjemmeside/top.php on line 33

Warning: opendir(/web/www/frac/users/Banner/) [function.opendir]: failed to open dir: No such file or directory in /web/www/frac/users/minhjemmeside/top.php on line 33

Warning: readdir(): supplied argument is not a valid Directory resource in /web/www/frac/users/minhjemmeside/top.php on line 39

Warning: closedir(): supplied argument is not a valid Directory resource in /web/www/frac/users/minhjemmeside/top.php on line 55

HYGGE
Avatar billede jara06 Nybegynder
16. august 2003 - 14:26 #10
"owned by uid 0 in" ? .. Det er da root .. Hvad står der i /web/www/frac/users/minhjemmeside/top.php på linie 32-34 ?
Avatar billede bb_maze Nybegynder
16. august 2003 - 14:27 #11
Linie 32+33:

//sti til mappen som skal åbnes for læsning. I dette tilfælde den aktuelle mappe
$path = opendir($_SERVER["DOCUMENT_ROOT"] ."/Banner/");

HYGGE
Avatar billede jara06 Nybegynder
16. august 2003 - 14:30 #12
hvorfor bruger du $_SERVER["DOCUMENT_ROOT"] ? Hvorfor ikke ../ eller ../../ eller ./ alt efter hvor du er .. ?
Avatar billede bb_maze Nybegynder
16. august 2003 - 14:35 #13
Fordi det var det der var til at starte med, og det var også det marduk666 kom med.....

Men mener du: $path = opendir(./Banner/);

Eller hva???

HYGGE
Avatar billede jara06 Nybegynder
16. august 2003 - 14:39 #14
$path = opendir("./Banner/");  ja ... :)
Avatar billede bb_maze Nybegynder
16. august 2003 - 14:42 #15
TAKKER!!!!!! DET VAR SQU! :-D 
Er det ikke fair nok hvis i alle får en sjat point?

Og endnu en gang, tak for hjælpen! Og tålmodigheden ;)

HYGGE
Avatar billede jara06 Nybegynder
16. august 2003 - 14:44 #16
np :)
Avatar billede bb_maze Nybegynder
16. august 2003 - 14:45 #17
Ehm, forresten..... Jeg har sat den der funktion ind i en tabel, men jeg får en lille kant i bunden hvor der ik er noget billede... Der et lidt "spild plads"...... Er der lige en af jer der har svar på dette?

HYGGE
Avatar billede jara06 Nybegynder
16. august 2003 - 14:48 #18
har du en url ?

"SAFE MODE Restriction in effect"
Jeg tror dit andet problem er, at du ikke kan skifte mapper gennem alle stierne når php er i safe mode, og derfor ikke bruge $_SERVER["DOCUMENT_ROOT"] (/web/www/frac/users/minhjemmeside/). ikke sikker dog
Avatar billede bb_maze Nybegynder
16. august 2003 - 14:56 #19
Oki.........

Ja, har lige bakset noget sammen:
http://www.xtranet.frac.dk/rand/Test/test

Det er den hvide streg i bunden jeg snakker om.....

HYGGE
Avatar billede rrm Nybegynder
16. august 2003 - 14:58 #20
med hensyn til DOCUMENT_ROOT, så tror jeg der glemt dit brugernavn i stien. $_SERVER["DOCUMENT_ROOT"] . [brugernavn] . "/Banner/";
Avatar billede jara06 Nybegynder
16. august 2003 - 15:14 #21
I min gamle Mozilla 1.3 er der ingen hvid streg i bunden .. dog er der en tv
Avatar billede bb_maze Nybegynder
16. august 2003 - 15:14 #22
hmmmmmm............. Underligt.......

HYGGE
Avatar billede bb_maze Nybegynder
17. august 2003 - 21:22 #23
Jeg er kommet lidt videre med problemet nu......

Her er noget af det der står når man kigger i sourcen:
<a href=side?konkurrence><img src="banner/banner.JPG" hspace=0 vspace=0 border=0> </a>

Som i kan se er der mellem rum mellem img tagget og </a>

Det er nok bla. det der gør bøvl...

Her er scriptet som det ser ud nu:
//Lav output for visning af tilfældigt billede
            echo "<a href=?side=konkurrence>";
            echo "<img src=\"banner/$billeder[$vistbillede]\" hspace=0 vspace=0 border=0></a>";

Men jeg kan altså ikke finde fejlen! Håber der er en der kan hjælpe!

HYGGE
Avatar billede jara06 Nybegynder
19. august 2003 - 09:39 #24
Lidt simpel oprydning...

echo "<a href=\"?side=konkurrence\">";
echo "<img src=\"banner/". $billeder[$vistbillede] ."\" hspace=\"0\" vspace=\"0\" border=\"0\"></a>";
Avatar billede bb_maze Nybegynder
19. august 2003 - 23:16 #25
Det hjalp ikke på problemet....

HYGGE
Avatar billede bb_maze Nybegynder
22. august 2003 - 13:14 #26
Er der ikke en eller anden der kan finde fejlen/hjælpe?

HYGGE
Avatar billede bb_maze Nybegynder
24. august 2003 - 20:44 #27
Ej, det kan da ikke passe at der ikke er en der kan fidne det lille mellemrum??? :(

HYGGE
Avatar billede bb_maze Nybegynder
01. september 2003 - 00:17 #28
Nåh, det var der ikke, tak for forsøgene!

HYGGE
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