Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在PHP中使用require()传递变量_Php - Fatal编程技术网

如何在PHP中使用require()传递变量

如何在PHP中使用require()传递变量,php,Php,我一直在尝试使用require()在两个PHP文件a.PHP和b.PHP之间传递变量。我了解到PHP变量只有一个作用域,这意味着如果a.PHP包含b.PHP,它可以读取其变量。但是,我希望b.php能够使用当前设置从a.php读取变量。例如,如果在b.php中设置了msg,我可以打印出a.php。有没有一个简单的方法可以做到这一点 a.php <?php $msg = "Welcome NEW USER ! We can't wait for you to check out our b

我一直在尝试使用
require()
在两个PHP文件
a.PHP
b.PHP
之间传递变量。我了解到PHP变量只有一个作用域,这意味着如果
a.PHP
包含
b.PHP
,它可以读取其变量。但是,我希望
b.php
能够使用当前设置从
a.php
读取变量。例如,如果在
b.php
中设置了
msg
,我可以打印出
a.php
。有没有一个简单的方法可以做到这一点

a.php

<?php

$msg = "Welcome NEW USER ! We can't wait for you to check out our books!";
require("connect.php");
require("b.php");
$table = "SELECT * FROM `login`";
if ($query_run=mysqli_query($cnn,$table)){

$username = $_POST['username'];
$pw = $_POST['password'];

$sql = "INSERT INTO login (username,password) VALUES ('{$username}','{$pw}')";


if($cnn->query($sql)===TRUE){echo "Query ran successfully";}
else{echo "Error: ".$sql."<br>".$cnn->error;}
}
else{die("table connection failed");}
$cnn.close();

?>
<?php
echo "<h1>".$msg."</h1>
<form action='' method='post'>
Username: <input type='text' name='username'><br>
Password: <input type='text' name='password'><br>
<input type='submit' name='submit'>
</form>
"


?>
$_SESSION['myName'] = "John";
echo $_SESSION['myName']
<?php
$from_a = 'hey';
require "b.php";
print $from_b;

使用$\u会话将允许您在不同文件之间传递
数据

a.php中

<?php

$msg = "Welcome NEW USER ! We can't wait for you to check out our books!";
require("connect.php");
require("b.php");
$table = "SELECT * FROM `login`";
if ($query_run=mysqli_query($cnn,$table)){

$username = $_POST['username'];
$pw = $_POST['password'];

$sql = "INSERT INTO login (username,password) VALUES ('{$username}','{$pw}')";


if($cnn->query($sql)===TRUE){echo "Query ran successfully";}
else{echo "Error: ".$sql."<br>".$cnn->error;}
}
else{die("table connection failed");}
$cnn.close();

?>
<?php
echo "<h1>".$msg."</h1>
<form action='' method='post'>
Username: <input type='text' name='username'><br>
Password: <input type='text' name='password'><br>
<input type='submit' name='submit'>
</form>
"


?>
$_SESSION['myName'] = "John";
echo $_SESSION['myName']
<?php
$from_a = 'hey';
require "b.php";
print $from_b;
b.php中

<?php

$msg = "Welcome NEW USER ! We can't wait for you to check out our books!";
require("connect.php");
require("b.php");
$table = "SELECT * FROM `login`";
if ($query_run=mysqli_query($cnn,$table)){

$username = $_POST['username'];
$pw = $_POST['password'];

$sql = "INSERT INTO login (username,password) VALUES ('{$username}','{$pw}')";


if($cnn->query($sql)===TRUE){echo "Query ran successfully";}
else{echo "Error: ".$sql."<br>".$cnn->error;}
}
else{die("table connection failed");}
$cnn.close();

?>
<?php
echo "<h1>".$msg."</h1>
<form action='' method='post'>
Username: <input type='text' name='username'><br>
Password: <input type='text' name='password'><br>
<input type='submit' name='submit'>
</form>
"


?>
$_SESSION['myName'] = "John";
echo $_SESSION['myName']
<?php
$from_a = 'hey';
require "b.php";
print $from_b;

我不确定你的问题是什么,但你的例子应该有用。这是最有效的:

a.php

<?php

$msg = "Welcome NEW USER ! We can't wait for you to check out our books!";
require("connect.php");
require("b.php");
$table = "SELECT * FROM `login`";
if ($query_run=mysqli_query($cnn,$table)){

$username = $_POST['username'];
$pw = $_POST['password'];

$sql = "INSERT INTO login (username,password) VALUES ('{$username}','{$pw}')";


if($cnn->query($sql)===TRUE){echo "Query ran successfully";}
else{echo "Error: ".$sql."<br>".$cnn->error;}
}
else{die("table connection failed");}
$cnn.close();

?>
<?php
echo "<h1>".$msg."</h1>
<form action='' method='post'>
Username: <input type='text' name='username'><br>
Password: <input type='text' name='password'><br>
<input type='submit' name='submit'>
</form>
"


?>
$_SESSION['myName'] = "John";
echo $_SESSION['myName']
<?php
$from_a = 'hey';
require "b.php";
print $from_b;

以上内容是完全有效的PHP,将按预期工作,不会出现错误。另一个脚本所需的脚本可以完全访问其变量,反之亦然。

如果需要无限循环,请在每个文件中尝试一次
require\u。

但最好的解决方案是创建第三个文件,即c.php,并在其中同时包含b.php和a.php,无需使用session

若PHP文件包含在其他PHP文件中,那个么变量也可以在包含的PHP文件中访问

范例

<?php

$a = 1;
include 'filename.php';

?>

然后可以在filename.php中访问$a。 在包含的文件和测试中使用echo

如果你觉得有什么问题,请告诉我

这意味着如果a.php包含b.php,它可以读取其变量

我认为这个概念略有不同。当您调用语言构造
require
时,它将读取并包含指定的文件,就像它是在调用文件本身中写入的一样

因此:

<?php

// File a.php
$somevar = 6;
require "b.php";

?>


实际上与

<?php

// File a.php
$somevar = 6;

// File b.php
echo $somevar;

?>


如果a.php包含/需要b.php,那么b中的所有变量在a中都可用。对于a.php,使用b.php上的require_once;对于b.php,使用a.php上的require_once。php表示了解的语句。即使是这样也不安全!永远不要存储纯文本密码!请使用PHP来处理密码安全性。如果您使用的PHP版本低于5.5,则可以使用
密码\u hash()
。在散列之前,不需要对它们执行任何操作或使用任何其他清理机制。这样做会更改密码并导致不必要的额外编码。您确实应该只使用会话在会话之间存储变量,而不是在文件之间存储变量。你最好使用globals,而不是sessions(因为它们有额外的副作用),但两者都不是一个好主意。