1

我知道这个问题被问了很多,但由于修复是情境性的,我问这个问题。

错误:mysql_connect():用户“用户名”@“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,然后在其他字段中输入您想要的任何其他内容,您将得到相同的错误。

我成功地将脚本安装在我的本地机器上,没有任何错误,所以希望这里的人可以帮助我解决这个问题。

4

1 回答 1

0

“使用密码:否”行告诉我您的 $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 回答