2014-09-04 162 views
-1

我知道這個問題已經以許多不同的方式被問到,但我似乎找出了問題所在。PHP通過一個表格從一個頁面傳遞到另一個頁面的變量

基本上我有一個表單,我只需要通過會話傳遞給另一個頁面的變量。該表單是一個下拉選擇框。用戶選擇位置,然後表單進入基於該位置加載信息的頁面。

<form method = "post" action="sneakpeek.php"> 

          <?php 
           $con=mysqli_connect("******","********","*******","*****"); 
          if (mysqli_connect_errno()) { 
           echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
          } 
          session_start(); 


          $result = mysqli_query($con,"SELECT * FROM installations"); 

          echo '<select id="selected_page">'; 
          while($row = mysqli_fetch_array($result)) { 
           echo '<option value="sneakpeek.php">'.$row['name'].'</option>'; 
          } 
          echo '</select>'; 
           if($_SERVER['REQUEST_METHOD']=='POST') 
           { 
           $installation = $_POST['installation_id']; 
           $_SESSION['installation_id']=$installation_id; 
           } 
          mysqli_close($con); 
           ?> 

          <button>Load it ! </button> 
         </form> 

接收頁:

session_start(); 

$installation_id = $_SESSION['installation_id']; 
<?php echo $installation_id; ?> 

回答

1

session_start();必須位於頁面頂部的任何輸出

<?php 
session_start(); 
?> 
<form method = "post" action="sneakpeek.php"> 
<?php 
    $con=mysqli_connect("******","********","*******","*****"); 

    if (mysqli_connect_errno()) { 
     echo "Failed to connect to MySQL: " . mysqli_connect_error(); 
    } 

    $result = mysqli_query($con,"SELECT * FROM installations"); 
+0

另外,看是否被存儲在任何會議只是'var_dump'您的會話。 'var_dump($ _ SESSION);' 這將有助於瞭解發生了什麼事情,儘管像約翰說的那樣(ps upvote),它必須在寫入任何其他內容之前從頁面頂部開始。 – EasyBB 2014-09-04 17:56:40

+0

好的,我把session_start();在頂部。我也按照建議做了var_dump($ _ SESSION),並沒有把它結轉。任何想法爲什麼?很明顯,我創建會話的方式有些不對。 THanks – looloobs 2014-09-04 20:21:06

+0

是否有任何包含或其他內容可能導致PHP在調用session_start()之前發送頭文件? – 2014-09-04 20:22:47

相關問題