A. php连接mysql数据库,账号密码的验证问题。
PHP部分应该放在整体的最前面
而不是后面 并且最有要有结尾
相当于页面先运行PHP再运行HTML
完成的帐号密码是个很复杂的页面(包含三个部分)
1、PHP验证部分,一般都是查询验证
2、JS表单验证部分,验证是否正确填写
3、HTML部分。
一般写PHP验证SQL正确性 都会把$sql1这种首先打印出来,看是否正确;然后把你的$result1可以加一条语句,然后写出查询值的$row=mysql_fetch_array($resulta) 这时候$row是一个数组,运用print_r()可以把数组打印出来 就是查询结果
最后说一下,验证登录一般是把password 写入where语句中,这样安全性相对高一些。
B. php连接mysql进行登录验证
$conn=mysql_connect("localhost","root","");
mysql_select_db("homework",$conn);
mysql_query("SETNAMES'UTF8'",$conn);
$username=$_POST['user_email'];
$password=$_POST['password'];
$sql="select*fromuserwhereusername='$username'andpassword='$password'";
$Result=mysql_query($sql,$conn);
$onerow=mysql_fetch_array($Result);
if($onerow)
echo"正确";
else
echo"错误";
C. php简单的登陆验证用户名和密码怎么写
给你个实例参考一下php编写登陆验证用户名和密码吧。
登录页面
login.html 负责收集用户填写的登录信息
在CODE上查看代码片派生到我的代码片
<html>
<head>用户登录</head>
<form name="LoginForm" method="post" action="login.php" onSubmit="return InputCheck(this)">
<p>
<label for="username" class="label">用户名:</label>
<input id="username" name="username" type="text" class="input" />
<p/>
<p>
<label for="password" class="label">密 码:</label>
<input id="password" name="password" type="password" class="input" />
<p/>
<p>
<input type="submit" name="submit" value=" 确 定 " class="left" />
</p>
</form>
</html>
登录处理
login.PHP 负责处理用户登录与退出动作。
在CODE上查看代码片派生到我的代码片
<?php
//登录
if(!isset($_POST['submit'])){
exit('非法访问!');
}
$username = htmlspecialchars($_POST['username']);
$password = MD5($_POST['password']);
//包含数据库连接文件
include('conn.php');
//检测用户名及密码是否正确
$check_query = mysql_query("select userid from user_list where username='$username' and password='$password' limit 1");
if($result = mysql_fetch_array($check_query)){
//登录成功
session_start();
$_SESSION['username'] = $username;
$_SESSION['userid'] = $result['userid'];
echo $username,' 欢迎你!进入 <a href="my.php">用户中心</a><br />';
echo '点击此处 <a href="login.php?action=logout">注销</a> 登录!<br />';
exit;
} else {
exit('登录失败!点击此处 <a href="javascript:history.back(-1);">返回</a> 重试');
}
//注销登录
if($_GET['action'] == "logout"){
unset($_SESSION['userid']);
unset($_SESSION['username']);
echo '注销登录成功!点击此处 <a href="login.html">登录</a>';
exit;
}
?>
用户中心
my.php 是用户中心,作为用户登录检测。
在CODE上查看代码片派生到我的代码片
<?php
session_start();
//检测是否登录,若没登录则转向登录界面
if(!isset($_SESSION['userid'])){
header("Location:login.html");
exit();
}
//包含数据库连接文件
include('conn.php');
$userid = $_SESSION['userid'];
$username = $_SESSION['username'];
$user_query = mysql_query("select * from user_list where userid = '$userid' limit 1");
$row = mysql_fetch_array($user_query);
echo '用户信息:<br />';
echo '用户ID:',$userid,'<br />';
echo '用户名:',$username,'<br />';
echo '<a href="login.php?action=logout">注销</a> 登录<br />';
?>
conn.php,用于连接数据库
在CODE上查看代码片派生到我的代码片
<?php
$conn = mysql_connect("127.0.0.1","root","") or die("数据库链接错误".mysql_error());
mysql_select_db("info_db",$conn) or die("数据库访问错误".mysql_error());
mysql_query("set names gb2312");
?>
D. PHP数据库验证登陆
你记住 所有在 引号里面的 东西都是字符串!!!!!
if("SELECT username,passwd FROM wen WHERE $username=$user,$passwd=$passwd"){
echo "<script>alert('欢迎登录!');window.location.href='index1.php';</script>";
}
这一句代码本身就是不通的.
还有就是 你的sql语句也是错误的。
参考如下:
$sql = 'SELECT username,passwd FROM wen WHERE username="'.$user.'" AND passwd="'.$passwd.'"';
$result = mysql_query($sql,$conn);
手动回复,不谢
E. php连接数据库验证用户名密码没输入账号直接提示失败 去掉exit('登录失败!'); 可以正常登录,请大佬看看
这个是登录流程问题,
一般正确的流程是在第一次打开登录页面的时候,应该先执行html那部分的,然后显示登录页的布局,然后输入账号和密码 点击登录的按钮,表单提交到自身,然后才是执行数据库连接,数据库查询账号密码是否正确这些流程,如果正确就跳转页面,错误就显示登录失败。
而从你的代码看第一次打开登录页面的时候 是先执行了php代码,查数据库所以会先提示登录失败。
你可以把你的代码 php部分外层加一个if($_POST){}判断, 然后登录的时候用Post提交,这样你在刷新登录页的时候,因为是get提交所以不会执行if判断里的代码,然后点登录的时候才会触发if里的代码
F. php登录验证数据库,带余额,后台可以更改数据库余额信息
前台AJAX 验证登录 后台可以修改 用户表余额字段
G. php登录页面完整代码连接数据库
创建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;//关闭数据库
H. PHP链接数据库验证数据跳转问题
一、sql 语句就有问题了。既然向PHP端传入参数name和password,那么$sql 就得做出更改了。
$sql ="select * from admin where name='".$name."' and password='".md5($password)."'";
二、函数mysqli_fetch_assoc() 函数从结果集中取得一行作为关联数组。while只针对二维数组来循环操作的,所以$row=mysqli_fetch_assoc($result);即可。
所以整体代码更改如下:
$sql="";
if(!isset($_POST)||empty($_POST)){
}else{
//关联数据库接受信息
$name=$_POST['name'];
$password=$_POST['password'];
$sql="select*fromadminwherename='".$name."'andpassword='".md5($password)."'";
if($result=mysqli_query($con,$sql))
{
$row=mysqli_fetch_assoc($result);
mysqli_free_result($result);//释放结果集
if($row){
header("Location:empManage.php");
exit();
}else{
header("Location:login.php?errno=1");
exit();
}
}else{
echo("错误描述:".mysqli_error($con));
}
mysqli_close($conn);
}
I. php登陆数据库验证问题
if($_POST[id]=='$a') $a 不能用单引号括起来,要么用双引号,要不不用,单引号扩住的话,它不会编译,只会把它堪称是字符串 $a 来看待。我说一个问题哦,仅仅是我自己理解的,你在页面传输的时候接受 id ($_POST[id]==)的值,而你又要和$a(用户名$lr[luser]; )比较( _POST[id]=='$a' ),你的用户民 是字符串,而id是数字类型的,怎么能相等...
J. php登录数据库验证问题!
这个不是错误,是警告,意思是你变量定义不规范。
另外不是32行的问题,问题在这
$_SESSION[admin_name]=$info[name];
$_SESSION[pwd]=$info[pwd];
改成
$_SESSION[‘admin_name’]=$info[‘name’];
$_SESSION[‘pwd’]=$info[‘pwd’];
加上引号就行了。SESSION部分也建议加上引号,我加了,你可以自己决定。
规范一些总没有坏处。
希望能帮到你。