スレッド表示 | フラット表示〕 全トピック 920 件中 903 番目 次≫ ≪前

変数が。。。

created: 2003-02-21 15:45 | modified: 2003-02-26 01:52 | reply: 8

[133] 変数が。。。

user: p_decky | created: 2003-02-21 15:45
ごく最近PHPを始めた者ですが、さっそくつまづきました。

教則本によくあるフォームから入力したデータを受け渡すサンプルプログラムを試したのですが、フォーム上name="○○○"で属性をあてた変数がうまく渡されてないらしく入力データが表示されません。
(ソース)--------------------------
<?php
$text = "$namae さん、ようこそ";(←namaeがフォームのname=""にあてられてます)
?>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</head>
<body>
<?php
echo $text;
?>
</body>
</html>
------------------------------------

このままだとブラウザには何も表示されず、
2行目を
"${namae} さん、ようこそ"
に変えても「 さん、ようこそ」としか出てきません。

色々調べたのですが、フォームもちゃんと動いているようなのでやはり変数が渡されてない(受け取れてない?)
と言う感じなのですが…

何が間違ってるのか教えていただけますでしょうか。
reply: 134 返信 編集 削除

[134] 外部からくる変数

user: ゆうじ | created: 2003-02-21 19:13
ご使用の環境がわからないので
思い当たることをお伝えします。

最近のバージョンのPHP4.1.x(あたり)からは、
変数名だけでは変数の値を受け取ることが出来なくなってます。

$_POST['namae'];


▼PHPマニュアル・PHPの外部から来る変数
http://www.php.net/manual/ja/language.variables.external.php
Parent: 133  reply: 135 返信 編集 削除

[135] できました。

user: p_decky | created: 2003-02-21 22:05
なるほど。
そういうことなのですね。
ちなみに私の環境は
webサーバー:Apache(2.0.44)
PHP    :4.3.0
OS     :WinXP SP1
です。

どうもありがとうございました。

あとついでと言ってはなんですが、
動作確認をしようとブラウザをリロードする
たびに日本語が文字化けしてしまうのですが
これはどうすることもできないのでしょうか。
(ブラウザはIEを使ってます)
Parent: 134  reply: 136 返信 編集 削除

[136] 日本語が文字化け

user: ゆうじ | created: 2003-02-21 22:14
セキュリティーの問題があり、
$_POST を使うようになったのが、
昨年の話だったと思いますので、
書籍に書いてないのも無理ないことかもしれません。
PHPは、まだ発展途上の言語ですので
まめにこうした修正が入ってます。
先に紹介したPHPマニュアルが一番信頼できる情報源ですね。

「文字化け」って、このBBSのことですか?
・・・って、「動作確認を・・・」ですから違いますね・・・すみません。(汗)

チョットしらべま?す。
Parent: 135  reply: 137 返信 編集 削除

[137] マルチバイト関連の設定を確認

user: ゆうじ | created: 2003-02-21 23:01
文字化けを起こす要因には以下のようなものがあります。

1.HTMLの<head>?<head>内に記述している文字コード。
<meta http-equiv="content-type" content="text/html;charset=Shift_JIS">
2.スクリプトそのものの文字コード
3.PHPが出力する文字コード
4.PHP内部の文字コード

それぞれに使用する文字コードが違うと
文字化けを起こすと思うのですが、

▼PHPマニュアル・マルチバイト文字列関数
http://www.php.net/manual/ja/ref.mbstring.php

私自身が、php.iniのマルチバイト関係の設定を
いじってませんので正確なことはわかりません。申し訳ないです。

参考までに、私自身の設定は以下の通りですが、
自分のPCではIEでもOperaでも一切文字化けしてません。

1.Shift-JIS
2.Shift-JIS
3.NULL(初期状態・変換しない設定になってます)
4.NULL(初期状態・変換しない設定になってます)
Parent: 136  reply: 138 返信 編集 削除

[138] あ、まぎわらしくしました。すいません。

user: p_decky | created: 2003-02-22 02:30
文字化けするのは自分で書いたスクリプトを
ブラウザで見るときです。
こちらの掲示板は全く問題ないです、失礼すますた。

教則本の通りにmetaタグのコードもテキストエディタからの保存も全て「EUC-JP」にしているので化けるのもしかたないんですが、
毎回エンコードするのはめんどくさいので何かいい方法はないものかと伺った次第です。

はじめたばかりなので本に書かれた以外の事ができないのでちょっとしたことですぐ行き詰るビギナーです(恥)

今後ともよろしくお願いします。
Parent: 137  reply: 139 返信 編集 削除

[139] EUC-JPで試してみました

user: ゆうじ ホームページ | created: 2003-02-23 01:33
Win2000Pro + Apache1.3.27 + PHP4.3.0
という環境で、PHPマニュアルにある、
「例 2EUC-JP ユーザ用のphp.iniの設定」にのっとって
php.ini を設定してみました。
もちろん、ソースの文字コードも、
METAタグの文字コードも EUC-JP に直しました。

結果は、みごと文字化けしました。(笑)
Windowsの文字コードが Shift-JIS なので、
特に EUC-JP にする必要がなければ、
ソースも METAタグも Shift-JIS の方が問題が少ないように思います。

また、調べ直してからご報告できればと思います。
Parent: 138  reply: 148 返信 編集 削除

[148] 文字化けその後

user: p_decky | created: 2003-02-26 01:16
METAタグをShift-JISに直してみましたがやはり文字化けしました。。。

ただ、同じファイルをデスクトップにコピって開く分にはちゃんと表示されるので(PHPは動きませんが)、
これはApacheの方の問題(?)なんでしょうかね。

私も色々試して上手い方法があったらまたご連絡します。ありがとうございました。

*変数の件、トップページにまで挙げてもらい恐縮の至りです。
Parent: 139  reply: 149 返信 編集 削除

[149] Shift-JIS あらため、Shift_JIS

user: ゆうじ ホームページ | created: 2003-02-26 01:52
すみません、うろ覚えで(汗;)
タイトルの通り、書き間違ってました。
どうもすみませんでした。

ご丁寧に報告していただき、ありがとうございました。
あらから私もいろいろ設定をいじったのですが、
どうしても Shift_JIS で出力されてるようです。

おっしゃる通り、
Apache のほうでも何らかの設定が必要なのかもしれませんね。
この件は、宿題とさせていただきます。

> 変数の件、トップページにまで挙げてもらい恐縮の至りです。
そういうつもりではなかったのですが、
今日、PHP-users-ML でも取り上げられ、
この1ヶ月くらいの間に4,5回も出てきたテーマでしたので、
これは、当サイトの趣旨として取り上げねばと思ったもので、
気にしないでくださいね。
Parent: 148  返信 編集 削除
スレッド表示 | フラット表示〕 全トピック 920 件中 903 番目 次≫ ≪前
ページの一番上へ
Googleグックマークに登録 Yahooグックマークに登録 livedoorクリップに登録 @niftyクリップに登録 はてなブックマークに登録 deliciousに登録 Buzzurlに登録 FC2ブックマークに登録
最近更新された掲示板トピックス
管理人Blog
Yahoo Search

最近更新したNote
PHPマニュアル
今日のブックマーク
PHPマニュアル関数検索
関数名を入力し検索ボタンをクリック↑