k01dun
Новичок
Всем привет!
Помогите пожалуйста, решить головоломку!
есть такая вот таблица:
есть процедура в ней:
регистрируется пользователь так:
пытаюсь авторизовать пользователя:
но всегда получаю 0..
данные выглядят странным образом:
условия:
процедуру менять нельзя;
таблицу менять нельзя;
нужно как-то получить данные в правильном виде чтоб правильно выполнился запрос...
уже всю головву сломал... =\
после коннекта выставнено:
Помогите пожалуйста, решить головоломку!
есть такая вот таблица:
PHP:
CREATE TABLE IF NOT EXISTS `users` (
`ID` int(11) NOT NULL DEFAULT '0',
`name` varchar(32) NOT NULL DEFAULT '',
`passwd` varchar(64) NOT NULL,
PRIMARY KEY (`ID`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
PHP:
DROP PROCEDURE IF EXISTS `adduser`;
DELIMITER ;;
CREATE DEFINER=`root`@`localhost` PROCEDURE `adduser`(
in name1 VARCHAR(64),
in passwd1 VARCHAR(64)
)
BEGIN
DECLARE idtemp INTEGER;
SELECT IFNULL(MAX(id), 16) + 16 INTO idtemp FROM users;
INSERT INTO users (id,name,passwd) VALUES( idtemp, name1, passwd1);
END
;;
DELIMITER ;
PHP:
$Salt = $Login.$Pass;
$Salt = md5($Salt);
$Salt = "0x".$Salt;
MySQL_Query("call adduser('$Login', $Salt)");
PHP:
if (isset($_POST['username']))
{
$Login = $_POST['username'];
$Pass = $_POST['passwd'];
$Salt = $Login.$Pass;
$Salt = md5($Salt);
$Salt = "0x".$Salt;
$r=MySQL_Query("select * from users WHERE name='$Login' AND passwd='$Salt'");
$n=mysql_numrows($r);
if($n == 1)
{
//auth code
}
}
данные выглядят странным образом:
PHP:
INSERT INTO `users` (`ID`, `name`, `passwd`) VALUES(160, 'testuser', '„?s? ye‰T? ?')
процедуру менять нельзя;
таблицу менять нельзя;
нужно как-то получить данные в правильном виде чтоб правильно выполнился запрос...
уже всю головву сломал... =\
после коннекта выставнено:
PHP:
mysql_query("SET CHARACTER SET utf8_general_ci");
mysql_query("SET NAMES utf8_general_ci");
Последнее редактирование: