2017-02-17 12 views
0

Как получить user_id для файла PHP из другого файла PHP. Я использую $_SESSION['user_id'], но это не работает для меня. Может ли кто-нибудь показать мне, как это сделать и где $_SESSION['user_id'] должен быть помещен в файлы PHP, или если есть лучший способ сделать это. Я думаю, что я разместил его в нужном месте в файле login.php, но не уверен в fitness.php.. Я использую их для своего приложения для Android. Ниже приведены два файла PHP. Любая помощь будет принята с благодарностью, спасибо.Как получить идентификатор пользователя из одного php-файла и получить его в другом файле 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"; 
    } 
} 

?> 
+1

Ваш код находится в ** опасности ** получения SQL-инъекций. См. [How-can-i-prevent-sql-injection-in-php] (http://stackoverflow.com/questions/60174/how-can-i-prevent-sql-injection-in-php?rq=1) –

+0

Так много ошибок здесь, как уязвимость SQL-инъекций. Хранение паролей в обычном тексте и т. Д. – e4c5

+0

вам нужно выполнить echo $ _SESSION ['user_id'], где бы вы ни хотели, user_id –

ответ

0

вы можете сделать, как это в первую очередь сохранить переменную сеанса в другой переменной, чем попытаться вставить в базу данных

$user_id = $_SESSION['user_id'] ; 

Попробуйте повторить его так.

echo $user_id; 

как только вы получите его использовать или вставить его в базу данных

изменить код из

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

этого к

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

Сначала вам нужно дать значение переменной сеанса, например $ _SESSION ['user_id'] = 42, чем вы можете получить ее в другом файле, используя вышеприведенный код. –

+0

Попробуйте изменить свой код на один, который я предоставил, и попробуйте выбрать, как я сказал –

0

Так много вещей, чтобы отметить здесь, в первую очередь реструктуризации ваши утверждения If и else, если вы используете else, если используете их правильно. вы используете mysqli без подготовленных заявлений простой запрос, попробуйте лучше узнать, чтобы ваш код не оставался уязвимым. Последнее, но не в последнюю очередь, вы столкнулись с этой проблемой, потому что вы пытаетесь использовать значение переменной Session с ключевым словом post, попробуйте следующее:

$ user_id = $ _SESSION ['user_id']; и он будет решен.

 Смежные вопросы

  • Нет связанных вопросов^_^