1

どの程度のコンテキストを提供できるかわかりません。期限切れの宿題をしようとしたところ、次のエラーが表示されました。単純なログイン ページ、ログイン チェック、ログインの成功と失敗であるはずです。

check.php:

Warning: Wrong parameter count for mysql_query() in /u/students/j/j.d.dancks/public_html/cis231/hw/hw5/check.php on line 11

私は自分が何をしているのか知っていると思っていましたが、そうではないと思います。

コード:

<?php
$good = false;
if(array_key_exists('nick',$_POST)&&array_key_exists('pass',$_POST))
{
    if(isset($_POST['nick'])&&isset($_POST['pass']))
    {
        $con = mysql_connect('localhost','heh','heh');
        mysql_select_db('heh_db',$con);
        $q = mysql_query(sprintf("select * from reg_users where username='%s' and pass='%s'",
        mysql_real_escape_string($_POST['nick']),
        mysql_real_escape_string($_POST['pass'])),$con) or die(mysql_query());
        if(mysql_num_rows($q)==1)
        {
            $good=true;
            $r = mysql_fetch_assoc($q);
            session_start();
            $_SESSION['user'] = $r['username'];
            $_SESSION['lastlogin'] = time();
            mysql_close($con);
            header('loginsuccess.php');
        }
        else
        {
            header('loginfailure.html');
        }
    }
    else
    {
        header('hw5.html');
    }
}
if(!$good)
{
    header('hw5.html');
}
?>
4

3 に答える 3

2

mysql_query() には、少なくともクエリ パラメータが必要です。あなたが望むのは mysql_error() だと思います。

or die(mysql_query())またはに変更die(mysql_error())

于 2012-12-12T16:12:16.127 に答える
2

2 番目の mysql_query() にはパラメーターがありません

于 2012-12-12T16:29:47.117 に答える
1

別の連結手法を使用してみてください。

$nick = mysql_real_escape_string($_POST['nick']);
$pass = mysql_real_escape_string($_POST['pass']);
$query = "select * from reg_users where username='".$nick."' and pass='".$pass."'";
$q = mysql_query($query,$con) or die(mysql_query());
于 2012-12-12T16:09:29.817 に答える