2017-07-26 3 views
-2

Ich habe einen Code, der immer $ aid = 1 innerhalb einer else/if-Anweisung zurückgibt. Kann mir jemand helfen herauszufinden, warum das in der Logik passiert?PHP Coding Logic

<?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');?> 

Schnelle Hintergrund (wenn es hilft) ... Dies ist für ein Login. Sobald ein Kunde sich anmeldet, versuche ich, nur seine Daten innerhalb der Datenbank zu zeigen. Ich habe alle richtigen Daten, die gezogen werden, aber ich kann den angemeldeten Benutzer nicht dazu bringen, die richtige account_id aufzurufen. Wenn ich die letzte $ aid = 1 zu $ ​​aid = 2 ändern würde, dann würde es alle account_id = 2 Informationen richtig ziehen, aber es würde es für jede eingeloggte Person tun.

Jeder Rat wird sehr geschätzt.

Danke!

Im Folgenden finden Sie die Login-Funktion

<?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'); 
?> 

Es gibt einige html unter dem PHP ist, die in Form nennt. Ich kann das laden, wenn das auch hilft. Vielen Dank!

Auch die account_id's werden im Admin-Bereich verwaltet. In der Clienttabelle der Datenbank ist eine account_id zugeordnet, die angibt, welches Konto jeder Benutzer besitzt.

+0

Was ist in '$ _SESSION ['account_id']' und '$ _POST ['aid']' und '$ _GET ['aid']' ?? sie scheinen alle nicht gesetzt zu sein – rtfm

+1

Es ist keine gute Idee, die Konto-ID von einer '$ _POST'- oder '$ _GET'-Variablen zu bekommen, da jeder sie ändern und auf die Daten eines anderen Benutzers zugreifen kann. – Himal

+0

Danke Himal. Ich bin ein Neuling zum Spiel. Irgendwelche Ratschläge, um dieses Risiko zu mindern? – ptwalker2

Antwort

0

Wenn andere Bedingung Seite Sie sind nicht Post und erhalten Sie Daten so Post und Get-Methode wird nicht funktionieren. Dann müssen Sie sicherstellen, dass die Sitzung eingestellt ist oder nicht. Danach können Sie nur den genauen Wert von $ hilfe herausfinden.

+1

Ihre Antwort ist sehr unklar. Bitte klären Sie. – Difster

+0

Können Sie bitte den Datenbeitrag teilen oder Seitencode erhalten? –