-3

まず、私はwampサーバーを使用して、基本的なPHP文法を学習しています。

だから私の最初のフォームのphpファイルは

<form action="foo.php" method="post">
Name:  <input type="text" name="username" /><br />
Email: <input type="text" name="email" /><br />
<input type="submit" name="submit" value="Submit me!" />
</form>

foo.phpファイルは

<?php 
// Available since PHP 4.1.0

echo $_POST['username'];
echo $_REQUEST['username'];

import_request_variables('p', 'p_');
echo $p_username;

// As of PHP 5.0.0, these long predefined variables can be
// disabled with the register_long_arrays directive.

echo $HTTP_POST_VARS['username'];

// Available if the PHP directive register_globals = on. As of 
// PHP 4.2.0 the default value of register_globals = off.
// Using/relying on this method is not preferred.

echo $username;
?>

しかし、localhost / form2.phpを開くと正常に動作し、「username」と「email」を入力します。その後、次のエラーが発生します。

注意:未定義の変数:13行目のC:\ wamp \ www \ foo.phpのHTTP_POST_VARS注意:未定義の変数:19行目のC:\ wamp \ www\foo.phpのユーザー名

どうやら、これらのコードは機能するはずですが、何らかの理由で機能していません。Wampサーバーに何か問題がありますか?または、構成の設定方法に問題がある可能性がありますか?ありがとうございました !

4

3 に答える 3

3

php.netで読むことができるように、$HTTP_POST_VARSは非推奨です。実際、PHP5.4以降は利用できなくなっているので、不思議ではありませんUndefined variable

$username、これはでのみ機能しREGISTER_GLOBALS=ONます-あなたのWAMPはおそらくこれをオンOFFにしています。

Summa summarum:使用$_POST

于 2013-03-26T21:46:14.003 に答える
2

$HTTP_POST_VARSregister_long_arraysオフになっているため、は未定義です。PHP 5.4.0を使用している場合は、削除されています。

于 2013-03-26T21:47:24.587 に答える
0

関数import_request_variables()は非推奨になり、phpバージョン5.4.0で削除されました。

$HTTP_POST_VARSの代わりに$_POSTを使用します。後者も非推奨です。

代わりに次のようなことをしてください:

<?php
$userName = '';
$email = '';

if (isset($_POST['username'])) {
    $userName = $_POST['username'];
}

if (isset($_POST['email'])) {
    $email = $_POST['email'];
}


echo 'username=' . $userName;
echo 'email=' . $email;
?>
于 2013-03-26T21:49:51.923 に答える