WordPress を使用して Web サイトを作成し、1 つのページに独自のスクリプトを含めて、結果を計算するための一連の手順をユーザーに案内しました。スクリプトはこの順序で含まれています
メインページ -> 自分の Wizard.php をインクルード -> Wizard.php インクルードの Wizard_Step_xx.php
ウィザードは、Step_01 から Step_10.php まで、毎回新しいステップをリロードします。これは、jQuery スクリプトによって行われます。
今私の問題は、ユーザーがこの「ウィザード」を終了するたびに、ログインして自分のページにリダイレクトされるオプションを取得することです。ユーザーがリンクをクリックして「ウィザード」にアクセスすると、通常はウィザードの最初のステップを表示するのではなく、ユーザーの個人用ページを表示したいと考えています。
$_SESSION
ユーザーがログインしたときに変数を設定するこの単純なスクリプトを作成しました。
//Validate Log In
if(isset($_POST['Validate'])) //submit login button
{
$inlog_naam = ( $_POST['inlognaam'] );
$wachtwoord = ( $_POST['wachtwoord'] );
$try = mysql_query("SELECT * FROM xxxx WHERE username = '$inlog_naam' AND password = '$wachtwoord'") or die (mysql_error() );
$result = mysql_num_rows($try);
if($result == 0)
{
$page = ( 8 );
$_SESSION['Invalid_Login_1'] = ( "true" );
}
else
{
$_SESSION['Invalid_Login_1'] = ( "false" );
$user_info = mysql_query("SELECT * FROM xxxxx WHERE username = '$inlog_naam' AND password = '$wachtwoord'") or die ( mysql_error() );
$user_info_result = mysql_fetch_array($user_info, MYSQLI_BOTH);
$user_lastname = ( $user_info_result['contact_Achternaam'] );
$user_id = ( $user_info_result['user_id'] );
$_SESSION['user_id_1'] = ( $user_id );
$_SESSION['user_name'] = ( $inlog_naam );
$_SESSION['user_lastname'] = ( $user_lastname );
$session_id = ( session_id() );
mysql_query("UPDATE xxxxx SET user_id = '$user_id', user_username = '$inlog_naam', user_lastname = '$user_lastname' WHERE session_id = '$session_id'") or die (mysql_error() );
$page = ( 9 );
$_SESSION['user_login'] = ( "true" );
$_SESSION['user_main_screen'] = ( "true" );
}
これで、スクリプトのこの部分が完全に機能し、$_SESSION
変数が設定されます。しかし、リンクをクリックしてウィザードに再度移動すると、通常発生する Wizard_Step_01.php の代わりに、Wizard.php ファイルにこのスクリプトを取得して、ユーザーの個人ページを表示しました。
if(isset($_SESSION['user_login']) && $_SESSION['user_login'] == 'true')
{
$page = 9;
}
else
{
echo $_SESSION['user_login'];
}
このスクリプトは変数を認識していないようですが$_SESSION
、このページで [次へ] をクリックして Wizard_Step_02.php に移動すると、変数は認識されます。
また、何らかの理由で、私のサイトで 2 つのPHPSESSIDが実行されていることに気付きました。これを行うことでこれを防ぐことができると思いました。
<?php if(!isset( $_SESSION )) { session_start(); } ?>
しかし、何らかの理由で、まだ 2 番目のPHPSESSIDが作成されます。
2 つのPHPSESSIDのうちの 1 つを無効化/削除/設定解除する方法について誰かが考えている場合、これが問題の原因であるか、またはこれが発生している理由について何か考えがあります....
$_SESSION['user_login']
明確にするために:ページをロードしたときに、ページが設定を見つけられない理由を知りたいです。また、任意の提案や任意の形式のヘルプをいただければ幸いです。
読んでくれてありがとう。