最后访问页面(COOKIE)中的逻辑错误和php中的当前搜索页面

时间:2011-01-04 07:47:12

标签: php search cookies


我有一个页面(index.php),其中我显示从db获取的最新事件和页面顶部的搜索框,如果有人搜索任何事件,则所有关于搜索的事件都显示在页面上的名称和链接。现在我需要什么

  1. 如果我们搜索某个事件并转到该事件页面并返回(index.php),则应显示最后一个搜索结果...如果我返回然后显示最新事件。
  2. 如果我们去那个特定的事件并关闭浏览器(或者回去关闭),如果再次打开该网站,我需要在index.php上显示上次访问的事件页面链接
  3. 如果我们第一次来到页面(或在cookie过期后),则应显示所有最新事件(现在只有4个最新事件)。
  4. 如果我们搜索并且未找到,则显示“未找到任何事件”并请求再次搜索。

    当前第2点和第4点已成功覆盖,但第3点未完成,请以正确方式建议我的逻辑条件,并建议我如何为第1点做

  5. 如果我的页面的主要代码

    ,请在下面

    index.php

    <form action="<?=$_SERVER['PHP_SELF'];?>" method="get" accept-charset="utf-8">              
        <input type="text"  name="keyword" id="keyword"  placeholder="Search for Event" value="">           
        <input type="submit" name="submit" id="submit" value="Search" >     
    </form>
    
    if(empty($_GET['keyword']) && !isset($_SERVER['HTTP_REFERER'])) {
       if(!empty($_COOKIE['LAST_EVENT_ID'])) { ?>
           <div class="module list">
            <ul id="people">
                <li>
                <a href="eventinfo.php?evt_id=<?=$_COOKIE['LAST_EVENT_ID'];?>&evt_name=<?=$_COOKIE['LAST_VISITED_EVENT'];?>">           
                <h2><?=$_COOKIE['LAST_VISITED_EVENT']?></h2>                    
                    </a>
                </li>
             </ul>
           </div>
    <?php } } 
    // Note count($eventItems)==4 ( by default latest events)       
        else if(count($eventItems) == 0) { ?>       
           <h2>No Events found, please Search again</h2>
    <?php } 
          else { 
     ?> 
         <div class="module list">
         <ul id="people">
    <?php    foreach($eventItems as $value) { ?>
             <li>
                <a href="eventinfo.php?evt_id=<?=$value->event_id?>&evt_name=<?=$value->name?>">            
                <h2><?=$value->name?></h2>                  
                </a>
             </li>          
     <?php      } ?> 
       </ul>
      </div>
    

    eventinfo.php

    <?php ob_start();
    $evt_id=$_GET['evt_id'];
    $evt_name=$_GET['evt_name'];
    define('SITE_PATH','http://localhost/hello_world/');    
    define('EVENT_ID',$evt_id);
    /* first remove old cookie value */
    //setcookie("LAST_EVENT_ID",EVENT_ID, time()-3600*24*7);
    //setcookie("LAST_VISITED_EVENT", $evt_name, time()-3600*24*7);
    
    setcookie("LAST_EVENT_ID", EVENT_ID, time()+3600*24*7);
    setcookie("LAST_VISITED_EVENT", $evt_name, time()+3600*24*7);
    
    if (is_dir($evt_name)){
        header("location:".EVENT_PATH);
    }
    else{
        header("location:event_detail.php");
    }
    
    
    ?>
    

    请告诉我如何修改我的if else条件以满足以上所有要点

    由于

    更新

    我也为所有情况创建真值表,plz帮助我开发逻辑..这里是truth table的链接

1 个答案:

答案 0 :(得分:-1)

更改

<li>
    <a href="eventinfo.php?evt_id=<?=$_COOKIE['LAST_EVENT_ID'];?>&evt_name=<?=$lastEventDetail['name'];?>">         
        <h2><?=$lastEventDetail['name']?></h2>                  
    </a>
</li>

<li>
    <a href="eventinfo.php?evt_id=<?=$_COOKIE['LAST_EVENT_ID'];?>&evt_name=<?=$_COOKIE['LAST_VISITED_EVENT'];?>">         
        <h2><?=$_COOKIE['LAST_VISITED_EVENT']; ?></h2>                  
    </a>
</li>

$ lastEventDetail ['name']没有价值..最后一个事件名称在cookie中