我正在学习将MySQL与PHP结合使用,并且在练习时,我尝试使用Core PHP和MySQL创建一个简单的Web应用程序。总结如下:
-它有一个非常简单的html页面,其中以一种形式输入MySQL的用户名(uname)和密码(pword),并通过POST方法将其发送到名为PHP1.php的PHP脚本。
-PHP1连接到MySQL。代码是(跳过PHP标记):
//Get input username and password
$username = $_POST['uname'];
$password = $_POST['pword'];
//Server information
$server = "localhost";
//Connect
$conn = new mysqli($server, $username, $password);
//Check success/failure
if ($conn -> connect_error)
{
die("Connection failed".$conn->connect_error);
}
连接后,PHP1检索有关存储在相应帐户中的数据库的信息,并显示单选按钮以选择数据库,并通过GET方法将所选数据库的名称发送到另一个脚本PHP2.php
-在PHP2.php中,我想在所选数据库中显示表。 但是,将控制权转移到PHP2.php时,将终止与MySQL的连接。我首先尝试将我的PHP1.php文件包含在PHP2.php中,并使用$ conn变量,但是由于上述代码,它当然会尝试重新连接到MySQL,同时,包含uname和pword的第一个请求是丢失,导致身份验证错误。
我该如何克服这个问题?
编辑: 我在这里看到了其他问题,但所有问题都有固定的usernmae /密码,因此可以将连接脚本轻松放置在单独的文件中。我需要从用户那里获取用户名和密码。
答案 0 :(得分:2)
使用Sessions,它将跨页面持久化会话变量:
PHP1
session_start();
$_SESSION['username'] = $username = $_POST['uname'];
$_SESSION['password'] = $password = $_POST['pword'];
$server = "localhost";
$conn = new mysqli($server, $username, $password);
PHP2
session_start();
$username = $_SESSION['username'];
$password = $_SESSION['password'];
$server = "localhost";
$conn = new mysqli($server, $username, $password);
在PHP1中,您将要检查是否设置了$_POST
值,在其他页面中,您将需要检查是否设置了$_SESSION
变量。参见isset。