将PHP代码添加到url链接

时间:2013-02-16 00:00:53

标签: php

我应该在下面的下一篇文章网址链接中添加什么PHP代码,这会导致下一篇文章随后被回复?

我打算按顺序回复一篇文章。

谢谢!

(form.php的)

<form action="process.php" method="get">
    Group:
    <select name="group">
        <option value="group1">Group1</option>
        <option value="group2">Group2</option>
    </select>

    Chapter:
    <input type="text" name="chapter">

    Article:
    <input type="text" name="article">

    <input type="submit" value="Go to Article">    

</form>

(process.php)

<?php

session_start();

$laws=array(
       "group1"=>array(
                      "1"=>array(
                                "1"=>"This is article (1) in chapter (1) of (group1)",
                                "2"=>"This is article (2) in chapter (1) of (group1)",
                                "3"=>"This is article (3) in chapter (1) of (group1)",
                                ),
                      "2"=>array(
                                "1"=>"This is article (1) in chapter (2) of (group1)",
                                "2"=>"This is article (2) in chapter (2) of (group1)",
                                "3"=>"This is article (3) in chapter (2) of (group1)",
                                ),
                       ),
       "group2"=>array(
                      "1"=>array(
                                "1"=>"This is article (1) in chapter (1) of (group2)",
                                "2"=>"This is article (2) in chapter (1) of (group2)",
                                "3"=>"This is article (3) in chapter (1) of (group2)",
                                ),
                      "2"=>array(
                                "1"=>"This is article (1) in chapter (2) of (group2)",
                                "2"=>"This is article (2) in chapter (2) of (group2)",
                                "3"=>"This is article (3) in chapter (2) of (group2)",
                                ),

       )
       );

$grp= $_GET['group'];
$chap = $_GET['chapter'];
$art = $_GET['article'];

if(isset($laws[$grp]) && isset($laws[$grp][$chap]) && isset($laws[$grp][$chap][$art])){
$_SESSION['group'] = $grp;
$_SESSION['chapter'] = $chap;
$_SESSION['article'] = $art;    
}else{
$_SESSION['group'] = 'group1';
$_SESSION['chapter'] = '1';
$_SESSION['article'] = '1';   
}

$group = $_SESSION['group'];
$chapter = $_SESSION['chapter'];
$article = $_SESSION['article'];


echo $laws[$group][$chapter][$article]; // ALL NEXT ARTICLES TO BE ECHOED HERE!!!!!

?>

<a href="process.php" style="text-decoration: none;">NEXT ARTICLE</a>

2 个答案:

答案 0 :(得分:0)

目前还不清楚下一篇文章是什么,你看似错误(见我的评论)

我已更新您的代码,以便链接将加载文章(但可能不是下一篇文章)。也许这至少可以帮助你找到答案......

    <?php

    // $_GET['group'] receives a string
    // $_GET['chapter'] receives a number
    // $_GET['article'] receives a number


    $_SESSION['group'] = $_GET['group'];
    $_SESSION['chapter'] = $_GET['chapter'];

        // this line here doesn't really make sense....
        //$_SESSION['article' = $_GET['article']];  
        //so perhaps you mean:
        $_SESSION['article'] = $_GET['article'];  

        $group = $_SESSION['group'];
        $chapter = $_SESSION['chapter'];
        $article = $_SESSION['article'];


        echo $group . " " . $chapter . " " . $article . "<br/>";

        $group_num = preg_replace("[^0-9]","",$group); //get the number of the group by removing everying in the string `$group` that is not a number (leaving just the number)

        $next_article_data = array();
        if(isset($laws[$group][$chapter][$article+1])){
             $next_article_data['group'] = $group;
             $next_article_data['chapter'] = $chapter;
             $next_article_data['article'] = $article+1;
        }else if(isset($laws[$group][$chapter+1][1])){
             $next_article_data['group'] = $group;
             $next_article_data['chapter'] = $chapter+1;
             $next_article_data['article'] = 1;
        else if (isset($laws["group".($group_num+1)][1][1])){
             $next_article_data['group'] = "group".($group_num+1);
             $next_article_data['chapter'] = 1;
             $next_article_data['article'] = 1;
        else
            echo "NO NEXT ARTICLE!";


        ?>

        <a href="process.php<?php 

        //I added this to pass article info in the url
        echo "?".http_build_query($next_article_data); 
        ?>" style="text-decoration: none;">NEXT ARTICLE</a>

答案 1 :(得分:0)

你没有做太多的事情,但假设$_GET['article']应该是一个文章编号,你只需将它增加1(假设你的文章是连续的):

<a href="process.php?article=<?php echo (int)$_GET['article'] + 1; ?>" style="text-decoration: none;">NEXT ARTICLE</a>