我有一些代碼總是在else/if語句中返回$ aid = 1。任何人都可以幫助我找出爲什麼這可能發生在邏輯內?PHP編碼邏輯
<?php
session_start();
require('includes/config.php');
if(!$user->is_logged_in()){ header('Location: login.php'); }
include_once("config.php");
if(isset($_SESSION['account_id'])) {
$aid = $_SESSION['account_id'];
} else if(isset($_POST['aid'])) {
$aid = $_POST['aid'];
} else if(isset($_GET['aid'])) {
$aid = $_GET['aid'];
} else {$aid='1';}
include_once('includes/top.php');?>
快速背景(如果有幫助)...這是用於登錄。一旦客戶登錄,我正試圖在數據庫中只顯示他們的數據。我已經獲取了所有正確的數據,但我無法讓登錄的用戶使用正確的account_id進行調用。如果我要將最新的$ aid = 1更改爲$ aid = 2,那麼它會正確地提取所有account_id = 2信息,但是它會爲每個登錄的用戶執行此操作。
任何意見非常感謝。
謝謝!
下面是登錄功能
<?php
require_once('includes/config.php');
if($user->is_logged_in()){ header('Location: main.php'); }
if(isset($_POST['submit'])){
$username = $_POST['username'];
$password = $_POST['password'];
if($user->login($username,$password)){
$_SESSION['username'] = $username;
header('Location: main.php');
exit;
} else {
$error[] = 'Invalid username/password or your account has not been activated.';
}
}
$title = 'Login';
require('layout/header.php');
?>
有,在形式調用PHP下面的一些HTML。如果有幫助的話,我可以加載它。謝謝!
此外,account_id在管理部分內進行管理。在數據庫的clients表中有一個關聯的account_id,用於指定每個用戶擁有哪個帳戶。
什麼在$ _SESSION ['account_id']'和'$ _POST ['aid']'和'$ _GET ['aid']'?他們似乎都是未設置 – rtfm
從$ _POST或$ _GET變量中獲取帳戶ID不是一個好主意,因爲任何人都可以更改它們並訪問其他用戶的數據。 – Himal
謝謝Himal。我是比賽的白人。任何建議,以減輕這種風險? – ptwalker2