连接失败继续注销
failed connection proceed to logout
我试图在数据库连接失败时重定向到注销页面。我该怎么做?它总是显示错误消息,但不是我指定的错误消息。感谢帮助,提前致谢。
理查德
代码:
function ms_connect() {
// Create connection
// Microsoft Access
$db_source = DB_SERVER;
$db_system = DB_SYSTEM_SEC;
$odbc_driver = "driver={microsoft access driver (*.mdb)};dbq=" . $db_source . ";systemdb=" . $db_system;
$conn = odbc_connect($odbc_driver, DB_SERVER_USERNAME,DB_SERVER_PASSWORD); // Error returned here!
if ($conn) {
return $conn;
} else{
exit("Connection could not be established.");
header ("Location: /logout.php");
}
}
不显示"Connection could..."
error shown
PHP Warning: odbc_connect(): SQL error: [Microsoft][ODBC Microsoft Access Driver] Not a valid account name or password., SQL state 08004 in SQLConnect in C:\inetpub\wwwroot\functions\functions.php on line 11
您正在退出,这将在重定向之前终止脚本。
如果需要,您可以将错误消息作为获取参数传递并显示在您的页面上。
您的代码应如下所示:
if ($conn) {
return $conn;
} else{
header ("Location: /logout.php?error=Connection+could+not+be+established.");
}
此外,如果您想隐藏警告,只需添加:
error_reporting(0);
ini_set('display_errors', 'Off');
您看到的警告是由 odbc_connect
函数触发的,虽然奇怪的是没有打印 exit
字符串,但由于退出阻止,您的重定向不起作用并不奇怪它不会被执行。
尝试:
if ($conn !== false) {
return $conn;
} else{
header ("Location: /logout.php");
exit();//just in case
}
您可以通过在连接函数前面使用“@”符号的连接来忽略警告(您应该)。 (这比忽略所有错误更优雅)。
$conn = @odbc_connect($odbc_driver, DB_SERVER_USERNAME,DB_SERVER_PASSWORD); // Error returned here!
编辑:
一个很好的方法是使用 html 元重定向:
if ($conn !== false) {
return $conn;
} else{
echo '<html><head><meta http-equiv="refresh" content="5;url=/logout.php" /></head><body>Could not create a connection, redirecting in 5 seconds.</body></html>';
exit();
}
我试图在数据库连接失败时重定向到注销页面。我该怎么做?它总是显示错误消息,但不是我指定的错误消息。感谢帮助,提前致谢。
理查德
代码:
function ms_connect() {
// Create connection
// Microsoft Access
$db_source = DB_SERVER;
$db_system = DB_SYSTEM_SEC;
$odbc_driver = "driver={microsoft access driver (*.mdb)};dbq=" . $db_source . ";systemdb=" . $db_system;
$conn = odbc_connect($odbc_driver, DB_SERVER_USERNAME,DB_SERVER_PASSWORD); // Error returned here!
if ($conn) {
return $conn;
} else{
exit("Connection could not be established.");
header ("Location: /logout.php");
}
}
不显示"Connection could..."
error shown
PHP Warning: odbc_connect(): SQL error: [Microsoft][ODBC Microsoft Access Driver] Not a valid account name or password., SQL state 08004 in SQLConnect in C:\inetpub\wwwroot\functions\functions.php on line 11
您正在退出,这将在重定向之前终止脚本。 如果需要,您可以将错误消息作为获取参数传递并显示在您的页面上。
您的代码应如下所示:
if ($conn) {
return $conn;
} else{
header ("Location: /logout.php?error=Connection+could+not+be+established.");
}
此外,如果您想隐藏警告,只需添加:
error_reporting(0);
ini_set('display_errors', 'Off');
您看到的警告是由 odbc_connect
函数触发的,虽然奇怪的是没有打印 exit
字符串,但由于退出阻止,您的重定向不起作用并不奇怪它不会被执行。
尝试:
if ($conn !== false) {
return $conn;
} else{
header ("Location: /logout.php");
exit();//just in case
}
您可以通过在连接函数前面使用“@”符号的连接来忽略警告(您应该)。 (这比忽略所有错误更优雅)。
$conn = @odbc_connect($odbc_driver, DB_SERVER_USERNAME,DB_SERVER_PASSWORD); // Error returned here!
编辑: 一个很好的方法是使用 html 元重定向:
if ($conn !== false) {
return $conn;
} else{
echo '<html><head><meta http-equiv="refresh" content="5;url=/logout.php" /></head><body>Could not create a connection, redirecting in 5 seconds.</body></html>';
exit();
}