使用两个表

时间:2017-07-27 16:23:11

标签: php mysql session

我正在使用PHP处理表单并为mysql数据库生成报告。 我有三个表单(页面),用户创建帐户(register.php),登录页面(index.php),登录成功时主页打开(home.php)和用户完成活动后退出页面(logout.php)

登录表是USERS-TABLE,它是整个系统的主表。其他表格使用帐号和电话号码链接到USERS-TABLE。

实际上我自己并没有编写脚本,因为我是php的新手,所以我从网上复制了它。

index.php(登录页面)有一个userid会话,用于识别用户并在主页和我拥有的所有其他页面上显示他们的名字。 USERS-TABLE只有4个字段,主要用于注册和登录。

问题: 除了基于每页运行的USERS-TABLE的会话外,如何从其他表创建会话?

下面的代码是索引页面的代码(登录页面)

<?php
         ob_start();
         session_start();
         require_once 'dbconnect.php';

         // it will never let you open index(login) page if session is set
         if ( isset($_SESSION['user'])!="" ) {
          header("Location: home.php");
          exit;
         }

         $error = false;

         if( isset($_POST['btn-login']) ) { 

          // prevent sql injections/ clear user invalid inputs
         $acctnumber = trim($_POST['acctnumber']);
          $acctnumber = strip_tags($acctnumber);
          $acctnumber = htmlspecialchars($acctnumber);

          $phone = trim($_POST['phone']);
          $phone = strip_tags($phone);
          $phone = htmlspecialchars($phone);

           $acctname = trim($_POST['name']);
          $acctname = strip_tags($namer);
          $acctname = htmlspecialchars($name);
          // prevent sql injections / clear user invalid inputs

          if(empty($phone)){
           $error = true;
           $emailError = "Please Enter Your Phone Number.";
          } else if ( !filter_var($email,FILTER_VALIDATE_EMAIL) ) {
           $error = false;
           $emailError = "<br>Please enter valid account credentials";
          }

          if(empty($acctnumber)){
           $error = true;
           $passError = "Please enter your account number.";
          }

          // if there's no error, continue to login
          if (!$error) {

           $password = hash('sha256', $pass); // password hashing using SHA256

           $res=mysql_query("SELECT userId, acctname, acctnumber, phone FROM userss WHERE acctnumber='$acctnumber' AND phone='$phone'");
           $row=mysql_fetch_array($res);
           $count = mysql_num_rows($res); // if uname/pass correct it returns must be 1 row

           if( $count == 1 && $row['phone']==$phone ) {
            $_SESSION['user'] = $row['userId'];
                $_SESSION['acctnumber'] = $row['acctnumber'];

            header("Location: home.php");
           } else {
            $errMSG = "Incorrect Credentials, Try again...";
           }

          }

         }
        ?>

此处是用户成功登录后的主页代码。

<?php
ob_start();
 session_start();
require_once 'dbconnect.php';
 // if session is not set this will redirect to login page
  if( !isset($_SESSION['user']) ) {
   header("Location: index.php");
  exit;
  }
 // select loggedin users detail
  $res=mysql_query("SELECT * FROM userss WHERE
  userId=".$_SESSION['user']);
     $_SESSION['acctnumber'] = $row['acctnumber'];

    $userRow=mysql_fetch_array($res);
   ?>

这是我需要参加会议以便自动识别用户登录的问题。

  $result = mysql_query("select mydate, preamount, currentdeposit, debit,
   currentinterest, totalamount, status  from NormalAccount where    
   acctnumber = '$actno' AND phone = '$pin' ORDER BY mydate DESC LIMIT
   5");

很抱歉打扰你们有很多文字,但我完全是PHP世界的新手。

谢谢你们。

0 个答案:

没有答案