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("<", "<", $name); $name=str_replace(">", ">", $name); $birth=str_replace("<", "<", $birth); $birth=str_replace(">", ">", $birth); $live=str_replace("<", "<", $live); $live=str_replace(">", ">", $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?
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.
Siis Thä?
Saisko Ton Loppuosan Koodina?
Oon Kato Vast Jonkinlainen Aloittelija.
Miksi Tällainen Kirjoitustyyli? Ärsyttää Pahasti Ainakin Minua.
Ehkä Sen Onkin Tarkoitus Ärsyttää :P
En Kyl Tajuu Miten Joku Voi Kirjottaa Tällei.
TäLlÄnEn KiRjOtUsTyYlI oN vÄhÄn CoOlImPi.
TäÄ oN KyLLä TosI NÄtTi mUn MiELEstÄ, No eI vAiSKAan.
Minulle tulee tuosta kirjoitustyylistä yhtä paha mieli kuin eilen äidinkielen tunnilla kuultuani 27 kertaa "no mun mielest pappi teki ihan oikein" eri ihmisten sanomana.
Niin on... todella nätti :D
Toi on kyl hieno! :D
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.
lainaus:
Joo. Hei Sori Täst Mut Se Vaa Tulee.
(Moni Muuki On Sanonu Et Ärsyttää)
JooEiSeMitäänKoskaItsellänikinOnVähänTämäKirjoitusTälläistäEnkäVoiSilleMitäänEnkäEdesYritäKirjoittaaOikein.
On kyllä putkaan tullut muutamia en sano mitä / minkälaisia käyttäjiä tässä viime aikoina.
Nii ja et oo vielä älynny lopettaa? Kattelepa php-opasta (!löytyy ohjelmointiputkasta).
On Hienoa Kun Kirjoittaa Joka Sanan Isolla Alkukirjaimella. Lol.
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 ! ! ! ! !
Jos se on niin vaikeeta kirjottaa normaalisti nii oot tullu väärään paikkaan...
Eli täällä on vain PILKUNNUSIOITA?
Eiks tää ookkaa se paikka jos haetaan
apuu php scriptailuun vaan rnkataan pilkkuu?
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.
Mutta Eihän Tämä Ole Pilkunnusimista.
Kun Sinä V*ttuilet Meille, Niin Me V*ttuilemme Takaisin. Sitä Kutsutaan Vaihtokaupaksi.
Noh noh pojat, "Eihän karhukaan koko ajan riehu, se vetää välikkä puolukoita.."
P.S. Kyllä Minuakin Tälläinen Kirjoitus Ärsyttää
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.
Et saa anteeksi.
olipa tänäänkin rumia sanoja ruokalistalla hyi hyi :(
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ää.
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:
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?
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.
Joo just nii.
Toi ei kyl paljoo ainakaa mua auttanu.
Sitten suosittelen että luet muutaman kerran raamattumme läpi.
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.
Luit koko manuaalin vai? Epäilen :)
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("<", "<", $name); $name=str_replace(">", ">", $name); $birth=str_replace("<", "<", $birth); $birth=str_replace(">", ">", $birth); $live=str_replace("<", "<", $live); $live=str_replace(">", ">", $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.
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:
Jesse.e missä alutus ja lopetus tagit?
Mut en saa tota toimimaan oikein.
Antaako se jotain virheilmoituksia vai miten et saa toimimaan oikein? Vai tarkoitatko että se tekee jotain, mutta ei sitä mitä haluat?
siihe tulee toi: nimellä: *** on jo ladattu tiedosto.
Mutta..... Se lataa sen tiedoston silti. Missä vika?
Vai auttaisko jos antaisin koko koodin?
Ei kai siitä haittaakaan oo... :)
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("<", "<", $name); $name=str_replace(">", ">", $name); $birth=str_replace("<", "<", $birth); $birth=str_replace(">", ">", $birth); $live=str_replace("<", "<", $live); $live=str_replace(">", ">", $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.
Onko toi ihan mahoton tehä vai ettekö vain viitsi auttaa minua?
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ä...
Joo kiitti.
Nyt toimii.
Kiitti viel tää autto toosi paljon.
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ä.
Aihe on jo aika vanha, joten et voi enää vastata siihen.