紧急求助~~PHP登录页面问题
本帖最后由 zoenbo 于 2020-11-18 14:52 编辑尚未入门PHP瞎折腾,大佬们见笑了~ 做一个登录页面,但是怎么也登不了,也不知道问题出哪了,请求大佬们现身赐教~~{:1_893:}
<?php
header("Content-Type: text/html; charset=utf8");
$server="localhost";
$db_username="root";
$db_password="root";
$con = mysql_connect($server,$db_username,$db_password);
if(!$con){
die("can't connect".mysql_error());
}
mysql_select_db('test',$con);
if(!isset($_P0ST["submit"])){
exit("错误执行");
}//检测是否有submit操作
include('conn.php');//链接数据库
$name = $_POST['name'];//post获得用户名表单值
$passowrd = $_POST['password'];//post获得用户密码单值
if ($name && $passowrd){//如果用户名和密码都不为空
$sql = "select * from user where username = '$name' and password='$passowrd'";//检测数据库是否有对应的username和password的sql
$result = mysql_query($sql);//执行sql
$rows=mysql_num_rows($result);//返回一个数值
if($rows){//0 false 1 true
header("refresh:0;url=index.php");//如果成功跳转至index.php页面
exit;
}else{
echo "用户名或密码错误";
echo "
<script>
setTimeout(function(){window.location.href='login.php';},1000);
</script>
";//如果错误使用js 1秒后跳转到登录页面重试;
}
}else{//如果用户名或密码有空
echo "表单填写不完整";
echo "
<script>
setTimeout(function(){window.location.href='login.php';},1000);
</script>";
//如果错误使用js 1秒后跳转到登录页面重试;
}
mysql_close();//关闭数据库
?>
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>登陆</title>
</head>
<body>
<form name="login" action="login.php" method="post">
<p>用户名<input type=text name="name"></p>
<p>密 码<input type=password name="password"></p>
<p><input type="submit" name="submit" value="登录"></p>
</form>
</body>
</html> 首先,你接收到传入进来的账号和密码,需要先过滤一下,以免被注入。。。
然后,你通过数据库查询到用户了,还需要开启Session或Cookie来记录用户登录状态。。。
最后,我不太会PHP,但是你这问题,百度一下就能解决了。。。 无知灰灰 发表于 2020-11-18 12:04
首先,你接收到传入进来的账号和密码,需要先过滤一下,以免被注入。。。
然后,你通过数据库查询到用户了 ...
这都是百度出来的 {:1_889:} 这么简单你不会?不是自己写的?对不起,我也不会!或者重新找一个源码试试吧! $sql = "select * from user where username = '$name' and password='$passowrd'";
'$name' 这里不能直接使用, PHP 会翻译成字符串的 而不是变量, 如要要用必须要用 .连接, 后面没看,下班吃饭 PHP用.来拼接字符的。
$sql = "select * from user where username = '$name' and password='$passowrd'";//检测数据库是否有对应的username和password的sql
改为:
$sql = 'select * from user where username = '.$name.' and password='.$passowrd;//检测数据库是否有对应的username和password的sql
另外,要注意防注入。 吓死宝宝了 发表于 2020-11-18 12:14
这么简单你不会?不是自己写的?对不起,我也不会!或者重新找一个源码试试吧!
不瞒你说 我换了十个源码试了 没一个能登上的 52pojie11023995 发表于 2020-11-18 12:28
PHP用.来拼接字符的。
$sql = "select * from user where username = '$name' and password='$passowrd'"; ...
改了也是连不上 我想哭了,整整弄了一上午了 {:1_923:} DPP 发表于 2020-11-18 12:26
萌新为什么不选择thinkphp框架呢
我是蠢新,框架感觉太复杂了