• ベストアンサー

変数の中身が出力されない

下記のソースで、(1)の Hello World!! は出力されるのですが、(2)は何も出力されません。なぜでしょうか? <?php $hello = "Hello World!!"; ?> <HTML><BODY> (1) <?php print $hello; ?><BR> (2) <?= $hello ?><BR> </BODY></HTML> php.iniで register_globals = On にしても同じでした。 環境はPHP5、Apache2.2です。

noname#48750
noname#48750
  • PHP
  • 回答数2
  • ありがとう数3

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

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

php.iniファイルの short_open_tag はONになっていますか?

noname#48750
質問者

お礼

早速のご回答どうもありがとうございます。 short_open_tag = Off → On で解決いたしました! PHP入門サイト等でも原因を見つけられず、助かりました。 追加の質問で恐縮ですが、もしレンタルサーバー等で short_open_tag = Off となっている場合は、やはり  <?php print $hello; ?> とする以外に短い書き方はないのでしょうか?  <?php= $hello ?> はダメでした…。

その他の回答 (1)

回答No.2

>追加の質問で恐縮ですが、もしレンタルサーバー等で >short_open_tag = Off となっている場合は、やはり > <?php print $hello; ?> >とする以外に短い書き方はないのでしょうか? 個人のレンタルサーバーだとリクエストを受け付けてくれるところもあるとは思いますが、大抵のところはダメだと思います。(^^; それに、short_open_tag = ON になっていると、確かXML使用時に不都合があったような。。。 出来るだけ省略しないで書くことをオススメしますよ~><

noname#48750
質問者

お礼

どのサーバーでも確実に動くよう、省略しないほうがいいということですね。 了解いたしました。ありがとうございました。

関連するQ&A

  • formから$_getでデータの表示が出来ない

    初心者です。 同じような質問が、有りましたが、php.iniのregister_globalsはonでした。 同じソースを、某レンタルサーバに転送すると、正常に動作します。 apacheかphpの設定がおかしいのでしょうか??? よろしくおねがいします。

    • 締切済み
    • PHP
  • oscommerce日本語版について

    こんにちは oscommerce日本語版を下記環境で インストールしたのですが、 「FATAL ERROR: register_globals is disabled in php.ini, please enable it!」 と出てしまい、管理画面にアクセスできません。 ほかのサイトで、/adminフォームの下に php_flag register_globals on の一文を書いた.htaccessを作ると 書いてあったので 試したのですが、解決しませんでした。 .htaccessが効いていないのでしょうか? 環境: php5 apache2 mysql4.1

    • 締切済み
    • PHP
  • 入力項目を渡したい

    すみません、質問をさせて下さい。 ------------------------------------ [main.php] <html><body> <input type="text" name="moji"><BR> <a href="next.php">次へ</a> </body></html> ------------------------------------ [next.php] <html><body> 入力項目:<?=$moji?><BR> </body></html> ------------------------------------ main.phpで入力した文字列を "リンク"でnext.phpへ渡したいのですが、 どのようにすればいいのでしょうか? ※<FORM>のACTION以外でかつJavaScriptは使用しない ちなみにphp.iniの register_globals = On にしています。 すみませんが、宜しくお願いいたします。

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

    xamppのPHP5.6.3で、register_globalsを有効にする方法がありましたらご教授ください。 なぜ、有効にする必要があるかと言いますと 参考にしている書籍(少々古いのですが)の環境はPHP4.3.11で、register_globalsを有効にしたサンプルがあるためです。 下記のような有効/無効にした例があります。 現在の私の環境では、2は表示されますが1はエラーとなります。 <? // login.php ?> <html> <body> 1:<?= $login ?><br> 2:<?= $_GET['login'] ?><br> <form action="login.php" method="get"> <input type"hidden" name="login" value="ログインします"> <input type="submit"> </form> </body> </html> 色々と調べてはみたのですが・・・ htdocs内に.htaccessで php_flag register_globals on にする方法を試してみましが、1はエラーで表示されます。 やり方が悪いのか、根本的に別の問題かわからず困っております。 xamppの古いバージョンを入れ直さずに動作確認できる方法がありましたら、よろしくご教授のほど、お願いします。

    • ベストアンサー
    • PHP
  • SESSION変数と同じ変数名は使えないのかな?

    よろしくお願いいたします。 以下のように記述しました。 <?php session_start(); $_SESSION["abc"]="hello world!"; print("abc:1:{$_SESSION["abc"]}<br/>"); $abc="000"; print("abc:2:{$_SESSION["abc"]}<br/>"); ?> 1回目の実行は abc:1:hello world! abc:2:hello world! ですが、F5を押しますと、 abc:1:hello world! abc:2:000 となります。 デバッガ(Peggyですが)をかけると、見事に$abc="000";の行を実行 すると、$_SESSION["abc"]の値もかわります。 これは仕様なのでしょうか? Documentを見る限りわかりませんでした。 PHP5.2.0です。 以上、よろしくおねがいします。

    • ベストアンサー
    • PHP
  • URLから変数が渡らない。

    とても基本的な事で申し訳ないのですが、 教えてください。 <? print $hensuu; $hensuu = "Hello PHP!!"; print $hensuu; ?> とindex.phpに記述して、ブラウズすると、 Hello PHP!! と表示されます。 次にURLから http://localhost/index.php?hensuu=777 と入力して値を渡そうとしても、何も変わらず Hello PHP!! と表示されるのみです。 他にも書籍やいろんなサイトのサンプルをそのまま 持ってきても何故かローカルではURLから渡されません。 Windowsなのと、iniファイルの設定等の問題なのかな? とか思ってるのですが・・・ 環境は下記の通りです。 Windows XP Pro Apache 2.0.39 PHP Version 4.2.2 よろしくお願いします。

    • ベストアンサー
    • PHP
  • php設定ファイルについて

    セキュリティ上よろしくないとは知りながら、register_globalsの設定をonに変えたいと思っています。 で、いろいろ調べたのですが、ユーザーレベルでこの設定を変えるにはphpファイルのあるディレクトリでphp.iniというファイルを置き、中身を「register_globals=on」にする方法と、.htaccessを置いて中身を「php_flag register_globals on」とする方法と2つあるようですが、この方法はどちらもどのサーバーでも有効な方法なのでしょうか。 .htaccessについては許可していないサーバーもあるようですので万能ではないようですが、許可されているかされていないかは別として、これらのファイルを置けば有効になるものなのか、それともサーバー管理者が「このファイルにこう書けばOK」と設定次第で有効になるものなのかが知りたいのです。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • 変数が表示されない。

    HTMLフォームからgetで、phpに変数を渡し、それを表示させるだけなのですが、なぜか変数部分だけが表示できません。どなたかご教授お願いいたします。 XAMPP2.5.8をXP上で使用しています。 <送信側HTMLフォーム> <html> <body> <form action=/cgi-bin/sample.php method="get"> 今は西暦<input type=text name=yyyy>年 <input type=submit value="送信"> </form> </body> </html> <受信側PHPファイル> <?php print "今年は西暦" . $_GET['yyyy'] . "年\n"; ?> $_GET[$yyyy]な風にもしてみましたがダメでした。 php.iniのregister_globalはonにし、$_GET[]を利用しない方法で print "今年は西暦" . $yyyy . "年\n"; と試してみても結果は同じでした。 あまりに基本的なこと過ぎて恥ずかしい話ですが、よろしくお願いします。

    • ベストアンサー
    • PHP
  • 全てのhtml部分をphpで出力

    はじめまして、php初心者です。 全てのHTML部分をprint文で出力してコードを記述しています。 <?php print("<HTML><BODY>~") print("</BODY></HTML>") ?> ↑こんな感じです。 ですが、よくみる参考書などでは下のように php部分とhtml部分を分けて記述しています。 <?php phpコード ?> <HTML><BODY>~ </BODY></HTML> ↑このように記述することに特に意味はあるのでしょうか? 見やすいだけですか? 個人的には全てphpで出力して記述するほうが書きやすいのですが print文だと処理速度が結構遅くなるとか、何かあるのでしょうか?

    • 締切済み
    • PHP
  • register_globalや$$という変数について・・・

    PHPの勉強を始めて2週間足らずの初学者です。 質問させていただきます。 環境はwindowsXP+xampp+PHP5.2です。 現在、やや古めのPHP書籍のサンプルを試しています。 register_globals=Onの状態では、問題なく動作しました。 しかし、Offにすると反応しない部分があります。 test.phpにてsupport.phpをincludeしているのですが、 以下の箇所をそれぞれregister_globals=Off用に書き換える知恵が ありません。ほんの一部のみの抜粋にて恐縮ですがご査収願います。 ---「test.phpの一部」----------------------------------------- echo '<INPUT TYPE="radio" NAME="',$name,'"VALUE="',$kaitoubango,'">',"$val\n<br />";} ---「support.phpの一部」-------------------------------------- $kaitoubango++; $name = $kaitoubango; $val = $$name; -------------------------------------------------------------- 繰り返しになりますが、register_globals=Onの状態では、問題なく動作しましたが、Offでこの状態でフォームアクションしても$val = $$name;に値がありません。 「support.php」の$$nameを$_POST['name']に変更すれば、可能かと思いましたが、ダメでした。 なお、部分的な質問になりますが、 (1)「test.php」のNAME="',$name,'"VALUE="',$kaitoubango,'"ですが、 何故、NAME="$name" VALUE="$kaitoubango"でないのでしょうか? 「',」は何を意味しているのでしょうか? (2)「support.php」の$$nameという変数ですが、$が2つ連続した変数は今のところ、初めて見ました。これはどういう意味なのでしょうか? お詳しい方がおられましたら、何卒アドバイスのを頂戴できればと思います。よろしくお願いいたします。

    • ベストアンサー
    • PHP

専門家に質問してみよう