[sisyphus] php + ftreetds + mssql
Evgeniy Kobzev
=?iso-8859-1?q?evgenik_=CE=C1_diamonds=2Eru?=
Вт Фев 1 08:30:15 MSK 2005
Mike Lykov пишет:
> В сообщении от Понедельник 31 Январь 2005 17:15 Alexey Gladkov написал:
>
> $db_name="Lite"; //база данных
> $connection=mssql_connect("server","user","pass") or die("невозможно
> подключится к серверу");
> $db=mssql_select_db("$db_name",$connection) or die ("невозможно выбрать
> базу");
> $sql="select code_ceh, name_f, password from first_tab where
> name_f='$login' and password='$userpassword'";
> $result=mssql_query($sql,$connection)or die ("невозможно выполнить
> запрос");
> while ($row=mssql_fetch_array ($result))
> { $login1 = $row['name_f'];
> $password1 = $row['password'];
> $code_ceh=$row['code_ceh'];
> }
> if($login1!=$login){echo "Неверный логин или пароль!";
echo "|".$login."|\n";
echo "|".$login1."|\n";
> exit;}
>
> вот такой кусок (писал не я).
>
> на любые данные все время говорит "неверный логин" ;) (т.е. к серверу
> подсоединяется, базу выбирает, запрос делает, а вот что оттуда возвращается -
> непонятно).
Скорее всего дело в правых пробелах.
Допустим поле в таблице определено как CHAR(10), и в нем записано слово
mylogin, то в переменной $login1 будет "mylogin" плюс три пробела.
С типом VARCHAR скорее всего будет по другому, но проверить нет
возможности, это чистая теория.
Сравнивать по идее нужно как то вот так:
while ($row = mssql_fetch_array ($result)) {
$login1 = rtrim($row['name_f'];
$password1 = $row['password'];
$code_ceh=$row['code_ceh'];
}
// Хотя ещё не понятно, как там вверху $login обрабатывали
if ($login1 != $login) {
echo "Неверный логин или пароль!";
exit;
}
Подробная информация о списке рассылки Sisyphus