十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
第一次学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;
?
你记住 所有在 引号里面的 东西都是字符串!!!!!
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);
手动回复,不谢
span style="font-size:18px;"span style="font-size:18px;"html
head
meta http-equiv="Content-Type" content="text/html; charset="utf-8" /
/head
?php
session_start(); //初始化session变量
$username = $_POST['name']; //接收表单提交的用户名
$password=md5($_POST['pwd']); //接收表单提交的密码
class chkinput //定义类
{
var $name;
var $pwd;
function chkinput($x,$y) //定义一个方法
{
$this-name=$x; //将管理员名称传给类对象$this-name
$this-pwd=$y; //将管理员密码传给类对象$this-pwd
}
function checkinput()
{
include("conn.php"); //连接数据库文件
$sql=mysql_query("select username,password from admin where username='".$this-name."' and password='".$this-pwd."'",$conn);
$info=mysql_fetch_array($sql); //检索管理员名称和密码是否正确
if($info==false) //如果管理员名称或密码不正确,则弹出相关提示信息
{
echo "script language='javascript'alert('您输入的管理员名称或密码错误,请重新输入!');history.back();/script";
exit;
}
else //如果管理员名称或密码正确,则直接跳转到登陆成功后界面
{
echo "scriptwindow.location='home.php';/script";
$_SESSION['admin_name']=$info['username']; //将管理员名称存到$_SESSION[admin_name]变量中
$_SESSION['pwd']=$info['password']; ////将管理员名称存到$_SESSION[pwd]变量中
}
}
}
$obj=new chkinput(trim($username),trim($password)); //创建对象
$obj-checkinput(); //调用类
?
/html/span/span
if($_POST[id]=='$a') $a 不能用单引号括起来,要么用双引号,要不不用,单引号扩住的话,它不会编译,只会把它堪称是字符串 $a 来看待。我说一个问题哦,仅仅是我自己理解的,你在页面传输的时候接受 id ($_POST[id]==)的值,而你又要和$a(用户名$lr[luser]; )比较( _POST[id]=='$a' ),你的用户民 是字符串,而id是数字类型的,怎么能相等...
创建conn.php,连接数据库。
$dns = 'mysql:host=127.0.0.1;dbname=test';
$username = 'root';
$password = 'root';
// 1.连接数据库,创建PDO对象
$pdo = new PDO($dns,$username,$password);
创建login.html,登陆页面。
用户名
密 码
创建login.php,验证账号密码。
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST["submit"])){
exit("错误执行");
}//检测是否有submit操作
include('conn.php');//链接数据库
$name = $_POST['name'];//post获得用户名表单值
$pwd = sha1($_POST['password']);//post获得用户密码单值
if ($name $pwd){//如果用户名和密码都不为空
$sql = "select * from user where username = '$name' and password='$pwd'";//检测数据库是否有对应的username和password的sql
$stmt = $pdo-prepare($sql);
$stmt-execute();
if($stmt-fetch(PDO::FETCH_BOUND)){//0 false 1 true
header("refresh:0;url=welcome.html");//如果成功跳转至welcome.html页面
exit;
}else{
echo "用户名或密码错误";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";//如果错误使用js 1秒后跳转到登录页面重试;
}
}else{//如果用户名或密码有空
echo "表单填写不完整";
echo "
setTimeout(function(){window.location.href='login.html';},1000);
";
//如果错误使用js 1秒后跳转到登录页面重试;
}
$pdo = null;
创建signup.html,注册页面
用户名:
密 码:
创建signup.php
header("Content-Type: text/html; charset=utf8");
if(!isset($_POST['submit'])){
exit("错误执行");
}//判断是否有submit操作
$name=$_POST['name'];//post获取表单里的name
$pwd = sha1($_POST['password']);//post获取表单里的password
include('conn.php');//链接数据库
$sql="insert into user(id,username,password) values (null,'$name','$pwd')";//向数据库插入表单传来的值的sql
$stmt = $pdo-prepare($sql);
$stmt-execute();
$stmt-fetch(PDO::FETCH_BOUND);
if (!$stmt){
die('Error: ' . $stmt-getMessage());//如果sql执行失败输出错误
}else{
echo "注册成功";//成功输出注册成功
}
$pdo = null;//关闭数据库
$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');
}
}