Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: PHP: Muuttujat mukaan toiseen tiedostoon

Sivun loppuun

Tontttu [16.01.2006 17:41:52]

#

Moro!

Mulla on nyt tekeillä yks PHP-scripti. Siinäpä tuli nyt vastaan onkelma. En saa tiedostosta muuttujia toiseen tiedostoon.

Mulla on siellä nyt tiedosto näin:

<html>
<head>
  <script language="JavaScript">
    <!--
      function uusi_ikkuna(w, h) {
        window.open("", "iso_kuva", 'scrollbars=no,width='+w+',height='+h+'');
      }
    //-->

</script>

</head>

<?php
echo  "<H1>".$otsikko."</H1>";
echo  "<b>".$kuvaus."</b>";


$viestit = file("asetukset.txt");

for ($i = 0; $i < $viestimaara; $i++) {
   $tiedot = explode("|", $viestit[$i], 8);


   $taustakuva = $tiedot[0];
   $taustavari = $tiedot[1];
   $fontti = $tiedot[2];
   $fonttivari = $tiedot[3];
   $sarake = $tiedot[4];
   $thulev = $tiedot[5];
   $thukor = $tiedot[6];
   $otsikko = $tiedot[7];
   $kuvaus = $tiedot[8];

echo  "<body bgcolor=\"$taustavari\">";
echo  "<body background=\"$taustakuva\">";
echo  "<font face=\"$fontti\" color=\"$fonttivari\">";


$polku = getcwd();
$sarakkeet = $sarake;
$img_width = $thulev;
$img_height = $thukor;

$sarakkeet -= 1;

function listaa() {

  global $polku;

  if ($handle = opendir($polku)) {


    while (false !== ($file = readdir($handle))) {

      $files[] = $file;

    }

    closedir($handle);

  }

  return $files;

}

$files = listaa();

print "<center><table border=0>";

for ($i = 2; $i <= count($files); $i++) {

  print "<tr>";

  for ($i2 = $i; (($i2 - $i) <= $sarakkeet) && file_exists($files[$i2]); $i2++) {

    $s = $files[$i2];
    $mtime = filemtime($files[$i2]);
    $stamp = date("d.m.Y @ H:i:s", $mtime);

    /* jos kuva on jpg jpeg bmp tai gif kuva näytetään */

    if   (substr($s, strlen($files[$i2]) - 3, 3) == "jpg" ||
          substr($s, strlen($files[$i2]) - 4, 4) == "jpeg" ||
          substr($s, strlen($files[$i2]) - 3, 3) == "bmp" ||
          substr($s, strlen($files[$i2]) - 3, 3) == "gif") {

      $img_size = getimagesize($s);

      print "<td>
               <a href=\"".$s."\" border=0
                alt=\"".$stamp."\"
                target=\"iso_kuva\"
                onClick=\"uusi_ikkuna($img_size[0] + 26,$img_size[1] + 26);\">
                 <img src='".$s."' width=".$img_width." height=".$img_height." border=0>
               </a>
               <br>
               <font style=\"font-size: 60%\" color=\"#ffffff\">".$stamp."</font>
             </td>";

      }

      else $i += 1;

      $u = 1;
  }

  print "</tr>";

  if ($u == 1) {

    $i = $i2 - 1;
    $u = 0;

  }

}

print "</table></center>";

}
?>

</body>
</html>

Tuossa sen pitäis ottaa muuttujat tiedostosta asetukset.txt, muttei ota. Muissa jutuissa tämä on kyllä toiminu, onko mula lipsahtanu tuonne virhe vai sotkeeko muut php-koodit tuota?

Niko [16.01.2006 17:58:41]

#

<?php
echo  "<H1>".$otsikko."</H1>";
echo  "<b>".$kuvaus."</b>";


$viestit = file("asetukset.txt");

for ($i = 0; $i < $viestimaara; $i++) {
   $tiedot = explode("|", $viestit[$i], 8);

// jatkuu
?>

Tossahan se virhe on. mikäli et huomaa niin jatka lukemista:
1. erosta muuttujaa ei ole asetettu...
2. kirjoitat erään muuttujan joka kerta yli...
3. avoin sulku
4. asetukset ei maagiesti ilmesty aiempaan koodiin
5. tulostat monta body tagia

Tässä vielä vähän korjattu en ymmärrä mitä ajat takaa koodillas

<?php
echo  "<H1>".$otsikko."</H1>";
echo  "<b>".$kuvaus."</b>";


$viestit = file("asetukset.txt");
$tiedot = array();

foreach ($viestit as $viesti) {
   $tiedot = explode("|", $viesti, 8);

// jatkuu
?>

Tontttu [16.01.2006 18:06:09]

#

Siihen liittyy muitakin tiedostoja ;) kuvagalleriakoodi olis tarkotus tuosta tulla. Muuttujilla laitetaan lomakkeessa fontit, taustat, otsikot, kuvaukset jne.

Muuttujat ei kyl toimi viel siinä :O

Tontttu [16.01.2006 20:54:17]

#

Kaikki kunnossa :) kiitti avusta

Tontttu [17.01.2006 18:06:02]

#

Hmmh.. miten tässä saa laitettua ladatulle tiedostolle muuttujan? et se uploadattu tiedosto olis joku muuttuja, sillein vois laittaa esim. aukeemaan sen avulla sen upitun tiedoston. tää olinyt esimerkkinä vaamn, se ei oo tarkotus.

<?php
$uploaddir = '/home/toni/public_html/muuta/kuvat/kuvat/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
   header("Location: http://www.arkku.net/~toni/muuta/kuvat/");
} else {
   echo "Possible file upload attack!\n";
}

echo '';

?>

Tontttu [18.01.2006 17:03:01]

#

Ylempään ei tartte enään vastausta. Nyt tuli taas uus onkelma:
Mulla on polku näin:

$polku = "/home/toni/public_html/muuta/Galleria/kuvat";

mut tuo ei ota kuvia tuosta kansiosta. Mikä vikana?

Grey [18.01.2006 17:46:48]

#

Tontttu kirjoitti:

$polku = "/home/toni/public_html/muuta/Galleria/kuvat";

Hm, tarkistahan polun nimen isot ja pienet kirjaimet. Unix-pohjaiset systeemit kun välittävät kirjainkoosta hieman..

-Grey-

Tontttu [18.01.2006 17:49:14]

#

Joo, ne on ihan oikein. Polku kyllä on oikein, muuten se rupee valittamaan siitä. Miten muuten ne kuvat voi hakee toisesta kansiosta?

Tempfile [18.01.2006 17:50:14]

#

Luulenpa että vika piilee siinä, että yrität käyttää rootista alkavaa polkua, kun sen sijaan pitäisi käyttää serverrootista eli tässä tapauksessa oletettavasti tuosta /home/toni/public_html:stä alkavaa polkua. Kokeilepa laittaa polku muotoon /muuta/Galleria/kuvat ja tsekkaa toimiiko, skriptistä riippuen voi olla myös että viimeinenkin hakemisto pitäisi lopettaa kauttaviivaan.

Tontttu [18.01.2006 17:51:57]

#

Ei auttanu. Sai aikaan vaan virheilmon:
Warning: opendir(/muuta/Galleria/kuvat): failed to open dir: No such file or directory in /home/toni/domains/toni.arkku.net/public_html/muuta/Galleria/index.php on line 53

Olga [18.01.2006 19:10:36]

#

Jos olet hakemistossa Galleria, ja haluat rääppiä sen alihakemistoa (niinku tuo kuvat näyttäis olevan), niin poluksi riittää ihan vaan tuo kuvat.

Tontttu [18.01.2006 19:24:43]

#

Juu. Nyt on kaverin avulla saatu muutosta tiedostoon, vielä jotakin pielessä. Mitä?

<html>
<head>

  <script language="JavaScript">

    <!--
      function uusi_ikkuna(w, h) {
        window.open("", "iso_kuva", 'scrollbars=no,width='+w+',height='+h+'');
      }
    //-->

  </script>
</head>


<font face="$fontti" color="$fonttivari">

<?php
$viestit = file("galleria.txt");
$tiedot = array();

foreach ($viestit as $viesti) {
   $tiedot = explode("|", $viesti, 10);


   $taustakuva = $tiedot[0];
   $taustavari = $tiedot[1];
   $fontti = $tiedot[2];
   $fonttivari = $tiedot[3];
   $sarake = $tiedot[4];
   $thulev = $tiedot[5];
   $thukor = $tiedot[6];
   $otsikko = $tiedot[7];
   $kuvaus = $tiedot[8];
   $fonttikoko = $tiedot[9];
}

echo  "<H1><font face=\"$fontti\" color=\"$fonttivari\">$otsikko</H1>";
echo  "<b>$kuvaus</b></font>";
echo  "<body background=\"$taustakuva\" bgcolor=\"$taustavari\">";

$polku = "/home/toni/public_html/muuta/Galleria/kuvat";
$sarakkeet = $sarake;
$img_width = $thulev;
$img_height = $thukor;

$sarakkeet -= 1;

function listaa() {

  global $polku;

  if ($handle = opendir($polku)) {

    while (false !== ($file = readdir($handle))) {

      $files[] = $file;

    }

    closedir($handle);

  }

  return $files;

}

$files = listaa();

print "<center><table border=0>";

for ($i = 2; $i <= count($files); $i++) {

  print "<tr>";


  for ($i2 = $i; (($i2 - $i) <= $sarakkeet) && file_exists($files[$i2]); $i2++) {

    $s = $files[$i2];
    $s = "kuvat/".$s;

    $mtime = filemtime($files[$i2]);
    $stamp = date("d.m.Y - H:i:s", $mtime);

    if   (substr($s, strlen($files[$i2]) - 3, 3) == "jpg" ||
          substr($s, strlen($files[$i2]) - 4, 4) == "jpeg" ||
          substr($s, strlen($files[$i2]) - 3, 3) == "bmp" ||
          substr($s, strlen($files[$i2]) - 3, 3) == "gif") {

      $img_size = getimagesize($s);

      print "<td>
               <a href=\"".$s."\" border=0
                alt=\"".$stamp."\"
                target=\"iso_kuva\"
                onClick=\"uusi_ikkuna($img_size[0] + 26,$img_size[1] + 26);\">

                 <img src='".$s."' width=".$img_width." height=".$img_height." border=0>

               </a>
               <br>

               <font style=\"font-size: $fonttikoko\" color=\"$fonttivari\">".$stamp."</font>

             </td>";

      }

      else $i += 1;

      $u = 1;
  }

  print "</tr>";

  if ($u == 1) {

    $i = $i2 - 1;
    $u = 0;

  }

}

print "</table></center>";

?>

</body>
</html>

lapm [18.01.2006 20:26:09]

#

Tontttu kirjoitti:

Juu. Nyt on kaverin avulla saatu muutosta tiedostoon, vielä jotakin pielessä. Mitä?

Et sitten viitsi kertoa tarkemmin mikä siinä on vikana?

Tontttu [18.01.2006 20:47:45]

#

No, ylemmät viestit lukemalla saa selville, et mitä oon tekemässä. Virheilmotustahan tuosta ei tuu, vaan kuvat ei vaan näy. Mikä siinä vielä on huonosti ku ei näy?

Tontttu [18.01.2006 22:03:48]

#

Tarkennuksena vielä siis, että toi on laitettu näyttämään samalla sivulla olevat kuvat. Siitä pitäs muokata niin, että se näyttää kuvat, jotka on kuvat nimisessä alikansiossa. Tän valmiiks saamisella on pieni kiire, huomenna pitäis olla valmis. Olis kiva kun saisin apua :)


Sivun alkuun

Vastaus

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

Tietoa sivustosta