PHP 定義済み変数 (2)
4. セッション変数 ($_SESSION): PHP の SESSION 関数によって生成されたデータは、スーパー グローバル変数の形式で $_SESSION 変数に格納されます。
1.セッション紹介
SESSION はセッションとも呼ばれ、サーバーに保存され、ユーザー関連の情報を保存するために使用される小さなファイルです。セッション識別子は、各セッションを区別するために使用されます。 SESSION を使用して、COOKIE と同じ作業を完了することもできます。セッションは、設定される値を自動的にエンコードおよびデコードするため、配列やオブジェクトを含むあらゆるデータ型の保存をサポートできます。
2. session_save_path() 関数を使用して、次のようにセッション ファイルの保存ディレクトリを設定します。
session_save_path("D:/phpnow/Apache2/temp");
// session_save_path() 関数を使用して、現在のセッションが保存されているディレクトリを取得します
echo session_save_path()."
";
注: PHP のインストール完了後、SESSION の保存パスが設定されていないため、スクリプト内で直接 SESSION を使用すると、パスが存在しないためエラーが発生します。 session_save_path() 関数を使用すると、SESSION ファイルの保存パスを変更できますが、変更できるのは現在のスクリプトのみです。 PHP 構成ファイルに有効な SESSION ファイル保存ディレクトリが設定されている場合、現時点では、すべての PHP プログラムが SESSION ファイルを保存するディレクトリを共有する必要はありません。
3. SESSION変数を登録します
$_SESSION は配列であるため、配列を使用してセルを追加し、新しい変数を SESSION に追加できます。例:
session_start();//SESSION を開きます。使用する前に開く必要があります
//配列にユニットを追加するメソッドを使用し、SESSION変数を追加します
$_SESSION["username"] = "phpstuer";//ストレージ文字列
$sessionArr = array("1","2","3");
$_SESSION["arr"] = $sessionArr //ストレージ配列
;
注: session_register 関数を使用して SESSION 変数を登録することもできますが、この関数は PHP5.3 以降非推奨になっているため、ここでは例を示しません。
4. SESSION変数にアクセス
SESSION 変数はユニット形式で $_SESSION グローバル変数に格納されるため、配列アクセス メソッドを使用して SESSION 変数にアクセスできます。 SESSION 変数は登録後、使用する前に初期化する必要があります。これは COOKIE とは異なります。 SESSION を初期化する関数は session_start() です。例:
// session_start() 関数を使用して SESSION を開始します
session_start();
// $_SESSION 配列を走査します
foreach($_SESSION as $key=>$value){
echo "$key=>$value
";
}
echo "SESSION 変数に単独でアクセス:";
echo $_SESSION["ユーザー名"]."
";
echo "SESSION 変数に単独でアクセス:";
echo $_SESSION["arr"][2];
注: session_start() 関数を使用する場合、エラー メッセージが表示されないようにするには、ページの先頭にコード
を追加します。
5.SESSION変数を削除
SESSION 変数を使用した後、サーバー リソースの使用量を減らすために、登録されている SESSION を削除する必要があります。
session_start();
//削除前:
エコー「レリー」;
// unset() 関数を使用して $_SESSION 変数を削除します
unset($_SESSION["ユーザー名"]);
// session_unset() 関数を使用して、現在のページの $_SESSION 変数を削除します
//session_unset();
// session_destroy() 関数を使用して、現在のページの $_SESSION 変数を削除し、SESSION ファイルを削除します
//session_destroy();
//削除後:
エコー「レリー」;
5. リクエスト変数 ($_REQUEST) は、$_POST、$_GET、$_COOKIE 変数を含むデータを格納するスーパー グローバル変数です。 $_REQUEST にアクセスすると、$_POST、$_GET、$_COOKIE 変数の関数を実装することもできます。
$_REQUEST の方が使いやすいですが、$_REQUEST が提供するデータには一定のリスクがあります。たとえば、プログラムが $_REQUEST を使用して $_COOKIE 値を読み取る場合、興味のある訪問者は、$_GET 変数を指定して特定のアクセス権を取得することで $_COOKIE 値をシミュレートできます。
使用例:省略。
六、服务器变量($_SERVER)是由网络服务器创建的数组,其内容包括头信息、路径、脚本位置等。不同的网络服务器提供的信息有所出入,下面实例是以Apache服务器提供的作为标准。
echo "
";<br>
print_r($_SERVER);<br>
echo "
";
//解释如下:
echo "显示脚本文件的相对路径和文件名:\"".$_SERVER["PHP_SELF"]."\"
";
echo "显示服务器使用的CGI脚本规范:\"".$_SERVER["GATEWAY_INTERFACE"]."\"
";
echo "显示当前运行脚本所在服务器的IP地址:\"".$_SERVER["SERVER_ADDR"]."\"
";
echo "显示当前运行脚本服务器名称:\"".$_SERVER["SERVER_NAME"]."\"
";
echo "显示当前运行脚本服务器标识:\"".$_SERVER["SERVER_SOFTWARE"]."\"
";
echo "显示请求页面的通信协议的名称和版本:\"".$_SERVER["SERVER_PROTOCOL"]."\"
";
echo "显示访问页面的请求方法:\"".$_SERVER["REQUEST_METHOD"]."\"
";
echo "显示脚本开始运行时间:\"".$_SERVER["REQUEST_TIME"]."\"
";
echo "显示URL问号后的字符串:\"".$_SERVER["QUERY_STRING"]."\"
";
echo "显示当前运行脚本的文档根目录:\"".$_SERVER["DOCUMENT_ROOT"]."
";
echo "显示当前Accept请求的头信息:\"".$_SERVER["HTTP_ACCEPT"]."\"
";
echo "显示当前请求的字符信息:\"".$_SERVER["HTTP_ACCEPT_CHARSET"]."\"
";
echo "显示当前当前请求的Accept-Encoding头信息:\"".$_SERVER["HTTP_ACCEPT_ENCODING"]."\"
";
echo "显示当前请求的Accept-Language头信息:\"".$_SERVER["HTTP_ACCEPT_LANGUAGE"]."\"
";
echo "显示当前请求的Connection头信息:\"".$_SERVER["HTTP_CONNECTION"]."\"
";
echo "显示当前请求的Host头信息:\"".$_SERVER["HTTP_HOST"]."\"
";
echo "显示当前页面的前一个页面的URL地址:\"".$_SERVER["HTTP_REFERER"]."\"
";
echo "显示当前请求的User-Agent的头信息:\"".$_SERVER["HTTP_USER_AGENT"]."\"
";
echo "显示脚本是否可以通过HTTPS协议进行访问:\"".$_SERVER["HTTPS"]."\"
";
echo "显示浏览当前页面用户的IP地址:\"".$_SERVER["REMOTE_ADDR"]."\"
";
echo "显示浏览当前页面用户的主机名:\"".$_SERVER["REMOTE_HOST"]."\"
";
echo "显示用户连接到服务器时所使用的端口:\"".$_SERVER["REMOTE_PORT"]."\"
";
echo "显示当前执行脚本的绝对路径名:\"".$_SERVER["SCRIPT_FILENAME"]."\"
";
echo "显示Apache配置文件中的SERVER_ADMIN参数设置情况:\"".$_SERVER["SERVER_ADMIN"]."\"
";
echo "显示网络服务器使用的端口,默认为\"80\":\"".$_SERVER["SERVER_PORT"]."\"
";
echo "显示服务器版本和虚拟主机名的字符串:\"".$_SERVER["SERVER_SIGNATURE"]."\"
";
echo "显示脚本在文件系统中的基本路径:\"".$_SERVER["PATH_TRANSLATED"]."\"
";
echo "显示当前脚本的路径:\"".$_SERVER["SCRIPT_NAME"]."\"
";
echo "显示访问当前页面的URI:\"".$_SERVER["REQUEST_URI"]."\"
";
七、环境变量($_ENV)是预定义的一个数组,记录着系统路径等信息。
echo "
";<br>
print_r($_SERVER);<br>
echo "
";
//单独访问环境变量的数组成员,可以通过“$_ENV[‘成员变量名’]”的方式实现,如:
echo "服务器操作系统为:".$_ENV["OS"]."
";
八、 HTTP文件上传变量($_FILES):由HTML表单生成的文件上传变量,以数组的形式记录了上传文件的详细信息,其数组成员包括上传的文件名:name;文件类型:type;临时文件名:tmp_name;错误信息代码 :error;文件大小:size。下面介绍使用HTML表单,生成文件上传变量的方法,
要使表单产生文件变量,要满足三个条件:
1、HTML表单要使用POST方式传递数据。
2、表单的“enctype”参数要设置为“multipart/form-data” 。
3、表单中包含一个文件选择框。
通过$_FILES变量获取上传文件相关信息后,就可以配合其他文件函数实现文件的上传。
上传文件及$_FILES的用法实例:待整理
九、$GLOBALS变量以数组的形式,记录了所有已经定义的全局变量,而变量名就是这个数组的索引。即然$GLOBALS记录着所有的全局变量,那么理所当然的也可以访问全局变量里的信息。下面介绍使用$GLOBALS访问其他预定义变量的方法,如:
session_start();
$_SESSION["school"] = "大学";
echo $_SESSION["school"]."
"; //输出 大学
//使用$GLOBALS显示当前操作系统版本
echo $GLOBALS["_ENV"]["OS"]."
";
//使用$GLOBALS访问SESSION值
echo $GLOBALS["_SESSION"]["school"]."
"; //输出大学
echo "
";<br>
print_r($GLOBALS);<br>
echo "
";
http://www.bkjia.com/PHPjc/905598.htmlwww.bkjia.comtruehttp://www.bkjia.com/PHPjc/905598.html技術記事 PHP の定義済み変数 (2) 4. セッション変数 ($_SESSION): PHP の SESSION 関数によって生成されたデータは、スーパー グローバル変数の形式で $_SESSION 変数に格納されます。 1. セッション紹介...