убрал ALTER DATABASE `base` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_cs;
Вот значит вопрос всеравно имеет место:
Случай номер один:
Создаю базу используя операторы:
DROP DATABASE IF EXISTS base;
CREATE DATABASE base;
USE base;
DROP TABLE IF EXISTS users;
CREATE TABLE users
(
username CHAR(16) NOT NULL PRIMARY KEY,
passwd CHAR(16) NOT NULL
);
INSERT INTO users(username, passwd)
VALUES(\'username\', \'password\');
GRANT SELECT, INSERT, UPDATE, DELETE
ON base.*
TO db_login@localhost IDENTIFIED BY \'db_password\';
Сценарий такой:
<?php
$username = empty($_POST[\'username\']) ?null: $_POST[\'username\'];
$passwd = empty($_POST[\'passwd\']) ?null: $_POST[\'passwd\'];
$action_keeper = empty($_POST[\'action_keeper\']) ?null: $_POST[\'action_keeper\'];
function display_form()
{
?>
<form action="" method="post">
<input type="hidden" name="action_keeper" value="login">
Имя пользователя <input type="text" name="username" size="24" maxlength="16" value="">
Пароль <input type="password" name="passwd" size="24" maxlength="16" value="">
<input type="submit" value="Войти">
</form>
<?php
}
if ($action_keeper != \'login\')
{
display_form();
}
else
{
if (!$username or !$passwd)
{
print \'Вы ввели не все необходимые для авторизации данные.\';
display_form();
}
else
{
$db_conn = mysql_connect(\'localhost\', \'hFdb48H3La5HJf1k\', \'q2hj56rG6RDstx7p\');
mysql_select_db(\'ion\');
$query = "select * from users where username=\'$username\' and passwd=\'$passwd\'";
$result = mysql_query($query);
if(!$result)
{
print \'Невозможно выполнить запрос к базе данных.\';
display_form();
exit;
}
if (mysql_num_rows($result) > 0)
print \'Вы вошли
Скрытая информация.\';
else
{
print \'Вы не вошли
\';
display_form();
}
}
}
?>
Ввожу нужную информацию - все работает, ввожу неправильно или не ввожу вовсе - выдает ошибки, которые нужно, типа там "не ввели"/"не вошли"... одним словом все хорошо, только вот пароль в базе данных храниться в незашифрованом виде.
Пытаемся его там зашифровать (Случай номер два):
Создаю базу используя операторы:
DROP DATABASE IF EXISTS base;
CREATE DATABASE base;
USE base;
DROP TABLE IF EXISTS users;
CREATE TABLE users
(
username CHAR(16) NOT NULL PRIMARY KEY,
passwd CHAR(16) NOT NULL
);
INSERT INTO users(username, passwd)
VALUES(\'username\', password(\'password\'));
GRANT SELECT, INSERT, UPDATE, DELETE
ON base.*
TO db_login@localhost IDENTIFIED BY \'db_password\';
Сценарий такой:
<?php
$username = empty($_POST[\'username\']) ?null: $_POST[\'username\'];
$passwd = empty($_POST[\'passwd\']) ?null: $_POST[\'passwd\'];
$action_keeper = empty($_POST[\'action_keeper\']) ?null: $_POST[\'action_keeper\'];
function display_form()
{
?>
<form action="" method="post">
<input type="hidden" name="action_keeper" value="login">
Имя пользователя <input type="text" name="username" size="24" maxlength="16" value="">
Пароль <input type="password" name="passwd" size="24" maxlength="16" value="">
<input type="submit" value="Войти">
</form>
<?php
}
if ($action_keeper != \'login\')
{
display_form();
}
else
{
if (!$username or !$passwd)
{
print \'Вы ввели не все необходимые для авторизации данные.\';
display_form();
}
else
{
$db_conn = mysql_connect(\'localhost\', \'hFdb48H3La5HJf1k\', \'q2hj56rG6RDstx7p\');
mysql_select_db(\'ion\');
$query = "select * from users where username=\'$username\' and passwd=password(\'$passwd\')";
$result = mysql_query($query);
if(!$result)
{
print \'Невозможно выполнить запрос к базе данных.\';
display_form();
exit;
}
if (mysql_num_rows($result) > 0)
print \'Вы вошли
Скрытая информация.\';
else
{
print \'Вы не вошли
\';
display_form();
}
}
}
?>
Неработает, пишет все время что не вошли.
Ввожу запрос "select * from users where username=\'username\' and passwd=password(\'password\');" напрямую, через MySQL монитор.
Ответ MySQL: Empty set (0.00 sec)
Люди вы же умные! подскажите! ж))))
А то я уже совсем ничего не понимаю...