ホームページ >バックエンド開発 >PHPチュートリアル >PHP の専門家が先導 - 概要と質問への回答_PHP チュートリアル

PHP の専門家が先導 - 概要と質問への回答_PHP チュートリアル

WBOY
WBOYオリジナル
2016-07-13 17:19:53785ブラウズ

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.ini: include_path = "c:/php" に設定し、このフォルダーに debug.php を置きます。将来、このファイルをすべての Web ページに含めて、取得した変数名と値を表示できます。
3: sessionの使い方
セッションに関連するものはすべて、セッションに対して関数session_start();

を呼び出す必要があります 値の支払いは次のように非常に簡単です:

PHPコード:
Session_start
();


$Name

= "これはセッションの例です"
Session_Register
("名前" ); //次のように書かないでください: Session_Register("$Name
");
Echo $_SESSION ["Name "];
//その後、$_SESSION["Name" ] は「これはセッションの例です」です ?> php4.2以降では、セッションに対して直接支払うことができます: PHPコード:
Session_Start ();

$_SESSION

[

"name"]=
"value"
;
セッションのキャンセルは次のように行うことができます: このニュースには合計 5 ページがあり、現在 1 1
2 3 4 5


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>"
"; ?>
正しい方法は: PHPコード: $Var
=

"hello php"

;
$post
= "receive.php?Name="urlencode .
(
$ Var); header("location:$post"); ?>
受信ページではURLを使用する必要はありません decode(), 変数このニュースには合計 5 ページがあり、現在
2
1 2
3 4 5


5: 指定された長さの中国語文字をインターセプトする方法"?>" は表示されずに終了し、余分な部分は "..." に置き換えられます 一般的に、通常、インターセプトされる変数は十分な長さであることを確認します。 char (200)、句読点を含む漢字 100 文字に保つことができます。 PHP コード:

http://www.bkjia.com/PHPjc/532617.html

www.bkjia.com
tru​​e
http://www.bkjia.com/PHPjc/532617.html

技術記事

1: 変数を取得できないのはなぜですか? ある Web ページから別の Web ページにデータ名を POST するときに、$name を出力するときに値を取得できないのはなぜですか? PHP 4.2 以降のバージョンでは、register_global がデフォルトでオフになります。もしそうなら…

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。