Jump to content
php.lv forumi

Recommended Posts

Posted

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?

Posted

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';

Posted

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";
}
?>

?

Posted (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 by Forbidden
Posted (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 by bubu
Posted (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 by Forbidden
Posted

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.

×
×
  • Create New...