1

この質問がよく聞かれることは理解していますが、修正は状況に応じたものであるため、この質問をしています。

エラー: mysql_connect(): ユーザー 'username'@'boscustweb0406.eigbox.net' のアクセスが拒否されました (パスワードを使用: NO)

共有サーバーにインストールしたいスクリプトがあります。スクリプトはそれ自体でデータベースを作成できますが、このサーバーでそれを行うことは許可されていないため、手動で作成する必要があります。

エラーページで次の行が強調表示されます。

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を使用し、他のフィールドに必要なものを入力すると、同じエラーが発生します。

エラーなしでローカル マシンにスクリプトを正常にインストールできました。

4

1 に答える 1

0

「using password: NO」行は、 $password 変数が空であることを示しています。

次に、コードを調べたところ、フォームの属性名と検証モデルが一致していないようです。あなたのフォーム (あなたが提供したリンクを使用) では、次のように表示されます: name="InstallForm[password]" が、検証モデルでは、このコードは次のようになります: $userPassword = base64_encode($_POST['InstallForm']['userPassword'] ); もう少しよく見ると、「password」が「userPassword」と一致していないことがわかります。

他にもいくつかの一致しない属性があります。あなたのフォームは: name="InstallForm[userName]" です。ただし、検証モデルには次のものがあります。 $name = $_POST['InstallForm']['name'];

さらに、属性「compnyName」のスペルが間違っているようですが、問題が発生しないように、コード全体でスペルを間違っているようです。

于 2013-09-15T08:31:10.053 に答える