7

私は数日前にWindowsxp32で自分のサイトを作成しました。次に、同じタイプのWindows(Professional xp 32bit)を再インストールしました。

現在、私のWebサイトは正しく機能していません。$_SESSIONS送信されないので、ウィンドウがこれと関係があるのではないかと思います(で、いくつかのスタートアップサービスをオフにしましたmsconfig->services)。私が疑う他のことはXAMPPです。問題を見つけた後php.ini、Apacheで1000回編集しましたが、問題は解決しませんでした。グーグルでは、多くの人が一般的な問題について不平を言っています。サーバーを変更したため、セッションが送信されなくなったとのことです。

私はphpを初めて使用し、正確に何が起こっているのかわかりません。

誰かが問題がどこにあるかについてのいくつかのヒントを手伝ってくれますか?また、たとえばユーザーがlogged_in()->sendデータmysql-> SET logged_in = 1;であるかどうか、lの場合など、セッションの代替を使用することが良い習慣であるかどうかを知りたいですogout() -> SET logged_in = 0。または他の何か。この問題に関するすべての情報が役立ちます。ありがとうございました!

正確なコードの状況は次のとおりです。プロジェクトリンク:http ://dox.bg/files/dw?a = e2f056d0f2 このログインフォームがあります:

        <form action="login.php" method="post">
            <ul>
                <li>
                    <input type="text" name="username">
                </li>
                <li>
                    <input type="password" name="password">
                </li>
                <li>
                    <input type="submit" value="login">
                </li>
                <li>
                    <a href="register.php">register</a>
                </li>
            </ul>    
        </form>

login.phpに私はこれを持っています:

...
    else 
                    {  
                    $_SESSION['user_id'] = $login;
                    //... $_SESSION['user_id'] works here and outputs the correct data - user_id
                    header('Location: index.php');
                    exit();
...

そしてint.php(それはinclに含まれindex.phpています)に私はこれを持っています:

session_start();

print_r(session_get_cookie_params()); echo '<br>'; // outputs: Array ( [lifetime] => 0 [path] => / [domain] => [secure] => [httponly] => ) 
print_r(session_status());  echo '<br>'; // output: 2

var_dump($_SESSION); // output: array(0) { } 
print_r($_SESSION);
print_r($_SESSION['user_id']); // outputs: "Notice: Undefined index: user_id in C:\xampp\htdocs\orderfood\Core\int.php on line 10"

require 'database/connect.php';
require 'functions/general.php';
require 'functions/users.php';
require 'functions/options.php';

if(logged_in() === true)//this is ok.
{

$session_user_id = $_SESSION['user_id'];  // <-------- not working...

...スクリプトは続きます

修理済み。何が悪かったのか正確に説明することはできませんが、削除session_start()core/int.php(ちなみに、パスは「core /」なしで書き込まれました)、ログインユーザーを必要とするファイルに追加session_start()しました。index.php

これで問題が解決しました。実際、これはおかしな間違いのようです。以前のウィンドウでWebサイトを実行していましたが、誤って削除しました。インクで提供したファイルは、機能していると信じていた古いバックアップからのものですが、そうではありませんでした。noobの投稿をお詫びします。ありがとうございます。あなたの注意のために。

4

2 に答える 2

0

session_start()すべてのファイルにを含める必要があります。さらに、すべてのセッション変数をクリアするため、session_close()またはを使用しないでください。session_destroy()

リダイレクトするときに問題が発生します。そのため、最初に持っているlogin.phpとの両方にチェックを入れてください。index.phpsession_start()

PHP ファイルの完全なソース コードを提供すると、デバッグが容易になります。


ファイルを見た後:

次の行を追加しました。

include '/core/int.php';

すべてのファイルで、これを次のように置き換える必要があります。

include 'core/int.php';

これは Linux マシンではなく、さらに、ここに相対パスまたは からC:\XAMPP\の絶対パスなどを指定したためです。これで問題が解決することを願っています。

于 2012-11-27T11:15:09.333 に答える
0

ini_set(' session.save_path','SOME WRITABLE PATH');解決策は、すべてのスクリプト ファイルで宣言することでしたが、それは面倒でした。

于 2012-11-28T02:55:59.320 に答える