我理解这个问题很多,但由于修复是情境化的,我问的是这个问题。
错误: 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 ,然后将您想要的任何内容放在其他字段中,您将收到相同的错误。
我成功地在本地计算机上安装了脚本而没有任何错误,所以希望有人可以帮我解决这个问题。
答案 0 :(得分:0)
“使用密码:否”行告诉我你的$ password变量是空的。
然后我查看了您的代码,似乎表单上的属性名称和验证模型不匹配。在您的表单上(使用您提供的链接),我看到:name =“InstallForm [password]”,但在您的验证模型中,此代码如下所示:$ userPassword = base64_encode($ _ POST ['InstallForm'] ['userPassword'] );看得更近,你会发现“密码”与“userPassword”不匹配。
还有一些其他不匹配的属性。您的表单有:name =“InstallForm [userName]”。但是你的验证模型有:$ name = $ _POST ['InstallForm'] ['name'];
此外,属性“compnyName”似乎拼写错误,但似乎您在代码中拼错了它,因此可能不会导致任何问题。