トップページphp
1001コメント327KB

【PHP】下らねぇ質問はここに書き込みやがれ 50

レス数が950を超えています。1000を超えると書き込みができなくなります。
0001nobodyさん2007/07/11(水) 17:50:01ID:fYd+34US
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/

◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。

◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
 (荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)

◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0873nobodyさん2007/07/25(水) 12:48:49ID:???
>>872
人に聞くより、自分でクッキーの中見た方が早いだろ
0874nobodyさん2007/07/25(水) 12:54:20ID:F1E3rbc2
答えを聞いてるわけではないんですよ
0875nobodyさん2007/07/25(水) 13:03:59ID:???
>>872
セッションでクッキーは発行できないよ
クッキーでセッションIDを発行することはあるが
0876nobodyさん2007/07/25(水) 14:02:11ID:???
>>1おれとつきあって
0877nobodyさん2007/07/25(水) 14:12:18ID:TgPM8Cfn
Shift-JISからUTF-8に文字コードを変換したいのですが、

<form name="form1" method="post" action="">

<textarea name="txt"></textarea>

<input type="submit" name="Submit" value="送信">

</form>

<?

var_dump(mb_detect_encoding($_POST['txt']));

var_dump(mb_convert_encoding($_POST['txt'], "utf8", "auto"));

?>

このように、文字コードをUTF-8にしようとしてみたのですが、
Unable to detect character encoding
とのエラーで、文字コードが変換されません。
正直今までにこのようなエラーがなくて戸惑っています。

mb_detect_encodingでの出力はFALSE
mb_convert_encodingではstring(6)で文字コードがShift-JISのままです。

一体何が原因でこのようなことが起きるのでしょうか?
宜しくお願いします。

【環境】
Windows Vista Home Premium
PHP 5.2.2
0878nobodyさん2007/07/25(水) 14:23:30ID:???
>>877
文字コードが分かってるんならautoではなく直接指定
変わる場合があるならmb_detect_orderで指定しておく
0879nobodyさん2007/07/25(水) 14:30:30ID:TgPM8Cfn
>>878
ありがとうございます。
mb_detect_orderでsjisをトップにもってきて
mb_convert_encodingでautoをsjisにすると解決しました。

今までこのような問題がなかったので、
何が原因でこのような文字化けなどが起きるのかわからないのですが、
もしよろしければ教えていただけないでしょうか?
0880nobodyさん2007/07/25(水) 14:32:10ID:???
マルチバイトの文字コード判別は信用ならない
0881nobodyさん2007/07/25(水) 14:33:15ID:???
>>879
それも、またmb_系関数のマニュアルを熟読しろ。
「今までこのような問題がなかった」のが単にラッキー程度だと思っておいたほうがよろしい。
mb_コンバート系統はその程度の実装だ。
0882虚弱PHP2007/07/25(水) 14:33:17ID:???
>>879
入れてやる文字列によっては、文字コード判別できないってだけの話。
いままでは"たまたま"うまくいっていただけ。
というわけで、基本的に"auto"は使わないのが良い。
0883nobodyさん2007/07/25(水) 14:37:03ID:TgPM8Cfn
有難うございます。
その時その時によってautoではなくしっかりと文字コードを指定してやるのが大事なんですね。

マルチバイト系のクラスでも作っておきます・・・。
0884nobodyさん2007/07/25(水) 14:41:39ID:???
ジャンキタ――(゚∀゚)――!!
0885nobodyさん2007/07/25(水) 14:49:42ID:EIPyOfNN
すみませんもしかしたら基本的な事かも知れないんですが

例えば
test1.phpというPHPスクリプトの中に$aという変数を宣言しまして。
この$aという変数をHTMLのsubmitなどを使用しないで別の
test2.phpというPHPスクリプトの中で使用することはできるのでしょうか?

わかりにくいですね…

test1.phpで
$a="あいうえお";と宣言したら
どうにかして
test2.php内でprint($a);で
「あいうえお」と出力できませんか?

ということなのですけれどもご教授お願いします。

0886nobodyさん2007/07/25(水) 14:53:43ID:???
PHP6うp期待あげ
0887nobodyさん2007/07/25(水) 14:53:46ID:???
>>885
セッション
0888nobodyさん2007/07/25(水) 14:55:21ID:???
>>886
TextIteratorクラスとかぶっちゃけいらないよな
俺はクエリ自動生成に期待してる
0889nobodyさん2007/07/25(水) 15:46:03ID:EIPyOfNN
>>887
やはりセッションですか。
ありがとうございます頑張ってみます!

0890nobodyさん2007/07/25(水) 16:06:01ID:EIPyOfNN
>>887
ありがとうございます
解決しました!ご教授の通りやはりセッションを使うとできますね。
0891nobodyさん2007/07/25(水) 16:11:19ID:T4EA9qil
phpからSQL文を使ってデータベースにデータを追加したいんですが
空白が入るとエラーになってしまいます
どうしたらいいんでしょうか?
0892nobodyさん2007/07/25(水) 16:43:16ID:???
空白を変換すればいいじゃん
0893nobodyさん2007/07/25(水) 17:04:57ID:???
「空白」なんていう曖昧なことを言われてもね。
0894nobodyさん2007/07/25(水) 17:48:46ID:???
せめてエラー文ぐらいコピペして欲しい
0895nobodyさん2007/07/25(水) 19:05:39ID:Muzhb0ib
Cのlintみたいなツールは無いでしょうか?
使っていない変数を探したいんですが、php -lだと
構文が正しいかどうかしかチェックしてくれなかったので。
0896nobodyさん2007/07/25(水) 20:16:55ID:???
>>886
もう、beta版出てるジャン。
0897nobodyさん2007/07/25(水) 20:34:10ID:???
>>895
PHPの場合、初期化は代入と等しいし、変数の宣言はないので、
使っていない変数を探すのは難しいんじゃないか。
0898nobodyさん2007/07/25(水) 20:49:14ID:???
>>896
インストールが途中で、install_modules.dllの初期化に失敗しましたってでるんだが、
php6ってVISTA対応していないの?
0899nobodyさん2007/07/25(水) 21:19:52ID:???
php6の開発時期とvistaが登場した時期を見比べろ
あと、リリースとベータの違いも区別つけようなザコ
0900nobodyさん2007/07/25(水) 21:21:18ID:???
5も広まってないのに6ってなめてんのかこら
0901nobodyさん2007/07/25(水) 21:26:40ID:???
OSでさえ出たばかりのは使わないんだから、枯れた一個下のバージョンが主流というのはもっともな選択じゃね。
0902nobodyさん2007/07/25(水) 21:28:01ID:???
家で使う分にはいいんだが、レンタルサーバーで6まで対応しているのって
ほとんどないからなぁ。実用でいったら、せいぜい5までだ。
0903nobodyさん2007/07/25(水) 21:32:38ID:???
>>902
え・・
釣りだよね?
0904nobodyさん2007/07/25(水) 21:35:59ID:???
version4主流なんていうのは悪手だろ
0905nobodyさん2007/07/25(水) 21:55:04ID:???
通はPHP3、
普通はPHP4、
キティガイはPHP5だろ
0906nobodyさん2007/07/25(水) 22:29:16ID:+OWKNv7k
セーフモード下で、サーバに存在しないファイルを生成したいのですが、
何か方法はありますか?
cgiで動かした時にfopenで作れたのですが、できればcgiを使いたくないので。
09079062007/07/25(水) 22:38:33ID:???
一応ソースだしときます。

#!/usr/local/bin/php
<?php
$file = realpatch('./hoge.log');
if (!file_exists($file)) {
   $fp = fopen($file, 'w+');
   fclose($fp);
}
?>
0908nobodyさん2007/07/25(水) 22:45:57ID:???
touch
09099062007/07/25(水) 23:05:11ID:???
>>908
どうもありがとうございます。
しかしその関数でもセーフモード下ではファイル生成は不可能でした。
0910nobodyさん2007/07/25(水) 23:27:35ID:9KsThU60
sqliteのエスケープ用関数がないんですが
sqliteはsqlエスケープをしなくていいんですか(?_?)
0911nobodyさん2007/07/25(水) 23:42:49ID:9KsThU60
ありました
勘違いしてました\^o^/バンザーイ
0912nobodyさん2007/07/26(木) 00:59:04ID:???
オマエらのレスを読んでいると、ここには職業技術者はいないなぁと感じる。
オマエのレスを絵にすると、丸でこんな感じだ。
http://www.dashiblog.com/blog/archives/project_comedy_l.gif
0913nobodyさん2007/07/26(木) 01:08:27ID:???
>>912
いますけど?(/\)チャチャチャチャ \(^o^)/ハッ!!
0914nobodyさん2007/07/26(木) 01:09:36ID:???
古い絵を出して何か言ってる奴って何なの?
0915nobodyさん2007/07/26(木) 01:41:36ID:???
もう当の昔に見飽きたわ
0916nobodyさん2007/07/26(木) 01:52:14ID:???
>>912
職業技術者がいないと言っているのに、なんで仕事の話の画像なんだ?
0917nobodyさん2007/07/26(木) 02:02:49ID:???
>>912
この絵が何をあらわしているのかわからん。
だれか説明たのむ
0918nobodyさん2007/07/26(木) 02:08:23ID:???
暑いし少し頭が弱くなしていたのだろう
見なかったことにしようぜ
0919nobodyさん2007/07/26(木) 02:54:10ID:???
実際に仕事してるやつは痛いほどわかる内容だ。
0920nobodyさん2007/07/26(木) 03:01:58ID:???
下らん煽りはどうでもいい。
質問があれば答えるそれだけでいいじゃないか。
趣味でやってるやつがほとんどだというのに、
職業がどうとかどうでもいいです。
PGになってもいいことないしな。
0921nobodyさん2007/07/26(木) 03:33:43ID:???
いわゆるデジタルドカタだからな
0922nobodyさん2007/07/26(木) 03:47:01ID:???
それでも年収1000超えです。
0923nobodyさん2007/07/26(木) 03:53:52ID:???
>>922
27歳不動産屋社長
年収2500万ですが何か?
500万は駐車場収入だけど
0924nobodyさん2007/07/26(木) 05:30:01ID:???
>>923
主にセキュリティ系の仕事で年収3000万超えですか何か?
0925nobodyさん2007/07/26(木) 05:48:31ID:???
セキュリティ系の仕事って、警備員さんですか?
深夜警備明けなのに、わざわざ書き込みお疲れ様です。
0926nobodyさん2007/07/26(木) 06:58:46ID:???
自宅警備じゃないかと
しかし何コレ
数年前から散々既出の絵を張る厨に、「ボク、リアルじゃすごいんだよ」話かよ
痛すぎてついていけねぇ
0927nobodyさん2007/07/26(木) 09:58:29ID:???
「実装された運用」って日本語になっとらんなあ。
実装された機能動作、ぐらいにしておいて欲しかった
0928nobodyさん2007/07/26(木) 11:53:30ID:Yo1hQCXU
sqlite2とsqlite3って
PHPの関数名も変わりますか?
それともPHP側のモジュールを差し替えるだけで動作OKですか?
0929nobodyさん2007/07/26(木) 11:57:47ID:???
>>928
http://php.benscom.com/manual/ja/ref.pdo-sqlite.php
0930nobodyさん2007/07/26(木) 12:11:17ID:???
>>928
PDO接頭辞「sqlite:」→SQLite3
PDO接頭辞「sqlite2:」→SQLite2
SQLiteネイティブ関数→SQLite2
0931nobodyさん2007/07/26(木) 13:14:13ID:???
年収なんて聞いてもないのに自分からしゃべんなよ
0932nobodyさん2007/07/26(木) 13:14:26ID:???
>>926
リアルじゃPGなんてやってない=趣味ってことを暗に言いたいんだろ
0933nobodyさん2007/07/26(木) 14:07:08ID:MPRgYECP
セッッションIDを発行して
session_regenerate_id();
でアクセス毎にセッションIDを変更しているのですが、
変更後のIDと、変更前のIDが両方有効になってしまいます。
変更前のIDは無効にしたいのですが、どうすれば良いのでしょうか?
0934nobodyさん2007/07/26(木) 14:18:00ID:???
まずバージョンを書きましょう
0935nobodyさん2007/07/26(木) 14:18:06ID:???
version5.1以上ならsession_regenerate_id(TRUE);
でなきゃsession_destroy使うしかないな。
09369332007/07/26(木) 14:21:19ID:MPRgYECP
有難うございます
バージョンは5.2.2です。

trueにすることで関連付けられた古いセッションを削除できるんですね
有難うございます。
0937nobodyさん2007/07/26(木) 14:51:06ID:k3nJKJ84
ユーザーを認識するために保持しとく情報があって、
それがクッキーでもセッションでもないとすると、
IPアドレスあたりを見てるのだと思うのですが、IPを変えても保持し続けていたので、
他にからくりがあると思うのですが、一体何を使っているのでしょう?
一度初期化(まっさらに)したいのに、上記の方法だとできないのでかなり強力な方法なんでしょうが。
ちなみに全くPHPとは関係ないプログラムなのですが応用できないかなぁと思いまして。
09389332007/07/26(木) 14:57:39ID:MPRgYECP
すみません、試してみたのですが、
更新ボタンを押すとセッションが破棄されてしまいます。
0939nobodyさん2007/07/26(木) 15:03:45ID:???
>更新ボタンを押すと
この意味不明
0940nobodyさん2007/07/26(木) 15:06:23ID:MPRgYECP
>>939
リロードすると、URLに付加しているセッションIDがそのままの状態で、
IDが新しくなってしまいます。
0941nobodyさん2007/07/26(木) 15:14:33ID:???
そりゃそうだろ。
trans_id使ってるところに突っ込まないとして、
URL付加のsession idの書き換えもしないとそのままになるのはあたりまえ。
0942nobodyさん2007/07/26(木) 15:16:18ID:MPRgYECP
ですよねー。
session_id()と$_GET['PHPSESID']を比較した条件分担で解決しました。
0943nobodyさん2007/07/26(木) 15:54:34ID:???
http://www.aaa/php?aid=****&iid=****
と言うURLはページのURL自体はhttp://www.aaa/phpと変わりません
「?」はこれ以降動的な情報が入ると言う意味で、「&」は情報を区切っています

実際にはページのプログラムには
aid=****
iid=****
と言う情報が入っています。

そしてこの情報はPHPの
$_GET['aid']
$_GET['iid']
と言う変数に格納されています。

http://www.aaa/php?aid=****&iid=****
となっているサイトの多くはhttp://www.aaa/phpというページのプログラム内で
$_GET['aid']
$_GET['iid']
という変数を使用し、それにあった情報をデータベースから取り出し
その情報をhtmlに成形して出力しています。

↑のような感じのサンプルソース置いてあるところありませんか?
0944nobodyさん2007/07/26(木) 15:59:18ID:52I1KecV
ImageCreateFromPNGでPNG形式の画像を読み込むと
ちゃんと読み込めるものと、そこで処理が止まってしまうものがあります。
止まってしまう原因は何なんでしょうか?

CentOS 4 / Apache 2.2.3 / PHP 5.1.6
0945nobodyさん2007/07/26(木) 16:04:46ID:???
WEB上にあるファイルの存在の有無ってどうやってPHPで調べてる?
file_exitやis_fileはリモートファイルを使えないし、fopenしかないのか?
0946nobodyさん2007/07/26(木) 16:05:48ID:???
>>943,945
>>1

>>944
PNGじゃないんじゃね?
形式とサイズ調べてみたら?
0947nobodyさん2007/07/26(木) 16:13:42ID:r4i2LkJl
http://www.aaa/php?aid=****&iid=****
と言うURLはページのURL自体はhttp://www.aaa/phpと変わりません
「?」はこれ以降動的な情報が入ると言う意味で、「&」は情報を区切っています

実際にはページのプログラムには
aid=****
iid=****
と言う情報が入っています。

そしてこの情報はPHPの
$_GET['aid']
$_GET['iid']
と言う変数に格納されています。

http://www.aaa/php?aid=****&iid=****
となっているサイトの多くはhttp://www.aaa/phpというページのプログラム内で
$_GET['aid']
$_GET['iid']
という変数を使用し、それにあった情報をデータベースから取り出し
その情報をhtmlに成形して出力しています。

↑のような感じのサンプルソース置いてあるところありませんか?
0948nobodyさん2007/07/26(木) 16:29:02ID:???
>>945
stream_wrapper_registerでfile_existsだろうなあ。
0949nobodyさん2007/07/26(木) 16:30:44ID:???
>>943
URL見れば何してるかはわかるから。
説明部分が長いだけでようは丸投げだね。
DBっていっても色々あるし、それで使えるネイティブ関数も変わってくる。
PDO使えばその辺は問題ないが。

aidとiidはカラム名か内部でカラム名に置き換えられる情報だろうから、
それをSELECTでDBに照会する。
結果をfetch_assoc等の専用の関数でうけとって、あとはそれを見やすい形に成形。

これだけの工程。マニュアル見ればまるまる書いてある。
使いたいDBもしくはPDOあたりでマニュアル検索するといいよ。
09509442007/07/26(木) 16:44:34ID:52I1KecV
>>946
サイズを調べてみたら、どうやら大きいものだけ読み込めないようでした。
サーバーのメモリ不足が原因だと思います。ご教示ありがとうございました。
09519452007/07/26(木) 16:47:07ID:???
>>948
さんくす。
やってみよ
0952nobodyさん2007/07/26(木) 16:51:28ID:???
>>950
鯖のメモリ不足というより
設定で一定以上のサイズが読み込めないとかそういうのじゃないかな
09539482007/07/26(木) 16:53:36ID:???
>>951
あ、PEAR使うのがイヤじゃなきゃ、
ttp://www.go-pear.org/manual/ja/package.streams.stream-var.intro.php
があるから、これでいいんじゃないかな。
0954nobodyさん2007/07/26(木) 17:08:31ID:???
>>945
requestしてresponse code見る
0955nobodyさん2007/07/26(木) 17:49:04ID:???
本体は.phpで、index.htmlを出力しそこへアクセスする掲示板なのですが、.
.htaccessでPHPヘッダーにindex.htmlを加えるような力技をやらずにPHP埋め込みできませんか。
.phpが生成するhtml部分を以下の内容にしても成功しませんでした。

$dat .= '<html><head>
<body>
<?php include('a.php'); ?>
</body>
';
0956nobodyさん2007/07/26(木) 17:50:32ID:???
>>955
>>1
0957nobodyさん2007/07/26(木) 17:52:54ID:Q2jSAhdn
本体は.phpで、index.htmlを出力しそこへアクセスする掲示板なのですが、.
.htaccessでPHPヘッダーにindex.htmlを加えるような力技をやらずにPHP埋め込みできませんか。
.phpが生成するhtml部分を以下の内容にしても成功しませんでした。
(b.phpからa.phpのincludeには成功する環境です。)

$dat .= '<html><head>
<body>
<?php include('a.php'); ?>
</body>
';
0958nobodyさん2007/07/26(木) 17:59:21ID:???
>>957
何がしたいのか理解できん
index.htmlでPHP動かすか、
index.htmlを書き出せばいいんじゃね?
0959nobodyさん2007/07/26(木) 18:00:37ID:???
>>957
ttp://jp.php.net/manual/ja/ref.outcontrol.php
0960nobodyさん2007/07/26(木) 19:34:43ID:???
>>957
$lines = file('a.php');
foreach( $lines as $line ) {
$body .= $line."\n";
}
$dat .= '<html><head><body><?=$body?></body>';
0961nobodyさん2007/07/26(木) 19:41:36ID:Q2jSAhdn
>>958-960
簡素過ぎて伝わらなかったようで申し訳ないが、できるだけわかりやすく説明する。
まずindex.htmlを毎回PHPとして動かすのはヘッダ書き換えないとできないから、本体.php側に投稿があった時に
別のphpファイルからデータを取得してその内容を含んだindex.htmlと共に書き出ししたいと思った。

前提:post.php(投稿受付すると$datに格納してある<html>略</html>をindex.htmlを生成)、index.html(掲示板表示用)、kokuti.php(これを掲示板表示中に埋め込みたい)
流れ:post.phpにPOST → post.phpは$datの内容をindex.htmlファイルで書き出す(既に存在していたら更新)

index.htmlとして書き出すので$datに<?php include('nikki.php'); ?>と書いても動かないのは当然だが、
リアルタイムで必要とするデータじゃないので、post.phpにPOSTされた時だけkokuti.phpの内容を取り込み、$datと一緒に出力することで
「告知内容が書かれているindex.html」を生成したい。(kokuti.phpが読み込まれるのはのはpost.phpが動いた時だけ。)
0962nobodyさん2007/07/26(木) 19:49:14ID:???
>>961
じゃぁそうすれば良いじゃない・・・何が問題なの?
0963nobodyさん2007/07/26(木) 19:55:05ID:???
簡素じゃなくて日本語が不自由てだけだ
0964nobodyさん2007/07/26(木) 20:00:21ID:???
>>962
>じゃぁそうすれば良いじゃない・・・何が問題なの?
普段から何の問題意識も持たないお前の単純な思考回路が問題
0965nobodyさん2007/07/26(木) 20:04:03ID:???
関係無い所で煽るって事は言い返せないって事か
0966nobodyさん2007/07/26(木) 20:06:08ID:???
とりあえず簡潔に日本語を書け
0967nobodyさん2007/07/26(木) 20:08:24ID:Q2jSAhdn
>>963-966
お前らの読解能力がないだけじゃん
頭ごなしに否定する前に幼稚園からやり直してきなー
0968nobodyさん2007/07/26(木) 20:10:49ID:???
言えばテンプレ作っておいて、それに文字当てはめてhtmlで書き出したいだけだろ?
だったらそうすればいいんじゃね?
0969nobodyさん2007/07/26(木) 20:38:23ID:???
kokuchi.phpをincludeしたものをindex.htmlとして出力すればいいだけだろ?
index.html(phpにしないと動かないが)側でphpをincludeする必要なんてない。
0970nobodyさん2007/07/26(木) 20:41:58ID:???
>>968-969

>>967のような糞でも何だかんだお前ら優しいな
0971nobodyさん2007/07/26(木) 20:53:52ID:???
いつものID出しての釣り好き
0972nobodyさん2007/07/26(木) 21:16:37ID:???
いやいつもより質が悪いから別のバカだろ
レス数が950を超えています。1000を超えると書き込みができなくなります。