• ベストアンサー

$_POSTはバージョン3では動かない?

PHPを学習し、1週間が経過します。 動作は、社のサーバー上で、phpのバージョンは3でした。 これは当面、バージョンアップすることはありません。 この環境でやっていると、$_POST['xx']で、フォームからの 値をとることが出来ません。 $変数名(フォームのname)は正常に動きます。 4.0以上(?)では、$変数名が使えなくなることは調べたのですが。 $_POSTはバージョン3では使用不可でしょうか?

  • PHP
  • 回答数2
  • ありがとう数4

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

こんばんは。PHP4.1.0以降からスーパーグローバル変数($_POST,$_GETなど)が利用できるようになりましたので、PHP3では$_POSTは使用できないと思います。

nanami0224
質問者

お礼

ありがとうございます。 4.1.0からなんですね。 すっきりしました。 ありがとうございました。

その他の回答 (1)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

経緯とバージョン間の解釈の違いはいかが参考になります。 http://www.php.net/manual/ja/security.globals.php PHP3の当時とくらべると今のPHPは関数や文法的な変更も多く 間違った方向の学習になる可能性が高いです。 単に学習用なら社のサーバーのバージョンアップを期待するのではなく 個人のPCのWindowsにそれなりのhttpサーバーと当たらし目のphpを インストールすることをお勧めします。

nanami0224
質問者

お礼

ありがとうございます。 学習だけでなく、そのサーバー上で動くシステムを開発すること になったんです。 いまどき、3というのはやっぱり・・・。ですよね。 4以上のことと一緒に学習していこうと思います。

関連するQ&A

  • さくらレンタルサーバーでPOSTとGETを省略する方法?

    いつもお世話になりましす。 自社サーバーがあったのですが、管理者に不幸があり泣く泣くレンタルサーバーを借りる事になりました・・・・が、 なにぶんサーバーの知識が無いので、専門用語等がわからず『さくらインターネット』に借り、PHP等のソース(?)を移行したまではいいのですが、フォーム等の受け渡しが上手く行っていない事がわかりました。 原因は入力フォーム『post』で次ページに行った時に、PHPの$_POST[変数名]を入れていなかったと言う事です。 以前自社サーバーの時は受け側の指定をしなくてもよかったのですが、『さくらインターネット』の場合は$_POST[変数名]を追加しなければならなくなりました。 自社サーバーの仕様は全く不明です。PHPのバージョンも不明。 元の管理者の設定なのかバージョンでの仕様なのかも不明です。 『さくらインターネット』PHPのバージョンは 5.2.5 です。 なにぶん専門知識が少ないので、聞き方や不明な点だらけで申し訳ありませんが、設定や対応方法がござしましたら是非教えてください。

    • ベストアンサー
    • PHP
  • 古いバージョンでスーパーグローバル変数を使いたい

    hiroです。 PHP4.1.0のバージョン以前での 質問です。 掲示板を作り、スーパーグローバル変数の $POSTに換わる$_HTTP_POST_VARS['変数']を 使って試しているのですが、 表示されません。 .phpファイルは、上記の通りに組み込みました。 掲示板のフォームとなる.htmlファイルの method はどう設定すれば良いのですか? $POSTのままだと使えませんでした…。 バージョンは4.0のままの想定でお願いします。 どなたかご教授ください。

    • ベストアンサー
    • PHP
  • phpのpostについて

    a.phpの値をb.phpにpostしたいのですがうまく値が渡せません post元にはname属性に変数を用いているのですがpost先でnameをどのように指定したらいいかわかりません <a.php> <form action="foo.php" method="POST"> <div id="button"> <input type="submit" name ="PostGo" value="postTime" style="margin-right:30px;" /> </div> <table> <?php for ($data = 1; $data < 5; $data++) { ?> <tr><td> <select name="test<?php echo $data?>"> <option value=1>1 <option value=2>2 <option value=3>3 <option value=4>4 </select> <?php } ?> </table></form> <b.php> <?php for($i=1;$i<5;$i++){ $test =($_POST['test']);←ここの部分のpostをどう指定したらいいかわかりません echo $test; } ?> ※$_POST['test' + $i] これでも取れませんでした

    • ベストアンサー
    • PHP
  • PHPのフォームでPOSTした変数を自動で変数に

    $server = $_POST['server']; $domain = $_POST['domain']; $domainmail = $_POST['domainmail']; $news = $_POST['news']; このように、フォームからPOSTした情報を毎回変数に格納する記述をしているのですが、複数のPOSTデータのnameをそのまま変数にし、情報を格納させて扱う方法を教えてください。

    • 締切済み
    • PHP
  • フォームの値取得について

    PHP4を利用しています。 フォームからのデータ取得で 以前はフォームで利用した名前に$をつければ その値を変数として利用できたと思うのですが、 PHP4からは設定によっては出来ないと言うことなので フォームの名前と同じ名前の変数に値を入れる為 $name1=$_POST['name1']; で取得しようと思ったのですが、 フォームで利用しているテキストボックスが多いのです。 やはりひとつづづ取得する方法しかないのでしょうか? なにか良い手があったら教えてください。 よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPのフォームでPOSTした変数を自動で変数に

    $server = $_POST['server']; $domain = $_POST['domain']; $domainmail = $_POST['domainmail']; $news = $_POST['news']; このように、フォームからPOSTした情報を毎回変数に格納する記述をしているのですが、複数のPOSTデータのnameをそのまま変数にし、セキュリティにも配慮して情報を格納させて扱う方法を教えてください。

    • ベストアンサー
    • PHP
  • POSTの項目に追加

    POSTの項目に変数を代入して値を受け渡したいのですが $_POST=$name;としましたがうまくいきません。教えて下さい。

    • ベストアンサー
    • PHP
  • 改行データPOSTできない

    mysql+php+htmlで作ってるんですが、POST後のページで改行が反映されません。 -------------------------------- 111.php -------------------------------- - 省略 - <body> <form action="222.php" method="post"> <input type="hidden" name="data2" value=<?php echo "$data1";?>> <input type="submit" value="編集"> </body> - 省略 - -------------------------------- 222.php -------------------------------- --省略-- <?php $data2 = $_POST['data2']; ?> <form> <textarea cols="80" rows="20" name="test"><? echo "$data2"; ?></textarea> </form> --省略-- -------------------------------- これだと222.phpで1行だけしか表示されません。変数に入れれないのでしょうか? お手数ですが、ご教示お願いします。 ちなみに111.phpの方も textarea にすると正常に値が渡せます。 でも表示したくないのでイヤです。 (急いで入力したので、タイプミス&コピペミスっぽいのは無視してくださいm(_ _)m)

    • ベストアンサー
    • PHP
  • スーパーグローバル変数・POSTとGETを同時に受け取るページについて

    すみません。初歩的な質問かもしれませんが、宜しくお願い致します。 PHP+MySQLを利用して、都道府県名で検索するプログラムを利用しています。 そして、サーバー移行にともない、PHPのバージョンが変わりました。 これまでは、単に「$変数」としていたのですが、 $_POST['変数']または、$_GET[変数']としなければいけないようです。 よって、従来のPHPファイル内で、 $ken_name = $_POST['ken_name']; として、置き換えるようにしました。 これで、うまくいったと思ったのですが、このPHPファイルは、GETでも、利用できるようしたいのです。 実は、その方法がわかりません。 (例) POSTで受け取る場合は、正常に動くのですが、GETでも受け取るようにするには、どうすればいいのでしょうか?1つのファイルで、POSTとGETの両方を受ける方法はありますでしょうか? <?php require_once("./***.php"); $con = mysql_connect($DBSERVER, $DBUSER, $DBPASSWORD); $selectdb = mysql_select_db($DBNAME, $con); $ken_name = $_POST['ken_name']; $sql = "select * from YTABLE Where ken = '$ken_name'"; $rst = mysql_query($sql, $con); ?> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> <title></title> </head> <body> <?php while ($row = mysql_fetch_array($rst)) { print $row["ken"].'-'.$row["name"].'<br>' ; } mysql_free_result($rst); $con = mysql_close($con); ?> </body> </html>

    • ベストアンサー
    • PHP
  • POSTされた値の\問題

    はじめて質問させていただきます。最近PHPをはじめたばかりの初心者の私です。お願いいたします。 お問い合わせフォームを作っているのですがPOSTされた値の\問題を取り除く下の文なのですが、これを$_POST全部にあてはめることは可能でしょうか?一括でということです。ご回答お願いいたします。 if(get_magic_quotes_gpc()){ $name = stripslashes($name); $age = stripslashes($age); ・ ・ ・ ↑私はこれをなんと12個書いています(恥) ちなみに $name = htmlspecialchars ($name); も同様に・・・・。 ・}

    • ベストアンサー
    • PHP