Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Voi Kirjoittaa Vain Kerra

Sivun loppuun

Jesse.e [11.02.2004 18:31:16]

#

Elikkäs Minulla On Tälläinen Koodi:

$tiedosto="data.txt";

if ($sivu=="lahetetty")
{
  if ($name && $birth && $live && $filetto_name)
  {
    $nimi_a = explode('.',$filetto_name);
    $filumuoto = count($nimi_a); // napataan tiedoston pääte
    $filumuoto = ($filumuoto - 1); // array alkaa 0:sta
    if (in_array($nimi_a[$filumuoto], $paate))
    {
    # poistetaan maholliset html-koodit
    $name=str_replace("<", "&lt", $name);
    $name=str_replace(">", "&gt", $name);
    $birth=str_replace("<", "&lt", $birth);
    $birth=str_replace(">", "&gt", $birth);
    $live=str_replace("<", "&lt", $live);
    $live=str_replace(">", "&gt", $live);
    # tallennetaan linkit

    $tallenna = fopen($tiedosto, "a");
    fwrite ($tallenna, $name ."|". $birth ."|". $live ."|". date("j/m/y") ."|". $filetto_name ."|". chr(13).chr(10) );
    fclose ($tallenna);
    }
  }
}

Kuinka Tohon Saisi Sellaisen Ettän Jos Tuolla "data.txt" Kansiossa On Jo Nimi Jota Yritetään Lähettää Niin Tulisi Joku Vaikkapa: Nimellä **** On Jo Lähetetty Tiedosto.

Miten Tälläinen Olisi Mahdollista?

Juhis [11.02.2004 18:42:41]

#

Tuota koodia saa ainakin lyhennettyä käyttäen htmlentities() funktiota. Muuttaa myös muutenkin validaattorin läpi meneväksi koodiksi.
Sekä array_reverse() funkkarilla saadaan pienemmäksi ja optimoidummaksi.

En ota tähän koko tuota koodiasi, osan vain.

<?php

    $nimi_a = array_reverse(explode('.',$filetto_name));
    $filumuoto = $nimi_a[0]; // kannattaa vielä pistää strtolower() funkkari tähän.


    $name = htmlentities($name);
    $birth = htmlentities($birth);
    $live = htmlentities($live);
?>

Ja itse kysymykseen, heität vaan jonkinlaisessa loopissa läpi (while, for) ja jos löytyy oikeita niin exit("error"); kehiin.

Jesse.e [11.02.2004 20:23:40]

#

Siis Thä?

Saisko Ton Loppuosan Koodina?
Oon Kato Vast Jonkinlainen Aloittelija.

Blaze [11.02.2004 20:57:53]

#

Miksi Tällainen Kirjoitustyyli? Ärsyttää Pahasti Ainakin Minua.

T.M. [11.02.2004 21:00:28]

#

Ehkä Sen Onkin Tarkoitus Ärsyttää :P
En Kyl Tajuu Miten Joku Voi Kirjottaa Tällei.
TäLlÄnEn KiRjOtUsTyYlI oN vÄhÄn CoOlImPi.

makeuu [12.02.2004 07:25:28]

#

TäÄ oN KyLLä TosI NÄtTi mUn MiELEstÄ, No eI vAiSKAan.

arcatan [12.02.2004 09:16:08]

#

Minulle tulee tuosta kirjoitustyylistä yhtä paha mieli kuin eilen äidinkielen tunnilla kuultuani 27 kertaa "no mun mielest pappi teki ihan oikein" eri ihmisten sanomana.

Olga [12.02.2004 10:18:06]

#

http://mbnet.fi/irksome/testaus/text.php :D

k-mikko [12.02.2004 14:17:07]

#

lainaus:

http://mbnet.fi/irksome/testaus/text.php :D

Hieno! =D

makeuu [12.02.2004 14:25:17]

#

Niin on... todella nätti :D

E-P [12.02.2004 19:29:42]

#

Toi on kyl hieno! :D

Jesse.e [12.02.2004 19:44:24]

#

Joo. Hei Sori Täst Mut Se Vaa Tulee.
(Moni Muuki On Sanonu Et Ärsyttää)

Mut... Voisko Joku Kertoo Tollasen Koodin
Jota Pyysin. Ois Kiva.

Ja Viel Kerran Sori Mun Kirjotus Syle.

samii [12.02.2004 19:53:08]

#

lainaus:

Joo. Hei Sori Täst Mut Se Vaa Tulee.
(Moni Muuki On Sanonu Et Ärsyttää)

JooEi­Se­Mitään­Koska­Itsel­lä­ni­kin­On­Vähän­Tämä­Kirjoi­tus­Täl­läis­tä­Enkä­Voi­Sille­Mitään­Enkä­Edes­Yritä­Kirjoit­taa­Oikein.

On kyllä putkaan tullut muutamia en sano mitä / minkälaisia käyttäjiä tässä viime aikoina.

tsuriga [12.02.2004 19:53:12]

#

Nii ja et oo vielä älynny lopettaa? Kattelepa php-opasta (!löytyy ohjelmointiputkasta).

sooda [12.02.2004 20:01:16]

#

On Hienoa Kun Kirjoittaa Joka Sanan Isolla Alkukirjaimella. Lol.

Jesse.e [12.02.2004 20:02:51]

#

lainaus:

On kyllä putkaan tullut muutamia en sano mitä / minkälaisia käyttäjiä tässä viime aikoina.

Joo Kiitti Vaa... Tajusin.

Eli ette osaa auttaa mua tässä koodi hommassa?
VAI ONKO NIIN VAIKEETA LUKEA TEKSTIÄ JOS JOKA
SANA ALKAA ISOLLA?!?!?!

Pitää olla aika huono lukee jos silmää sattuu ku
lukee mun tekstii ! ! ! ! !

Draiz [12.02.2004 20:05:41]

#

Jos se on niin vaikeeta kirjottaa normaalisti nii oot tullu väärään paikkaan...

Jesse.e [12.02.2004 20:38:22]

#

Eli täällä on vain PILKUNNUSIOITA?

Eiks tää ookkaa se paikka jos haetaan
apuu php scriptailuun vaan rnkataan pilkkuu?

ajv [12.02.2004 20:44:00]

#

Lue keskustelualueen ohjeet:
https://www.ohjelmointiputka.net/ohje.php?tunnus­=kohjeet
Ja jos ei niitä kiinnosta noudattaa, niin ei ole pakko sitten kirjoittaa tänne.

Matti Kaijomaa [12.02.2004 21:05:31]

#

Mutta Eihän Tämä Ole Pilkunnusimista.

Kun Sinä V*ttuilet Meille, Niin Me V*ttuilemme Takaisin. Sitä Kutsutaan Vaihtokaupaksi.

kenkku [12.02.2004 21:10:53]

#

Noh noh pojat, "Eihän karhukaan koko ajan riehu, se vetää välikkä puolukoita.."

P.S. Kyllä Minuakin Tälläinen Kirjoitus Ärsyttää

Jesse.e [12.02.2004 21:22:20]

#

No anteeksi ruma kielenkäyttö ja anteeksi kun en osaa kirjoittaa niinkuin te muut.... Eli muka oikein.

Mutta voisinko saada tuon koodin jota olen kysellyt vai onko liian ylivoimaista?

Anteeksi vielä ettei ollu ehkä pilkut ja pisteet paikoillaan.

T.M. [12.02.2004 21:31:37]

#

Et saa anteeksi.

makeuu [12.02.2004 22:12:13]

#

olipa tänäänkin rumia sanoja ruokalistalla hyi hyi :(

samii [12.02.2004 22:17:36]

#

lainaus:

No anteeksi ruma kielenkäyttö ja anteeksi kun en osaa kirjoittaa niinkuin te muut.... Eli muka oikein.

Mutta voisinko saada tuon koodin jota olen kysellyt vai onko liian ylivoimaista?

Anteeksi vielä ettei ollu ehkä pilkut ja pisteet paikoillaan.

Hyvinhän se sujuu kun edes vähän yrittää.

Tempfile [12.02.2004 22:34:17]

#

Kannattaisi melkein tehdä tuohon funktio:

function etsi_nimi($filu, $sana){
  $nimet = file($tiedosto);
  for($i = 0; $i < count($nimet); $i++){
    $nimi = explode("|", $nimet[$i]);
    if(stristr($nimi, $sana)) return true;
  }
  return false;
}

Ja sitten pistät ifin fwriten ympärille, näin:

if(!etsi_nimi($tiedosto, $name)){
  fwrite ($tallenna, $name ."|". $birth ."|". $live ."|". date("j/m/y") ."|". $filetto_name ."|". chr(13).chr(10) );
} else {
  echo "Nimellä $name on jo lähetetty tiedosto";
}

Jesse.e [13.02.2004 13:57:34]

#

En saanu toimimaan.

Mietin kans et mikä toi tuol funktios oleva "$sana" on,
kun sitä ei oo missään edes määsitetty. Pitäiskö siin olla
jotain muuta vai?

Juhis [13.02.2004 14:05:57]

#

Ei.
Käytät funktiota näin:

<?php
$tiedosto = "lolitasex.txt";
$sana = "teen";
if(etsi_nimi($tiedosto, $sana)) {
   echo "jee $sana löytyi";
} else {
   echo "ei onnaa";
}
?>

Ja tämähän oli jo selitetty tuossa etsi_nimi() funkkarin luomisen alla olevassa lootassa. Pientä selkeytystä kumminkin.

Jesse.e [13.02.2004 15:30:56]

#

Joo just nii.

Toi ei kyl paljoo ainakaa mua auttanu.

Juhis [13.02.2004 15:39:09]

#

Sitten suosittelen että luet muutaman kerran raamattumme läpi.

https://www.php.net/manual/en/index.php

Jesse.e [13.02.2004 16:51:00]

#

Joo luin sen, mut mikä tossa sun edellises viestis jos on toi koodi. Ni mikä se $sana siel on?

Ku must siin pitäs olla joku "vastine" sille ja sit toi $filu.

T.M. [13.02.2004 16:58:52]

#

Luit koko manuaalin vai? Epäilen :)

Jesse.e [19.02.2004 11:21:02]

#

lainaus:

Elikkäs minulla on tälläinen koodi:

$tiedosto="data.txt";

if ($sivu=="lahetetty")
{
  if ($name && $birth && $live && $filetto_name)
  {
    $nimi_a = explode('.',$filetto_name);
    $filumuoto = count($nimi_a); // napataan tiedoston pääte
    $filumuoto = ($filumuoto - 1); // array alkaa 0:sta
    if (in_array($nimi_a[$filumuoto], $paate))
    {
    # poistetaan maholliset html-koodit
    $name=str_replace("<", "&lt", $name);
    $name=str_replace(">", "&gt", $name);
    $birth=str_replace("<", "&lt", $birth);
    $birth=str_replace(">", "&gt", $birth);
    $live=str_replace("<", "&lt", $live);
    $live=str_replace(">", "&gt", $live);
    # tallennetaan linkit

    $tallenna = fopen($tiedosto, "a");
    fwrite ($tallenna, $name ."|". $birth ."|". $live ."|". date("j/m/y") ."|". $filetto_name ."|". chr(13).chr(10) );
    fclose ($tallenna);
    }
  }
}

Kuinka tohon saisi sellaisen ettän jos Ttolla "data.txt" kansiossa on jo nimi jota yritetään lähettää niin tulisi joku vaikkapa: Nimellä **** on jo lähetetty tiedosto.

Miten tälläinen olisi mahdollista?

Saisko tohon vastuksen koodi muodossa?
Kiitoos.

rainmikko [19.02.2004 13:34:17]

#

ME:hän vastasi jo:

lainaus:

Kannattaisi melkein tehdä tuohon funktio:

function etsi_nimi($filu, $sana){
  $nimet = file($tiedosto);
  for($i = 0; $i < count($nimet); $i++){
    $nimi = explode("|", $nimet[$i]);
    if(stristr($nimi, $sana)) return true;
  }
  return false;
}

Ja sitten pistät ifin fwriten ympärille, näin:

if(!etsi_nimi($tiedosto, $name)){
  fwrite ($tallenna, $name ."|". $birth ."|". $live ."|". date("j/m/y") ."|". $filetto_name ."|". chr(13).chr(10) );
} else {
  echo "Nimellä $name on jo lähetetty tiedosto";
}

stere [19.02.2004 13:46:06]

#

Jesse.e missä alutus ja lopetus tagit?

Jesse.e [19.02.2004 14:01:44]

#

Mut en saa tota toimimaan oikein.

rainmikko [19.02.2004 14:26:12]

#

Antaako se jotain virheilmoituksia vai miten et saa toimimaan oikein? Vai tarkoitatko että se tekee jotain, mutta ei sitä mitä haluat?

Jesse.e [19.02.2004 14:52:50]

#

siihe tulee toi: nimellä: *** on jo ladattu tiedosto.
Mutta..... Se lataa sen tiedoston silti. Missä vika?
Vai auttaisko jos antaisin koko koodin?

rainmikko [19.02.2004 15:30:47]

#

Ei kai siitä haittaakaan oo... :)

Jesse.e [19.02.2004 18:08:33]

#

No ok. Täs on tää mun koko koodi.
(Saattaa olla aika sotkusta)

<?php
// upload.php
// Asetukset I  //
############################################################
$filu_koko = 500;  // max. koko kilotavuina
$logitus = false; // logitus päällä?
$paate = array("gif", "jpg", "png", "GIF", "JPG", "PNG"); // hyväksytyt muodot
############################################################
// juskii
$tiedoston_koko = round($_FILES["filetto"]["size"] / 1024,1);
$serverpath = dirname($SCRIPT_FILENAME);
$urlpath = dirname($SCRIPT_NAME);
$datapath = "/data/";
$datadir = "$serverpath" . "$datapath";
$urldir =  "$urlpath" . "$datapath";

function lomake($PHP_SELF)
{
   ?>
   <form enctype="multipart/form-data"
   action="<?php echo ($PHP_SELF)?>" method="post">
   <input type="hidden" name="sivu" value="lahetetty">
   <center>
   <b>Nimi:</b><br>
   <input name="name" type="text" maxlenght="30"><br><br>
   <b>Syntymävuosi:</b><br>
   <input name="birth" type="text" maxlenght="30"><br><br>
   <b>Asuinpaikka:</b><br>
   <input name="live" type="text" maxlenght="30"><br><br>
   <b>Kuva:</b><br>
   (gif, jpg, png)<br>
   <input name="filetto" type="file"><br><br>
   <input type="submit" value="Lähetä">
   </center>
   </form>
<center><br><a href="javascript:history.back(1)"><b>« Takaisin »</b></a></center>
   <?php
}

function tallenna($filetto, $filetto_name, $datadir, $urldir)
{
   if (is_uploaded_file($filetto))
   { // Tiedosto todella kopioitu väliaikaiseen hakemistoon
   global $filu_koko;
   global $logitus;
   global $paate;
   global $tiedoston_koko;
   if (file_exists("$datadir" . "$filetto_name")) { die("Samanniminen kuva on jo ladattu!<br><center><a href=javascript:history.back(1)><b>« Takaisin »</b></a></center>"); }
   if (($_FILES['filetto']['size'] / 1024) > ($filu_koko))
{
    die ('tiedoston koko liian suuri. MAX. '.$filu_koko.' kt, koko oli '.round($_FILES['filetto']['size'] / 1024,1).' kt.');
}
   $nimi_a = explode('.',$filetto_name);
   $filumuoto = count($nimi_a); // napataan tiedoston pääte
   $filumuoto = ($filumuoto - 1); // array alkaa 0:sta
   if (in_array($nimi_a[$filumuoto], $paate))
   {
      move_uploaded_file($filetto, "$datadir" . "$filetto_name");
      echo "Kuvan <b>$filetto_name</b> kopiointi ";
      echo "onnistui!<br>";
      echo ('Kuvan koko on <b>'.round($_FILES['filetto']['size'] / 1024,1).'</b> kt ja tyyppi on <b>'.$_FILES['filetto']['type'].'</b> eli <b>'.$nimi_a[$filumuoto].'</b>. ');
      echo "<br><center><a href=http://koti.mbnet.fi/h-hotel/IRL/><b>« Katso Listaa »</b></a></center>";

      if ($logitus)
       {
         $aika = date("F j, Y, H:i:s");
            $tier = ("Kuva nimi: ".$filetto_name.", koko: ".$tiedoston_koko." kt ja päivämäärä: ".$aika." \n");
            $joo = fopen("log.txt", "a+");
            fwrite($joo, $tier);
       }
   }
   elseif (!in_array($nimi_a[$filumuoto], $paate))
   {
       echo 'Kuvan muoto väärä. Kuvan muoto oli <b>'.$_FILES['filetto']['type'].'</b> eli <b>'.$nimi_a[$filumuoto].'</b>. <center><br><a href=javascript:history.back(1)><b>« Takaisin »</b></a></center>';
   }
   }
   else
   {
      echo "Kuvan <b>$filetto_name</b> kopiointi ";
      echo "ei onnistunut.";
      echo "<br><center><a href=javascript:history.back(1)><b>« Takaisin »</b></a></center>";
   }
}

//Pääohjelma
if (isset($filetto))
{
   tallenna($filetto, $filetto_name, $datadir, $urldir);
}
else
{
   lomake($PHP_SELF);
}
$tiedosto="data.txt";

if ($sivu=="lahetetty")
{
  if ($name && $birth && $live && $filetto_name)
  {
    $nimi_a = explode('.',$filetto_name);
    $filumuoto = count($nimi_a); // napataan tiedoston pääte
    $filumuoto = ($filumuoto - 1); // array alkaa 0:sta
    if (in_array($nimi_a[$filumuoto], $paate))
    {
    # poistetaan maholliset html-koodit
    $name=str_replace("<", "&lt", $name);
    $name=str_replace(">", "&gt", $name);
    $birth=str_replace("<", "&lt", $birth);
    $birth=str_replace(">", "&gt", $birth);
    $live=str_replace("<", "&lt", $live);
    $live=str_replace(">", "&gt", $live);
    # tallennetaan linkit

    $tallenna = fopen($tiedosto, "a");
    function etsi_nimi($tiedosto, $name){
      $nimet = file($tiedosto);
      for($i = 0; $i < count($nimet); $i++){
        $nimi = explode("|", $nimet[$i]);
        if(stristr($nimi, $name)) return true;
      }
      return false;
    }
    if(!etsi_nimi($tiedosto, $name)){
  fwrite ($tallenna, $name ."|". $birth ."|". $live ."|". date("j/m/y") ."|". $filetto_name ."|". chr(13).chr(10) );
} else {
  echo "Nimellä $name on jo lähetetty tiedosto";
}
    fclose ($tallenna);
    }
  }
}
?>

Elikkä tohon toi juttu et voi kirjottaa vaa kerran.

Jesse.e [21.02.2004 12:24:54]

#

Onko toi ihan mahoton tehä vai ettekö vain viitsi auttaa minua?

ajv [21.02.2004 12:43:58]

#

No on tossa ainakin yksi bugi:

<?php
function etsi_nimi($tiedosto, $name){
      $nimet = file($tiedosto);
      for($i = 0; $i < count($nimet); $i++){
        $nimi = explode("|", $nimet[$i]);
		//nimi on $nimi-taulukon [0]-alkiossa
        if(stristr($nimi[0], $name)) return true;
      }
      return false;
    }
?>

edit: Mutta eipä tuo silti vissiin estä tiedoston uppaamista. Tuo funktio pitää ajaa ihan "pääohjelman" alussa läpi. Jos nimeä ei löydy, niin niin sitten vasta suoritetaan tallenna()-funktio. Nythän tallenna()-funkkari ajetaan ihan ensiksi läpi ja sitten vasta verrataan nimiä...

Jesse.e [21.02.2004 15:00:50]

#

Joo kiitti.
Nyt toimii.
Kiitti viel tää autto toosi paljon.

Jesse.e [22.02.2004 10:06:22]

#

Saako ton koodin jollain pikku hommelil toimimaan niin että se ottas tos function käyttöön vain silloin jos toi $name löytyy.

Eli jos ei $name :a löydy niin funktio ei oo käytössä.

rainmikko [22.02.2004 14:05:10]

#

if( isset($name) )
{
  //funkkari tähän
}
else
{
  // ei käytössä
}

Sivun alkuun

Vastaus

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

Tietoa sivustosta