ホームページ >バックエンド開発 >PHPチュートリアル >PHP の専門家が先導 - 概要と質問への回答_PHP チュートリアル
1: 変数
を取得できないのはなぜですか。ある Web ページから別の Web ページにデータ名を POST したのに、$name を出力すると値を取得できないのはなぜですか?
PHP4.2以降のバージョンでは、register_globalのデフォルトはoffになります
別のページから送信された変数を取得したい場合:
方法1:PHP.iniでregister_globalを見つけてonに設定します
方法2:これを入れますextract($_POST);extract($_GET); (extract($_SESSION) の前に Session_Start() が必要であることに注意してください)。
方法 3: 変数を 1 つずつ読み取ります $a=$_GET[ "a"]; $b=$_POST["b"] など。この方法は面倒ですが、安全です。
2: プログラムのデバッグ
実行時に特定の変数の値を知っておく必要があります。これが私がやったことです。次の内容のファイル debug.php を作成します:
PHP コード:
Echo
"
"<font color="#007700"><br>;</font><font color="#0000bb"> Echo </font><font color="#007700">"The _GET 変数このページで取得される _POST 変数は、「<br></font>;<font color="#dd0000"></font><font color="#007700"> Print_R<br><br>(</font><font color="#dd0000">$_GET</font><font color="#007700">);<br> </font> Echo <font color="#0000bb"> </font>」です。このページで取得される _POST 変数は、「<font color="#007700"></font>;<font color="#0000bb"></font><font color="#007700"> Print_」です。 R<br><br> (</font><font color="#dd0000">$_POST</font><font color="#007700">);<br></font> Echo <font color="#0000bb"></font>"このページで取得する_COOKIE変数は、"<font color="#007700"></font>;<font color="#0000bb"> </font><font color="#007700"> Print_R<br><br>(</font><font color="#dd0000">$_COOKIE</font><font color="#007700">);<br> </font> エコー<font color="#0000bb"></font>「ザこのページで取得する_SESSION変数は、「<font color="#007700"></font>;<font color="#0000bb"></font><font color="#007700"> Print_R<br><br>(</font> <font color="#dd0000">$_SESSION</font><font color="#007700">);<br></font> Echo <font color="#0000bb">」"; ?>
PHP コード:
session_start();
session_unset();
session_destroy();
?>
php4.2以降でセッション変数をキャンセルするBUGもあります。
注:
1: Session_Start()を呼び出す前に出力を行うことはできません。例えば、以下は間違っています。 ==============。 ================================================================================ ============================ =======
ヒント1:
いつでも「....」 headers selected....
」と表示される場合は、Session_Start()の出力情報の前にブラウザにメッセージを送信していることを意味します。出力を削除すれば正常です。 (このエラーはCOOKIEでも発生し、エラーは同じです)
ヒント 2:
Session_Start() がループステートメント内に配置され、Information の前にブラウザに出力する場所を決定するのが難しい場合は、次の方法を使用できます:
1 行
…これがあなたのプログラムです…
2: これ エラーは何ですか
警告: session_start(): open(/tmpsess_7d190aa36b4c5ec13a5c1649cc2da23f, O_RDWR) が失敗しました: ....
セッションファイルの保存パスを指定していないため 解決策:
(1)cドライブtmpにフォルダーを作成します
(2)php.iniを開き、session.save_pathを見つけて変更しますそれを session.save_path= "c:/tmp" にします
4: 変数を別の Web ページに送信すると、スペースを含む変数の前半だけが取得されるのはなぜですか?
PHP コード:
$Var
=
"hello php"
;
// $Var=" Hello php" に変更します。 $post= "receive.php?Name="
.$Var; header("location:$post"
); ?> receive.phpの内容: PHPコード:
エコー
"
;"<BR><?PHP<BR>;<FONT color=#0000bb>エコー<BR> </FONT>$_GET<FONT color=#007700> </FONT>[<FONT color=#dd0000></FONT>"Name"<FONT color=#007700><BR>];</FONT> Echo <FONT color=#0000bb></FONT>""; ?>
1: 変数を取得できないのはなぜですか? ある Web ページから別の Web ページにデータ名を POST するときに、$name を出力するときに値を取得できないのはなぜですか? PHP 4.2 以降のバージョンでは、register_global がデフォルトでオフになります。もしそうなら…