Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Vieraskirja

Sivun loppuun

hanu767 [25.01.2006 08:17:47]

#

Aloin jokinaika sitten vihdoin tutustua php-ohjelmointiin. Aloin tehdä yksinkertaista vieraskirjaa. Vieraskirja toimii kyllä kaikessa yksinkertaisuudessaan, mutta yksi pieni aloittelijan ongelma olisi. Miten saisin lihavoitua käyttäjän nimen?

Koodissa siis ensin kysytään lomakkeella käyttäjän nimi ($nimi) ja viesti ($viesti) jotka lähetetään sitten alla olevaan.

<?
	$filename = "viestit.txt";

	/* Avataan tiedosto viestit.txt */
	$fd = fopen( $filename, "a+" )
		or print "Tiedoston $filename avausvirhe\n";

	/* Kirjoitetaan tiedostoon annetut tiedot */
	fwrite( $fd, $nimi . " : " );
	fwrite( $fd, "$viesti\n" );

	/* Suljetaan tiedosto */
	fclose( $fd );
?>

<?
	/* Luetaan tiedosto taulukkoon $tiedosto */
	$tiedosto = file("viestit.txt");

	/* Tulostetaan rivit */
	for ($i = 0; $i < count($tiedosto); $i++)
		{
		echo "<div>" . $tiedosto[$i] . "</div>" . "<br>";
		}
?>

Merri [25.01.2006 08:47:18]

#

Menee HTML:n puolelle: voit käyttää joko <b> tai <strong> tagia. Strong on semanttinen korostus (suomeksi: esimerkiksi äänisyntikka lukee sen eri tavalla kuin normaalin tekstin, vaikkapa hitaammin).

Voit lisätä tagit siten, että lisäät ennen $tiedosto[$i] muuttujaa aloitustagin ja sitten voit str_replacella korvata ensimmäisen ' : ' esiintymän '</tagi> : ' -koodilla. Lisäksi halunnet estää tiettyjen erikoismerkkien käyttämisen nimessä (kuin myös estää HTML:n käytön viesteissä).

Oletko tutustunut paljoa HTML:ään? Kysymys kuin vain saa miettimään, että sinulla olisi tarvetta tutustua myös siihen.

hanu767 [25.01.2006 09:07:01]

#

HTML on hyvinkin tuttua, lähinnä kysymys oli siitä mihin kohtaan ja kuinka sijoitan tagit.

Nythän jokainen viesti- ja nimipaketti on ypäröity div-tageilla, joka olisikin tarkoitus säilyttää, lihavoida ainoastaan nimi.

merri kirjoitti:

lisäät ennen $tiedosto[$i] muuttujaa aloitustagin ja sitten voit str_replacella korvata ensimmäisen ' : ' esiintymän '</tagi> : ' -koodilla.

Tarkoitatko, että lisäisin tagit tiedostoon kirjoitettaessa (fwrite), vai tiedostosta (echo) kirjoitettaessa -kohtaan.

Sorry täytyy vääntää rautalangasta, kun olen tosiaa ihan aloittelija näissä.

Tässä yhteydessä, nyt kun kerran rekisteröidyin putkaan...
Suuri kiitos kaikille ketkä tänne ovat sisältöä tuottaneet. On ollut suuri apu sivustosta, kun viime kesänä aloin aktiivisemmin harjoitella ohjelmointia c/c++:lla.

Merri [25.01.2006 10:07:25]

#

Jälkikäteen, muuten tagi menee itse tekstitiedostoon :) Ajattelin että haluat ehkä myöhemmin muuttaa näkyvää lopputulosta, jolloin tiedoston muoto voi pysyä samana vaikka HTML:n rakenne muuttuukin -> voit päivittää ulkoasua ilman että hukkaat vanhat viestit.

str_replacen lisäksi voit myös kokeilla split-funktion käyttöä, joka jakaa tekstin arrayksi. Tällöin voit vaikka jakaa tuon kahteen osaan, jolloin arrayn ensimmäinen arvo on kirjoittaja ja toinen tämän viesti.

hanu767 [25.01.2006 19:55:49]

#

No nyt toimii. Kiitokset Merrille.

Eli näin siis ->

<?
	$filename = "viestit.txt";
	/* Avataan tiedosto viestit.txt */
	$fd = fopen( $filename, "a+" )
		or print "Tiedoston $filename avausvirhe\n";

	/* Kirjoitetaan tiedostoon annetut tiedot */
	fwrite( $fd, $nimi . "</b>" . " : " );
	fwrite( $fd, "$viesti\n" );

	/* Suljetaan tiedosto */
	fclose( $fd );
?>

<?
	/* Luetaan tiedosto taulukkoon $tiedosto */
	$tiedosto = file("viestit.txt");

	/* tulostetaan rivit */
	for ($i = 0; $i < count($tiedosto); $i++)
		{
		echo "<div>" . "<b>" . $tiedosto[$i] . "</div>" . "<br>";
		}
?>

hanu767 [26.01.2006 09:20:45]

#

No johan on... eilen tuli virheilmoitusta ja nyt oli sitten postannu näköjään kaikki.. anteeksi

Lebe80 [26.01.2006 09:49:32]

#

No, eiköhän ylläpito korjaa asian jossain vaiheessa. Ainakin tuli selväksi kelle kiitokset menivät ;)

Juice [26.01.2006 17:58:56]

#

Tuskin kannattaa sitä b-tagin sulkua sinne filuun laittaa.
Eli siis

fwrite( $fd, $nimi . " : " );
...
 echo "<div><b>" . $tiedosto[$i] . "</b></div><br>";

hanu767 [27.01.2006 15:06:09]

#

Juice kirjoitti:

Tuskin kannattaa sitä b-tagin sulkua sinne filuun laittaa.
Eli siis

fwrite( $fd, $nimi . " : " );
...
 echo "<div><b>" . $tiedosto[$i] . "</b></div><br>";

Mutta tämä lihavoi sekä nimen että viestin, ei pelkkää nimeä.


Sivun alkuun

Vastaus

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

Tietoa sivustosta