2010-07-30 61 views
0

我希望它在$_SESSION['selection']中遞增和遞減值。
Mousedown在下一個表格上的結果是:「會話是1」。
Mousedown以前的表單結果爲「本次會議是-1」。

下面是代碼:

<?php 

    if (isset($_POST['next'])) { 
     displaynext(); 
    } 
    else if (isset($_POST['previous'])) { 
     displayprevious(); 
    } 
    else { 
     session_start(); 
     echo "session started"; 
     $_SESSION['selection'] = 1; 
    } 

    function displaynext() { 
     $_SESSION['selection'] = $_SESSION['selection'] + 1; 
     echo "The session is $_SESSION[selection]"; 
    } 

    function displayprevious() { 
     if ($_SESSION['selection'] != 1) { 
     $_SESSION['selection'] = $_SESSION['selection'] - 1; 
     } 
     echo "The session is $_SESSION[selection]"; 
    } 

    ?> 

    <form action="<?=$_SERVER['PHP_SELF'];?>" method="post"> 
     <input type="submit" name="previous" value="Previous"> 
    </form> 

    <form action="<?=$_SERVER['PHP_SELF'];?>" method="post"> 
     <input type="submit" name="next" value="Next"> 
    </form> 

回答

5

session_start()調用放在文件的開頭;在<?php打開標籤後。您還需要在計劃使用會話的每個腳本上執行此操作。

順便說一句,而不是寫:

$_SESSION['selection'] = $_SESSION['selection']-1; 
$_SESSION['selection'] = $_SESSION['selection']+1; 

您可以使用

$_SESSION['selection']--; 
$_SESSION['selection']++; 

閱讀:Increment/Decrement operators

+0

優秀謝謝你的問題解決了 – tylercomp 2010-07-30 18:42:58

+0

@tylercomp不要忘記標記的答案爲「接受」時,它回答了你的問題,通過點擊選中圖標左的形象。 – Aistina 2010-07-30 18:58:50

1

確保你在每一頁上使用session_start()你用你的會話。

1

session_start調用你的代碼的開頭,任何外條件。

session_start需要在您使用會話的每個腳本中調用,而不僅僅是在一開始(即第一個頁面加載)。

1

在頁面之間移動時,您不需要撥打session_start。在if語句之前移動調用,就像這樣:

session_start(); 
if(isset($_POST['next'])) { 
    displaynext(); 
} else if(isset($_POST['previous'])) { 
    displayprevious(); 
} else { 
    echo "session started"; 

    $_SESSION['selection'] = 1; 
} 
相關問題