сравнение строк в mysql 4.1.7

Mefisto

Guest
сравнение строк в mysql 4.1.7

дано:

1. скрипт, проверяющий пароль

PHP:
session_start();
$pass1=md5($pass);
$summary=mysql_query("SELECT login, pass FROM c_pass WHERE login='$login' AND pass='$pass1' LIMIT 1");
$num_r=mysql_num_rows($summary);
if (empty($num_r)){
header("Location: autorization.php");
}
else{
session_register("login","pass");
}
2. таблица mysql

--
-- Структура таблицы `c_pass`
--

CREATE TABLE `c_pass` (
`type` text NOT NULL,
`login` text NOT NULL,
`pass` text NOT NULL
) TYPE=MyISAM;

--
-- Дамп данных таблицы `c_pass`
--

INSERT INTO `c_pass` VALUES ('admin', 'webmaster', '6a74ca0ff64ab9226be55746efbc80cf');
INSERT INTO `c_pass` VALUES ('admin', '1', 'c4ca4238a0b923820dcc509a6f75849b');
вопрос:

на сервере mysql 3.23 авторизаия проходит нормальн, т.е. строки сравниваются корректно

на сервере mysql 4.1.7 выкидывает опять к окну авторизации.

что делать?
 

Mefisto

Guest
в скрипте нет ошибок.
просто в mysql 3.23 запрос выдает результат, а в mysql 4.1.7 запрос пустой.
при одинаковых вводимых данных
 

Кром

Новичок
>в скрипте нет ошибок.

Notice, это тоже ошибки.
Почитай все таки по ссылке.
 

Mefisto

Guest
да 8 год я программлю... ссылка для чайников

подозреваю что проблема в криво настроенном сервере с mysql 4.1.7 и кодировками mysql... Бьюсь-бьюсь, все бестолку

а на локалке и на сервере с mysql 3.23 все работает...
 

Кром

Новичок
Mefisto, про 8 лет ты гонишь. Наверное ты программировал себя на удачу в бизнесе или еще на что, но уж точно не на умение отлаживать программы.

>ссылка для чайников

И чего такого? Ты чайник и есть.
Там все что надо, написано.
 

Mefisto

Guest
тебе ж говорят, точная копия этого скрипта на сервере с mysql 3.23 работает. как работала много лет.

а вот на отдельно взятом сервере с mysql 4.1.7 - не работает.
вернее работает, но запрос возвращается в ноль рядов

при error_reporting=E_ALL ошибки не выдается
mysql_error() тоже молчит
 

Кром

Новичок
>тебе ж говорят, точная копия этого скрипта на сервере с mysql 3.23 работает. как работала много лет.

Это я прекрасно понял, когда ты открыл тему. Повторять не обязательно. Я тебе пытаюсь объяснить, что не надо тупо смотреть на эти пять строчек, а попытаться самому понять, почему это происходит. Но видимо, ты настолько ленив, что не в состоянии дописать пару строчек в свой скрипт. Придется сделать это за тебя.

PHP:
<?
ini_set('display_errors','On');
error_reporting(E_ALL);
//session_start(); 
echo $login.'<br />';
echo $pass.'<br />';
$pass1=md5($pass); 
$sql = "SELECT login, pass FROM c_pass WHERE login='$login' AND pass='$pass1' LIMIT 1";
echo  $sql.'<br />';
$summary=mysql_query($sql); 
echo mysql_error().'<br />';
$num_r=mysql_num_rows($summary); 
echo $num_r.'<br />';
/*
if (empty($num_r)){ 
header("Location: autorization.php"); 
} 
else{ 
session_register("login","pass"); 
}
*/
?>
Весь вывод скопируй сюда, если вопросы еще останутся.
 

Mefisto

Guest
проверил:
если указываю пару логин-пароль, которые точно есть в таблице (предварительно вывожу содержимое таблицы для проверки) - возвращается запрос с 0 строками
 

Кром

Новичок
Скопируй сюда, весь вывод указанного выше скрипта и дамп таблицы, - структуру и данные (строку где указан пароль).
 
Сверху