2010-09-14 68 views
0

我想將一個變量傳遞給包含的文件。我做了這樣的事情:如何將變量傳遞給我包含的文件?

$id = $_GET['id']; include('myfile.php');

和文件「myfile.php」包含一個表單和一個提交按鈕。它的處理頁面「process.php」,並在其中,我已經做了:

$_id = var_dump($id); 

// insert query

但我沒有得到變量的值,所以0被插入到表中。

有沒有其他更簡單的方法呢?

謝謝!

+0

你顯示的方式是好的,應該工作。你能展示更多的代碼嗎?你確定你不在最後一位的功能之內嗎? – 2010-09-14 09:17:40

+1

也許我是一個noob,但我不認爲你可以將var_dump保存在變量中..? – 2010-09-14 09:17:49

+0

@Litso很好看!它會輸出'$ id's的值,但別無其他。 – 2010-09-14 09:18:38

回答

2

功能。

myfile.php聲明瞭一個函數(例如myfunction),您可以在包含腳本中調用該函數。

例如:

// main.php 
<?php 

include('myfile.php'); 

process_data($_GET['id']); 

// myfile.php 
<?php 

function process_data($id) { 
    $query = 'SELECT * FROM foobar WHERE id = ' . mysql_real_escape_string($id); 

    // ... 
} 

如果你真的想將變量傳遞作爲全球性的,如果引用全局的函數或方法時,一定要參考它作爲$GLOBALS['varname']或使用global $varname

function process_data() { 
    $id = &$GLOBALS['id']; 
    // or 
    global $id; 

    // ... 
} 
+0

+1代碼!在多個文件中使用變量會導致維護噩夢。 – jwueller 2010-09-14 09:19:42

0

你必須越過的$ id的表單裏面的值myfile.php

例如:

<form action="process.php" method="post"> 
    <input type="hidden" name="id" value="<?= $id ?>"> 
    <!--- rest of your form --> 
</form> 

在你的process.php中,獲取id作爲跟隨,然後做你的查詢。

$form_id = $_POST['id'];