2012-07-31 2 views
0

내 링크 샘플은 다음과 같습니다. "/jet/index.php?year=2011 & quarter = Q1" 이제 첫 달을 포함하는 페이지를 표시해야합니다. /jet/index.php?year=2011 & 분기 = 1 분기는 4 월 5 일을 표시 할 수 있습니다. 등등.URL에 여러 변수를 통해 페이지를 표시합니다.

내 코드는 여기에 2012 년 작품 잘 연도이

<a href="index.php?year=2011&quarter=Q1"> 
    <a href="index.php?year=2011&quarter=Q2"> 
    <a href="index.php?year=2011&quarter=Q1"> 
    <a href="index.php?year=2011&quarter=Q4"> 

내 홈 페이지처럼 보이는 코드

<?php 
$quarters = array('Q1' => 'firstq2012.php', 'Q2' => 'secondq2012.php', 'Q3' => 'thirdq2012.php', 'Q4' => 'fourthq2012.php'); 
if(isset($_GET['quarter'])) { 
    if(in_array($_GET['quarter'], array_keys($quarters))) { 
     include_once $quarters[$_GET['quarter']]; 
    } else { 
     header('Location: 404.php'); 
    } 
} else { 
    include_once $quarters['Q3']; 
} 
?> 

난에 당신의 도움이 필요에게 얼마나 것 전환에서 2012 년에서 2011 년은 (링크를 통해 수행합니다.)

감사합니다.

내가 완전히 코드를 변경할 것
+0

문제를 해석하기가 어려움 – asprin

+0

온라인 상태로 전환하기 전에 : http://www.aeonity.com/frost/how-preventing-remote-file-inclusion-exploits-php – madflow

답변

0

...

코드를 확인하고 분기를

<?php 
if(isset($_GET['year']) && isset($_GET['quarter'])) { 
// get params 
$year = (strlen($_GET['year']) == 4 && is_numeric($_GET['year']) ? (int)$_GET['year'] : date('Y')); 
$quarter = (substr($_GET['quarter'], 0, 1) == 'Q' && is_numeric(substr($_GET['quarter'], 1, 1)) ? (int)substr($_GET['quarter'], 1, 1) : ceil(date('n')/4)); 

$quartalsNumberToName = array(
    1 => 'first', 
    2 => 'second', 
    3 => 'third', 
    4 => 'fourth' 
); 
$filename = $quartalsNumberToName[$quarter] .'q'. $year .'.php'; 

if(file_exists($filename)) { 
    include_once($filename); 
} else { 
    header('Location: 404.php'); 
    exit; 
} 
} else { 
include_once($quartalsNumberToNume[3] .'q2012.php'; 
} 
?> 

코드가 포함되어있는 링크 생성하기 :

<ul> 
<?php 
// the start year 
$yearStart = 2011; 

for($i = $yearStart; $i <= date('Y'); $i++) { 
    for($j = 1; $j <= 4; $j++) { 
?> 
    <li><a href="index.php?year=<?php echo($i); ?>&amp;quarter=Q<?php echo($j); ?>">Year <?php echo($i); ?>, Quarter <?php echo($j); ?></a></li> 
<?php 
    } 
} 
?> 
</ul> 

안된를 ...하지만해야 작업.

관련 문제