2016-09-09 46 views
0

我有一個表單sender,它將值6發佈到另一個表單receiver。我試圖實現的是將發佈的值sender存儲到變量,receiver中,然後每次增加變量sender帖子。然後打印更新變量通過每次重複表單提交增加帖子的價值

這就是我試圖做

$val= $_POST['val']; 
$limit = 6 + $val; 
echo $limit; 

即時得到結果爲12,但我要的是

  1. 的第一篇文章後因= 12

  2. 二次後結果= 18

和...

NB:$_POST['val'] = 6; 
+0

您需要存儲'$ limit'的前一個值(sessnion,cookie,DB)end將其與發件人進行標識,然後進行數學運算:) –

回答

0
session_start(); 

$limit = 6; 

if(!isset($_SESSION['lastLimit'])) { 
    $_SESSION['lastLimit'] = 0; 
}  
if(!empty($_POST)) {  
    $_SESSION['lastLimit'] = $_SESSION['lastLimit'] + $limit; 
    $postedValue = $_POST['val'] + $_SESSION['lastLimit']; 
    echo $postedValue; 
} 
1

,因爲Web是無狀態,即腳本不記得任何事頁/形式執行receiver腳本不從上次記得了最後一次它運行的時間。

但不要恐慌,有一種方法。它被稱爲SESSION,您可以將數據存儲在會話中,然後在該用戶下次連接到您的網站時可用。在PHP中,你可以像這樣使用它。會話鏈接到特定用戶的特定連接。

receiver.php

<?php 
// must be run at top of script, before any output is sent to the new form 
session_start(); 

// did the form get posted and is the variable present 
// or replace POST with GET if you are using an anchor to run the script 
if ($_SERVER['REQUEST_METHOD'] == 'POST' && isset($_POST['val']) { 

    if (isset($_SESSION['limit']){ 
     // increment the limit 
     $_SESSION['limit'] += (int)$_POST['val']; 
    } else { 
     // initialize the limit 
     $_SESSION['limit'] = (int)$_POST['val']; 
    } 

    echo 'Current value of limit is = ' $_SESSION['limit']; 

} else { 
    // something is not right 
    // direct this user to some basic page like the homepage or a login 
    header('Location: index.php'); 
}    
0

您需要一箇中間層,以存儲該值。 可用選項:

1)全球靜態值

2)會議

3)文件

4)數據庫

我會建議全球價值或會話,因爲他們的數據,你想要存儲的並不是那麼龐大並且很容易滿足要求。

我不會寫語法來存儲會話,因爲許多人已經提到它。我只是想澄清問題場景和可能的解決方案。

0

您可以將$ limti存儲到全局varibale中。

global $val; 
$val += $_POST['val']; 
$limit = 6 + $val; 
echo $limit;