基本上没什么问题.
$query="use gp";
$res=@mysql_query($query,$handler);
PHP提供了专门的选择数据库的函数,用mysql_select_db().$query="select login from users where login='$login';";
你为何不直接带上密码去找?如果找到就说明有符合的,如果没找到就说明不对.就可以了.

解决方案 »

  1.   

    可是,我在输入后,不管我输入什么,运行的结果,老是
    please input login or password correctly
    不论我的用户名和密码错,还是对,这是怎么回事,
    声名,我的数据库连接,都很好
      

  2.   

    if ($login==" "||$password==" ")
    {
      print"please input login or password correctly";
      exit();
    }
    你所说的运行之后的结果和上面的代码表明你的变量没有传递过来浅妄薄见,望与斟酌
      

  3.   

    楼上说的有道理.特别是当你使用的是PHP的新版本,默认register_global=Off
    你是用表单POST传的吧,用$HTTP_POST_VARS["login"]代替$login,用$HTTP_POST_VARS["password"]代替$password试试
      

  4.   

    是不是把register_global=Off 
    改为register_global=ON就可以了?
      

  5.   

    ft
    刚发现 你写错了SQL
    $query="select login from users where login='$login';";
    你把login给取出来了.if (!strcmp($password,$user[0]))
    结果你拿来和$password进行比较错啦~~~$query="select password from users where login='$login';";应该是这样吧
      

  6.   

    太好,谢谢LeeMaRS(小菜虎_水壶的仇人) ,谢谢大家,问题搞定了
    还有一个小问题,当我的用户名正确,而密码错误时,没有出现
    please input login or password correctly
    而是一片空白,这是什么原因
      

  7.   

    这个问题也很简单.从你的程序结构上分析就知道了:
    你的SQL语句是
    $query="select password from users where login='$login';";
    如果用户名存在,那么下面一句:
    $num=mysql_num_rows($res);
    就会取得1,而进入if循环,这样,你那句输出,就不可能执行得到了.改成这样:
    if (!strcmp($password,$user[0]))
    {
    print 'you are welcome!';
    exit();
    }
    else
    {
      print '密码错误';
      exit();
    }
      

  8.   

    不行,用户名错了,密码对了,也不行,也会出现同样的问题
    我把程序改为
    <?
    if ($login==""||$password=="")
    {
      print"please input login or password correctly";
      exit();
    }
    $handler=@mysql_pconnect('localhost','greenpeople','78167816');
    if ($handler==false)
    {
    print"connect to mysql failed.";
    exit();
    }
    $query="use gp";
    $res=@mysql_query($query,$handler);
    if ($res==false)
    {
    print"switch to\"gp\"database failed";
    exit();
    }
    $query="select password from users where login='$login';";
    $query="select login from users where password='$password';";
    $res=mysql_query($query,$handler);
    $num=mysql_num_rows($res);
    if ($num==1)
    {
    $user=mysql_fetch_row($res);
    if (!strcmp($password,$user[0])||!strcmp($login,$user[0]))
    {
    print "you are welcome!";
    exit();
    }
    }
    else
    print "you please input login or password correctly";?>
      

  9.   

    倒,你的程序可以说是又犯错误了.我帮你改一个,你看看能不能用.<?
    if ($login==""||$password=="")
    {
      print"please input login or password correctly";
      exit();
    }
    $handler=@mysql_pconnect('localhost','greenpeople','78167816');
    if ($handler==false)
    {
    print"connect to mysql failed.";
    exit();
    }
    $query="use gp";
    $res=@mysql_query($query,$handler);
    if ($res==false)
    {
    print"switch to\"gp\"database failed";
    exit();
    }
    // 以下有变化了
    $query="select * from users where login='$login' && password='$password';"; 
    $res=mysql_query($query,$handler);
    $num=mysql_num_rows($res);
    if ($num==1)
      print "you are welcome!";
    else
      print "you please input login or password correctly";?>