PHP 使用会话登录

2023-12-02

我是 PHP 的初学者。我尝试创建我的 php 登录代码,但遇到了一些问题。如果我访问其他页面,我的网站不会记住我登录过,会话不会保留。

<?php

   $logincontent;

   require_once 'config.php';   

      $logincontent=
        '   <div class="column-1-3">
                <div class="white-box">
                    <div class="box-title">
                        Login
                        <div class="subtitle"><img src="images/subtitle-lets-work-together.png" alt="let\'s work together" /></div>
                        <div class="icon"><img src="images/title-icon-contact.png" alt="" /></div>
                    </div>

                    <div class="box-content fixed-height">
                        <form action="" method="post" class="contact-form">
                            <div>
                                <b>Username</b>
                                <input class="text-input" type="text" name="username" value="" onfocus="clearInput(this);" onblur="restoreInput(this);" /><br/>
                                <b>Password</b>
                                <input class="text-input" type="text" name="password" value="" onfocus="clearInput(this);" onblur="restoreInput(this);" /><br/>                                
                                <div class="align-right">
                                    <span class="blue-button"><span><input type="submit" value="SEND &raquo;" /></span></span>
                                </div>
                                <input type="hidden" name="val" value="checkin">
                            </div>
                        </form>
                    </div>
                </div>
            </div><!--/end .column-1-3 --> ';



   if (isset($_POST["val"])&&($_POST["val"]=='checkin'))
   {
       echo "checkin";
       DBConnect(); 
       $username=$_POST['username']; 
       $password=$_POST['password']; 

       $username = stripslashes($username);
       $password = stripslashes($password);    

       $username = mysql_real_escape_string($username);
       $password = mysql_real_escape_string($password);     

       $sql="SELECT * FROM users WHERE username='$username' and password='$password'";
       $result=mysql_query($sql);

       // Mysql_num_row is counting table row
       $count=mysql_num_rows($result);

       // If result matched $myusername and $mypassword, table row must be 1 row
       if($count==1)
       {
          @session_start();    

          // Register $myusername, $mypassword and redirect to file "login_success.php"
          @session_register('username');
          @session_register('password');
          $_SESSION['username'] = $username;
          $_SESSION['password'] = $password;


       }
       else 
       {
          echo "Wrong Username or Password";
          unset($username);
       }          

   } else
   if ((isset($_POST["val"]))&&($_POST["val"]=='logout'))
   {
      @session_start();
      session_destroy();
   } else
   {

    //echo $logincontent;              
   }

   //if((isset($username))&&(!@session_is_registered($username)))
   @session_start();   
   //if((@session_is_registered('username')))
   if (isset($_SESSION['username']) && isset($_SESSION['password']))
   {
       if (isset($db_conn) == false)
          DBConnect();


       $username=$_SESSION['username'];
       $password=$_SESSION['password'];

       //echo $username;       
       //echo $password;       

       $sql="SELECT * FROM users WHERE username='$username' and password='$password'";
       $result=mysql_query($sql);

       $row = mysql_fetch_array($result);

       $logincontent=
        '   <div class="column-1-3">
                <div class="white-box">
                    <div class="box-title">
                        Welcome back!
                        <div class="subtitle"><img src="images/subtitle-lets-work-together.png" alt="let\'s work together" /></div>
                        <div class="icon"><img src="images/title-icon-contact.png" alt="" /></div>
                    </div>

                    <div class="box-content fixed-height">
                        <form action="" method="post" class="contact-form">
                            <div>
                                Username: <b>'.$row['username'].'</b><br><br>
                                Name: <b>'.$row['name'].'</b><br>';

                                //if (mysql_field_len ($row['avatar'])==0)
                                if (isset($row['avatar']))
                                {
                                   $Link='images/no_avatar.gif';
                                } else
                                { 
                                   $Link=$row['avatar'];
                                }

                                $logincontent=$logincontent."<center>
                                   <div class='avatar-image'><img src='".$Link."' alt='' width='100' height='100'/></div></center><br>".'
                                <div class="align-center">
                                    <span class="blue-button"><span><input type="submit" value="logout" /></span></span>
                                </div>
                                <input type="hidden" name="val" value="logout">'."

                            </div>
                        </form>
                    </div>
                 </div>
             </div><!--/end .column-1-3 --> ";


          }   


?>           

你需要把session_start();在项目中每个文件的开头。

另请注意,自 PHP 5.5 起不推荐使用 mysql_* 函数,并将在将来删除。您应该使用 mysqli* 或 PDO

http://www.php.net/manual/en/book.mysqli.php

http://www.php.net/manual/en/book.pdo.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

PHP 使用会话登录 的相关文章

  • 如何在php中获取#后面的URL锚点部分

    在我的项目中使用 LightBox 机制时 我得到了一个 URLhttp nhs search panel php patentid 2 http nhs search panel php patientid 2我需要通过 GET 机制从中
  • Drupal:需要上传文件吗?

    由于某种原因 当我尝试要求上传文件时 我的表单中断了 这是它的代码 form id upload form form form id array type gt fieldset description gt t This is a uti
  • 通过 AJAX 加载的页面上的 reCAPTCHA 字段不会加载。建议?

    实例 没有 AJAX http utsarotaract org inc email php 使用 AJAX 单击给我们发送电子邮件链接 http utsarotaract org contact php 当我查看源页面时 一切正常 但是当
  • 删除 SQL 中重复的字段条目

    无论如何 我可以删除某个表中的所有重复条目 users 这是我拥有的条目类型的示例 我必须说一下桌子users由3个字段组成 ID user and pass mysql query DELETE FROM users WHERE or d
  • 检查文件是否要上传?代码点火器

    我有一个带有很少输入和一个文件输入的表单 我想检查文件输入是否为空 如果为空则不要尝试上传 如果不是则尝试上传 我尝试过这样的事情 upld file this gt upload gt data if empty upld file Up
  • 参考:什么是变量范围,哪些变量可以从哪里访问以及什么是“未定义变量”错误?

    注意 这是一个处理 PHP 变量作用域的参考问题 请将符合此模式的众多问题中的任何一个作为此问题的重复项关闭 PHP 中的 变量范围 是什么 一个 php 文件中的变量是否可以在另一个 php 文件中访问 为什么我有时会得到 未定义的变量
  • 有人成功地使用 PHP 5.4.4 和 APC 3.1.10 提供高流量服务吗? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • Aurelia 以 PHP 传递的参数开头

    我需要在开始时将参数传递给 Aurelia 根据传递的值 应用程序将具有不同的状态 该应用程序被注入到使用 PHP 构建的页面上 因此最好的方法是使用 PHP 代码指定的参数启动它 有什么办法可以做到这一点吗 您可以在普通 JS 中访问的任
  • PDO 从表中获取一列到一维数组中

    我对 PDO 和让它们与 MySQL 一起工作还很陌生 我似乎在插入新数据和检索单个结果方面进展顺利 但是我坚持了下来 我有一张由配料组成的桌子 我试图将所有配料放入一个数组中 我已经直接在 SQL 中运行查询 它显示了所有结果 但是使用
  • 使用 PHP 读取 cookie

    我正在尝试读取我用 javascript 设置的 cookie 特别是 jQuery Cookie 插件 然后我用 PHP 读取它以将其写入数据库 由于某种原因 cookie 是在页面加载时创建的 但在页面刷新之前并不 存在 这意味着我正在
  • 何时使用 if/endif 与 If{}?

    嗯 这个问题是不言自明的 在 PHP 中我什么时候使用if endif符号而不是标准if something 符号 Example A is equal to 5 Versus A is equal to 5 其他人给出了 用于模板 的答案
  • 为什么使用 mysql_real_escape_string,addslashes 不会阻止一切?

    我正在查看文档并偶然发现了 mysql real escape string 我不明白为什么当您可以只使用addslashes 时它很有用 有人可以向我展示一个场景来说明它为什么有用吗 我也很好奇为什么它需要数据库连接 这似乎是一个很大的开
  • 为什么这个基本的 imagejpeg() resizer 返回黑色图像?

    EDIT 感谢您的所有回答 特别是 Mailerdaimon 他注意到我没有在imagecopyresampled功能 我不再得到黑色图像 但我仍然得到一些黑色部分 所以我认为我的比例公式应该更新 如果我上传横向图像 新图像的高度小于 17
  • 使用 CodeIgniter 中的模板自定义错误页面

    我正在使用 CodeIgniter 的模板库 http williamsconcepts com ci codeigniter libraries template reference html http williamsconcepts
  • 使用 JWT Laravel 5 进行身份验证,无需密码

    我正在尝试学习 Laravel 我的目标是能够构建一个 RESTful API 不使用视图或刀片 仅使用 JSON 结果 稍后 AngularJS Web 应用程序和 Cordova 混合移动应用程序将使用此 api 经过一番研究 我倾向于
  • 在 PHP 中设置 X-Frame-Options

    如何在我的 PHP 代码中设置 X Frame Options 以便它出现在我的服务器的所有网页中 基本上 我试图避免 iframe 加载我的网络应用程序 在您的 php 文件中使用以下内容 该文件将响应输出到客户端 header X Fr
  • PHP 7.4 已弃用 get_magic_quotes_gpc 函数替代

    我遇到了我的旧代码之一正在使用的情况get magic quotes gpc 最新版本已弃用PHP 版本 7 4 目前 我有这样的事情 添加斜杠 return get magic quotes gpc addslashes string s
  • 使用 LINQ 的 Silverlight 客户端数据库

    我正在创建一个浏览器外 silverlight 应用程序 并希望在客户端有一个数据库 我看过 sqlite 但似乎它不适用于 silverlight 如果我能使用 LINQ 那就太好了 我更喜欢免费的解决方案 但付费始终是一种选择 有什么建
  • 2 同一个表的同一列上的 PostgreSQL 索引 - 冗余吗?

    我有一个带有 2 个索引的 PostgreSQL 表 其中一项指数涵盖website id and tweet idcolumns 是唯一的 B 树索引 第二个索引仅涵盖website id列 并且是非唯一索引 如果第一个索引存在 第二个索
  • 无法通过 ssh 访问服务器下载 Composer - 1and1

    我可以通过 SSH 访问我的 1and1 服务器 我正在尝试下载作曲家 遵循来自的指示http getcomposer org download http getcomposer org download 尝试1 user gt curl

随机推荐

  • CUDA cudaMalloc

    我已经开始编写一个新的 CUDA 应用程序 然而 我一路上遇到了一个有趣的弯路 对变量 x 调用第一个 cudaMalloc 第一次失败 但是 当我第二次调用它时 它返回 cudaSuccess 最近升级到CUDA 4 0 SDK 这是一个
  • 使用 Amazon-Lex 进行评分/意图置信度

    我尝试使用 amazon lex PostText 获取评分值或意图置信度值 但 json 文件中根本没有响应元素 https docs aws amazon com de de lex latest dg API runtime Post
  • IE 在使用 NTLM 身份验证时随机发送空 POST 正文(使用 Angular 到 Spring)

    我们发现 IE 11 中看似随机的调用缺少 POST 经过进一步检查 来自浏览器的请求包含 NTLM 协商令牌 我们有时也会在 GET 上看到此令牌 但它们不受主体问题的影响 因为它们没有主体问题 Chrome和FF没有这个问题 进一步的调
  • 选择包含 R 中每日最大值的行

    因此 我想对数据框进行子集化以选择具有每日最大值的行 Site Year Day Time Cover Size TempChange ST1 2011 97 0 0 Closed small 0 97 ST1 2011 97 0 5 Cl
  • TFS 2013 获取所有 TFS 组,包括 Windows 组

    我正在做这个TFS 2013 以获得所有TFS组的项目级别许可 但我无法获取 Windows 组 我使用以下代码列出组 var applicationGroups identityManagementService ListApplicat
  • jvisualvm:卡在“正在加载堆转储”屏幕上

    我使用以下命令使用 hprof 创建了一个堆转储文件 java agentlib hprof cp jars trove jar bin com mysite MyApp 这样就成功创建了大约 5MB 的文件 java hprof txt
  • 以声明方式描述自定义控件属性时缺少智能感知

    因此 我已经在这个项目上工作了几天 但一直无法解决为用户控件 ascx 请注意 的自定义内部属性获取智能感知支持的问题 我已经多次看到这个问题的解决方案 使用服务器控件 cs 请注意 在此写出article很好 使用 ascx 控件时 除了
  • 如何消除带括号的表达式中的子选择的歧义?

    我有以下表达式符号 expr OpenParen expr Comma expr Comma CloseParen parenExpr OpenParen simpleSelect CloseParen subSelectExpr 不幸的是
  • 无法使用 TestFlight 安装 xCode 4.3 beta 应用程序

    我刚刚升级到 xCode 4 3 并用它生成了一个 iPad 应用程序的新版本 大约 50 名 Beta 测试人员已经使用了几个月 我像往常一样通过 TestFlight 分发了测试版应用程序 大多数测试人员升级没有问题 但一些测试人员在尝
  • 如何附加和分离 Docker 的进程?

    I can attach to a docker process but Ctrl C doesn t work to detach from it exit basically halts the process 建议的工作流程是什么 让
  • WebSphere MQ 连接调整

    我有一个应用程序 它使用 MDB 激活规范和队列连接工厂从 WMQ 获取 放置消息 该应用程序预计最大负载为 80 tps Websphere Application Server 和 WMQ 都是集群式的 每个应用程序服务器都连接到单独的
  • TF 对象检测 API - 并非所有类都被检测到且行为异常

    Setup ubuntu 16 04 LTS 4 个 vCPU 30GB 内存 nvidia K80 GPU 带 12GB 内存 CUDNN 8 0 x64 TF版本1 3 目标 使用TF对象检测API检测人脸 人物 手枪 步枪 autom
  • 在没有背景附件的情况下将背景渐变扩展到整个身体:已修复

    我想要一个背景渐变 例如 background linear gradient to bottom rgba 0 0 0 0 3 rgba 2 126 174 0 9 在我的文档正文上 它延伸到正文的整个高度 并与正文一起滚动 Using
  • Dart 中 JSON 的序列化和反序列化状态

    我在 C 上的序列化方面有很好的经验 在搜索和测试了一些 Dart 库之后 我觉得总体上没有一个真正令人满意的答案 我想知道 Dart 中 JSON 序列化 反序列化的当前状态 未来我们应该期待什么 这最终会得到语言本身的支持吗 目前的最佳
  • 获取 mPDF 中文本的位置以确定 HTML 元素的垂直高度

    我正在使用 mPDF 类生成 PDF 想知道是否以及如何确定生成的 mPDF 文档中最后一行文本的位置 我需要一个 HTML 框来覆盖文本最后一行和文档下边距之间的任何剩余空间 通过将 html 元素设置为高度 100 它将元素推送到新页面
  • 操作已完成 = YES,但没有由其所在的队列启动

    Overview 有一个异步操作子类 将此操作添加到队列中 我在开始之前取消了此操作 运行时错误 警告 SomeOperation went isFinished YES without being started by the queue
  • 如何创建AVPlayer单例类

    我在用着AVPlayer要从网址播放歌曲 我在视图控制器中初始化并分配它 现在我遇到了问题 当我导航到另一个视图控制器并返回主播放器时 播放歌曲详细信息和滑块更新应该保留 但问题是当我导航时再次到主播放器播放详细信息和滑块更新没有发生 但歌
  • TWICImage,如何设置jpeg压缩质量?

    我使用 Delphi XE 和 TWICImage 类进行图像处理 我想知道是否有办法使用 TWICImage 设置 jpeg 压缩质量 procedure TfrmMain Button2Click Sender TObject var
  • 将 jQuery 与 Shadow dom 结合使用

    这里我用 Shadow dom 创建了元素 some preparing code this createShadowRoot creates shadow root this refers to element 稍后在代码中我将访问我创建
  • PHP 使用会话登录

    我是 PHP 的初学者 我尝试创建我的 php 登录代码 但遇到了一些问题 如果我访问其他页面 我的网站不会记住我登录过 会话不会保留