如何从一个php文件中获取用户ID并在另一个php文件中检索它

时间:2017-02-17 11:11:15

标签: php android mysql session

如何从另一个PHP文件获取PHP文件的user_id。我使用$_SESSION['user_id']来做,但它不适合我。任何人都可以告诉我如何做到这一点以及$_SESSION['user_id']应放在PHP文件中的位置,或者是否有更好的方法。我想我已将它放在login.php文件中的正确位置,但不确定fitness.php.我是否将它们用于我的Android应用。这两个PHP文件如下。非常感谢任何帮助,谢谢。

的login.php

<?php
session_start();
$error = NULL;

include_once('connection.php');
if(isset($_POST['txtUsername']) && isset($_POST['txtPassword'])){
    $username = $_POST['txtUsername'];
    $password = $_POST['txtPassword'];

    $query = "SELECT username, password, user_id FROM user WHERE username = '$username' AND password = '$password'";

    $result = mysqli_query($conn, $query);

    if($username == $error || $password == $error) {
        echo "Login Failed <br>";
    }
    elseif($result->num_rows > 0){
        $_SESSION['user_id'] = 'user_id';

        if(isset($_POST['mobile']) && $_POST['mobile'] == "android"){
            echo "success";
            exit;
        }
        echo "Login Successful";
        // header("location: login.php");
    }

    else{
        echo "Login Failed <br>";
    }
}
?>

fitness.php

<?php
session_start();
$error = NULL;
include_once('connection.php');
if(isset($_POST['pulseOne']) && isset($_POST['pulseTwo']) && isset($_POST['pulseThree'])){
    $pulseOne = $_POST['pulseOne'];
    $pulseTwo = $_POST['pulseTwo'];
    $pulseThree = $_POST['pulseThree'];

    $fitnessResult = 100;
    $overall = 30000;
    $fitnessScore = -1;

    $fitnessScore = $pulseOne + $pulseTwo + $pulseThree;

    if($fitnessScore != 0){
        $fitnessResult = $overall/$fitnessScore;
        $fitnessResult = round($fitnessResult, 0);
    }
    else{
        $fitnessResult = NULL;
    }
    // $fitnessResult = mydivide($overall/$fitnessScore);

    $date = date("Y-m-d");
    $time = date("h:i:sa");

    // $user_id = $_POST['user_id'];

    $query = "INSERT INTO `fitness`(`fitnessScore`, `fitnessDate`,`fitnessTime`, `user_id`) VALUES ('$fitnessResult','$date','$time', 42)";
    $result = mysqli_query($conn, $query);


    if($pulseOne == $error || $pulseTwo == $error || $pulseThree == $error){
        echo "Insert Failed";
    }
    elseif($result > 0){
        if(isset($_POST['mobile']) && $_POST['mobile'] == "android"){
            echo "success";
            exit;
        }
        echo "Insert Successfully";
    }
    else{
        if(isset($_POST['mobile']) && $_POST['mobile'] == "android"){
            echo "Registration Failed";
            exit;
        }
        echo "Insert Failed";
    }
}

?>

2 个答案:

答案 0 :(得分:0)

你可以这样做首先将你的会话变量保存在另一个变量中,而不是尝试在数据库中插入

 $user_id = $_SESSION['user_id'] ;

尝试回应它

echo $user_id;

一旦你使用它或将其插入数据库

更改您的代码
$_SESSION['user_id'] = 'user_id';

这个

  $_SESSION['user_id'] = $row['user_id'];

答案 1 :(得分:0)

这里要注意很多事情,如果你正在使用其他正确使用的话,首先要重构你的If和else语句。你正在使用mysqli没有准备好的语句简单查询,试​​着学习更好的方法,这样你的代码就不会容易受到攻击。最后但并非最不重要的是,您正面临着这个问题,因为您尝试将Session变量值与post关键字一起使用,请尝试以下方法:

$ user_id = $ _SESSION [&#39; user_id&#39;];它将被解决。