PHP注意:未定义的变量

joh*_*ams 1 php mysql session

我正在尝试将一个加密的旧脚本恢复生命,但我不是最好的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';
      }
  }
Run Code Online (Sandbox Code Playgroud)

有人能告诉我有什么问题吗.

Joh*_*nde 5

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

if (!$dberror) {
Run Code Online (Sandbox Code Playgroud)

应该:

if (!isset($dberror)) {
Run Code Online (Sandbox Code Playgroud)

要么

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

$dberror = false;
Run Code Online (Sandbox Code Playgroud)