<?php
$rootdir = "digiAdmin"; //leave if no folder
define("CONFIG","true");
// Database Config //
define('DB_HOST', $_SERVER['SERVER_NAME']);
define("DB_USER", $_POST['DB_USER']);
define("DB_PASS", $_POST['DB_PASSWORD']);
define("DB_NAME", $_POST['DB_NAME']);
我有一个表单,要求提供数据库name
,username
和password
。当我点击提交按钮时,它会显示错误。我已经定义了这个配置并创建了一个函数,它检查config是true还是false。我使用post来获取用户名,密码和数据库名称。我是以正确的方式做的吗?
答案 0 :(得分:1)
您需要检查是否设置了这些POST值,请尝试以下操作:
define('DB_HOST', isset($_SERVER['SERVER_NAME']) ? $_SERVER['SERVER_NAME'] : null);
define("DB_USER", isset($_POST['DB_USER']) ? $_POST['DB_USER'] : null);
define("DB_PASS", isset($_POST['DB_PASSWORD']) ? $_POST['DB_PASSWORD'] : null);
define("DB_NAME", isset($_POST['DB_NAME']) ? $_POST['DB_NAME'] : null);
答案 1 :(得分:0)
好的,根据您的评论,我想尝试回答您的问题。
这应该是你的PHP脚本db.php(mysql_ *方法实际上已被弃用,但这是另一天要保持这个简单的故事):
<?php
define('DB_HOST', $_SERVER['SERVER_NAME']);
define("DB_USER", $_POST['DB_USER']);
define("DB_PASS", $_POST['DB_PASSWORD']);
define("DB_NAME", $_POST['DB_NAME']);
$link = mysql_connect(DB_HOST, DB_USER, DB_PASSWORD);
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db(DB_NAME, $link);
if (!$db_selected) {
die ("Can't use db: " . mysql_error());
}
?>
这可能是你的HTML页面index.html:
<form action="db.php" method="post">
User: <input type="text" name="DB_USER"><br>
Pass: <input type="text" name="DB_PASSWORD"><br>
DB: <input type="text" name="DB_NAME"><br>
<input type="submit" value="submit">
</form>
根据你的问题,你在某处遇到了一些错误,所以db.php可能会死掉相应的消息。如果是这样,你可以试试这个:
<?php
$link = mysql_connect("host", "user", "password");
if (!$link) {
die('Could not connect: ' . mysql_error());
}
$db_selected = mysql_select_db("db", $link);
if (!$db_selected) {
die ("Can't use db: " . mysql_error());
}
?>
这意味着不使用已发布的变量,而是使用您知道它们有效的字符串。
如果第二个脚本失败,则您的数据(用户,密码和/或数据库)不正确。如果第二个脚本成功,则您发布的表单可能有问题。