2015-05-28 46 views
-2

PHP會話問題:如何通過會議通過的電流變量是在PHP

我使用的會話從一個網頁(的index.php)一些varaiables傳遞到另一個頁面(result.php)。這些值由用戶輸入,一旦提交按鈕被點擊,result.php頁面應該打開並顯示輸入數據的摘要。

'//index.php 
<form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="POST" enctype="multipart/form-data" id="form" name="form" onsubmit="window.open('result.php', '_blank');return true;" > 

Enter Your Email Here: <input name="email" id="email" type="text" placeholder="[email protected]" pattern="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?" required title="must be [email protected]" /> 

Input file: <input type="file" name="file" id= "file" maxlength="90" required/> 

cutoff: <input type="text" name="cutoff" placeholder="0.005" maxlength="60" /> 

<input type="submit" name = "submit" id="submit" value="Submit"/> </form>' 

檢索到的信息 - EMAILID,文件和cutof,還用來使用了shell_exec運行perl腳本。爲了運行完整的程序,這些valuse應該存在於result.php頁面中。對於變量傳遞,我使用了PHP會話。

<?php 
//session name in index.php 
session_id('testsession'); 
session_start(); 
//pass variables email; file and cutoff 
$_SESSION["email"] = $_POST['email']; 
$_SESSION["file1"] = $filename; 
$_SESSION["cutoff"] = $cutoff; 
?> 

而在result.php,該值作爲收到:

<?php 
//start sesstion 
session_id('testsession'); 
session_start(); 
echo session_id(); 

//values recieved by session parameter 

echo '<br> email : '.$_SESSION["email"]; 
echo '<br> File : '.$_SESSION["file1"]; 
echo '<br> cutoff : '.$_SESSION["cutoff"]; 
?> 

問題和問題

  1. 有沒有更好的方式來處理變量傳遞到不同的頁面?
  2. 腳本中的主要問題是result.php收到的是每次會話值是從以前的會話。 例如:在index.php文件:

電子郵件 - [email protected]

文件 - 「的test.txt」

截止 - 0.002

然後在result.php將得到

電子郵件 - 0

文件 - 0

截止 - 0


,但下一次,如果我再次更新

的index.php中

電子郵件 - [email protected]

文件 - 「 95test.txt「

截止 - 0.52

result.php將顯示

電子郵件 - [email protected]

文件 - 「的test.txt」

截止 - 0.002

如何打理會議值? 可能是這個問題是由於將頁面重定向到result.php,歡迎任何幫助或建議。

謝謝!

+0

你有沒有考慮過簡單地發送這些值的網址? – OllyBarca

+0

在會話啓動之前,您正在設置會話ID。爲了清楚說明正在處理的數據,我發現一旦完成了會話變量,就可以更容易地取消設置。這可以防止數據混淆。如果你正在重定向頁面,那麼將表單指向result.php並在那裏處理數據不是更簡單嗎? –

+0

感謝您的建議,我在開始之後嘗試session_id並取消設置會話變量,同時我嘗試將頁面重定向到result.php。但似乎沒有任何工作。它只是沒有通過當前值。有什麼其他方式可以解決這個問題嗎? – nikki

回答

0

我不確定,但不是session_name而不是session_id?

<?php 
//session name in index.php 
session_name('testsession'); 
session_start(); 
//pass variables email; file and cutoff 
$_SESSION["email"] = $_POST['email']; 
$_SESSION["file1"] = $filename; 
$_SESSION["cutoff"] = $cutoff; 
?> 
+0

感謝您的建議,但它是session_id而不是session_name。有沒有其他建議可以幫助改進這些代碼。 – nikki