台灣最大程式設計社群網站
線上人數
1382
 
會員總數:243860
討論主題:188348
歡迎您免費加入會員
討論區列表 >> PHP >> 有關傳值問題??
[]  
[我要回覆]
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
有關傳值問題??
價值 : 30 QP  點閱數:4495 回應數:41

樓主

力胖
初學者
112 85
1569 212
發送站內信

各位版友好:
我用GET方式,傳了一段字串到另一頁,但是,假如字串完整,在另一頁顯示就正常,但是如果字串中有空白就會發生問題,例如: a.php中為 test.txt b.php get也是 test.txt --->正常顯示。
b.php中為 tes t.txt b.php get會是 tes --->後面被截掉了。


本篇文章發表於2009-02-10 11:20
別忘捐VP感謝幫助你的人 新手會員瞧一瞧
1樓
最有價值解答

溫子
捐贈 VP 給 溫子 檢舉此回應
http://www.vawidea.org/php%20bible/function.php-urlencode.htm
本篇文章回覆於2009-02-10 11:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
作者回應

力胖
檢舉此回應
我另一頁是要功能是要download的,現在我處理到用rawurlencode可以把值傳過去了,也可以下載,但是下載檔名還是會變成tes!
本篇文章回覆於2009-02-10 11:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
3樓
回應

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
下載檔名?
為什麼要下載?
本篇文章回覆於2009-02-10 12:38
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
4樓
作者回應

力胖
檢舉此回應
因為我要寫檔案下載程式,所以要下載,然後把路徑傳到下載那一頁,進行下載動作!
溫子大大的方法我也試過了,跟我原本查到的方法,結果相同。
本篇文章回覆於2009-02-10 13:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
5樓
不錯的參考

Bryan(不來ㄣ)
捐贈 VP 給 Bryan(不來ㄣ) 檢舉此回應
po code
看一下你的寫法
本篇文章回覆於2009-02-10 14:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
6樓
不錯的參考

那顆爛蔥
捐贈 VP 給 那顆爛蔥 檢舉此回應
那你最好確定傳過去b.php的值沒錯
或者是
你的檔名最好有"完整"的送給瀏覽器
本篇文章回覆於2009-02-10 14:16
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
7樓
作者回應

力胖
檢舉此回應
在a.php中:
$file_path=rawurlencode("$data_now[0]/$data_now[1]");
echo "<a href=download.php?file=$file_path>DownLoad</a><br>";
在download.php裡面

$files=$_GET['file']
if (file_exists($files)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header("Content-Disposition: attachment; filename=$file_basename");
header('Content-Transfer-Encoding: binary');
header('Expires: 0');
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');
header('Content-Length: ' . filesize($files));
ob_clean();
flush();
readfile($files);
exit;
}

遇到 test.txt就可以正常下載,但是如果遇到tes t.txt下載檔名就會變成tes
本篇文章回覆於2009-02-10 14:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
8樓

$file_basename從那裡來的?
本篇文章回覆於2009-02-10 15:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
9樓
作者回應

力胖
檢舉此回應
少打了,download.php應該還有下面兩行
$file_path=dirname($_GET[file]);
$file_basename=basename($_GET[file]);
本篇文章回覆於2009-02-10 15:36
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
10樓

本篇文章回覆於2009-02-10 15:45
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
11樓
10f 更正

本篇文章回覆於2009-02-10 15:54
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
12樓
try

本篇文章回覆於2009-02-10 15:55
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
13樓
作者回應

力胖
檢舉此回應
我在a.php中有先用rawurlencode再傳到download.php中!
然後我在download.php 用bryan大大說的,
$basename=rawurlencode(basename($files));
這樣子的話,test d.txt下載的名稱會變成test%20d.txt
我希望的解決方法是下載檔名還是為test d.txt
本篇文章回覆於2009-02-11 08:35
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
14樓
這樣呢?

本篇文章回覆於2009-02-11 08:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
15樓
承14F
搭配以下

本篇文章回覆於2009-02-11 08:53
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   

回覆
如要回應,請先登入.