Я провел некоторое исследование здесь в 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"];
Вы перезагружаете страницу. Ценность $loginUsername
не хранится
В вашем случае вы можете попробовать использовать сессию
в вашем логине назначьте имя пользователя для сессии:
if ($count == 1){
$_SESSION['username'] = $loginUsername;
header("Location:profile.php");
}
в вашем профиле используйте сессию:
echo $_SESSION['username']
не забудьте начать сеанс в начале ваших страниц, как session_start();
Вам нужно узнать о PHP СЕССИЯ: Вы можете просто сделать это с этим.
<?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"];