【发布时间】:2017-03-09 21:20:01
【问题描述】:
我刚刚计划制作一个程序,我需要使用 DBHost、DBUser、DBPassword 和 DBName 连接 USER 的数据库,以将未来需要的值保存在 MySQL 服务器上。 为此,我编写了这样的代码:
<?php session_start(); ?>
<?php
require('functions.php');
iq_add_style( 'DBConForm_Styles' , 'assets/scripts/css/iq_styles' , 'stylesheet' , 'css' );
function IQ_DB_Form(){
?>
<form id="iq-dbconform" method="post" action="<?php $_SERVER['PHP_SELF'] ?>">
<label>Server Host: <input type="text" maxlength="15" placeholder="localhost" name="host-name" /></label>
<label>Database User: <input type="text" maxlength="15" placeholder="root" name="user-name" /></label>
<label>Password: <input type="password" maxlength="15" placeholder="User Password" name="user-pass" /></label>
<label>Name of the Database: <input type="text" maxlength="20" placeholder="developing_house" name="db-name" /></label>
<input type="submit" value="Connect" name="dbconbtn" /> <input type="reset" value="Reset" name="dbresetbtn" />
</form>
<?php
}
IQ_DB_Form();
// Database connection
$dbhost = $_POST['host-name'];
$dbuser = $_POST['user-name'];
$dbpass = $_POST['user-pass'];
$dbname = $_POST['db-name'];
$db_details = array(
'host' => $dbhost,
'user' => $dbuser,
'password' => $dbpass,
'dbname' => $dbname,
);
$IQcon = mysqli_connect($db_details['host'],$db_details['user'],$db_details['password'],$db_details['dbname']);
// Check connection
if (mysqli_connect_errno())
{
echo "Looks like an Error connecting IQubex Database: " . mysqli_connect_error();
}
// Store Values in Session
foreach ($_POST as $key => $value) {
${$key} = $value;
$_SESSION[$key] = $value;
}
echo $_SESSION['db-name'];
echo $_SESSION['user-pass'];
echo $_SESSION['user-name'];
// Perform queries
if ($IQcon){
mysqli_query($IQcon,"CREATE TABLE `Persons` (
`FirstName` varchar(30) NOT NULL,
`LastName` varchar(60) NOT NULL,
`Age` int(255) NOT NULL,
);");
mysqli_query($IQcon,"CREATE TABLE `MadBoys` (
`FirstName` varchar(30) NOT NULL,
`LastName` varchar(60) NOT NULL,
`Age` int(255) NOT NULL,
);");
mysqli_close($IQcon);
}
else{
echo "There seems a problem with your server.";
}
?>
我已经在会话中保存了数据库配置表单值,因此当我写echo $_SESSION['db-name'] 时,会打印插入的数据库名称。但是当页面重新加载,返回页面,或者类似的东西时,所有的值都会被重置!因此,我不希望我的用户一次又一次地连接数据库。我希望将其永久保存,以便我可以为下一个程序步骤工作。
【问题讨论】:
-
还需要帮助吗?
-
@MasivuyeCokile 是的,我需要!但是这里有太多我讨厌的形式。
-
你讨厌的手续是什么意思?
-
@MasivuyeCokile 我的帖子被重复了,即使在其他帖子中没有给出答案 :-( 无论如何,如果这篇帖子被打开,谢谢。
标签: php mysql session post database-connection