QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 4676|回复: 3

[PHP开发] 求一个session模块的问题

[复制链接]

2

主题

5

帖子

24

积分

新手上路

Rank: 1

积分
24
发表于 2016-3-19 15:38:55 | 显示全部楼层 |阅读模式
1Z币
<?php
session_start();

require "connect.inc.php";                           //如果提交表单就链接数据库验证
if(isset($_POST['sub']))
{                                      //使用从表单中接收到的用户名和密码,作为在user表中的查询条件
        
        $stmt = $pdo->prepare("SELECT id,username FROM user WHERE username=? and userpwd=?");
        $stmt -> execute(array($_POST["username"],md5($_POST["password"]) ));

        if ($stmt->rowCount()>0)
        {
                $_SESSION=$stmt->fetch(PDO::FETCH_ASSOC);   //将用户信息注册进入session
                $_SESSION["isLogin"]=1;                    //注册用于判断登陆的成功的session变量
                header("Location:index.php");
        }
        else
        {
                echo '<font color="red">用户名或密码错误</font>';
        }
        //session_destroy();
        
}
?>
<!DOCTYPE html>
<html>
<head>
        <title>邮件登录系统</title>
        <style>
        div span{width:100px;text-align:right;}

        </style>
</head>
<body>
         <p>欢迎来到邮件系统:session ID <?php echo session_id(); ?></p>

         <form action="login.php" method="post">
                 <span>用户名:<input type="text" name="username"><br></span><br>
                 <span>密 码:<input type="password" name="password"><br></span><br>
                 <input type="submit" name="sub" value="登陆"></input>

         </form>

</body>
</html>


————————————————————————————————分割线——————————————————————————



简单说这就是个验证登录邮箱管理系统的界面,单纯用了session保存用户登录信息,
新人求教,红色的那句PDO预处理语句为何总是提示:语法错误?unexpected $stmt
我明明是按照书上的标准写法写的。



4

主题

77

帖子

2896

积分

中级会员

Rank: 3Rank: 3

积分
2896

灌水之王活跃会员

发表于 2016-3-20 21:01:55 | 显示全部楼层
wd=?"); 看看是不是问号和双引号的问题

0

主题

6

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2016-4-9 10:54:02 | 显示全部楼层
问题出在
{                                      //使用从表单中接收到的用户名和密码,作为在user表中的查询条件
在//之前可能有什么看不见的字符,导致了 if 条件有问题,require "connect.inc.php";  改为 include "connect.inc.php";

我将代码出处理一下子就好了,为了测试,我将
<?php
session_start();
include "connect.inc.php";
//require "connect.inc.php";                           //如果提交表单就链接数据库验证
if(isset($_POST['sub']))
{
//使用从表单中接收到的用户名和密码,作为在user表中的查询条件

        $stmt = $pdo->prepare("SELECT id,username FROM user WHERE username=? and userpwd=?");
        $stmt -> execute(array($_POST["username"],md5($_POST["password"]) ));

        if ($stmt->rowCount()>0)
        {
                $_SESSION=$stmt->fetch(PDO::FETCH_ASSOC);   //将用户信息注册进入session
                $_SESSION["isLogin"]=1;                    //注册用于判断登陆的成功的session变量
                header("Location:index.php");
        }
        else
        {
                echo '<font color="red">用户名或密码错误</font>';
        }
        //session_destroy();

}
?>
<!DOCTYPE html>
<html>
<head>
        <title>邮件登录系统</title>
        <style>
        div span{width:100px;text-align:right;}

        </style>
</head>
<body>
         <p>欢迎来到邮件系统:session ID <?php echo session_id(); ?></p>

         <form action="login.php" method="post">
                 <span>用户名:<input type="text" name="username"><br></span><br>
                 <span>密 码:<input type="password" name="password"><br></span><br>
                 <input type="submit" name="sub" value="登陆"></input>

         </form>

</body>
</html>


0

主题

6

帖子

28

积分

新手上路

Rank: 1

积分
28
发表于 2016-4-9 10:55:47 | 显示全部楼层
为了测试,require "connect.inc.php";  改为 include "connect.inc.php"; 他们有些区别,没有找到包括文件,include() 可以运行,而 require() 不能运行。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

     
    战略合作|联系方式|广告赞助|商务合作|手机版|小黑屋|( 京ICP备14036609号-6 )

GMT+8, 2017-12-18 15:04

© 2013-2017 Powered by Discuz! X3.3. 本站由 又拍云 提供 CDN 图片存储服务

快速回复 返回顶部 返回列表