你记住 所有在 引号里面的 东西都是字符串!!!!!
创新互联于2013年成立,是专业互联网技术服务公司,拥有项目成都网站设计、网站建设网站策划,项目实施与项目整合能力。我们以让每一个梦想脱颖而出为使命,1280元荣县做网站,已为上家服务,为荣县各地企业和个人服务,联系电话:13518219792
if("SELECT username,passwd FROM wen WHERE $username=$user,$passwd=$passwd"){
echo "scriptalert('欢迎登录!');window.location.href='index1.php';/script";
}
这一句代码本身就是不通的.
还有就是 你的sql语句也是错误的。
参考如下:
$sql = 'SELECT username,passwd FROM wen WHERE username="'.$user.'" AND passwd="'.$passwd.'"';
$result = mysql_query($sql,$conn);
手动回复,不谢
分类: 电脑/网络 互联网
问题描述:
大家看看下面的代码有什么问题吗?
代码如下:
?
include "/inc/db.inc.php";
$msql=new SHARP_SQL;
$fsql=new SHARP_SQL;
$UserName=$_POST[UserName];
$Password1=$_POST[Password];
$Password=md5($Password1);
?
?
$msql-query("select count(*) as total from user where u_pwd='$Password' and u_user='$UserName'");
echo $sql;
if ($msql-num_rows()==0)
{ mysql_close();
?
script language=JavaScript
alert("用户验证失败!");
window.navigate("/USER/index");
/script
?
}else {
……
解析:
这是我写,你可以参考下``
?
session_start();
获取到用户的密码和用户名
$username=$_POST['loginname'];
$userpass=$_POST['loginpass'];
调用数据库执行类
include_once "Connect.class.php";
$link=new Connect();
查询是否有与之配对的信息,有返回1,没有返回0
$strsql="select * from user where username='$username' and userpass='$userpass'";
echo $strsql;
$row = $link-execute($strsql);
记录用户的名字,在后面的网页中保存
$_SESSION['sname']=$username;
echo $_SESSION['sname'];
if($link-getnum($row)==1){
echo "scriptalert('登陆成功');location.href='usercenter.php';/script";
}else{
echo "scriptalert('登陆失败');location.href='index.php';/script";
}
?
/*----------------------------*/
connnect.class.php
?
/**
* 数据库的连接与各项基本操作
*
* 实现数据库 连接,并提供insert,update,delete等基本的数据库查询语句执行方法,
* 返回查询结果集或函数执行结果。
*
* @version V1.0,2005-07-26
*/
class Connect
{
/**
* @var Object $conn 数据库连接字
* @Access private
*/
var $conn;
var $result;
var $num; 查询所得记录数
var $error; 错误信息
var $row; 一条记录
var $insert_id; 自动增量值
/**
* 构造方法,根据给定的主机名,用户名,密码,数据库名建立与数据库的连接,
* 如果连接失败则抛出错误。
*
* @param String $host 数据库所在主机名或地址
* @param String $user 数据库上的一个用户名
* @param String $pwd 用户名对应的密码
* @param String $db 需要连接的库名
*
* @access public
*/
function Connect($host="localhost",$user="root",$pwd="",$db="shenglan") {
$this-conn = $this-mysql_db_connect($host,$user,$pwd,$db);
}
/**
* 执行一条sql语句,如果是查询语句,则返回一个以字段名为下标的二维数组;
* 如果是一条执行语句,则返回执行结果,执行成功返回true,失败返回false。示例如下:
* @param String $sql 需要执行的查询语句
* @return array 以字段名为下标的数组 *** 或者Boolean值
* @access public
*/
function execute($sql) {
if(strtolower(substr($sql,0,6))=="select")
{
echo $sql;
return $this-Query($sql);
} else {
if($this-result = mysql_query($sql,$this-conn))
return true;
else
return false;
}
}
/**
* 取得上次查询所得数据的记录数
* @return int 查询所得记录数
* @access public
*/
function getNum() {
return $this-num;
}
/**
* 向指定的数据表中插入一条记录
* @param String $table 插入数据的数据表名
* @param Array $array 以字段名为下标的数组,如:code
*
* @return Boolean 插入成功返回true,失败返回false
*/
function insertSql($table,$array) {
$t1 = array();
$t2 = array();
foreach($array as $key=$value) {
$t1[] = $key;
$t2[] = "'".$value."'";
}
$sql = "insert into ".$table." (".implode(",",$t1).") values (".implode(",",$t2).")";
echo $sql;
if($this-execute($sql)) {
$this-insert_id = mysql_insert_id();
return true;
} else
throw new Exception("错误的SQL语句:".$sql);
}
/**
* 取得最用一个插入有自动增量字段的自动增量值
* @return int 最后一个自动增量值
* @access public
*/
function getInsertID() {
return $this-insert_id;
}
/**
* 删除给定表中的数据
* @param String $table 表名
* @param Array $array 删除条件,用法同function insertSql($table,$array) 中的参数$array
* @return Boolean
* @access public
*/
function delSql($table,$array) {
$t1 = array();
foreach($array as $key=$value) {
$t1[] = $key."='".$value."'";
}
$sql = "delete from ".$table." where ".implode(" and ",$t1);
if($this-execute($sql))
return true;
else
throw new Exception("错误的SQL语句:".$sql);
}
/**
* 修改给定表中的数据
* @param String $table 表名
* @param Array $array 修改的字段名和值,用法同function insertSql($table,$array) 中的参数$array
* @return Boolean 修改成功返回true,失败返回false
* @access public
*/
function updateSql($table,$array,$where=0) {
$t1 = array();
foreach($array as $key=$value) {
$t1[] = $key."='".$value."'";
}
$sql = "update ".$table." set ".implode(", ",$t1)." where ".$where;
if($this-execute($sql))
return true;
else
throw new Exception("错误的SQL语句:".$sql);
}
/**
* 返回最后一次Insert或Update操作受影响的数据行数
* @return int 行数
* @access public
*/
function getAffectedRows() {
return mysql_affected_rows();
}
/*************** private futions ********************/
/**
*连接数据库
*@access private
*/
function mysql_db_connect($host,$user,$pwd,$db) {
$conn = mysql_connect($host,$user,$pwd) or die(mysql_error());
mysql_select_db($db,$conn) or die(mysql_error());
return $conn;
}
/**
* 执行一句查询语句,返回一个以字段名为下标的数组 ***
*
* @param String $sql 需要执行的查询语句
* @return Array 以字段名为下标的数组 ***
* @access private
*/
function Query($sql) {
$array = array();
if(!$this-result = mysql_query($sql,$this-conn)) {
$this-num = 0;
return $array;
}
$this-num = mysql_num_rows($this-result);
for($i=0;$i mysql_num_fields($this-result);$i++) {
$field[$i] = mysql_field_name($this-result,$i);
}
for($i=0;$i$this-num;$i++) {
$parray = $this-getRow();
$array[$i] = $parray;
}
return $array;
}
/**
* 取得查询所得数据集中一条数据
* @return Array
* @access private
*/
function getRow() {
$array = array();
if($this-num==0)
return $array;
$fields = mysql_num_fields($this-result);
$this-row = mysql_fetch_array($this-result); or die(mysql_error());
for($i=0;$i$fields;$i++) {
$array[mysql_field_name($this-result,$i)] = $this-row[$i];
}
return $array;
}
}
?
if($_POST[id]=='$a') $a 不能用单引号括起来,要么用双引号,要不不用,单引号扩住的话,它不会编译,只会把它堪称是字符串 $a 来看待。我说一个问题哦,仅仅是我自己理解的,你在页面传输的时候接受 id ($_POST[id]==)的值,而你又要和$a(用户名$lr[luser]; )比较( _POST[id]=='$a' ),你的用户民 是字符串,而id是数字类型的,怎么能相等...
你可以在php数据处理页面进行提醒啊,条件不满足登录的时候由浏览器弹出提示框进行提醒啊