2010-09-14 53 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'];