我使用的是Ubuntu 10.10,我从synaptic包管理器安装了phpmyadmin。
但是我没有在mysql root用户和phpmyadmin用户上设置任何密码。
后来,我尝试使用用户root登录到phpmyadmin,但没有密码,出现错误
Login without a password is forbidden
by configuration (see AllowNoPassword)
并且mysql中的chage密码不起作用,我尝试在mysql数据库的user表的密码字段中使用password('pma')更新密码,但仍然无法从控制台登录。
如何更改mysql
所以我用php和mysql数据库做了一个非常粗糙的登录表单,我设置(或者我想是这样)重定向到带有“loginFailed=true&reason=password”的登录页面,我试着让它重定向回登录页面,并显示一个错误的密码信息,但是它只是重定向到主目录页面。
我在这里做错了什么?诚然,由于我缺乏编码知识,我大量借鉴了一些预先存在的代码,但在重定向之前,它确实像预期的那样工作了一段时间。
代码如下:
passwordcheck.php
// Connect to server and select databse.
mysql_connect("$host", "
对于我的网站,我使用这个MySQL函数将我的用户密码存储在数据库中:
ENCRYPT('password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16)))
现在,为了让我的用户登录,我需要检查他们提供的密码和数据库中的值。
我假设它会像下面这样简单:
SELECT user FROM users WHERE id = $id AND password = ENCRYPT('$password', CONCAT('$6$', SUBSTRING(SHA(RAND()), -16)))
然而,
我在php中创建了一个登录页面。对于数据库,我在这里使用了mysql。如果我想登录,它总是显示消息用户名密码错误的...but,已经存在用户名和密码。所以我找不出问题出在哪里。
这是我的登录设计页面。
下面是checklogin.php代码..
// userName and password sent from form
$myusername=$_POST['username'];
$mypassword=$_POST['pwd'];
// To protect MySQL injection (more detail about MySQL injec