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.