下面是我的代码。求指教。。问什么取不到username和password的值的。我都没输入值他就自动判断了、、、是不是我没取到值<SCRIPT language=javascript>
function Checklogin()
{
if (myform.username.value=="")
{
alert("请填写登录名");
myform.username.focus();
return false;
}
if (myform.password.value=="")
{
alert("密码不能为空");
myform.password.focus();
return false;
}
}
</SCRIPT>
<?php include("conn.php");

$username=$_POST['username'];
$password=$_POST['password'];//记录集判断
$sql = "SELECT * FROM admin
         where username='$username' and password='$password'
 ";
$result = mysql_query($sql)or die ($sql.":记录集创建错误!");
if($row= mysql_fetch_array($result))//在记录集里匹配
{
echo "登录成功!";

echo '<script language="javascript">window.location="index.php";</script>';}else{
echo "登录失败!";
echo '<script language="javascript">window.location="login.php";</script>';

}

?>


<div class="login_box">

<a href="#" class="login"></a>
<a href="#" class="reg"></a>
<form action="login.php" name="myform" method="post" onsubmit="return Checklogin();">

<input type="text" class="user_inp" name="username" />
<input type="password" class="pw_inp" name="password" />
<input type="submit" value=" " name="submit" class="login_btn" />
<input type="checkbox" name="" id="" class="checkbox" />
</div>


</form>

解决方案 »

  1.   

    你那个js代码,是不是验证成功的话,要返回真 return true;
      

  2.   

    是在js后面加else{ return true;}吗
      

  3.   

    不行哦,现在的问题是一进来就走php那里的,都不=我取值就判断了。。
      

  4.   

    逻辑问题,不管有没有提交表单,PHP都会去执行入库操作。所以你要加一个判断
    例如
    if( $_SERVER['REQUEST_METHOD'] === 'POST' ){
        // 如果是携带表单数据的请求
        include("conn.php");
        // ...
    }
      

  5.   

    怎么看上去跟昨天那个人的问题一样?
    把提交后的判断和提交写在同一页?
    看window.location,这一页应该不是login.php吧?
      

  6.   

    哎。。我加了一层这个判断了。但是输入用户名和密码无论是对还是错的什么都不显示了啊。好像都不执行sql了
      

  7.   

    http://bbs.csdn.net/topics/390356754请看这里,理解一下提交操作的顺序,以及客户端和服务器端的问题另外,onsubmit现在大小写不敏感了?我记得以前是区分大小写的,好久没接触js……
      

  8.   

    问题是我能取到只,现在问题就死SQL那里了$password=$_POST['password'];echo $username;//记录集判断
    /* $sql = "SELECT * FROM admin
             where username='$username' and password='$password'";
    $query = mysql_query($sql)or die ($sql.":记录集创建错误!");if($row= mysql_fetch_array($query))//在记录集里匹配
    {
    echo "登录成功!";
    echo '<script language="javascript">window.location="index.php";</script>';}else{
    echo "登录失败!";
    echo '<script language="javascript">window.location="login.php";</script>';

    } */
    能echo 出$username的值
      

  9.   

    那为何你的sql有换行?数据库不熟,等等其他人的答案 
      

  10.   

    我打印了#row的值,发现是一直为false的。原因是我都还输入值就执行了。现在的问题是:为什么我没输入值就自动执行判断了
      

  11.   

    还是把我的代码全是附上吧
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
    <head>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
    <title>会员登录</title>
    <link rel="stylesheet" type="text/css" href="css/style.css" media="all" />
    </head>
    <body>


    <SCRIPT language=javascript>
    function Checklogin()
    {
    if (myform.username.value=="")
    {
    alert("请填写登录名");
    myform.username.focus();
    return false;
    }
    if (myform.password.value=="")
    {
    alert("密码不能为空");
    myform.password.focus();
    return false;
    }}
    </SCRIPT><?phpinclude("conn.php");

    $username=$_POST['username'];
    $password=$_POST['password'];//记录集判断
    $sql = "SELECT * FROM admin where username='$username' and password='$password'";
    $query = mysql_query($sql)or die ($sql.":记录集创建错误!");if($row= mysql_fetch_array($query))//在记录集里匹配,为什么我还没在表单里输入值就判断了呢。如果是这样的话$的值肯定为false
    {
    echo "登录成功!";
    echo '<script language="javascript">window.location="index.php";</script>';}else{
    //echo var_dump($row);$row的值一直为false,
    echo "登录失败!";
    echo '<script language="javascript">window.location="login.php";</script>';

    }
    ?>


    <div class="login_box">

    <a href="#" class="login"></a>
    <a href="#" class="reg"></a>
    <form action="login.php" name="myform" method="post" onsubmit="return Checklogin();">

    <input type="text" class="user_inp" name="username" />
    <input type="password" class="pw_inp" name="password" />
    <input type="submit" value=" " name="submit" class="login_btn" />
    <input type="checkbox" name="" id="" class="checkbox" />
    </div>


    </form>

    </body>
    </html>
      

  12.   

    $_POST从那里获得呢?不想再重复口水了,你还是去看#9给的链接吧
    你完全没搞清服务器端和客户端的关系php的实质是生成一个html(深入一点的理解是字符串)输出到客户端的,所以到客户端的时候,php已经结束了,只剩下html
      

  13.   

    从头到尾都没有看到你贴出一丝php提供的错误信息!
    1、修改 php.ini
    error_reporting = E_ALL
    display_errors = On
    修改后需重启web服务2、把形如 die ($sql.":记录集创建错误!") 的改为
    die (mysql_error());3、运行后贴出所有的完整的错误信息
      

  14.   

    我打印了#row的值,发现是一直为false的。原因是我都还输入值就执行了。现在的问题是:为什么我没输入值就自动执行判断了
      

  15.   

    sql出错了,认真检查下你的sql语句,还有你那个乱码问题是编码问题,建议你在html页面的header中加入<meta http-equiv="Content-Type" content="text/html; charset=utf-8">这句,意思是限定页面的字符编码为utf8,数据库里边字符编码也统一用utf8,最后再php页面开头加入header("Content-type:text/html;charset=utf-8")这句,这样字符编码就统一了,应该不会出现乱码的情况。关于编码的具体细节可以到百度搜索 php乱码之类的关键词进行学习。