mysql_connect(): доступ запрещен для пользователя 'user'@'host' (с использованием пароля: НЕТ)

Я понимаю, что этот вопрос часто задают, но, поскольку исправление носит ситуационный характер, я задаю этот вопрос.

Ошибка: mysql_connect (): доступ запрещен для пользователя 'username'@'boscustweb0406.eigbox.net' (используя пароль: НЕТ)

Итак, у меня есть скрипт, который я хочу установить на свой общий сервер. Сценарий может создать базу данных самостоятельно, но мне не разрешено делать это на этом сервере, поэтому я должен создать ее вручную.

Это выделяет эту строку на странице ошибок:

67             $userName = $this->userName;
68             $password = $this->password;
69             $databaseName = $this->databaseName;
70             
71             /*$connection = new CDbConnection($localhost,$userName,$password);
72             $connection->active=true;
73             $sql = "SHOW DATABASES LIKE $databaseName";
74             $command = $connection->createCommand($sql);
75             $rowCount=$command->execute();  */
76             
77             //$command = $connection->createCommand($sql);
78             
79             $con = mysql_connect($localhost,$userName,$password);
80             if (!$con)
81             {
82                 $this->addError('databaseName','Database already exist');
83             }
84             else 
85             {
86                     if(mysql_select_db($databaseName))
87                     {
88                         $this->addError('databaseName','Database already exist');
89                         return false;
90                     }
91             }

Я проверил и перепроверил все детали, и они верны.

Вот моя модель проверки:

50             $userPassword = base64_encode($_POST['InstallForm']['userPassword']);
51             $name = $_POST['InstallForm']['name'];
52             $compnyName = $_POST['InstallForm']['compnyName'];
53             $language = $_POST['InstallForm']['language'];
54             $timeZone = $_POST['InstallForm']['timeZone'];
55             if($model->validate())
56             {
57                 $con = mysql_connect($hostName,$userName,$password);
58                 $dat = "CREATE database $databaseName";
59                 
60                 $controlVal = '$controllername';

Вы можете повторить проблему здесь: http://staging-sendy.elionweb.com/

Используйте хост elionweb.ipagemysql.com, затем поместите все остальные данные в другие поля, и вы получите ту же ошибку.

Я успешно установил скрипт на моей локальной машине без каких-либо ошибок, так что, надеюсь, кто-то здесь может помочь мне разобраться в этом.

1 ответ

Решение

Строка "using password: NO" говорит мне, что ваша переменная $ password пуста.

Затем я изучил ваш код, и кажется, что имена атрибутов в форме и вашей модели проверки не совпадают. В вашей форме (используя предоставленную вами ссылку) я вижу: name = "InstallForm [пароль]", но в вашей модели проверки этот код выглядит следующим образом: $userPassword = base64_encode($_POST['InstallForm']['userPassword']); Посмотрите немного ближе, и вы увидите, что "пароль" не совпадает с "userPassword".

Есть также несколько других несовпадающих атрибутов. Ваша форма имеет: name="InstallForm[userName]". Но ваша модель проверки имеет: $name = $_POST['InstallForm']['name'];

Кроме того, атрибут "compnyName", похоже, написан с ошибкой, но кажется, что вы неправильно написали его в коде, так что это может не вызвать никаких проблем.

Другие вопросы по тегам