2015-08-12 3 views
0

Я провел некоторое исследование здесь, в stackoverflow, но не смог найти ту же проблему. У меня есть страница входа в систему, и когда пользователь входит в систему, он перенаправляется на страницу профиля. На странице профиля я хочу напечатать имя пользователя. Я включаю файл login.php, но по какой-то причине переменная, содержащая имя пользователя, не может использоваться из login.php в файле profile.php. Вот код:От страницы входа на страницу профиля

Войти страница

<?php 
     $host = "XXXX"; 
     $username = "XXXX"; 
     $password = "XXXX"; 
     $db = "XXXX"; 

     $conn = new mysqli($host, $username,$password, $db); 

     if($conn->connect_error){ 
       die("Connection failed: " . $conn->connect_error); 
     } 

     error_reporting(E_ALL); 
     ini_set('display error', 1); 

     if(isset($_POST["loginButton"])){ 
       $loginUsername = $_POST["loginUsername"]; 
       $loginPassword = $_POST["loginPassword"];    
       $query = "SELECT * FROM user WHERE username='$loginUsername' and password='$loginPassword'"; 
       $result = mysqli_query($conn,$query) or die(mysqli_error()); 
       $count = mysqli_num_rows($result); 
       if ($count == 1){ 
         header("Location:profile.php"); 
       }else{ 
       echo "Invalid Login Credentials."; 
       } 
     } 
?> 

Страница профиля

<?php 
include("login.php"); 
error_reporting(E_ALL); 
ini_set('display error', 1); 

echo $loginUsername; 

$sql = "SELECT username FROM user WHERE username = '$loginUsername' "; 
$result = mysqli_connect($conn,$sql); 
while($row = mysqli_fetch_assoc($result)){ 
    echo $username = $row["username"]; 
+0

Можете ли вы опубликовать код переполнения стека? – StefanHeimberg

+1

После перенаправления значения '$ _POST' стираются, поскольку это перенаправление не является сообщением. Я думаю, вы хотите узнать о некоторых «сеансах» сейчас. – Blake

ответ

1

Вы перезагрузки страницы. Значение $loginUsername не поддерживается. В вашем случае вы можете попробовать использовать сеанс

Ваш логин Назначают пользователя к сеансу:

if ($count == 1){ 
$_SESSION['username'] = $loginUsername; 
header("Location:profile.php"); 
} 

в вашем профиле, используйте сессию:

echo $_SESSION['username'] 

не забудьте начать сеанс в начале ваших страниц, таких как session_start();

about session

+0

Да, вы правы. Это была проблема. –

+0

@kaloian mateev, если это помогло, не стесняйтесь нажимать значок значка – Elyor

0

Вы должны знать о PHP SESSION: Вы можете просто сделать это с этим.

<?php 


     $host = "localhost"; 
     $username = "user_root"; 
     $password = "010203"; 
     $db = "game_db"; 

     $conn = new mysqli($host, $username,$password, $db); 

     if($conn->connect_error){ 

       die("Connection failed: " . $conn->connect_error); 

     } 


     error_reporting(E_ALL); 
     ini_set('display error', 1); 


     if(isset($_POST["loginButton"])){ 

       $loginUsername = $_POST["loginUsername"]; 
       $loginPassword = $_POST["loginPassword"]; 


       $query = "SELECT * FROM user WHERE username='$loginUsername' and password='$loginPassword'"; 

       $result = mysqli_query($conn,$query) or die(mysqli_error()); 
       $count = mysqli_num_rows($result); 
       if ($count == 1){ 
         session_start(); 
         $_SESSION['loginUsername'] = $loginUsername; 
         header("Location:profile.php"); 


       }else{ 
       echo "Invalid Login Credentials."; 
       } 



     } 



?> 

И используйте это на любой странице с сеансом.

<?php 
session_start(); 
      include("login.php"); 
      error_reporting(E_ALL); 
      ini_set('display error', 1); 
      $loginUsername = $_SESSION['loginUsername']; 
      echo $loginUsername; 

        $sql = "SELECT username FROM user WHERE username = '$loginUsername' "; 

              $result = mysqli_connect($conn,$sql); 

              while($row = mysqli_fetch_assoc($result)){ 

                echo $username = $row["username"]; 
+0

Да, я читал о них сейчас, и он работает. Я не понимаю, когда разрушать сеанс и что он делает точно? –

+0

вы можете установить ссылку выхода на страницу выхода. и на этом вы можете уничтожить свою сессию и перенаправить на свою страницу входа. – Chayan

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

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