1

我正在尝试使一个已加密并关闭的旧脚本重新焕发生机,但我不是 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';
      }
  }

有人可以告诉我有什么问题吗。

4

2 回答 2

5

这是因为如果没有发生错误,$dberror则永远不会定义。

if (!$dberror) {

应该:

if (!isset($dberror)) {

或者

将此添加到页面顶部(推荐):

$dberror = false;
于 2013-09-21T16:13:02.333 回答
0

该变量$dberror在您的“IF”语句中使用之前未定义。

该脚本$dberror在检查if(!$dberror). 检查一个变量是否有任何值而没有被声明或赋值似乎是没有意义的。

如果这仍然是您想要的,您可以检查变量是否已声明,然后再检查它是否具有使用值isset

if(isset($dberror)){
  if(!$dberror){
  // your stuff
}

}

于 2013-09-21T16:15:55.463 回答