Forbidden Posted March 29, 2005 Report Share Posted March 29, 2005 Man ir php fails, piem index.php, viņā inklūdoti citi faili. Mala, augša, un vidus. Mala augša un vidus ir $_GET mainīgie. <?php $visas_malas = array ( '1' => 'm1.php', '2' => 'm2.php', ); $mala = ( preg_match('/^('.implode('|',$visas_malas).')$/',$_GET['mala'] ) ? $_GET['mala'] : $visas_malas[1] ); $visi_contenti = array ( 'saturs' => 'saturs.php', '1' => '1.php', ); $content = ( preg_match('/^('.implode('|',$visi_contenti).')$/',$_GET['cont'] ) ? $_GET['cont'] : $visi_contenti[start] ); $visi_msg = array ( '1' => 'q1.php', '2' => 'q2.php', ); $msg = (preg_match('/^('.implode('|',$visi_msg).')$/',$_GET['msg'] ) ? $_GET['msg'] : $visi_msg[1] ); ?> (to kodu es salasiju ložņājot pa forumu, un pielāgoju savām vajadzībām, bet darbību aptuveni sapratu.) Un tad šie faili attiecīgi inklūdoti index.php ar <?php include($content); ?> utt. problēma tāda, ka es vēlos tikt vaļa no pagarinājuma .php. Piem. tagad es uztaisu linku index.php?cont=1, tad adressbarā parādās index.php?cont=1.php, bet man vajag, lai tā arī parādās - index.php?cont=1. Tātad jautājums ir: Kā man tikt vaļā no tā pagarinājuma .php? Link to comment Share on other sites More sharing options...
bubu Posted March 29, 2005 Report Share Posted March 29, 2005 Nu a to "adressbarā parādās index.php?cont=1.php" tu taču iegūsti, ja izdrukā linku: <a href="index.php?cont=1.php">blabla...</a> ne? Tad vienkārši nedrukā tādus linkus (nu tb to .php paplašinājumu), bet pievieno programmātiski, tipa: // ja tiek drukāts šāds links: echo '<a href="index.php?cont=1.php">blabla...</a>'; //... // tad apstrādāt index.php failā GET padoto mainīgo cont šādi: echo 'ejam uz failu ' . $_GET['cont'] . '.php'; Link to comment Share on other sites More sharing options...
blackhalt Posted March 30, 2005 Report Share Posted March 30, 2005 Traks vai? uzhakos:) kapēc nepatīk: <?php // switch switch($i){ case 0: echo "i equals 0"; break; case 1: echo "i equals 1"; break; case 2: echo "i equals 2"; break; default: echo "i is not equal to 0, 1 or 2"; } ?> ? Link to comment Share on other sites More sharing options...
Forbidden Posted March 30, 2005 Author Report Share Posted March 30, 2005 (edited) To bubu: Es jau rakstu tā, kā tu iedevi, bet viņš izmet man ārā to 1.php :( To blackhalt: Es forumā ložņājot atradu tos preg_match un biju laimīgs, bet tagad pamēģināšu arī to switch. ;) EDIT: tas switch strādā tikai ar tekstu, bet ne ar atsevišķām lapām. :blink: Edited March 30, 2005 by Forbidden Link to comment Share on other sites More sharing options...
bubu Posted March 30, 2005 Report Share Posted March 30, 2005 (edited) Tu pārlieku daudz sarežģī kautko. Skaties, vienkāršs piemērs: Izveido failu 1.php: <?php echo "esmu fails 1.php"; ?> Izveido failu 2.php: <?php echo "esmu fails 2.php"; ?> Izveido failu index.php: <?php $arr = array('1', '2'); // kas drīkst būt $mala = (isset($_GET['mala']) ? $_GET['mala'] : '1'); // te var norādīt defaulto vērtību, ja nav neviena norādīta if (in_array($mala, $arr)) { $fails = $mala.'.php'; // te pieliekam klāt to .php ko lietotājs neredz. } else { $fails = '1.php'; // defaultā mala } echo '<html><body>'; echo '<a href="?mala=1">Iet uz mala1</a><br/>'; echo '<a href="?mala=2">Iet uz mala2</a><br/>'; include($fails); echo '</body></html>'; ?> P.S. Taču atceries, ka lietotājs tāpat varēs atvērt tavu 1.php ierakstot to tieši ardesē: http://serveris.kautkaads.lv/1.php Edited March 30, 2005 by bubu Link to comment Share on other sites More sharing options...
Forbidden Posted March 30, 2005 Author Report Share Posted March 30, 2005 (edited) Strādā tavs kods, bubu, bet vel viens jautājums. piemēram man ir faili mala1.php un mala2.php. Kā man piespiest viņus tupēt zem cipariem 1 un 2? Es mēģināju šitā: <?php $arr = array( '1' => 'mala1', '2' => 'mala2' ); // kas drikst but $mala = (isset($_GET['mala']) ? $_GET['mala'] : '1'); // te var noradit defaulto vertibu, ja nav neviena noradita if (in_array($mala, $arr)) { $fails = $mala.'.php'; // te pieliekam klat to .php ko lietotajs neredz. } else { $fails = 'mala1.php'; // defaulta mala } echo '<html><body>'; echo '<a href="?mala=1">Iet uz mala1</a><br/>'; echo '<a href="?mala=2">Iet uz mala2</a><br/>'; include($fails); echo '</body></html>'; ?> Bet nestrādā. :( Edited March 30, 2005 by Forbidden Link to comment Share on other sites More sharing options...
bubu Posted March 30, 2005 Report Share Posted March 30, 2005 Ko nozīmē tupēt? Domā zem linka lai tā rādās? Nu tad pamaini tekstu iekš a taga : <a href="?mala=2">2</a> P.S. un nevajag to pašu uz PM sūtīt. Pietiek ja vienā vietā ieraksti jautājumu. Link to comment Share on other sites More sharing options...
Recommended Posts