上色

Code Block

顯示具有 PHP 標籤的文章。 顯示所有文章
顯示具有 PHP 標籤的文章。 顯示所有文章

2013年4月19日 星期五

[PHP] 區分同一個表單上的兩個按鈕

以onclick設定不同按鈕所送出的參數,例如︰

按鈕1︰
<input type="submit" name="button" value="Choose" onclick="document.form.action='sign.php?no=1' "/>

按鈕2︰
<input type="submit" name="button" value="Choose" onclick="document.form.action='sign.php?no=2' "/> 

如此即可在目的地表單(sign.php)藉由$_GET[no]方法取得此表單所送出的no變數,即可輕易分辨不同按鈕

2013年4月18日 星期四

[PHP] Session無法啟用 - Cannot send session

Warning: session_start() [function.session-start]: Cannot send session ... - headers already sent (output started at .... )

發生原因
session_start() 之前不能有任何字元輸出,UTF-8 編碼裡的 BOM 也會被認為是 headers,有上述狀況 Session 將無法順利傳遞,並會顯示錯誤訊息。

解決方法1
1. 確定 <?php 和 session_start() 之間沒有其他字元,空格也要移除。
2. 若是 UTF-8 編碼,請用編輯器(例 UltraEdit、Notepad++...)將檔案裡的 BOM 移除。

解決方法2
以 ob_start() 開啟緩衝區將輸出資訊寫入緩衝區,可避免 headers 先於 session_start() 輸出,寫入緩衝區的內容可由 flush() 或 ob_end_flush() 輸出至瀏覽器,以下範例不會顯示錯誤訊息:
<?php
ob_start();
echo "test";
session_start();
ob_end_flush();
?>
Reference:
http://www.pczone.com.tw/vbb3/thread/47/73367/