Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Vieraskirjaan vastauspaneeli

Sivun loppuun

Rocceri [16.04.2009 19:28:57]

#

Heippa! Taas pitää kysästä yksi kysymys.

Kuten jotkut varmaan tietävätkin (Ovat huomanneet), niin teen vieraskirjaa. Nyt pitäisi tehdä vielä vastaus systeemi. Tämän hetkinen systeemi on tyhmä, koska se luo jokaiselle vastaukselle oman tiedoston.
Tämän hetkiset koodit näyttävät tältä:

EDIT: Poistin koodit 25.4. ettei kukaan käytä niitä :)

Eli, tämä siis toimii muuten, mutta huono puoli on, että se luo jokaiselle vastaukselle oman tiedoston.
Viestit.txt näyttää seuraavalta:

lähettäjä|aika|viesti|id
lähettäjä|aika|viesti|id
lähettäjä|aika|viesti|id
jne...

Voisiko tehdä tämän vastaus systeemin samalla tavalla (tuon vastaukset.txt), että yhdellä rivillä olisi aina vastaus?

vastaus 1
vastaus 2

Ensiksi ájattelin, että koodi poimisi jokaisen viestin id:n (jos id vaikka 6) ja poimisi rivin 6 ja tulostaisi viestin loppuun. Kuitenkin tulin ajatelleeksi, että se ei ehkä ole paras vaihtoehto.

Niimpä kysyn, miten tämä kannattaisi tehdä?

ankzilla [16.04.2009 20:59:16]

#

Onko mahdollisuutta MySQLiin?
Sillä asia hoituisi helpommin kuin tiedostoilla, koska voi käyttää vastaamiseen helpommin id:tä.

Esimerkiksi: lähettäjä|aika|viesti|id|vastaus
Kyselyllä: INSERT INTO table(vastaus) VALUES ('Seuraavasta asiattomasta bannia!') WHERE id = '69'

Eikös se oiski tolleen yksinkertasempaa? Eikä mysqli oo omalle servulle kovin vaikeeta asentaa.

Mutta jos tähän sun tiedostojuttuun palataan, niin tee:

<?php
$msg = explode("|", $viestit);
$msg[4] = $vastaus;
?>

En tiiä toimiiko tolleen, mut viisaammat korjaa. :)

TeNDoLLA [16.04.2009 21:58:44]

#

Jos ja kun mysqliä alkaa käyttämään, niin kannattaa alusta asti opetella suunnittelemaan tietokanta rakenne kunnolla. Eli tuossa ankzillan esimerkki taulurakenteessa voi tulla toistoa ja mm. vastaus kohtaan tyhjiä kenttiä aina kun kyseessä on ensimmäinen viesti. Eli jotain tyyliin näin:

kayttajat
---------------
kayttaja_id
nimi


viestit
---------------
viesti_id
viesti
aika
kayttaja_id (viittaa kayttajat taulun kayttaja_id:seen)


vastaukset
---------------
vastaus_id
vastaus
aika
kayttaja_id (viittaa kayttajat taulun kayttaja_id:seen)
viesti_id (viittaa viestit taulun viesti_id:seen)

tsuriga [17.04.2009 01:02:10]

#

Varmaankin ihan harjotusmielessä tehtävästä vieraskirjasta kyse, jossa flatfilujen käyttö on perusteltua. Ja jos käyttövolyymit eivät ole massiivisia niin tuskin se ihan heti käsiinkään hajoaa, ns. — näitähän näkee tehtävän esim. ilmaishosteille, joilla ei ole tietokantatukea.

Asiaan: Teoreettisella tasolla vähintäänkin mielenkiintoinen kysymys. Heti alkuun suosittelisin yleisessä tapauksessa käyttämään tiedostojen lukemiseen ja kirjoittamiseen uudempia funktioita file_get_contents ja file_put_contents. Mutta tiedostokoiden kasvaessa edellä mainitut funktiot voivat ruveta hidastelemaan, ja tällöin suositellaan palattavaksi fopen+fgets/fwrite-komboihin. Ja tähän väliin T.M. tulee kertomaan, että flock on hänen mielestään särki :).

Array_reverseä nopeampi tapa on käydä viestit läpi käänteisessä järjestyksessä. Viestimäärän kasvaessa joutunet kuitenkin vaihtamaan file-funktion tilalle edellä mainitun tiedostonlukuun käytettävän funktioyhdistelmän fopen+fgets+fclose, joten halunnet kirjoittaa uudet viestit tiedoston alkuun jo tallennusvaiheessa. Mitä vastauksiin tulee, veikkaisin, että yhden tiedoston malli käy nopeammin ongelmalliseksi monen tiedoston malliin verrattuna: ison tiedoston lukeminen vie aikaa ja tuhlaa resursseja, kun halutaan käydä vain tietyn viestin vastaukset. Pienet tiedostot taasen syövät turhaan levytilaa, kun tiedostojärjestelmä varaa minimissään esim. vaikkapa sen 4 kB tiedostoa kohti. Jotkin tiedostojärjestelmät voivat myös oikutella suurien tiedostomäärien kanssa. Suosittelisinkin kokeilemaan kompromissia: jokaiselle viestille oma vastaustiedosto mallia vastaukset_$id.txt.

Summa summarum: Jos tiedostoilla haluaa ottaa huomioon suuret viesti- ja käyttövolyymit, niin tietokanta alkaakin vaikuttamaan siltä yksinkertaisemmalta ratkaisulta.

Alkuperäisen koodin luo.php sisältää ajatuserheen: haet $vastaus_kasittele-muuttujan sisällön kahteen kertaan eri lähteistä. Niin ja header-funktiolle tulisi antaa speksin mukaan absoluuttinen URL (ei sillä, että yksikään valtavirran selain tästä välittäisi :p), tässä esim:

<?php
header("http://{$_SERVER['SERVER_NAME']}/?sivu=turinapalsta");
?>

Rocceri [17.04.2009 16:14:36]

#

Kiitos jo vastauksista, vaikkei ihan sitä ole tullut vastaan mitä hain.

TeNDoLLA ja ankzilla: Ei satu olemaan omalla serverillä MySQL:ää, kun ei satu menemään asennus läpi.

tsuriga: Kiitos huomautuksista. Noista uusista funktioista en ole kuullutkaan, koska olen lukenut aikas vanhoja oppaita. Nämä eivät varmaan paljoa vaikuta, koska en usko että moni kirjoittaa. Tällä hetkellä vain perheellä on pääsy sinne.

Ensiksi ájattelin, että koodi poimisi jokaisen viestin id:n (jos id vaikka 6) ja poimisi rivin 6 ja tulostaisi viestin loppuun. Kuitenkin tulin ajatelleeksi, että se ei ehkä ole paras vaihtoehto.

Tässä kun mainitsin, että tuo ei ehkä ole paras vaihtoehto, niin tulin toisiin aatoksiin, että voisihan se harjoitus projektina toimia.
Mutta, jos joku voisi kertoa, miten voin tiedostosta, mikä näyttää tältä:

tekstiä rivi1
tekstiä rivi2 jne...

Poimia koodilla vaikka rivin numero 2 ja tulostaa sen.
Siitä saisin väännettyä tuon systeemin mitä käyttäisin.

Metabolix [17.04.2009 16:33:46]

#

Yksi mahdollisuus on myös käyttää MySQL:n sijaan tiedostopohjaista sqlite-tietokantaa, jos PHP:ssäsi on sille tuki.

ankzilla [17.04.2009 16:48:40]

#

Pakko vielä päästä pätemään, vaikka en mistään mitään tiedäkkään:

<?php
$nick = htmlspecialchars($_POST['nick']);
$msg = htmlspecialchars($_POST['viesti']);
$filu = "viestit.txt";
$viestit = file_get_contents($filu);
$viesti = explode("<br />", $viestit);
if($nick && $msg) {
unlink($filu);
$open = fopen($filu, "w");
fwrite($open, $msg."<br />\n".$viestit);
fclose($open);
}
$list = 0;
while($list < 30) {
echo $viesti[$list];
++$list;
}
if($_SERVER['REMOTE_ADDR'] == "IB-OZOITEH") {
echo '<form action="" method="post">
Viestin id, jonka haluat poistaa:
<input type="text" name="id" size="5" />
<input type="submit" name="submit" value="Poista" />
</form>';
$id = $_POST['id'];
if($id) {
$poisto = explode("<br />", $viestit);
$poisto = str_replace($poisto[$id], "", $poisto);
unlink($filu);
$open = fopen($filu, "w");
// HUOM, SEURAAVASTA KOHDASTA EN OLE VARMA!!
fwrite($poisto, $open);
fclose($open);
}}
?>
<form action="" method="post">
Nick:<br />
<input type="text" name="nick" size="20" /><br />
Viesti:<br />
<textarea cols="50" rows="5" name="viesti"></textarea><br />
<input type="submit" name="submit" value="Lähetä" />
</form>

Nyt tuli parempi olo :)

Rocceri [17.04.2009 16:51:37]

#

Eipä toimi.

Mutta, siis miten pystyn echottamaan tiedostosta tietyn rivin? :)

ankzilla [17.04.2009 16:57:08]

#

Rocceri kirjoitti:

Eipä toimi.

Mutta, siis miten pystyn echottamaan tiedostosta tietyn rivin? :)

$rivi = 4;
$viestit = file_get_contents("viestit.txt")
$explode = explode("\n", $viestit);
echo $explode[$rivi];

Huom: Ensimmäisen rivin numero on 0

Edit: Aika jännää pitkästä aikaa päästä pätemään vaikka koodit ei toimikkaa :D

Rocceri [17.04.2009 17:01:40]

#

ankzilla kirjoitti:

Edit: Aika jännää pitkästä aikaa päästä pätemään vaikka koodit ei toimikkaa :D

Juuri niin. Tuo äskeinen explode juttukin heittää 500 erroria

TeNDoLLA [17.04.2009 17:06:38]

#

Tämä ainakin toimii:

<?php
$file = 'test.txt';
$lines = file($file);
echo $lines[1]; // Echottaa toisen rivin.
?>

edit: kyllä se toimii tuo ankzillankin antama ihan hyvin.

edit2: En ole tarkemmin kyllä perehtynyt noiden eri file -funkkareiden nopeuksiin, mutta php.netistä kopioitua, jonka mukaan ainakaan mitään isoja eroja ei olisi noiden nopeuksissa:

lainaus:

I tested fgets(), file_get_contents(), and file() on PHP 4.3.2 and PHP 5 and timed each to be under a second with over 200,000 lines. I do not know if he was testing extremely long lines or what, but I could not duplicate the difference that he mentioned.

Rocceri [17.04.2009 17:08:30]

#

Kiitos TeNDoLLA! Tästä saan tehtyä sen vastaus systeemini.

ankzilla [17.04.2009 18:09:25]

#

Rocceri, olen pahoillani, mutta epähuomiossa jätin file_get_contentsin perästä ;n pois. ^^ Mut hyvä et toi tendollan toimi.

Rocceri [17.04.2009 19:53:58]

#

Ohho :D En huomannutkaan tollasta pikku virhettä ollenkaan.

EDIT: Muuten on hyvä, mutta tämä ei tottele käskyäni:

echo $lines[$id];

Mistäköhän kiikastaa? Jos laittaa numeron $id:n tilalle, niin toimii, mutta tuo ei toimi. :o

ankzilla [17.04.2009 21:16:23]

#

Rocceri kirjoitti:

Ohho :D En huomannutkaan tollasta pikku virhettä ollenkaan.

EDIT: Muuten on hyvä, mutta tämä ei tottele käskyäni:

echo $lines[$id];

Mistäköhän kiikastaa? Jos laittaa numeron $id:n tilalle, niin toimii, mutta tuo ei toimi. :o

Ookko varmasti määritelly sen id:n?

Rocceri [17.04.2009 21:36:15]

#

Kyllä on määritelty!
Voiko se johtua jostain, kuten että se kuuluisi olla lainaus merkeissä tai jotain?

Juhko [18.04.2009 00:52:05]

#

En nyt keksi mitään järkevää syytä, mutta kokeile seuraavia:

1. settype($id, "integer");

2. Kokeile <pre>#<?php echo $id>#</pre> niin näet, mitä muuttuja todella sisältää. Jos näkemäsi teksti on esim. # 4 # niin vika on siinä. Jos se on se, mikä pitäisi olla, eli #4# niin...en tiedä.

(edit: tsekkasin php.netistä ja siellä joku oli käskenyt tehdä ykköskohdan mukaan)

Rocceri [18.04.2009 10:33:06]

#

Kiitos Juhko, tuo settype juttu toimii mahtavasti :)
Hyvä että täällä on asiansa osaavia auttajia. Mitenköhän pärjäisin jollei tätä Ohjelmointiputkaa olisi? :D

Marbo [18.04.2009 11:17:55]

#

Rocceri kirjoitti:

Kiitos Juhko, tuo settype juttu toimii mahtavasti :)
Hyvä että täällä on asiansa osaavia auttajia. Mitenköhän pärjäisin jollei tätä Ohjelmointiputkaa olisi? :D

Opettelisit varmaan ite sit lukemaan netistä ohjeita?

Rocceri [18.04.2009 12:16:51]

#

Marbo kirjoitti:

Rocceri kirjoitti:

Kiitos Juhko, tuo settype juttu toimii mahtavasti :)
Hyvä että täällä on asiansa osaavia auttajia. Mitenköhän pärjäisin jollei tätä Ohjelmointiputkaa olisi? :D

Opettelisit varmaan ite sit lukemaan netistä ohjeita?

Hehe ;D Kyllähän mä niitäkin luen, mutta niissä on paljon turhaa joukossa.

ankzilla [18.04.2009 12:46:43]

#

Rocceri kirjoitti:

Marbo kirjoitti:

Rocceri kirjoitti:

Kiitos Juhko, tuo settype juttu toimii mahtavasti :)
Hyvä että täällä on asiansa osaavia auttajia. Mitenköhän pärjäisin jollei tätä Ohjelmointiputkaa olisi? :D

Opettelisit varmaan ite sit lukemaan netistä ohjeita?

Hehe ;D Kyllähän mä niitäkin luen, mutta niissä on paljon turhaa joukossa.

Sillähän ei ole mitään merkitystä.

Rocceri [18.04.2009 15:59:21]

#

Tähän vieraskirjaan liittyen yksi juttu vielä:

Koodissa kiellän html merkinnät, mutta kuitenkin tarvitsen niitä erikoisefekteissä:

EDIT: Poistin koodit 25.4. jottei kukaan käytä omiin tarkoituksiin
Tässä ainoana ongelmana jää se, että htmlspecialchars kieltää myös " merkit.
Tuolla aikaisemmassa aiheessani Str_replace ja <br> tagi oli vastaava ongelma, mutta tuo ei näyttänyt vaikuttavan tähän vieraskirjaan.
Koitin htmlspecialchars korvauksen jälkeen laittaa str_replacella " merkit uudelleen " merkeiksi. (Joskus toiminut, mutta tässä tapauksessa ei)

jo123 [18.04.2009 19:16:55]

#

Ehdottaisin kyllä tekemään bbtagien korvauksen säännöllisillä lausekkeilla.

Smuliii [18.04.2009 19:28:59]

#

Joskus käytin jossain bbcodea ja tein sen tällä tavalla.

<?php
function BBCODE($content){
$content = nl2br($content); //rivinvaihdot korvataan <br>:llä
$match = array(
'#\[b\](.*?)\[\/b\]#se',
'#\[i\](.*?)\[\/i\]#se',
'#\[u\](.*?)\[\/u\]#se',
); //bbtagit
$replace = array(
"'<b>\\1</b>'",
"'<i>\\1</i>'",
"'<u>\\1</u>'",
); //muunnetaan html:ksi
return preg_replace($match, $replace, $content);
}
?>

Rocceri [18.04.2009 19:29:31]

#

Mitä eroa käytännössä on preg- ja str replaceilla?

Juhko [18.04.2009 19:35:13]

#

str_replace on tavallinen korvaus. preg_replace on semmoinen jännä juttu.

https://www.php.net/manual/en/function.preg-replace.php

Rocceri [18.04.2009 20:06:11]

#

Mutta, jos asiassa pysyttäisiin, niin miten voin sallia " merkit ja kieltää HTML:n?

Andu [18.04.2009 20:18:25]

#

PHP:n dokumentaation mukaan näin:

$viesti = htmlspecialchars($viesti, ENT_NOQUOTES);

Rocceri [19.04.2009 05:15:27]

#

Mahtavaa, kiitos!

ankzilla [19.04.2009 12:52:31]

#

Hitto en itekkää tienny tota :D

Rocceri [24.04.2009 20:08:48]

#

Tähän vielä pitää lisätä, kun en samasta aiheesta halua uutta aihetta aloittaa.

Niin, kun minullahan on tuossa nuo bbcodet, niin jos kirjoittaa viestiin
ja linkki teksti eikä laita päätöstagia , niin se laittaa viestin jälkeenkin olevista asioista linkkejä.
Eli, miten voin kieltää bbcode tagit joissa ei ole päätöstageja?
Jos kirjoittaisi Moi eikä laita päätöstagia, niin tämä tulostuisi normaalina tekstinä?

-Rocceri

Metabolix [24.04.2009 20:14:44]

#

Noilla mainituilla säännöllisillä lausekkeilla ja preg_replace-funktiolla.

Rocceri [24.04.2009 20:21:00]

#

Hmm.. Niinhän sen voi niillä tehdä, mutta ongelmana on se, etten tiedä miten näitä pitäisi käyttää tähän tarkoitukseen.

Metabolix [24.04.2009 20:45:48]

#

Ylempänä on jo niistä esimerkkikin. Lisäksi voisit vähitellen harkita sitä itsenäistä opettelua, nimittäin käytössäsi on jopa Ohjelmointiputkan mainio opas aiheesta.

Rocceri [24.04.2009 21:29:09]

#

Metabolix kirjoitti:

Ylempänä on jo niistä esimerkkikin. Lisäksi voisit vähitellen harkita sitä itsenäistä opettelua, nimittäin käytössäsi on jopa Ohjelmointiputkan mainio opas aiheesta.

Ai, tuo Smuulin versio? Ei se sen paremmin toiminut.

Metabolix [24.04.2009 22:23:35]

#

Miten oikein yritit käyttää sitä, jos se ei kerran toiminut? Tai siis miten väärin?

Rocceri [25.04.2009 10:08:27]

#

Metabolix kirjoitti:

Miten oikein yritit käyttää sitä, jos se ei kerran toiminut? Tai siis miten väärin?

Tiedän, että tei väärin: Copy pastetin sen omaan koodiini, koska en ole opetellut käyttämään arrayta. :P
Jos tuon saa toimimaan, niin voisitko ystävällisesti kertoa miten? Oppisin samalla vähäsen lisää.

trilog [25.04.2009 10:45:49]

#

Rocceri kirjoitti:

Tiedän, että tei väärin: Copy pastetin sen omaan koodiini, koska en ole opetellut käyttämään arrayta. :P

Kuten varmaan huomaat, Smuliiin esimerkissä ei edes muuteta linkkejä, joten copy-pastella se ei tule toimimaan. Olisit siis joutunut soveltamaan oppimaasi.

Rocceri kirjoitti:

Jos tuon saa toimimaan, niin voisitko ystävällisesti kertoa miten? Oppisin samalla vähäsen lisää.

Tässä nyt kuitenkin Smuliiin esimerkistä muokattuna:

<?php
function BBCODE($content){
    $content = nl2br($content); //rivinvaihdot korvataan <br>:llä
    $match = array(
                  '#\[b\](.*?)\[\/b\]#se',
                  '#\[i\](.*?)\[\/i\]#se',
                  '#\[u\](.*?)\[\/u\]#se',
                  '#\[linkki url="(.+?)"\](.*?)\[\/linkki\]#se',
                  ); //bbtagit
    $replace = array(
                    "'<b>\\1</b>'",
                    "'<i>\\1</i>'",
                    "'<u>\\1</u>'",
                    "'<a href=\"\\1\">\\2</a>'",
                    ); //muunnetaan html:ksi
    return preg_replace($match, $replace, $content);
}


/* Esimerkki käytöstä:
 *
 * var_dump(BBCODE('[linkki url="http://osoite.fi"]päätöstagi puuttuu'))
 * Tulostaa: string(52) "[linkki url="http://osoite.fi"]päätöstagi puuttuu"
 *
 * var_dump(BBCODE('[linkki url="http://osoite.fi"]päätöstagi on[/linkki]'))
 * Tulostaa: string(47) "päätöstagi on"
 */
?>

Rocceri [25.04.2009 12:21:26]

#

trilog kirjoitti:

Rocceri kirjoitti:

Tiedän, että tei väärin: Copy pastetin sen omaan koodiini, koska en ole opetellut käyttämään arrayta. :P

Kuten varmaan huomaat, Smuliiin esimerkissä ei edes muuteta linkkejä, joten copy-pastella se ei tule toimimaan. Olisit siis joutunut soveltamaan oppimaasi.

Hmm.. Ehkäpä koitin testata noilla valmiiksi määritellyillä tageilla tai lisäsin itse?
No, kuitenkin:
Tuo Smuulin versio ei toiminut oikein, koska kaikki tulostui tekstinä.
Sinun versiosi taas teki errorin 500

EDIT:
Oisko PHP:n jotain 'mutta' kaltaista lausetta?
Eli, jos voisi tehdä tähän tyyliin:

Jos viesti on [linkki url="
    mutta ei [/linkki]
       niin tulostetaan [/linkki]

Samalla tavalla kuin täällä Putkassa. Jos aloittaa [koodi] -tagilla eikä laita päätöstagia, niin se ei myöskään tee tätä koodiboxia

janijohannes [25.04.2009 12:50:07]

#

xor? or?

Mieti itsekkin. Niin minullekin sanotaan.

Smuliii [25.04.2009 12:53:05]

#

Rocceri kirjoitti:

EDIT:
Oisko PHP:n jotain 'mutta' kaltaista lausetta?
Eli, jos voisi tehdä tähän tyyliin:

Jos viesti on [linkki url="
    mutta ei [/linkki]
       niin tulostetaan [/linkki]

Samalla tavalla kuin täällä Putkassa. Jos aloittaa [koodi] -tagilla eikä laita päätöstagia, niin se ei myöskään tee tätä koodiboxia

Ihan if-lauseella tuollaisen voi tehdä.

trilog [25.04.2009 13:11:43]

#

Rocceri kirjoitti:

Sinun versiosi taas teki errorin 500

Lue niitä error-logeja tai tulosta virheet näytölle. Jos/kun liität tuon sinne sinun oman koodisi joukkoon niin jotain todennäköisesti hajoaa.

Rocceri [25.04.2009 13:22:07]

#

trilog kirjoitti:

Rocceri kirjoitti:

Sinun versiosi taas teki errorin 500

Lue niitä error-logeja tai tulosta virheet näytölle. Jos/kun liität tuon sinne sinun oman koodisi joukkoon niin jotain todennäköisesti hajoaa.

Tuo sun koodisi ei herjaa, mutta kun sen laittaa sinne se sanoo, että rivillä 222 on virhe, ja rivi on tämmöinen: else {
Tuolla ei ole bbcodejen kanssa mitään tekemistä, vaan se aloittaa kirjoittamaan lähetettyä viestiä.

Mutta, miten sinä Smuuli saat if lauseilla tuollaisen? :O
Ja siitä ekasta versiosta, niin mitenköhän Antti on sen tänne Putkaan hoitanut? Tämä ainakin toimii mukavasti :)

trilog [25.04.2009 14:01:44]

#

Rocceri kirjoitti:

Tuo sun koodisi ei herjaa, mutta kun sen laittaa sinne se sanoo, että rivillä 222 on virhe, ja rivi on tämmöinen: else {
Tuolla ei ole bbcodejen kanssa mitään tekemistä, vaan se aloittaa kirjoittamaan lähetettyä viestiä.

Se on funktio, laita se minne haluat ja kutsu sitä sopivalla hetkellä.

Rocceri kirjoitti:

Ja siitä ekasta versiosta, niin mitenköhän Antti on sen tänne Putkaan hoitanut? Tämä ainakin toimii mukavasti :)

Varmaan aika samalla periaatteella kuin jo edellä mainittu.

Rocceri [25.04.2009 14:38:54]

#

trilog kirjoitti:

Rocceri kirjoitti:

Ja siitä ekasta versiosta, niin mitenköhän Antti on sen tänne Putkaan hoitanut? Tämä ainakin toimii mukavasti :)

Varmaan aika samalla periaatteella kuin jo edellä mainittu.

Ehkä, ehkä ei.

trilog kirjoitti:

Se on funktio, laita se minne haluat ja kutsu sitä sopivalla hetkellä.

Voin siis laittaa tuon erilliseen PHP tiedostoon ja laittaa include käskyllä sen pääkoodiin, vai mitä tarkoitit?

janijohannes [25.04.2009 14:41:32]

#

Rocceri kirjoitti:

trilog kirjoitti:

Rocceri kirjoitti:

Ja siitä ekasta versiosta, niin mitenköhän Antti on sen tänne Putkaan hoitanut? Tämä ainakin toimii mukavasti :)

Varmaan aika samalla periaatteella kuin jo edellä mainittu.

Ehkä, ehkä ei.

trilog kirjoitti:

Se on funktio, laita se minne haluat ja kutsu sitä sopivalla hetkellä.

Voin siis laittaa tuon erilliseen PHP tiedostoon ja laittaa include käskyllä sen pääkoodiin, vai mitä tarkoitit?

Eih.
Kirjoitat

$viesti=BBCODE($viesti);

Rocceri [25.04.2009 14:45:30]

#

Hmm.. Nyt menee vaikeaksi. Tuppaa tekemään erroria 500 kun koitan tehdä tuota.
Mihin väliin kuuluisi änkeä ja mitä?

EDIT: Poistin koodit 25.4. ettei niitä käytetä

Smuliii [25.04.2009 14:57:47]

#

Rocceri kirjoitti:

..Mutta, miten sinä Smuuli saat if lauseilla tuollaisen? :O..

Siinä sulle pohja ja esimerkiksi tällä on erittäin helppoa ratkaista tuo.

<?php

	$kokolinkki = '[linkki url="www.linkki.fi"]Linkki[/linkki]';

	$alku = '[linkki url="www.linkki.fi"]';

	$loppu = '[/linkki]';

	if (preg_match('//', '$alku')) {
		echo 'Linkin lopetus löytyi';
	}else{
		echo 'Linkin lopetusta ei löytynyt';
	}
?>

Ja btw. se on Smuliii.. ;)

Rocceri [25.04.2009 15:36:14]

#

Jaa-a, ei ihan maailman paras.
Jos sen voi tehdä tuolla ensimmäisellä ehdotuksellasi, niin olisi parempi.
Voisitko sujauttaa sen tohon postaamaani koodin? :)
Auttaisi paljon.

-Kiitos

reca [25.04.2009 15:51:26]

#

Sujautappa nyt.. :DDDDDD

Rocceri [25.04.2009 15:53:25]

#

reca kirjoitti:

Sujautappa nyt.. :DDDDDD

Ehkä meni vähän 'vitsikkäästi', mutta kun en osaa, niin en osaa. :/
Haluaisin oppia tuonkin, mutta minkäs teet kun ei onnistu. Sitten tarvitsee apua.

EDIT: Yksi kaveri ratkaisi ongelman. :)

Smuliii [25.04.2009 18:41:40]

#

Niin miten tämä nyt eroaa tuosta trilogin neuvosta: "$viesti=BBCODE($viesti);"? Tuohan oli täysin samanlainen ratkaisu kuin tämä kaverisi.

Rocceri [25.04.2009 19:06:16]

#

Smuliii kirjoitti:

Niin miten tämä nyt eroaa tuosta trilogin neuvosta: "$viesti=BBCODE($viesti);"? Tuohan oli täysin samanlainen ratkaisu kuin tämä kaverisi.

Ken tietää.. Trilogin teki erroria, tämä ei.

trilog [25.04.2009 19:42:44]

#

Rocceri kirjoitti:

Ken tietää.. Trilogin teki erroria, tämä ei.

Sinun copy-paste -taktiikkasi sen errorin teki, itse koodissa ei ole mitään vikaa.

Rocceri [30.04.2009 15:54:03]

#

En kehtaa aina aloittaa uutta aihetta, joten jatkan samaa kun tähän se jotenkin liittyy.
Vieraskirjan Admin-paneelissa on viestien editointi toiminto, joka näyttää textareassa viestit:
viesti1
viesti2
viesti3

Ongelma on se, että jollei yksi viesti mahdu yhdelle riville, se jatkaa sitä seuraavalla rivillä. Yhden viestin kuuluisi aina näkyä samalla rivillä, mutta ei näy. Se toimii, mutta mielelläni ottaisin siihen sellaisen, että näkyy yhdellä rivillä.
Onnistuuko tämmöinen? Eli, textareaan tulisi vaaka scrollbar.

janijohannes [30.04.2009 16:09:35]

#

Rocceri kirjoitti:

En kehtaa aina aloittaa uutta aihetta, joten jatkan samaa kun tähän se jotenkin liittyy.
Vieraskirjan Admin-paneelissa on viestien editointi toiminto, joka näyttää textareassa viestit:
viesti1
viesti2
viesti3

Ongelma on se, että jollei yksi viesti mahdu yhdelle riville, se jatkaa sitä seuraavalla rivillä. Yhden viestin kuuluisi aina näkyä samalla rivillä, mutta ei näy. Se toimii, mutta mielelläni ottaisin siihen sellaisen, että näkyy yhdellä rivillä.
Onnistuuko tämmöinen? Eli, textareaan tulisi vaaka scrollbar.

Tälläin onnnistuu:

<textarea style="overflow: auto;">plaaplaa</textarea>

Grez [30.04.2009 16:09:56]

#

Jollekin ikivanhoille selaimille voisi vielä laittaa WRAP="OFF"

janijohannes [30.04.2009 16:11:01]

#

Grez kirjoitti:

WRAP="OFF" ?

Hei, Grez... Kannattaisi oppia laittamaan atribuutit pienillä.

Grez [30.04.2009 16:12:24]

#

Olet aivan oikeassa, kannattaisi aina kirjoittaa ne pienellä, niin ei sitten tule kämmejä xhtml:ää kirjoittaessa.

Kirjainkoon valinta ei kuitenkaan ollut omani, vaan copy&pastetin sen.

Rocceri [30.04.2009 16:28:39]

#

Grez kirjoitti:

Jollekin ikivanhoille selaimille voisi vielä laittaa WRAP="OFF"

Onko IE8 ikivanha? Tuo wrap="off" toimii IE8:lla, mutta tuo style="overflow: auto;" muuttaa vaan sen, että scrollbaria ei näy ilman että tekstiä on yli textarean korkeuden.
Mutta joo, kummatkin olivat hyviä. Tuo overflow oli hyvä muulla.


Sivun alkuun

Vastaus

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

Tietoa sivustosta