Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: joulukalenteri koodiini kuva näkyviin

Sivun loppuun

rikuk [08.11.2018 22:46:36]

#

var messages = [
	["ykkösluukku.", "xxxx"],

];

ongelmana on se että jos laitan tohon esimerksi html kuvakoodin kalenteri lakkaa toimimasta. Kyseinen kalenteri toimii siis javascriptin pohjalta

Lebe80 [09.11.2018 10:26:41]

#

Laitappa se "epätoimiva" koodi, niin tarkistellaan, nyt lähtötiedot ovat hyvinkin puutteelliset, joten meistä kukaan muu kuin sinä, ei tiedä miten koko kalenterisi edes toimii, muuten kuin että siinä on yksi "messages" -taulukkomuuttuja.

The Alchemist [09.11.2018 17:29:26]

#

Virhekonsoli kyllä tietäisi. Avaapa siis kehittäjätyökalut selaimestasi ja katso sieltä, että mikä koodissa on vialla. En yleensä välitä arvailla mutta tästä haisee aika pitkälti se, ettet ymmärrä merkkijonoihin liittyviä erikoissääntöjä. Merkkijonoissa ei saa käyttää eskapoimattomia rivinvaihtoja ja luonnollisesti merkkijonoa merkitsevät hipsut täytyy stringin sisällä myös eskapoida.

P.S. Jo tuosta kolmen rivin pupelluksesta näkee, että yrität koodata kymmenen vuotta vanhaa js:ää. Kannattaa perehtyä uusiin tuuliin ja miten modernia javascript-koodia voisi kirjoittaa. Se helpottaa myös devaamista aikalailla.

Metabolix [10.11.2018 18:58:17]

#

Melko paljon nykyaikaisempaa olisi tehdä kalenteri valmiiksi HTML:llä ja CSS:llä käyttää JavaScriptia vain sen merkitsemiseen, mitkä luukut pitää avata. Alla on toimiva esimerkki:

<!DOCTYPE html>
<meta charset="UTF-8">
<title>Esimerkki joulukalenterista</title>

<style>
.kalenteri td {
	border: 1px solid black;
}
.kalenterin-luukku:not(.auki) .kalenterin-luukun-sisältö {
	display: none;
}
.kalenterin-luukku.auki .kalenterin-luukun-kansi {
	display: none;
}
</style>

<table class="kalenteri">
	<tr>
		<td class="kalenterin-luukku" data-pvm="20181110">
			<div class="kalenterin-luukun-kansi">
				(Aukeaa 10.11.2018)
			</div>
			<div class="kalenterin-luukun-sisältö">
				Tämä luukku on auki!
			</div>
		</td>
		<td class="kalenterin-luukku" data-pvm="23001225">
			<div class="kalenterin-luukun-kansi">
				(Aukeaa 25.12.2300)
			</div>
			<div class="kalenterin-luukun-sisältö">
				Tämä luukku on auki!
			</div>
		</td>
	</tr>
</table>

<script>
(function(){
	// Muodostetaan päivämäärästä luku muodossa YYYYMMDD.
	var d = new Date()
	var pvm = d.getFullYear() * 10000 + (1 + d.getMonth()) * 100 + d.getDate()
	// Avataan sallitut luukut.
	var arr = document.querySelectorAll(".kalenterin-luukku")
	for (var i = 0; i < arr.length; ++i) {
		if (arr[i].dataset.pvm <= pvm) {
			arr[i].classList.add("auki")
		}
	}
}())
</script>

The Alchemist [10.11.2018 20:39:39]

#

Kumpikin esitetyistä tavoista on silti huonoja tämän ongelman ratkaisemiseen, koska myöhempien luukkujen sisällön pitäisi pysyä salaisena.

Edit: no oikeastaanhan ap ei ottanut kantaa siihen, onko kyse vaikkapa Node.js-sovelluksesta ja backendissa ajettavasta koodista, jolloin olisikin loogista listata kaikki luukut taulukkoon ja palauttaa kuluvaan päivään asti auki olevat luukut selaimelle.

Metabolix [10.11.2018 21:45:16]

#

The Alchemist kirjoitti:

koska myöhempien luukkujen sisällön pitäisi pysyä salaisena.

Pitääkö? Tällainen HTML- tai JS-ratkaisu toimii ihan yhtä hyvin kuin perinteinen pahvinen joulukalenteri: huijaaminen on käyttäjän vastuulla. Kysyjä varmaan kertoo, jos haluaa tehdä hienomman kalenterin.

The Alchemist [11.11.2018 10:08:53]

#

Ei se nyt vaan ole käyttäjän omalla vastuulla, jos toinen käyttäjä julkaisee kaikkien luukkujen sisällön vaikka keskustelupalstalla tai missä tuollainen kalenteri olisikaan. Webbikehityksessä pitää ymmärtää juuri se vaaratekijä, että kun jotain laittaa nettiin, niin sillä voi tehdä kuka tahansa mitä tahansa, myös asioita joita ei ollut tarkoituksena sallia, ja että kehittäjä on yksin vastuussa väärinkäytöksien estämisestä.

Lebe80 [12.11.2018 08:54:53]

#

Metabolix:
Ei javascriptiä! Muutenhan joku voi saada venkoiltua luukut auki etukäteen! :D

Metabolix [12.11.2018 10:39:37]

#

Epäilemättä olisi ihan kamalaa, jos vaikka netistä kopioidut ja huolella valikoidut jouluisat kissakuvat paljastuisivat etuajassa. Tiedossa miljardien tappiot. Kannattaa sijoittaa oma palvelin tarkasti vartioituun konesaliin ja varmistaa käyttäjän pääsy kalenteriin vain vahvalla tunnistautumisella sekä tilata kalenterin koodin auditointi vähintään kahdelta riippumattomalta turvallisuusalan yritykseltä.

Sopivan ratkaisun voi valita resurssien ja ongelman vakavuuden mukaan.

Lebe80 [12.11.2018 12:53:54]

#

Metabolix kirjoitti:

(12.11.2018 10:39:37): Epäilemättä olisi ihan kamalaa, jos vaikka...

Itseasiassa aikoinaan Suomipelit.comin joulukalenteria oli hauska väsätä, kun jengi oli oikeasti yllättynyt luukkujen sisällöistä.

The Alchemist [12.11.2018 19:47:10]

#

Metabolix kirjoitti:

Epäilemättä olisi ihan kamalaa, jos vaikka netistä kopioidut ja huolella valikoidut jouluisat kissakuvat paljastuisivat etuajassa. -- Sopivan ratkaisun voi valita resurssien ja ongelman vakavuuden mukaan.

Mun mielestä ei kannata tehdä ollenkaan, jos jo etukäteen tietää, että sisältö on niin huonoa ettei se ketään kiinnosta ja ettei aio itsekään edes yrittää. Jos sen meinaa väsätä koodiharjoituksena, niin hyödyllisempää olisi tehdä vaikka muistipeli, jossa on jotakuinkin samanlainen logiikka mutta huijata voi vain itseään.


Sivun alkuun

Vastaus

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

Tietoa sivustosta