我正在使用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世界的新手。
谢谢你们。