【问题标题】:if I have two links and I want to show both of them continously back to back, then what should i use in php?如果我有两个链接,并且我想连续显示它们,那么我应该在 php 中使用什么?
【发布时间】:2014-01-23 22:57:56
【问题描述】:

如果我有两个链接,并且我想连续显示它们,那么我应该在 php 中使用什么?

例如:

先显示链接 A,然后显示链接 B,然后再显示链接 A,再显示链接 B。 依次显示这两个链接。

当我点击页面时,它会显示链接 A,当我刷新页面时,它会显示链接 b,反之亦然。

所以我的问题是,如果是的话,是否有任何 php 函数或逻辑,那么它是什么?

【问题讨论】:

    标签: php logic


    【解决方案1】:
    <?php
    if(!isset($_COOKIE["lastLink"])){
        setcookie("lastLink","b"); // you can set an expire time.
    }
    
    if($_COOKIE["lastLink"] == "a"){
        $link = "www.b.com";
        setcookie("lastLink","b");
    }elseif($_COOKIE["lastLink"] == "b"){
        $link = "www.a.com";
        setcookie("lastLink","a");
    }
    
    echo $link;
    ?>
    

    关于过期时间等:http://uk.php.net/setcookie

    【讨论】:

    • cookie不设置过期时间怎么办,默认过期时间是多少?
    • 每次刷新页面时,您的此代码仅显示 www.a.com。
    • 我的错,你不能像这样改变一个cookie。您必须将 $_COOKIE["lastLink"] = "a"$_COOKIE["lastLink"] = "b" 更改为 setcookie("lastLink","a");setcookie("lastLink","b");
    • 如果一个用户来点击链接,它会设置cookie,然后他离开,另一个用户点击等等。所以cookie是在用户计算机上设置的。像这样,只有我的链接 a 被用户点击,但链接 b 还没有被点击。那么在这种情况下我该怎么办呢? @Melih Yıldız
    • 如果要更改服务器上的链接,可以使用文件记录或数据库记录代替cookie。如果我的服务器使用 SSD,我希望文件记录不会损坏数据库服务器。但这取决于你的选择。只需使用从记录中读取的变量更改$_COOKIE["lastLink"] 部分,并使用函数更改记录的setcookie() 部分。
    【解决方案2】:
    <?php
       if ( isset($_GET['page']))
          $page = ($_GET['page'] == 'a') ? 'b' : 'a'; 
       else
          $page = 'b';         
    ?>
    
    
    <a href="index.php?page=<?php echo $page; ?>">Cycle</a>
    

    一个问题:为什么?

    【讨论】:

      【解决方案3】:

      如果您想在点击A链接后将页面更改为B,您可以在链接中存储一个参数(例如,&lt;a href="website.com?nextLink=B"&gt;A&lt;/a&gt;),然后在服务器端捕获它并使用B链接提供页面(您可以使用许多技巧来获得完全相同的 URL,例如使用 POST 参数而不是 GET 参数)。

      如果你想在点击刷新时改变状态,你可以使用cookies来存储当前状态,然后使用这个状态服务器端来切换页面(这里建议:Detect Browser Refresh in Javascript)。

      【讨论】:

        猜你喜欢
        • 2016-11-29
        • 1970-01-01
        • 2021-10-20
        • 2022-11-17
        • 1970-01-01
        • 2011-05-16
        • 2017-05-27
        • 2013-08-11
        • 1970-01-01
        相关资源
        最近更新 更多