如何在链接点击时将id从数据库设置为php会话

时间:2013-11-28 18:10:23

标签: javascript php mysql ajax session-cookies

但是让我们从头开始谈谈。我正在创建类似于wordpres博客索引页面的网站(无法显示图片因为没有足够的声誉)。然后我点击阅读更多链接中的介绍文章我想将文章ID从数据库保存到php sesions。这是代码。

                while($row = mysqli_fetch_array($result))
                        {
                          echo '<div class="img">
                            <img src="img/smiley.gif" alt="Smiley face" width="250" height="250">     
                            </div>';
                        echo "<h2>".$row['Name'] . "</h2> " ;
                        $string = strip_tags($row['Content']);

                        if (strlen($string) > 500) {
                            $stringCut = substr($string, 0, 500);
                            $string = substr($stringCut, 0, strrpos($stringCut, ' ')).'... <a href="post.php?link=1">Read more</a>'; 
                        }
                        //echo $string;
                        if(isset($_GET['link']) /*you can validate the link here*/){
                                                    $_SESSION['link']= true;
                                                 }
                         echo $string;
                        echo "<br>";

                        echo '<div class="content dashboard clearfix"></div>';
                        echo '<hr>';
                        }
                      mysqli_close($con);
                      ?>

所以我在index.php文件中有3篇介绍文章,我读了一篇,所以我按READ MORE(然后我应该把文章ID写入会话)并转到其他页面,我想我应该从文章中获取文章ID会话。我正在尝试用

if(isset($_GET['link']) ){ /*you can validate the link here*/
    $_SESSION['link']= true;
}

但它始终从数据库中写出数字5的最后一个ID,所以我想我应该使用AJAX,javascript ??也许有人可以举个例子? 谢谢。

1 个答案:

答案 0 :(得分:0)

你可以通过ajax设置一个SESSION变量,但是......这会变得非常疯狂,让事情变得过于复杂而且不是很友好的

有一种更好的方法:让您的“阅读更多”实际链接到您的内容。所以你有一个“阅读更多”链接到http://example.com/page.php?id=5,然后在“page.php”里面你只是这样做:

$Id = intval($_GET['id']);

阅读how to create friendly URL in php?后,您可以使其更加漂亮,因此它们看起来像http://example.com/page/5

通过代码,您可以在点击链接时自动转到所需的页面。因此,您只需要创建页面 post.php 并从数据库中检索单行,方式与上面指出的方式类似,但使用正确的名称:

$Id = intval($_GET['link']);