Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: index.php?sisältö

vee [06.09.2006 07:45:21]

#

Olen nyt pähkäillyt seuraavanlaisen koodipätkän kanssa joka ei yksinkertaisesti suostu toimimaan.

<?php

switch($_SERVER['query_string']) {

case testi1:
print "testi 1 teksti";
break;

case testi2:
print "testi 2 teksti";
break;

case testi3:
print "testi 3 teksti";
break;

default:
print "404 sivu";

} ?>

Linkit ovat muotoa ?testi1, ?testi2 etc. Ihan sama mitä osoiterivi näyttää, mutta printin tuloksena on aina "404 sivu". Missä vika? :l

Ja vielä toinen aiheeseen liittyvä kysymys samaan kasaan; onko mahdollista toteuttaa esim.

case NULL:
print "sama sisältö kuin testi 1:llä";
break;

muotoinen toiminto mikäli vieras vain tulee sivulle eikä ?:n jälkeen ole mitään määritetty? (Ymmärsin että defaultilla voidaan blokata käyttäjän omat kokeilut - esim. ?salainensivuko - joita ei ole olemassa, tämän vuoksi mietin NULL vaihtoehtoa)

Mod. edit kooditagit

ajv [06.09.2006 07:57:25]

#

1. kysymys: Koitappa tulostaa tuo $_SERVER['query_string']

2. kysymys:

<?php

// tarkastetaan onko osoiterivillä oikeasti jotain, jos ei ole asetetaan $q:lle arvo 'etusivu'
$q = trim($_SERVER['QUERY_STRING']) == NULL ? $_SERVER['QUOERY_STRING'] : 'etusivu';

switch($foo){

	//jos kyseessä on etusivu tai sivu1, näytetään etusivu
	case 'etusivu':
	case 'sivu1':
		echo 'Etusivu';
		break;

	case 'toinensivu':
		echo 'Toinensivu';
		break;

	default:
		echo '404';
break;
}
?>

vee [06.09.2006 08:05:19]

#

Argh, klassista. 2 tuntia pähkäilin ongelmaa ja ~5min tänne postauksen jälkeen ratkaisu löytyi ><

Ilmeisesti $_SERVER['query_string'] ja $_SERVER['QUERY_STRING'] erossa on jotain todella maagista ja tällä ongelma ratkesi. Myös NULL toimii niinkuin pitääkin :)

Vastaus

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

Tietoa sivustosta