Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Kuvagalleriaskriptin turvallisuus

juha127 [03.09.2006 14:36:39]

#

Muokkasin "hieman" tätä galleria scriptiä https://www.ohjelmointiputka.net/koodivinkit/24905-php-php-kuvagalleria-upload ja kyselisin gallerian bugeista ja tietoturva aukoista(siis muokkaamani). Julkaisen n. 700 riviä pitkän koodin, jos joku haluaa kokeilla ohjelmaa.
Ja tässä linkki galleriaan: http://84.248.87.212/kotisivut/juha127/kuvat/gallery2.php?

ps. Otsikko oli hankala keksiä ja on vieläkin outo

edit. Koodi:

<?php
/* gallery.php
Luo hakemistot upload, kuvat, thumbs ja niille kirjoitusoikeudet
Käyttö omalla vastuulla, muokkaaminen sallittu ja jopa suotavaa.
Koodailija: Tinqe
( #kumilenkki @ QuakeNet | tinqe (a) kumilenkki.com )

Koodiin lisännyt Juha127
- Kommentointi
- Kommenttien muokkaus
- Sivunumerointi
- Kirjautuminen
- Adminillä vain mahdollisuus uploadia

#####

Seuraavassa on tietokantaan luotavien taulukoiden koodi, joka voidaan suorittaa PhpMyAdminillä

CREATE TABLE kuvat (
  id INT,
  nimi TEXT,
  filename TEXT
  );

CREATE TABLE user (
  id INT,
  nimi TEXT,
  passu TEXT,
  arvo INT,
  nick TEXT
  );

CREATE TABLE kommentit (
  id INT,
  img INT,
  nick TEXT,
  kommentti TEXT,
  aika INT,
  user_id INT
  );

*/


## Tästä voit muuttaa kuvan max kokoja
$conf_maxfilesize = 1024; // kt
$tmb_max_w = 160; // Thumb-kuvan max-leveys
$tmb_max_h = 120; // Thumb-kuvan max korkeus
$img_max_w = 640; // Kuvan max leveys
$img_max_h = 480; // Kuvan max korkeus


$error = "";
$conf_maxfilesize = $conf_maxfilesize*1024;

##Yhteys
## Määritetään tietokanta ja tietokannan osoite ja tunnukset
$db = "gallery";
$db_tunnus = "tunnus";
$db_passu = "passu";
$db_osoite = "localhost";

## Nyt muodostetaan yhteys
$yhteys = mysql_connect($db_osoite, $db_tunnus, $db_passu);
mysql_select_db($db, $yhteys);


$max = "4"; // sivu numerointi
$max_s = "3"; // Kuvia etusivulla

## Tiedoston nimi, jos käytät dynaamista sivujärjestelmää tulee tämä olla muodossa: esim: ndex.php?sivu=galleria&
## Ja yksittäisen tiedoston perään tulee ?
## Miksi näin? Tämä helpottaa paljon mukautumista, joten sinun ei tarvitse muuttaa 30 kohdasta tiedosto nimeä kun ## sen
## voi muuttaa alusta
$f_n = "gallery2.php?";
// '.$conf_maxfilesize.'

## Otetaan selvää montako käyttäjää on ja ilmoitetaan ettei olla kirjauduttu sisään.
$kysely = 'SELECT * FROM users ORDER BY id';
$haku = mysql_query($kysely) or die ("Virhe: ".mysql_error());

$kayttajia = mysql_numrows($haku) or die ("Virhe :".mysql_error());
$sisalla = FALSE;


## Tallentaan kommentti
if ($_GET['mode'] == "komt") {
  ## Haetaan seuraavan kommentin id
  $kysely = 'SELECT * FROM kommentit WHERE img = ' . $_GET["img"];
  $haku = mysql_query($kysely);

  $id = mysql_numrows($haku) + 1;

  ## Tarkistetaan että kentät ovat täynnä
  if (preg_match("/^([0-9]+)$/", $_GET["img"]) AND  ! empty($_POST["nick"]) AND ! empty($_POST["kommentti"])) {
    if ($_COOKIE["flood"] < (time() - 60)) {

      setcookie("flood", time(), time() + 240); ##Asetetaan keksiin koska lähetettiin kommentti

      if (isset($_COOKIE["foorum_id"])) {
        $user_id = $_COOKIE["foorum_id"];
      }
      else { $user_id = "0"; }

      $rivi = 'INSERT INTO kommentit (id, img, nick, kommentti, aika, user_id) VALUES (' . $id . ', ' . $_GET["img"] .
      ',
      "' .
      strip_tags(htmlspecialchars($_POST["nick"])) . '", "' . strip_tags(htmlspecialchars($_POST["kommentti"])) . '", '
. time() . ', '. $user_id . ')';

      ## Tallennetaan kommentti

      mysql_query($rivi) or die ("Virhe:".mysql_error());
      header('Location: '. $f_n .'img=' . $_GET["img"]);
    }

    else { $virhe .= "Eipas floodita!"; } ## Ilmoitetaan floodaamisesta
  }

  ## Jos hommassa tuli virhettä ilmoitetaan siitä
  else {
    $virhe .= " Kaikki kent&auml;t pitää t&auml;ytt&auml;&auml;!";

  }
  header('Location: '. $f_n .'img=' . $_GET["img"] . '&virhe=' . $virhe);


}


## Sisään kirjautuminen
elseif ($_GET['mode'] == "login") {
	for ($i = 0; $i < $kayttajia; $i++) {
		if (mysql_result($haku, $i, "nimi") == $_POST['nimi'] AND mysql_result($haku, $i, "passu") ==
                md5($_POST["passu"])) {
			setcookie("foorum_nimi", $_POST['nimi'], time() + 3600);
			setcookie("foorum_passu", md5($_POST['passu']), time() + 3600);
                        setcookie("foorum_id", mysql_result($haku, $i, "id"), time() + 3600);
			header("Location: $f_n");
			break;
			}
		}



			echo '<table>
			<form action="'.$f_n.'mode=login&id=12" method="post">';
                        if ($_GET['id'] == 12) {
			echo '<tr><td style=" color: red; ">K&auml;ytt&auml;j&auml;tunnus
                        tai salasana v&auml;&auml;rin! <small>Muista isoilla ja pienill&auml; kirjaimilla
                        on eroa.</small></td><td></td></tr>';
                        }
                        echo '<tr><td>K&auml;ytt&auml;j&auml; tunnus: </td><td><input
                        type="text" name="nimi"/></td></tr>
			<tr><td>Salasana: </td><td><input type="password" name="passu" /></td></tr>
			<tr><td></td><td><input type="submit" value="Log in" /></td></tr>
			</form>
			</table>';


	}



elseif ($_GET['mode'] == "logout") {
	setcookie("foorum_nimi", "", time() - 60 * 10);
	setcookie("foorum_passu", "", time() - 60 * 10);
	setcookie("foorum_id", "", time()- 60 * 10);
	header("Location: $f_n");
	}

else {
	for ($i = 0; $i < $kayttajia; $i++) {
		if (mysql_result($haku, $i, "nimi") == $_COOKIE["foorum_nimi"]
                        AND mysql_result($haku, $i, "passu") == $_COOKIE["foorum_passu"]) {
			$sisalla = TRUE;
			$login_link = '<a class="valikko_link"
                        href="'.$f_n.'mode=logout">Log out
                        [' .
                        $_COOKIE["foorum_nimi"] . '] </a>';
			break;
			}
		}
		if ($sisalla == FALSE) {
			$login_link = '<a class="valikko_link" href="'.$f_n.'mode=login">Log in </a> <a
                        href="'.$f_n.'mode=rek">Rekister&ouml;idy</a>';
			}
	}

if ($_GET['mode'] == "edit_komt") {
  ## Tulostetaan kommentin muokkaus ruutu

  $keksi = $_COOKIE['foorum_id'];
  $image =  $_GET['img'];
  $iidee = $_GET['id'];
  $kysely = ("SELECT * FROM kommentit WHERE user_id = \"$keksi\" AND img = \"$image\" AND id = \"$iidee\"");

  $haku = mysql_query($kysely);

  if (mysql_numrows($haku) == 0) { echo "Kommenttia ei ole. Tai sinulla ei ole oikeuksia muokata kuvaa"; }

  else {
    $kommentti = mysql_result($haku, 0, "kommentti");
    echo "<form action=\"$f_n mode=tal_komt&amp;img=", $_GET["img"], "&amp;id=", $_GET["id"], "\" method=\"post\">
    <textarea  cols=\"40\" rows=\"4\"name=\" kommentti\" />$kommentti </textarea><br />
    <input type=\"submit\" value=\"Muokkaa\" />
    </form>";
  }

}
## Tallennetaan kommentin muutos
elseif ($_GET['mode'] == "tal_komt") {
  if (preg_match("/^([0-9]+)$/", $_GET["img"]) AND $sisalla == TRUE) {
    ## Muokataan kommentti
    $foorum_id = $_COOKIE["foorum_id"];
    $id = $_GET["id"];
    $kommentti = strip_tags(htmlspecialchars($_POST["kommentti"]));
    $img = $_GET["img"];
    $kysely = "UPDATE kommentit SET kommentti = \"$kommentti\" WHERE user_id = \"$foorum_id\" AND img = \"$img\" AND
    id = \"$id\"";
    $haku = mysql_query($kysely) or die ("Virhe: ".mysql_error());

    header('Location: '. $f_n .'img='.$_GET["img"]);
  }
  echo "Virhett&auml; muokkauksessa!<br />";
}

## Näytetään rekistöröitymis lomake
if ($_GET['mode'] == "rek") {


	echo '<table>
	<form method="post" action="'.$f_n.'mode=kirjaa_user">
	<tr><td>K&auml;ytt&auml;j&auml; tunnus: </td><td><input type="text" name="user_name" /></td></tr>
	<tr><td>Salasana: </td><td><input type="password" name="pass1" /></td></tr>
	<tr><td>Salasana uudestaan: </td><td><input type="password" name="pass2" /></td></tr>
	<tr><td></td><td><input type="submit" value="RekisT&ouml;r&ouml;idy" /></td><tr>
	</table>';

}

##Käsitellään rekistöröinti lomake
elseif ($_GET['mode'] == "kirjaa_user") {
        ##Tarkistetaan kuinka mones kättäjä
	$query = "SELECT * FROM users ORDER BY id";
	$result = mysql_query($query) or die ("Virhe: rivi 20". mysql_error());
	$id = mysql_numrows($result) + 1;

        ##Täsmäävätkö salasanat
	if ($_POST['pass1'] == $_POST['pass2'] AND isset($_POST['user_name'])) {
		$yes = TRUE;
                if (preg_match("/ä|ö|å|\(|\)|\/|\\|\.|\[|\]|\<|\>/",$_POST['user_name']) OR
                  preg_match("/ä|ö|å|\(|\)|\/|\\|\.|\[|\]|\<|\>/", $_POST['pass1'])) {
                  $yes = FALSE;
        }


        else {
                ##Jos... niin tarkistetaan, ettei käyttäjä tunnus ole jo käytössä
		for ($i = 0; $i < mysql_numrows($result); $i++) {
			if ($_POST['user_name'] == mysql_result($result,$i,"nimi")) {
				$yes = FALSE;
				break;
				}
			}
        }
                ##Jos arvot hyväksyttiin merkataan tietokantaan uusi käyttäjä
		if ($yes == TRUE) {
			$passu = md5($_POST['pass1']);
			$uus_aihe = 'INSERT INTO users(id, nimi, passu, arvo, nick) VALUES (' . $id . ',"' .
strip_tags(htmlspecialchars($_POST["user_name"])) .'", "' . $passu . '", 0, "'.
strip_tags(htmlspecialchars($_POST["user_name"])) .'"); ';
			mysql_query ($uus_aihe) or die ("Virhe:  ". mysql_error());
			header("Location: $f_n");
		}

                ##Jos arvot olivat virheelliset palataan lomakkeeseen ja näytetään virheilmoitus
		else {


			echo '<p style=" color:red; ">K&auml;yttäjä tunnus jo k&auml;yt&auml;ss&auml;!</p>';
			echo '<table>
			<form method="post" action="'.$f_n.'mode=kirjaa_user">
			<tr><td>K&auml;ytt&auml;j&auml; tunnus: </td><td><input type="text" name="user_name"
/></td></tr>
			<tr><td>Salasana: </td><td><input type="password" name="pass1" /></td></tr>
			<tr><td>Salasana uudestaan: </td><td><input type="password" name="pass2" /></td></tr>
			<tr><td></td><td><input type="submit" value="Rekist&ouml;r&ouml;idy" /></td><tr>
			</table>';
			}
		}

	## Ilmoitetaan virheestä
	else {

		echo '<p style=" color:red; ">Salasanat eivät t&auml;sm&auml;&auml;!</p>';
		echo '<table>
		<form method="post" action="'.$f_n.'mode=kirjaa_user">
		<tr><td>K&auml;ytt&auml;j&auml; tunnus: </td><td><input type="text" name="user_name" /></td></tr>
		<tr><td>Salasana: </td><td><input type="password" name="pass1" /></td></tr>
		<tr><td>Salasana uudestaan: </td><td><input type="password" name="pass2" /></td></tr>
		<tr><td></td><td><input type="submit" value="Rekist&ouml;r&ouml;idy" /></td><tr>
		</table>';
		}
}



echo $login_link, "<br /><b><a href=\"$f_n\">Galleriasivu</a></b><br><br>";

##Admin voi uploadia
if ($_COOKIE["foorum_nimi"] == "admin") {

  print('<form enctype="multipart/form-data" action="'.$f_n.'" method="POST">
    <input type="hidden" name="MAX_FILE_SIZE" value="10000000" />
    Tiedosto: <input name="file" type="file" /> Nimi: <input type="text" name="nimi" />
    <input type="submit" name="submit" value="Send File" />
    </form>');

  if(isset($_POST['submit']))
  {

    // selvitetään kuvan koko ja tyyppi
    list($width, $height, $type) = getimagesize($_FILES['file']['tmp_name']);

    // Tarkastetaan tiedosto
    $file_check = TRUE;
    if($_FILES["file"]["size"] > $conf_maxfilesize)
    {
        $file_check = FALSE;
        $error = $error."Tiedosto on liian suuri!<br>";
        }
    if($_FILES["file"]["size"] == 0)
    {
        $file_check = FALSE;
        $error = $error."Tiedoston koko on 0!<br>";
        }

    // Tarkistetaan tiedoston koko
    if( $file_check )
    {
        if($type == 2) // JPEG
        {
            $original_image = imagecreatefromjpeg($_FILES["file"]["tmp_name"]);
            $new_ext = 'jpg';
            }
        elseif($type == 1) // GIF
        {
            $original_image = imagecreatefromgif($_FILES["file"]["tmp_name"]);
            $new_ext = 'gif';
            }
        elseif($type == 3) // PNG
        {
            $original_image = imagecreatefrompng($_FILES["file"]["tmp_name"]);
            $new_ext = 'png';
            }
        else
        {
            // Tiedostomuoto ei ole tuettu, poistetaan
            $error = $error."Tiedostomuoto ei ole tuettu!<br>";
            $file_check = FALSE;
            unlink($_FILES["file"]["tmp_name"]);
            }
        // Kuvan koon muuttaminen ja tallennus palvelimelle
        if($file_check)
        {
            // Lasketaan thumbin uusi koko, kuvasuhteen määrittely
            $new_w = $width/$tmb_max_w; // 1024 / 640 = 1,6
            $new_h = $height/$tmb_max_h; // 2000 / 480 = 4,17
            if($new_w > $new_h || $new_w == $new_h)
            {
                /* Lasketaan kuvasuhde siten, että kuva mahtuu thumbille määrättyyn arvoon
                */
                $tmb_w = $width / $new_w;
                $tmb_h = $height / $new_w;
                }
            elseif($new_w < $new_h)
            {
                $tmb_w = $width / $new_h;
                $tmb_h = $height / $new_h; // Käytä $new_h
                }
            // Luodaan määrätyn kokoinen thumbnail-kuva
            $thumb = imagecreatetruecolor($tmb_w, $tmb_h);
            // Resample (parempi resize)
            imagecopyresampled($thumb, $original_image, 0, 0, 0, 0, $tmb_w, $tmb_h, $width, $height);

            // Tallennetaan kuva tiedostoon
            $time = time();
            if($type == 2) // JPEG
            {
                imagejpeg($thumb, 'thumbs/'.$time.'.jpg');
                $paate = ".jpg";
                }
            elseif($type == 1) // GIF
            {
                imagegif($thumb, 'thumbs/'.$time.'.gif');
                $paate = ".gif";
                }
            elseif($type == 3) // PNG
            {
                imagepng($thumb, 'thumbs/'.$time.'.png');
                $paate = ".png";
                }

            $query = "SELECT * FROM kuvat ORDER BY id";
	    $result = mysql_query($query);
	    $id = mysql_numrows($result) + 1;

            $rivi = 'INSERT INTO kuvat (id, nimi, filename) VALUES (' . $id . ', "' . $_POST["nimi"] . '", "' . $time .
            $paate . '")';

            mysql_query($rivi);

            // Thumb tallennettu, nyt luodaan normikokoinen kuva

            // Lasketaan kuvalle uusi koko siten, että kuvasuhde säilyy
            $new_w = $width/$img_max_w; // 1024 / 640 = 1,6
            $new_h = $height/$img_max_h; // 2000 / 480 = 4,17
            if($new_w > $new_h || $new_w == $new_h)
            {
                /* Lasketaan kuvasuhde siten, että kuva mahtuu thumbille määrättyyn arvoon
                */
                if($new_w < 1)
                {
                    // Jos alkuperäinen kuva on pienempi kuin luotava, luodaan alkuperäisen kokoinen kuva
                    $new_w = 1;
                    }
                $img_w = $width / $new_w;
                $img_h = $height / $new_w;
                }
            elseif($new_w < $new_h)
            {
                if($new_h < 1)
                {
                    // Jos alkuperäinen kuva on pienempi kuin luotava, luodaan alkuperäisen kokoinen kuva
                    $new_h = 1;
                    }
                $img_w = $width / $new_h;
                $img_h = $height / $new_h; // Käytä $new_h
                }

            // Luodaan määrätyn kokoinen thumbnail-kuva
            $image = imagecreatetruecolor($img_w, $img_h);
            // Resample (parempi resize)
            imagecopyresampled($image, $original_image, 0, 0, 0, 0, $img_w, $img_h, $width, $height);
    //
            // Tallennetaan kuva tiedostoon
            if($type == 2) // JPEG
            {
                imagejpeg($image, 'kuvat/'.$time.'.jpg');
                }
            elseif($type == 1) // GIF
            {
                imagegif($image, 'kuvat/'.$time.'.gif');
                }
            elseif($type == 3) // PNG
            {
                imagepng($image, 'kuvat/'.$time.'.png');
                }
    //
            // Tallennetaan alkuperäinen tiedosto, poista kommentti jos haluat talteen alkuperäisen tiedoston
            // move_uploaded_file($_FILES["file"]["tmp_name"], 'upload/'.$time.'.'.$new_ext);
            print('Lis&auml;tty: '.$_FILES["file"]["name"].'<br><img src="kuvat/'.$time.'.'.$new_ext.'"
border="1"><br>');
            }
        // Poistetaan uploaded temp-tiedosto
        unlink($_FILES["file"]["tmp_name"]);
        }
        // Jos muuttuja $error ei ole tyhjä, voidaan olettaa että on sattunut jokin virhe
        if($error !== '')
        {
            // Tulostetaan virheet
            print($error);
            }
    }
}


if(isset($_GET['img']))
{



    $query = "SELECT * FROM kuvat ORDER BY id";
    $result = mysql_query($query);

    $kuvia = mysql_numrows($result);

    ## Sivu numerointi

    if ($_GET["img"] == 0) {
      echo "1 ";
    }
    else {
      echo "<a href=\"$f_n img=0\">1</a> ";
    }

    ## Jos kuvia on vähemmän kuin kerrallaan näytettäviä
    if ($kuvia < $max) {
      for ($i = 1; $i < $kuvia; $i++) {
        echo "<a href=\"$f_n img=", $i, "\" />", ($i + 1) , "</a> ";
      }
    }

    ## Jos kuvia on enemmän kuin kerraal näytettäviä
    elseif ($kuvia > $max) {

        ## Määritellään Mistä kohtaa tulostetaan
        $alk = $_GET["img"] - $max;
        $lop = $_GET["img"] + $max;

        ## Jos ollaan lopussa ei tulosta olemattomia linkkejä
        if ($lop > $kuvia - 1) {
          $lop = $kuvia - 1;
        }

        ## Miinus merkkisiä sivuja ei ole
        if ($alk < 1) {
          $alk = 1;
        }

        ## Tyylikkäät pisteet
        if ($_GET["img"] > 4) {
          echo "...";
        }

        for ($i = $alk; $i < $lop; $i++) {
          if ($i == $_GET["img"]) {
            echo ($i + 1), " "; ##Ei tulosteta nykyisen sivun linkkiä, siitä näkee missä ollaan nyt
          }

          else {
            echo "<a href=\"$f_n img=", $i, "\" />", ($i + 1) , "</a> ";
          }
        }

        if ($_GET["img"] < $kuvia - 5) {
          echo "...";
        }


    }

    if ($_GET["img"] == $kuvia - 1) {
      echo $kuvia, " ";
    }
    else {
      echo "<a href=\"$f_n img=", $kuvia - 1, "\">", ($kuvia), "</a> ";
    }

    ## Tulostetaan kuva
    echo "<br />", mysql_result($result, $_GET["img"], "nimi"), "<br /><img src=\"kuvat/", mysql_result($result,
    $_GET["img"], "filename"), "\" alt=\"", mysql_result($result,    $_GET["img"], "nimi"), "\" />";

    $kysely = 'SELECT * FROM kommentit WHERE img = ' . $_GET["img"];
    $haku = mysql_query($kysely);

    $id = mysql_numrows($haku);



    echo "<table>";

    ## Tulostetaan kommentit ja muokkaa linkki
    for ($i = 0; $i < $id; $i++) {
      echo "<tr><td width=\"50\">", mysql_result($haku, $i, "nick"), ": </td><td><small><small>", date("H:i j.n.Y
      ",mysql_result($haku, $i, "aika")), " <a href=\"", $f_n ,"mode=edit_komt&img=", $_GET["img"], "&id=",
      mysql_result($haku, $i, "id"), "\">Muokka</a></small></small><br />", mysql_result($haku, $i, "kommentti"),
      "</td></tr>";
    }

    ## Ilmoitetaan virheestä
    echo '<tr><td></td><td>'.$_GET["virhe"];

    echo "</td></tr><tr><td>";

    ## Kommentointi lomake
    echo '<form action="'.$f_n.'mode=komt&amp;img=' . $_GET["img"] .'" method="post">';


    ## Kirjautuneena ei tarvitse kirjoittaa nimeä
    if ($sisalla == TRUE) {
      echo '<input type="hidden" name="nick" value="' . $_COOKIE["foorum_nimi"] .'" />';
    }

    else {
      echo 'Nick: </td><td><input type="text" name="nick" /></td></tr>';
    }

    echo '<tr><td>Kommentti: </td><td><textarea rows="4" cols="40" name="kommentti" /></textarea></td></tr>

    <tr><td></td><td><input type="submit" value="Kirjoita" />
    </form></td></tr>
    </table>';
    }



else
{

    ## Tulostetaan listaus kuvista



    $query = "SELECT * FROM kuvat ORDER BY id";
    $result = mysql_query($query);

    $kuvia = mysql_numrows($result);

    ## Sivu numerointi

    if (! isset($_GET["page"])) {
      $_GET["page"] = 0;
    }

    if ($_GET["page"] == 0) {
      echo "1 ";
    }
    else {
      echo "<a href=\"$f_n page=0\">1</a> ";
    }

    ## Jos kuvia on vähemmän kuin kerrallaan näytettäviä
    if ((round($kuvia / $max_s)) < $max_s) {
      for ($i = 1; $i < ceil($kuvia / $max_s); $i++) {
        echo "<a href=\"$f_n page=", $i, "\" />", ($i + 1) , "</a> ";
      }
    }

    ## Jos kuvia on enemmän kuin kerraal näytettäviä
    elseif ($kuvia / $max_s >= $max_s) {

        ## Määritellään Mistä kohtaa tulostetaan
        $alk = $_GET["page"] - $max;
        $lop = $_GET["page"] + $max;

        ## Jos ollaan lopussa ei tulosta olemattomia linkkejä
        if ($lop > $kuvia / $max_s - 1) {
          $lop = ceil($kuvia / $max_s - 1);
        }

        ## Miinus merkkisiä sivuja ei ole
        if ($alk < 1) {
          $alk = 1;
        }

        ## Tyylikkäät pisteet
        if ($_GET["page"] > 4) {
          echo "...";
        }

        for ($i = $alk; $i < $lop; $i++) {
          if ($i == $_GET["page"]) {
            echo ($i + 1), " "; ##Ei tulosteta nykyisen sivun linkkiä, siitä näkee missä ollaan nyt
          }

          else {
            echo "<a href=\"$f_n page=", $i, "\" />", ($i + 1) , "</a> ";
          }
        }

        if ($_GET["page"] < ceil($kuvia / $max_s) - 5) {
          echo "...";
        }


    }

    if ($_GET["page"] == ceil($kuvia / $max_s) - 1) {
      echo ceil($kuvia / $max_s) , " ";
    }
    else {
      echo "<a href=\"$f_n page=", ceil($kuvia / $max_s) - 1, "\">", ceil($kuvia / $max_s), "</a>";
    }

    echo "<br />";

    if ($_GET["page"] <= 0) {
      $o = 0;
    }

    else {
      $o = $_GET["page"] * $max_s;
    }

    if ($kuvia < $max_s) {
      $u = $kuvia;
    }

    else {
      $u = ($max_s * $_GET["page"]) + $max_s;
    }

    // Ei kuvia nyt loputtomasti ole =)
    if ($u > ceil($kuvia / $max_s)) { $u = $kuvia; }


    // Tulostetaan kuvat
    for ($i = $o; $i < $u; $i++) {
      echo "<a href=\"$f_n img=", $i, "\"><img src=\"thumbs/", mysql_result($result, $i, "filename"), "\"
            alt=\"", mysql_result($result, $i, "nimi"), "\" /></a><br />", mysql_result($result, $i, "nimi") , "<br
            />";
    }


}

?>

T.M. [03.09.2006 14:41:52]

#

Siis, miten voimme etsiä bugeja/aukkoja jos emme näe koodiasi?

juha127 [03.09.2006 15:04:01]

#

Nyt näkyy koodi

Vastaus

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

Tietoa sivustosta