Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: dia esitys ongelma.... kiire!!

kotsku [25.04.2006 10:36:15]

#

tullee tämmöset virheet:

Notice: Undefined variable: mones in D:\html\info\info.php on line 26

Notice: Undefined variable: mones in D:\html\info\info.php on line 41


tässä ite koodi:

<?php

    //Vähän asetuksia, näitä voi muokkailla ihan vapaasti
    $asetus_paatteet = array("htm");
    $asetus_nopeus = 5; //Kuinka monta sekuntia yhtä kuvaa näytetään

    //Monennessa TIEDOSTOSSA (ei kuvassa) ollaan
    if (isset($_GET['m'])) { $mones = trim($_GET['m']); }
    //if ($mones == '') { $mones = 1; }

    $file = "";

    $kahva = opendir("./");
    $nro = 0;
    $pois = false;
    while (false !== ($tiedostonimi = readdir($kahva)))
    {
        if ($tiedostonimi != "." AND $tiedostonimi != "..")
        {
            //Ja katotaan että on jokin sallituista tiedostopäätteistä
            foreach ($asetus_paatteet as $paate)
            {
                if (strtolower(substr($tiedostonimi,strrpos($tiedostonimi,".")+1)) == strtolower($paate))
                {
                    $nro++;
                       if ($nro >= $mones) { $pois = true; break; }
                }
            }
        }
        if ($pois) { break; }
    }
    closedir($kahva);

    //Jos yhtään tiedostoa ei ole
    if ($nro == 0) { die("Tiedostoja ei ole!!"); }

    //Jos tiedostoa ei löytynyt (mentiin yli), aloitetaan alusta
   if ($tiedostonimi == '') { Header("Location: ?m=1"); }

    $file = $tiedostonimi;
    $seuraavakuva = $mones+1;

?>
<html>
<head>
<title>Automaaginen kuvaesitys</title>
<meta http-equiv="refresh" content="<?php echo $asetus_nopeus; ?>; url=?m=<?php echo $seuraavakuva; ?>" />
</head>
<body topmargin="0">
<table><tr><td valign="top">
<?php include($file);?> </td></tr>
<tr><td><?php if ($nro == 1) { die("Sivu 1"); }if ($nro == 2) { die("Sivu 2"); } if ($nro == 3) { die("Sivu 3"); }
if ($nro == 4) { die("Sivu 4"); }if ($nro == 5) { die("Sivu 5"); }if ($nro == 6) { die("Sivu 6"); }?>
</td></tr></table>
</body>
</html>

ajv [25.04.2006 10:50:42]

#

Voisi jopa korjaantua poistamalla kommentit seuraavan rivin edestä:

//if ($mones == '') { $mones = 1; }

P.s. Tulevaisuudessa käytä kooditageja, niin on kivempi tulkata koodia. (mod. korjasi)

Niko [25.04.2006 12:27:46]

#

if(!isset($mones)) $mones = 1;

ajv [25.04.2006 13:10:33]

#

Aivan juu, en ajatellut ihan loppuun :)
Mutta aika kömpelö siitä tulee noinkin:

if (isset($_GET['m'])) { $mones = trim($_GET['m']); }
if(!isset($mones)) $mones = 1;
//Selkeempi olis:
if (isset($_GET['m'])) {
   $mones = trim($_GET['m']);
} else {
   $mones = 1;
}

tsuriga [25.04.2006 13:28:36]

#

<?php
$mones = (isset($_GET['m'])) ? trim($_GET['m']) : 1;

// tai PHP kutosen malliin kuulen'ma:
$mones = $_GET['m'] ?: 1; // tässä ei vaan ole trimmiä, luin tästä mureakuhasta
// toimineeko näin
$mones = trim($_GET['m'] ?: 1);
?>

Käyttäisin kyllä php6:kin tuota ensimmäistä niin ei tarvitsisi myöhemmin trimmailla tai trimmata turhaan ykköstä.

str4nd [26.04.2006 17:40:19]

#

tsuriga kirjoitti:

Käyttäisin kyllä php6:kin tuota ensimmäistä niin ei tarvitsisi myöhemmin trimmailla tai trimmata turhaan ykköstä.

Lataanpa heti PHP6:n php:n sivuilta, koska Portageen sitä ei ole tullut. :o

tsuriga [26.04.2006 18:02:22]

#

Mjaa, ei sitä php.netin downloadsistakaan kyllä löydy vielä. Tarkoitin kohdan "php6:kin" luettavaksi "php kutosessakin", ts. pidän parhaana tapana noista tuota ensimmäistä mikäli tarvitsee trimmata. Jättäisin kyllä trimmauksen pois alkuperäisestä koodista.

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta