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>
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)
if(!isset($mones)) $mones = 1;
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; }
<?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ä.
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
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.
Aihe on jo aika vanha, joten et voi enää vastata siihen.