我正在尝试将一个加密并关闭的旧脚本恢复生机,但我不是最好的PHP,但是练习会让人感到满意。
我刚刚对其进行了解码并完成了安装过程,并且我收到了PHP Notices Undefined变量。
[21-Sep-2013 17:51:56 Europe/Berlin] PHP Notice: Undefined variable: dberror in C:\xampp\htdocs\install\step1.php on line 7
[21-Sep-2013 17:51:56 Europe/Berlin] PHP Notice: Undefined variable: dberror in C:\xampp\htdocs\install\step1.php on line 10
<?php
if (isset($setdb)) {
if (( ( ( $dbhost && $dbuser ) && $dbpass ) && $dbname )) {
( @mysql_connect( $dbhost, $dbuser, $dbpass ) || $dberror = 'Can\'t connect to database server' );
if (!$dberror) {
( @mysql_select_db( $dbname ) || $dberror = 'Can\'t select database' );
if (!$dberror) {
@session_register( 'dbhost' );
@session_register( 'dbuser' );
@session_register( 'dbpass' );
@session_register( 'dbname' );
$_SESSION['dbhost'] = $dbhost;
$_SESSION['dbuser'] = $dbuser;
$_SESSION['dbpass'] = $dbpass;
$_SESSION['dbname'] = $dbname;
print '<script> window.location=\'index.php?menu=step2\'; </script>';
}
}
}
else {
$dberror = 'All fields are required';
}
}
请问有人告诉我有什么问题。
答案 0 :(得分:5)
这是因为如果没有发生错误,则永远不会定义$dberror
。
if (!$dberror) {
应该是:
if (!isset($dberror)) {
OR
将其添加到页面顶部(推荐):
$dberror = false;
答案 1 :(得分:0)
变量$dberror
在用于“IF”语句之前未定义。
在检查$dberror
之前,该脚本没有关于if(!$dberror)
的任何信息。检查变量是否具有任何值而没有被声明或分配之前似乎毫无意义。
如果这是您仍然想要的,您可以检查变量是否完全被声明,然后您可以使用isset
检查它是否具有值
if(isset($dberror)){
if(!$dberror){
// your stuff
}
}