From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Message-ID: <41FF13E7.1090705@diamonds.ru> Date: Tue, 01 Feb 2005 08:30:15 +0300 From: Evgeniy Kobzev User-Agent: Mozilla Thunderbird 1.0 (Windows/20041206) X-Accept-Language: ru-ru, ru MIME-Version: 1.0 To: combr@vesna.ru, ALT Linux Sisyphus discussion list Subject: Re: [sisyphus] php + ftreetds + mssql References: <200501311302.23928.combr@vesna.ru> <200501311646.09596.combr@vesna.ru> <41FE2F74.7040006@altlinux.ru> <200501311729.22593.combr@vesna.ru> In-Reply-To: <200501311729.22593.combr@vesna.ru> Content-Type: text/plain; charset=KOI8-R; format=flowed Content-Transfer-Encoding: 8bit X-Virus-Scanned: by amavisd-new at diamonds.ru Cc: X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 01 Feb 2005 05:30:08 -0000 Archived-At: List-Archive: 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; }