2017-07-26 116 views
-2

我有一些代碼總是在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,用於指定每個用戶擁有哪個帳戶。

+0

什麼在$ _SESSION ['account_id']'和'$ _POST ['aid']'和'$ _GET ['aid']'?他們似乎都是未設置 – rtfm

+1

從$ _POST或$ _GET變量中獲取帳戶ID不是一個好主意,因爲任何人都可以更改它們並訪問其他用戶的數據。 – Himal

+0

謝謝Himal。我是比賽的白人。任何建議,以減輕這種風險? – ptwalker2

回答

0

如果條件頁你的不是發佈和獲取任何數據的所以發佈和獲取方法將無法正常工作。那麼你需要確保會話是否設置。之後,只有你能夠找到$ aid的確切值。

+1

你的答案很不明確。請澄清。 – Difster

+0

您可以分享數據發佈或獲取頁面代碼嗎? –