3

管理パネルを作ろうとしましたが、使用しsessionsていますが、問題があり、セッションが機能しません。

index.php

$r=mysql_fetch_array($result);
$login=$r["login"];
session_register('login');
Header("Location: protected.php");

保護された.php

<?php 
session_start();
if (!isset($_SESSION['login'])) { 
  echo "Not work";
}
else{
  echo "Work";
}
?>

index.php ではセッションを登録しますが、protected.php ではこのセッションが設定されていないため、何が問題なのかわかりません。

4

3 に答える 3

6

使用しないでくださいsession_register()。PHP 5.4.0 で削除されました。index.php でsession_start();、先頭に追加し、register 呼び出しを次のように置き換えます。$_SESSION['login'] = 'val';

于 2012-06-29T17:54:02.687 に答える
2

session_register()の使用は 5.3.0 で非推奨になり、4.1.0 以降は推奨されていません。

代わりに、参照するのと同じ形式で$_SESSION[]を使用してセッション変数を作成します。

$_SESSION['login'] = $r["login"];

$loginこのアプローチを利用すると、結果セットからのログイン値がセッション変数に直接設定されるため、変数を初期化する必要がなくなります。

<?php // Use of session_register() is deprecated 
$barney = "A big purple dinosaur."; session_register("barney");

// Use of $_SESSION is preferred, as of PHP 4.1.0 
$_SESSION["zim"] = "An invader from another planet.";

// The old way was to use $HTTP_SESSION_VARS 
$HTTP_SESSION_VARS["spongebob"] = "He's got square pants."; ?>

さらに、mysql_fetch_array使用しないことをお勧めします。代わりに、MySQLiまたはPDO_MySQL拡張機能を利用する必要があります。

于 2012-06-29T17:54:50.887 に答える
2

session_register()詳細については、こちらを参照してください。

http://php.net/manual/en/function.session-register.php

于 2012-06-29T17:55:37.697 に答える