2013-09-21 3 views
1

Я пытаюсь принести старый сценарий, который был зашифрован и закрыт для жизни, но я не лучший на php, но практика делает префекта.PHP Замечание: Неопределенная переменная

Я только что расшифровал его и пошел, хотя процесс установки и я получаю PHP Notifications неопределенной переменной.

[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

Если нет ошибок, '$ dberror' никогда не будет определяться. – Aleph

ответ

5

Это потому что, если ошибка не возникает, $dberror никогда не определяется.

if (!$dberror) { 

должно быть:

if (!isset($dberror)) { 

ИЛИ

Добавить это в верхней части страницы (рекомендуется):

$dberror = false; 
0

Переменная $dberror не была определена прежде, чем это было используется в вашем заявлении «IF».

Сценарий не имеет информации о $dberror, прежде чем он сможет проверить наличие if(!$dberror). Кажется бессмысленным проверить, имеет ли переменная какое-либо значение, не объявляемое или ранее не объявленное.

Если это то, что вы все еще хотите, вы можете проверить, если переменная объявлена ​​на всех, прежде чем вы можете проверить, если это имеет значение, используя isset

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

}

Смежные вопросы