不确定我能提供多少上下文。我只是尝试做过期的作业,我得到错误:它应该是一个简单的登录页面,登录检查和登录成功和失败。
on 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');
}
?>
答案 0 :(得分:2)
至少需要mysql_query()的查询参数。我相信你想要的是mysql_error()。
将or die(mysql_query())
更改为或die(mysql_error())
答案 1 :(得分:2)
第二个mysql_query()没有参数
答案 2 :(得分: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());