【PHP】質問スレッドpart28【php】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2005/05/05(木) 17:17:11ID:???・新規質問の方は上げてください。age進行でお願いします。
・質問する際には環境も明記。
・正しい日本語で分かりやすく。
・レスがつかないからって逆切れする厨お断り。
・解決しなくてもこたえてもらったら礼を。
■本家
http://www.php.net/
■日本 PHP ユーザ会
http://www.php.gr.jp/
■PHP マニュアル
http://www.php.net/manual/ja/
■PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ等>>2-10辺り
0516nobodyさん
2005/06/12(日) 17:34:46ID:???コード「F659」といった16進で指定される文字を
出力するにはどうしたら良いのでしょうか?
0518nobodyさん
2005/06/12(日) 17:52:20ID:???今日日のクライアントPCはハード的に見ればけっしてミニとは言えないけど
ローカルマシン内でクライアントとサーバが同居して閉じた構成。
0519nobodyさん
2005/06/12(日) 17:53:43ID:???0520nobodyさん
2005/06/12(日) 17:56:07ID:???0521nobodyさん
2005/06/12(日) 18:03:36ID:???サーバの定義は人によると思うけど、
WEBサーバとして機能するソフトウェア(Apache、IISなど)がそのPC内で稼動してれば
WEBサーバと言えると思うよ。
サーバに大きいも小さいもないし。
とりあえず、ApacheとPHPをインストールしてきちんと設定すれば
Win上でテストはできるよね。
もちろん、実際のサーバ上でしか使用できないモジュールなどを使う場合は
テストできないけど、それは仕方ない。
0522509
2005/06/12(日) 18:05:37ID:???是非やってみます><
0523nobodyさん
2005/06/12(日) 19:31:04ID:???いいのでしょうか?
0524nobodyさん
2005/06/12(日) 20:14:06ID:???素人の俺にはそんな荒業怖くてできんが・・・
0525nobodyさん
2005/06/12(日) 20:22:13ID:???0526nobodyさん
2005/06/12(日) 20:22:46ID:???そして今も増えつづけているのさ。
0528525
2005/06/12(日) 20:26:31ID:???0530nobodyさん
2005/06/12(日) 20:50:13ID:???プロならいきなりレン鯖でテストしないとなw
0531nobodyさん
2005/06/12(日) 21:04:56ID:???それ、殆どの場合、レン鯖で規約違反。
ちゃんと、ローカル環境とかでテストしてからアップしろと書かれてるはず。
0532nobodyさん
2005/06/12(日) 22:10:01ID:???うちの場合は、
データセンターに鯖は置いてあって、リモートでログインしている。
テストサーバと本番サーバを立てていて、
テストサーバへアップして動作確認している。
そもそもローカルじゃテストできない部分もあるしね。
ところで、プロでレン鯖使うのはどんな案件?
0533カポコン
2005/06/12(日) 22:27:10ID:???俺の場合は、1Pサーバーのテスト後、2Pサーバーで再テスト。
最後は、クラス鯖で各枝ごとに動作検証汁。
ハードウェア、回線エラーとかでパフォーマンス落としている
部分があればそういう部分も修復・交換しているって・・・
全 然 、 p h p と 関 係 ね ー な
0535nobodyさん
2005/06/12(日) 23:08:38ID:F9hjAojE最終的に借りてるサーバーいくつかで意図通りに動くかテストするわ
0536nobodyさん
2005/06/12(日) 23:26:10ID:???表示されんのだが・・・
0537nobodyさん
2005/06/12(日) 23:32:34ID:???1. phpinfo(); - phpが動いているかどうか調べる
2. echo 'hello world'; - お約束。アルファベットのみなので文字化け等の問題を除去できる
3. echo 'てすと'; - 次へのステップ
4. echo '<center>てすと</center>'; << いまここ
つー感じで徐々に試してみたりしませんか?
0538536
2005/06/12(日) 23:36:47ID:???サンクス
大丈夫だったんだが
<HTML>
<BODY>
<?php
//名前かメールアドレスが未記入の時
if ($name == "" || email == "" || $password1 == !! || $password2 == ""){
echo " <CENTER>入力漏れがあります。</CENTER>";
//パスワードと確認用パスワードが一致しないとき
}elseif($password1 != $password){
echo " <CENTER>パスワードが正しくありません。</CENTER>";
//名前に使えない文字が入っている時
}elseif($a == 6){
echo " <CENTER>名前に使えない文字が入っています。</CENTER>";
//パスワードが4文字未満のとき
}elseif($a == 5){
echo " <CENTER>パスワードが短すぎます。</CENTER>";
//全ての条件に当てはまらない(実行)
}else{
}
?>
</BODY>
</HTML>
だと何も表示されなくなるのよ(´・ω・`)
0539538
2005/06/12(日) 23:39:42ID:???""が!!になってたよ(´・ω・`)
エラーが表示されなくなって不便になったなぁ
0541nobodyさん
2005/06/12(日) 23:56:33ID:???詳細キボン
(strpos($name,".")||(strpos($name,",")||(strpos($name,"[")||(strpos($name,"]")||(strpos($name,"(")||(strpos($name,")")||(strpos($name,"<")||(strpos($name,">")
↑省略するにはどうしたらいいだろう
strpos($name,".,[]()<>")
ってやてもできんかた
0542nobodyさん
2005/06/13(月) 00:18:30ID:???POSTで変数を得たいのですが
複数ほしい場合に
$_POST['$a','$mail'];
な感じでできますか?
0543nobodyさん
2005/06/13(月) 00:24:03ID:???php.iniかini_setで error_reportingをE_ALLにする。
どの文字も必ず含まれているなら min(strpos($name,"."),strpos($name,",")....)
そうじゃない場合は、オイラなら単純にループさせて最小の値をとるか、
正規表現で発見できるまでの文字列を抜き出してそれの長さを調べるかな。
>>542
詳しく
0545523
2005/06/13(月) 00:34:13ID:???0546nobodyさん
2005/06/13(月) 00:34:24ID:???0548nobodyさん
2005/06/13(月) 01:13:54ID:???アップローダーについて質問した
>>434-436 . >>437です。
お蔭様でなんとか動くようになりました。
そこでブラウザから送られていたファイル名を
日付+ファイルの拡張子
と言う名前で保存したいのですが
アップロードされたファイルの拡張子の抜き方で
行き詰まってしまいました。
$_FILES['upfile']['type'];
では「image/gif」と言う感じになるのですが
この文字列からimage部分を消し去り「/」を「.」に
置き換える位しか思いつきません。
他に良い方法があれば教えてください。
0549nobodyさん
2005/06/13(月) 01:42:23ID:???用意しとけば?
あとはローカルのファイル名からもらうとか。
0550nobodyさん
2005/06/13(月) 01:49:31ID:ZAxEnpfuそれらしきものを、自分で書いてみたんですが、一日に数十件の送信のある商用サイトなのでファイル保護に関しては全く自信がないので、そういった、ファイルロックや、保護の機能があるスクリプトがよいのですが。
#じゃあ、cgiでやればいいじゃんと言われたらそれまでですが、倉にphpで!と言い切られてしまいますた。
0551nobodyさん
2005/06/13(月) 01:52:04ID:???いろいろ答えてもらったんだから、何が原因だったか書くべきじゃ。
単なるポカミスだろうけど。
MIME型が送られてこない場合や拡張子の無いファイルをうpされた場合はどうする?
必ず拡張子はついていると言う前提なら、
preg_replace('/^.*?\.([^\.]+)$/','$1',$filename);
で、どぉ。
0552nobodyさん
2005/06/13(月) 01:58:06ID:???次の犠牲倉を出さないためにも、スクリプトを探すつー後ろ向きな事をしてないで、
ファイルロックや保護の機能を書く方法を探すべきでは?
0553nobodyさん
2005/06/13(月) 01:59:26ID:???>>548
phpで書かれたUpLoaderスクリプトを探した方が早いんじゃね。
>>550
カウンタスクリプトのファイルロックでも参照すれば。
スレ違いだな。
>>552
同意
0554nobodyさん
2005/06/13(月) 05:00:42ID:???というのは、どういう値でしょうか?
0555492
2005/06/13(月) 07:28:22ID:1UN/nKO7require_once "HTTP/Request.php";
$req =& new HTTP_Request("http://www.livedoor.com/");
if (!PEAR::isError($req->sendRequest())) {
echo $req->getResponseBody();
}
↑たったこんだけなんですけど、エラー出まくりです。
http://www.livedoor.com/をhttp://www.yahoo.com/に変えると普通に
動作します。
0557nobodyさん
2005/06/13(月) 10:08:59ID:???制御する方法が分かりません。ググっても見つかりません・・。
ご存じないでしょうか?もしくは不可能なのでしょうか?
0558nobodyさん
2005/06/13(月) 10:11:21ID:???0559nobodyさん
2005/06/13(月) 12:13:54ID:???$hogeName = date("Ymd"). $exp;
なんかこんなカンジでいけたはず
0562nobodyさん
2005/06/13(月) 16:22:28ID:???POST使えないのは仕様?
とりあえずGETで送信して$_GETで拾ってるんだが
0563562
2005/06/13(月) 16:24:20ID:???$action = $_POST["action"];
$name = $_POST["name"];
$password1 = $_POST["password1"];
$password2 = $_POST["password2"];
$class = $_POST["class"];
これを一行に省略したりできる?
0565562
2005/06/13(月) 16:26:26ID:???0566nobodyさん
2005/06/13(月) 16:36:29ID:DISdzlt3trimって全角の空白削除されないのかwwwwww
0568nobodyさん
2005/06/13(月) 16:42:45ID:???>>563のような変数の初期化を面倒くさがる奴の
書いたスクリプトでは全般的に変数の初期化が甘いと思われ。
そんなスクリプトでextractなんて使っちゃ駄目。
0569nobodyさん
2005/06/13(月) 17:11:51ID:???0571569
2005/06/13(月) 17:23:42ID:???0572nobodyさん
2005/06/13(月) 17:26:52ID:???そのPHPがどうやってインストール(configure)されたかによる。
>1に「質問する際には環境も明記。」とあるのも読んでくれよ
0573nobodyさん
2005/06/13(月) 17:30:10ID:???インスコしないといけないのか?
0574nobodyさん
2005/06/13(月) 17:31:02ID:???うーん、じゃあ無いんじゃないか。別に無くてもPHPは動くし、
必要な場合にはdistやrecommendedを参考に作ることになってるわけだから。
0576nobodyさん
2005/06/13(月) 17:32:23ID:???探したがiniないぽ
0577nobodyさん
2005/06/13(月) 17:34:13ID:???0578nobodyさん
2005/06/13(月) 17:35:16ID:???0579nobodyさん
2005/06/13(月) 17:36:40ID:???error_reportingたくさんあったが全てE_ALLになってた(´・ω・`)
0580nobodyさん
2005/06/13(月) 17:37:02ID:???php.iniは自分で適切な場所に”作る”必要がある。
0581nobodyさん
2005/06/13(月) 17:41:47ID:???display_errorsをとりゃえずOnにしてみたが・・・
0583nobodyさん
2005/06/13(月) 18:02:44ID:l4UuiYUQperlでやるところの
$text{head_sp_$text{kt}}
こういう書き方を
PHPで同じように
$text[head_sp_$text[kt]]
こうしてみたのですが、エラーがでてしまいます。
{$text[head_sp_$text[kt]]}
や
$text[head_sp_{$text[kt]}]
や
$text[{head_sp_$text[kt]}]
こんなこともやったのですが全て
Parse error: parse error, unexpected T_VARIABLE, expecting ']' in 〜〜
と言うエラーがでてしまいます。
アドバイスいただけると幸いです。よろしくお願いします。
0584nobodyさん
2005/06/13(月) 18:14:53ID:???<?
$text[kt]="hoge";
$text[head_sp_hoge]="good";
print $text["head_sp_".$text[kt]];
?>
good と出ますた
0585nobodyさん
2005/06/13(月) 18:30:12ID:???php.iniの設定は反映されないのか?
0586583
2005/06/13(月) 18:38:21ID:???レスありがとうございます。
$text["head_sp_".$text[kt]]としてみましたが、
"parse error, unexpected T_ENCAPSED_AND_WHITESPACE"
このようなエラーが出てしまいダメでした。
でふと思ったのですが、私はこのような使い方をしているのですが
これに問題があるのでしょうか?
<?php
print<<<HTML
</td></tr></table>
<hr size=1 width=780>
<table width=780>
<tr>
<td class=title3>ピックアップ情報</td>
</tr>
<tr>
<td>
$text["head_sp_".$text[kt]]
HTML;
?>
print<<<HTML
この間に
$text["head_sp_".$text[kt]]
を入れて正常に動かしたいのです。
HTML;
私の把握不足で情報の小出しになってしまってすいません。
もう一度お力添えをお願いします。
0587555
2005/06/13(月) 18:40:37ID:1UN/nKO70588nobodyさん
2005/06/13(月) 18:45:34ID:???xpにphp5.0.4をインストールして、php.iniのdisplay_errorsをOnに変更したってことか?
webサーバを再起動(つーか、それにつられてphpも再起動される)しないと反映されないぞ。
マニュアルのエラー処理およびログ記録関数も見ておくといい。
ttp://www.php.net/manual/ja/ref.errorfunc.php
>>587
エラーを読んでも分からなかったのか?
pearはPHPで書かれているから中身も読めるべ。デバッグすれ。
0590nobodyさん
2005/06/13(月) 18:58:22ID:???<?
$text[kt]="hoge";
$text[head_sp_hoge]="good";
print<<<HTML
・
・
・
${text["head_sp_".$text[kt]]}
HTML;
?>
素直に一度変数に入れたほうが、きれいになるのでは。
0591590
2005/06/13(月) 19:00:58ID:???0592548
2005/06/13(月) 19:01:36ID:???まだ勉強して間もないので難しい事は出来ないです。申し訳ないです。
>>551
そうでした。結果報告が抜けてましたね。。。
掲示板に投稿後色々と教えてもらいましたが、結果全て旨くいかず、
自分の環境が悪いのかな、と半ば決め付けその日は不貞寝しました。
その翌日、不思議な事に正常に動いていたので何が原因だったのかは
スクリプトには特に変更点は無いので、良くわかりません。。。
やっぱり環境かな?っと言う事で納得しています。
>>553
それが無難なのは解りますが、ヒントから勉強できれば少しは自分の物に
出来るかなっと、生意気言ってみました。
>>559
「strrchr」がネックでしたね。とても参考になりました。
私が100%望む動作をしてくれました。
皆さん改めて有難うございました。
0593nobodyさん
2005/06/13(月) 19:11:55ID:QMcSO9eW0594nobodyさん
2005/06/13(月) 19:19:34ID:???ブラウザの挙動としては、
targetが指定されたウィンドウ(該当が無ければ新しいウィンドウをオープン) ”から” ジャンプ先のURLが鯖にリクエストされます。
要は、リクエストの前にターゲットが決まってないといけない。
0595nobodyさん
2005/06/13(月) 19:45:51ID:QMcSO9eW上記のようにフレームを作り、PHPでtargetを"hoge"、
つまり上記のフレームにしてフレーム内だけが更新できればと考えているのですが、
説明不足ですみませんでした。
Javascriptでも hoge.location.href="yyy.html"; として試してみたのですが、
挙動がありませんでした。
0596nobodyさん
2005/06/13(月) 20:11:36ID:???phpはリクエストしてきたもの(ウィンドウなりframeなりiframeなり)に対して出力するだけで、
targetを扱う事はできません。(= リクエスト前にtargetを決めておく必要がある = PHPの関数も無い)
HTMLやJavaScriptを使ってtargetを指定してあげてください。
<a href="yyy.html" target="hoge">hogeを変更</a>
<a href="#" onClick="hoge.location.href='yyy.html';return false;">hogeを変更</a>
0597nobodyさん
2005/06/13(月) 21:00:39ID:AKgu0aiwprint_r($_SERVER)で見ると、ひと通りはいっているようですが、HTTP_USER_AGENTだけがありません。
googleで環境変数を診断してくれるサイトで確認すると、きちんとUSER-AGENTが取れてます。
サーバーはOpenBSD3.2 apache1.3.27 PHP4.3.8/4.3.11 クライアントはWinXP & IE6で確認しました。
0598nobodyさん
2005/06/13(月) 21:08:33ID:QMcSO9eWそうですか。ありがとうございました。
外部のページを読み込んで更新を何秒ごとかに行いたかったのですが、
どうやらPHPはページの操作という概念自体が違うようでしたね。
JSで頑張ってみることにします。
0599nobodyさん
2005/06/13(月) 21:19:39ID:???ノートン先生がごるぁしているとか。
Apacheのログにユーザーエージェントがはいっていないなら、PHPの問題ではないと思われ。
0600nobodyさん
2005/06/13(月) 21:56:26ID:???要するにPC再起動ということか?
0606nobodyさん
2005/06/13(月) 22:50:57ID:???0607nobodyさん
2005/06/13(月) 23:10:01ID:???IIS?なんでもいいよ。Webサーバの再起動ね。
で、>>606のようにレン鯖で再起動出来ないならini_setしろって事ね。
0608nobodyさん
2005/06/13(月) 23:27:17ID:???エラーを表示させるためにPHP.iniを書き換えた
ってことだな?
0610nobodyさん
2005/06/14(火) 03:56:03ID:???■ このスレッドは過去ログ倉庫に格納されています