Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
PHP 5. На примерах. Авторы: Кузнецов М.В., Симдянов И.В., Голышев С.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум MySQL

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Помогите разобраться с кодом!!!
 
 автор: ares44   (27.03.2005 в 14:01)   письмо автору
 
 


<?


if (empty($HTTP_POST_VARS['login']) and empty($HTTP_POST_VARS['password'])) //
{



?>

<html>
<body>
   <form method="post" action="engine.php">
   <table>
    <tr>
        <td>Login:</td>
        <td><input type="text" name="login"></td>
    </tr>
    <tr>
        <td>Password:</td>
        <td><input type="password" name="password"></td>
    </tr>
    <tr>
        <td colspan=2><input type="submit" value="Вход/регистрация"></td>
        </tr>
   </table></form>

</body>
</html>

<?
}

else

{

include 
"config.php"

$login=($HTTP_POST_VARS['login']);
$password=($HTTP_POST_VARS['password']);



$select_row="SELECT * FROM admin"
$query=mysql_query($select_row); 
$count_row=mysql_num_rows($query);

if(
$count_row==0
 {

$admin=mysql_query ("insert into admin values ('$login','$password');");



 }

else 
 {
/**** С этого места возникает проблема***/
$admin1=mysql_query("select * from admin where login='$login' and pass='$password';");

if (
$admin1)
  {
echo(
"ВЫ ПРИНЯТЫ");
  }
else
  {
echo(
"ВЫ НЕ ПРИНЯТЫ");

  }
 }
}

?>


В файле config.php рописано подключение и выбор БД. Скрипт регистрирует нового админа нормально, но если заходишь второй раз то скрипт идет по пути "ВЫ ПРИНЯТЫ" в любом случае какой-бы логин и пароль я не вводил. В чем проблема?

   
 
 автор: Akira   (27.03.2005 в 15:29)   письмо автору
 
   для: ares44   (27.03.2005 в 14:01)
 


$admin1=mysql_query("select * from admin where login='$login' and pass='$password';"); 

if ($admin1) 
  { 
echo("ВЫ ПРИНЯТЫ"); 
  } 
else 
  { 
echo("ВЫ НЕ ПРИНЯТЫ"); 

  }

Тут дело вот в чем.
$admin1=mysql_query("select * from admin where login='$login' and pass='$password';"); Будет равен true при правельном выполнение запроса =) т.е. есть в таблице данные о пользователе или нет результат все равно будет true ? ведь запрос выполнен.
изменить следует так

$admin1=mysql_fetch_array(mysql_query("select count(*) from admin where login='$login' and pass='$password'")); 

if ($admin1["count(*)"] > 0) 
  { 
echo("ВЫ ПРИНЯТЫ"); 
  } 
else 
  { 
echo("ВЫ НЕ ПРИНЯТЫ"); 

  }

   
 
 автор: evgen_17   (30.03.2005 в 19:19)   письмо автору
 
   для: Akira   (27.03.2005 в 15:29)
 

Или вот так:

<?
admin1
=mysql_query("select * from admin where login='$login' and pass='$password'");
if(
mysql_num_rows($admin1) != 0)
 {
cho("ВЫ ПРИНЯТЫ"); 
  } 
else 
  { 
echo(
"ВЫ НЕ ПРИНЯТЫ"); 
  }
?>

   
 
 автор: RV   (01.04.2005 в 09:27)   письмо автору
 
   для: evgen_17   (30.03.2005 в 19:19)
 

а если так

<?
$query 
=  "SELECT password FROM users WHERE login='$login'  AND pass = '$pass'";
connect(); // соединение с бд
$check mysql_query($query);
if (
mysql_num_rows($check))
{
Вы приняты
}
else
{
вы не приняты.
}
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования