2011-11-22 10 views
2

我想從一個PHP文件發送數據到第一個PHP文件存在的子文件夾中的另一個PHP文件。我有一個名爲folder1的文件夾,其中包含一個名爲file1.php的PHP文件,我想調用名爲folder2的子文件夾folder1中的另一個名爲file2.php的文件。我現在用的是header()功能像這樣file1.php使用頭文件將數據從一個PHP頁面傳遞到另一個頁面()

$host = $_SERVER['HTTP_HOST']; 
$uri = rtrim(dirname($_SERVER['PHP_SELF']), '/\\'); 
$extra = 'folder1/folder2/file2.php'; 
header("location:http://$host$uri/$extra?sms=".$msg."&num=".$msg_num); 

數據不流通。有沒有使用header()的解決方案?由於某些限制,我無法使用cURL

+1

對於「數據未通過」的含義,你能更具體嗎? – jprofitt

+0

你嘗試過使用會話嗎? – nickb

+0

查詢字符串參數在file2.php中爲空。儘管它們被file1.php中的有效數據填充 – user1059869

回答

1

沒有想要發送變量的示例,很難說出問題的原因,但可能的問題可能是變量中的字符。

要確保沒有無效字符,你可以使用urlencode(),或許與htmlentities()組合,請參閱manual

header("location:http://$host$uri/$extra?sms=".urlencode($msg)."&num=".urlencode($msg_num)); 
+0

另外,你需要確保'file2.php'實際上是查找正確的參數。 – T0xicCode

+0

我想將sms和num傳遞給file2.php從file1.php ...我正確地分配他們,並採用$ _get在file2.php中正確的參數...但查詢字符串本身沒有數據 – user1059869

2

下面的代碼工作:

file1.php

<?php 

header('Location: inner/file2.php?x=1&y=2&z=3'); 

?> 

inner/file2.php

<?php 

print '<pre>'; 

var_dump($_GET); 

print '</pre>'; 

?> 

來訪http://localhost/testing/file1.php的結果是一個重定向到http://localhost/testing/inner/file2.php?x=1&y=2&z=3其中顯示:

array(3) { 
    ["x"]=> 
    string(1) "1" 
    ["y"]=> 
    string(1) "2" 
    ["z"]=> 
    string(1) "3" 
} 

我建議在這些測試文件拷貝和證明自己,用傳遞的值重定向的基本概念是工作。然後,圍繞一個已知好的內核構建其餘的代碼。祝你好運!

相關問題