session_start(); 必须在页面开头
创新互联公司长期为近千家客户提供的网站建设服务,团队从业经验10年,关注不同地域、不同群体,并针对不同对象提供差异化的产品和服务;打造开放共赢平台,与合作伙伴共同营造健康的互联网生态环境。为修武企业提供专业的成都网站制作、网站建设,修武网站改版等技术服务。拥有10年丰富建站经验和众多成功案例,为您定制开发。
session_start();前不能有内容输出
检查session_id每次是否一至
?php
$con = mysql_connect('localhost', 'xauth', 'xauthpassword') or die(mysql_error());
mysql_query('set names utf8', $con);
mysql_query('use xauth', $con) or die(mysql_error());
$sql = 'select * from accounts where playername="' . $username . '"';
$res = mysql_query($sql, $con);
$row = mysql_fetch_assoc($res);
if (empty($row)) {
echo "not exist";
exit();
}
if ($row['realpw'] != $password) {
echo "password wrong";
exit();
}
$id = $row['accountid'];
$sql2 = 'select * from sessions where accountid=' . $id;
$res2 = mysql_query($sql2, $con);
$row2 = mysql_fetch_assoc($res2);
if (empty($row2)) {
mysql_query('insert into sessions values ("' . $id . '","' . $_SERVER['REMOTE_ADDR'] . '",' . time() . ')');
} else {
mysql_query('update sessions set ipaddress="' . $_SERVER['REMOTE_ADDR'] . '", logintime=' . time());
}
echo "success!";
?
写的比较匆忙,仅供参考
$db=mysql_connect(连接你的数据库);
mysql_select_db('login', $db);
$u=$_POST['u'];
$p=$_POST['p'];
if($u $p){
$query=mysql_query('select * from exam where name=\''.$u.'\'',$db);
if($re=mysql_fetch_array($query,MYSQL_ASSOC)$re['password']==$p){
exit('scriptalert(\'登陆成功\');history.back();/script');
}else{
exit('scriptalert(\'用户名不存在,或密码错误\');history.back();/script');
}
}
第一次学PHP就是做这个验证..
html做个表单,
当表单onsubmit=return check();调用自写js来判断用户名和密码是否为空,
如果是空就alert不能为空,然后return false;相反则return true;
而接收的PHP也要验证是否为空,如果严谨点还要对提交的数据进行过滤,防止sql注入。
然后php再根据提交的数据搜MYSQL,如果用户名和密码都相同时,echo 登录成功,相反则登录失败.
html
script
function check(obj){
with(obj){
if((user.value+"").length = 0){
alert("用户名不能为空");
return false;
}else if((pwd.value+"").length = 0){
alert("用户名不能为空");
return false;
}else{
return true;
}
}
}
/script
body
form action="check.php" method="post" onsubmit="return check(this)"
input type="text" name="user" value=""
input type="password" name="pwd" value=""
input type="submit" name="submit" value="登录"
input type="cancel" name="cancel" value="取消"
/form
/body
/html
?php
$conn = mysql_connect( "数据库地址", "数据库用户名", "密码" );
mysql_query("set names utf8");
mysql_select_db( "数据库名" );
function inject_check($sql_str){
return preg_match("/select|insert|update|delete|\'|\/\*|\*|\.\.\/|\.\/|union|into|load_file|outfile|%|eval|=|and|'|;|exec|count/i", $sql_str); // 进行过滤
}
if(!empty($_POST)){
foreach($_POST as $key = $value){
if(inject_check($value)){
exit ('scriptalert("地址栏输入发现有非法字符,请重新输入!");history.go(-1);/script');
die ();
}
}
}
$res = mysql_query("SELECT count(*) as m from `表名` where 用户名='${_POST['user']}' AND 密码='${_POST['pwd']}'");
$row = mysql_fetch_object($res);
if($row-m 0){
echo "登陆成功";
}else{
echo "用户名或密码错误";
}
exit;
?
$conn = mysql_connect("localhost","root","");
mysql_select_db("homework", $conn);
mysql_query("SET NAMES 'UTF8'",$conn);
$username=$_POST['user_email'];
$password=$_POST['password'];
$sql = "select * from user where username='$username' and password='$password'";
$Result = mysql_query($sql, $conn);
$onerow = mysql_fetch_array($Result);
if ( $onerow )
echo "正确";
else
echo "错误";
你记住 所有在 引号里面的 东西都是字符串!!!!!
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);
手动回复,不谢