ログイン後、ただ1つのウェルカムエリアを備えたスタディプランナーを構築しています。現在、現在ログインしているユーザーのユーザーIDを取得しようとしています。このウェルカム領域内のSQL更新クエリと、ウェルカムメッセージで使用するユーザーのファーストネームで使用します。現在ログインしているユーザーIDとファーストネームをデータベースから取得する種類アシスタンス
私は)経由で正常に動作します($_SESSION['login_user'] = $username;
$_SESSION['login_user'] = $username;
後$_SESSION['user_id'] = userid;
と$_SESSION['user_firstname'] = firstname;
を入れて試してみましたが、ページにログインすると、私はこれらのエラーを取得:Notice: Use of undefined constant userid - assumed 'userid' in C:\wamp64\www\justread\session.php on line 11
とNotice: Use of undefined constant firstname - assumed 'firstname' in C:\wamp64\www\justread\session.php on line 12
を。
ここで私は、セッション変数を設定する前に 'userid'と 'firstname'の初期設定を行う必要があることを知っていますが、どうすればよいかわかりません誰かが私を助けることができるかどうか疑問に思ってください。
ありがとうございます。
必要な場合、私はより多くのコードを投稿することができますが、私は懸念していると考えているコードは次のとおりです。
login.php:PHP、変数名で
<?php
// Start session
session_start();
// Variable to store error message
$error ="";
// If the login form (Note that the 'submit' refers to the 'name' attribute of the login form) has been submitted...
if (isset($_POST['submit'])) {
// If username or password is not provided...
if (empty($_POST['username']) || empty($_POST['password'])) {
// ...tell user that login details are invalid.
$error = "Please fill in both your username and your password";
// Else...
} else {
// ...put the provided username and password in variables $username and $password, respectively
$username = $_POST['username'];
$password = $_POST['password'];
// Establish connection to the server
$mysqli = mysqli_connect("localhost", "root", "");
// set up measures to counter potential MySQL injections
$username = stripslashes($username);
$password = stripslashes($password);
$username = mysqli_real_escape_string($mysqli, $username);
$password = mysqli_real_escape_string($mysqli, $password);
// Select Database
$db = mysqli_select_db($mysqli, "p00702");
// SQL query to fetch information of registerd users and find user match.
$query = mysqli_query($mysqli, "SELECT * from logins WHERE password='$password' AND username='$username'");
// Return the number of rows of the query result and put it in $rows variable
$rows = mysqli_num_rows($query);
// If rows are equal to one...
if ($rows == 1) {
unset($_SESSION['error']);
// Initialize session with the username of the user...
$_SESSION['login_user'] = $username;
// Set the user ID of the user
$_SESSION['user_id'] = userid;
// Set the user first name of the user
$_SESSION['user_firstname'] = firstname;
// ...and redirect to the homepage.
header("Location: welcome.php");
// Make sure that codes below do not execut upon redirection.
exit;
// Else,
} else {
// and tell user that the login credentials are invalid.
$error = "Your username or password is invalid";
$_SESSION['error'] = $error;
// redirect user to the home page (index.php)
header("Location: index.php");
}
// ...and close connection
mysqli_close($mysqli);
}
}
session.php
<?php
// Establish connection to the server
$mysqli = mysqli_connect("localhost", "root", "");
// Selecting Database
$db = mysqli_select_db($mysqli, "p00702");
// Starting session
session_start();
// Storing Session
$user_check = $_SESSION['login_user'];
$_SESSION['user_id'] = userid;
$_SESSION['user_firstname'] = firstname;
// Test to see the content of the global session variable
print_r($_SESSION);
// SQL Query To Fetch Complete Information Of User
$ses_sql = mysqli_query($mysqli, "SELECT username FROM logins WHERE username='$user_check'");
$row = mysqli_fetch_assoc($ses_sql);
$login_session = $row['username'];
if (!isset($login_session)) {
// Closing Connection
mysqli_close($mysqli);
// Redirecting To Home Page
header('Location: index.php');
// Make sure that codes below do not execut upon redirection.
exit;
}
ご連絡ありがとうございました。私は以下の行を入れました:$ row = mysql_fetch_object($ query); $ _SESSION ['user_id'] = $ row-> userid; $ _SESSION ['user_firstname'] = $ row-> firstname;それでも同じエラーが発生します。私は行方不明の他に何かありますか? –
session.phpファイルを確認してください。最初に割り当て操作を行うべきではありません。 –
ねえ、私はどこかに行っています。ユーザーIDが表示されています。名前のアスペクトをソートするだけです。お知らせいたします。ありがとうございました。 –