【PHP】下らねぇ質問はID出して書き込みやがれ 93
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2010/02/15(月) 19:23:06ID:???過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 92
http://pc11.2ch.net/test/read.cgi/php/1263035502/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0320nobodyさん
2010/02/25(木) 14:44:51ID:4W7DKvAcmysqlが原因ですか・・・
DBサーバー関係が疎いので、色々やっているうちに、どこかの設定を間違っていじっていたかもしれません。
今から、再インストールしてみます。
ありがとうございます。
0321nobodyさん
2010/02/25(木) 14:50:22ID:???mysqlではなくphpのmysql用のモジュールが読み込めてないだけ
phpinfo()にMySQLの項目がでてこないと使えない
0322nobodyさん
2010/02/25(木) 15:12:09ID:???PHP5(2系3系)とMySQL5.xはdllの相性が悪い
5.2なら「php mysql 修正版 dll」でググレ
王道的な解決策は>>6のブログに書いてある
0323nobodyさん
2010/02/25(木) 16:07:01ID:???【PHPのバージョン】php5
環境は特に限定せず、普通のレンタル鯖等での動作を想定。
数値での++的な事をアルファベットでやりたいです。
a,b,c....と事前に配列で定義することなく、プログラム的にa,b,c....をループの中などで出力する方法はないでしょうか?
0325nobodyさん
2010/02/25(木) 16:36:52ID:???PHPからウィンドウズのアプリ(.exe)を起動するにはどんな関数を使えばいいのですか?
アプリはPHPソースと同じ場所にあります。
0327nobodyさん
2010/02/25(木) 16:39:28ID:gV6UoPDqWindowsXPにPHPを入れてるのですが
PHPからウィンドウズのアプリ(.exe)を起動するにはどんな関数を使えばいいのですか?
アプリはPHPソースと同じ場所にあります。
0328nobodyさん
2010/02/25(木) 16:39:52ID:???0329nobodyさん
2010/02/25(木) 16:51:08ID:gV6UoPDqいやそうやって書いてたんですがエラーでて(´・ω・`)
っておもってたんですがスペルマミスでしたwwwwwwwwwwwwwwwwwサーセンwwww
そして直して再度やってみたら、なんかブラウザが読み込み中のままで
サーバー側でアプリが起動してないんですが
他に何か気をつける点があったら教えてください
0330nobodyさん
2010/02/25(木) 17:02:02ID:???0331nobodyさん
2010/02/25(木) 17:02:30ID:???0332nobodyさん
2010/02/25(木) 17:10:15ID:gV6UoPDqえっと普通のWinアプリなのでGUI的な感じですが・・・
>>331
ログどこにありますかログ。みてみます
0333nobodyさん
2010/02/25(木) 17:24:18ID:???`〜` は文字出力して戻ってくるのが前提のコマンドだ。
もしサーバー側で実行が成功してるなら
そのphp、つまりhttpdの実行ユーザーで実行されている
デスクトップがそのユーザーのものじゃないからそのままじゃ出ないだろう
サービスの設定でデスクトップとの対話を許可するとかやれば出るかもしれない
実行してphpkら切り離すのは、、、&使えたっけ?forkしてexecとかか
0334nobodyさん
2010/02/25(木) 17:31:33ID:gV6UoPDqすごいありがとうございます。
確かに画面には出ていませんでした。。。
んでタスクマネージャみてみたらボタン押した回数分起動してましたww
すみません、サービスの設定はどうやってやるのですか?><
んで、サイトに書いてるようにexecやったらphpが抜けてこないっぽいので
切り離すやりかたを><
0335nobodyさん
2010/02/25(木) 17:34:16ID:???Apacheのプロパティ出してログオンのとこにあるデスクトップ〜をチェック
0336nobodyさん
2010/02/25(木) 17:56:54ID:gV6UoPDqできました!!!
タスクトレイのアイコン右クリのサービスでもOKでした。
おかげでアプリは見事に表示されました!!
で、これやっぱりアプリ終了させるまでexecで止まってるみたいですね。
アプリは起動されたら一連の動作を終えたら終了するようにするので
これはこれでOKかなとおもいました。
いろいろありがとうございました。
ほんと助かりました。。。
0337nobodyさん
2010/02/25(木) 19:13:45ID:???htmlspecialcharsは表示のタイミングで使うものなので
受け取った値をどう使うかによる
表示するのなら(そのタイミングで)使うべき
内部で処理するために使うだけならいらない
0338nobodyさん
2010/02/26(金) 00:44:43ID:???0339nobodyさん
2010/02/26(金) 01:11:20ID:???0340nobodyさん
2010/02/26(金) 02:35:11ID:L4Bq0Atmrtrimを使わないといけないのは分かりましたが理解が出来ない・・・。
>>307
なんとなくでしか分かってないですorz
issetで書いた方がいいのでしょうか・・・?
>>310
一つ一つ理解して頑張っていきたいと思います・・・。
これで動きました。
ありがとうございます。
0341nobodyさん
2010/02/26(金) 03:25:21ID:???0342nobodyさん
2010/02/26(金) 07:56:53ID:???http://jp.php.net/manual/ja/function.file.php
注意: FILE_IGNORE_NEW_LINES を指定しない限り、 配列に取り込まれた各行は行末文字も含みます。
行末文字を取り除きたい場合には rtrim() を使用する必要があります。
fileで配列に入った1行ずつの最後には改行が入ってるよってこと。
だからexplodeした最後の配列の中は
"geho[行末文字]"になっていて比較する"geho"とは違う文字列となってしまう。
こういうときは自分なら
hoge<>geho<>
aaaa<>bbbb<>
1111<>2222<>
と余分に<>を付けとく
0343nobodyさん
2010/02/26(金) 11:11:53ID:AdOXrMqO昨日execがどーのとかって騒いでた基地外ですがまた質問させてください。
昨日の件はうまくいって感謝しています。んで、それの続きなんですが
echo "処理中";
exec('hoge.exe')
echo "<img src='hoge.jpg'>";
てな具合でボタンを押したらhoge.exeを起動してhoge.exeがhoge.jpgを作成して
作成したらhoge.exeは終了するのでhoge.jpgを表示するってストーリーなのですが
hoge.exeはjpgを作成するまでやや時間がかかるので、
ボタンを押したら"処理中"の文字を表示してからhoge.exeを起動したいのですが
何故か、hoge.exeが終了してから"処理中"が表示されてしまいます・・・
これどうしたら、先に処理中って文字を表示させることができますか?
0344nobodyさん
2010/02/26(金) 11:14:02ID:???0345nobodyさん
2010/02/26(金) 11:31:14ID:AdOXrMqOでけましたありがとう。
ob_flush( );
flush( );
と両方しないとダメなんですね。
0346nobodyさん
2010/02/26(金) 12:23:06ID:OgECULN1動画アップローダを作成しています。
動画・タイトルどちらが欠けてもエラーが出る様にしています。
しかしタイトルを未入力で、動画だけをアップした時、
何故かエラーが出ずphpがそのまま実行されて確認画面まで来てしまいます。
(動画も結局アップされていません)
これはphp.iniで設定された容量制限である100MBをオーバーしてしている場合のみで、
軽い動画ならうまく動作する様ですが…。
■up.html
<form action="up.php" method="POST" enctype="multipart/form-data">
動画 <input name="video" type="file"><br>
タイトル <input name="videotitle" type="text" size="30" value=""><br>
<input type="submit" name="up" value="アップする"></form>
■up.php
<?php
if (isset($_POST["up"])) {
$path = "./"
$video = $_FILES["video"]["name"];
$videotitle = $_POST["videotitle"];
if (!isset($videotitle)) {
error;//エラー処理(元のアップローダ画面に飛ばす)
exit();}
if (move_uploaded_file($_FILES['video']['tmp_name'],$path.$video) == false) {
error;//エラー処理(元のアップローダ画面に飛ばす)
exit();}
//確認画面処理〜
}?>
php.iniのファイルサイズ制限が効いていないのかと思い
直接ファイルサイズ if ($_FILES["video"]["size"] > 1000000) {〜} 等でチェックしましたが、
やはり大きい動画をアップするとこのエラーはスルーされてそのまま確認画面まで来てしまいます。
どこが間違っているのでしょうか?
0347nobodyさん
2010/02/26(金) 12:35:10ID:???if ($videotitle == "") {
0348nobodyさん
2010/02/26(金) 12:35:36ID:L4Bq0Atmふむふむ。
file関数をバカにしてました・・・。
勉強になります。
0349346
2010/02/26(金) 13:40:42ID:OgECULN1やってみましたが、やはり動画のアップがされた後確認画面が出ます。
仮に値を入れても、動画ファイルの容量が大きいと空の状態の確認画面が出て来てしまいます。
0350nobodyさん
2010/02/26(金) 13:51:38ID:???他にpostサイズの制限とかメモリ制限の設定があるから確認してみたら
$_FILES["video"]["error"]もご確認くださいませ
0351nobodyさん
2010/02/26(金) 13:55:57ID:???そうすると、いきなり確認画面になるね。
0352346
2010/02/26(金) 14:04:45ID:OgECULN1$_FILES["video"]["error"]確認しましたが空でした。
>>351
ネットで検索した所
「php.iniで設定したpost_max_sizeの値を超えると、該当の変数の値が消えてしまう」
というのがあったので、
「post_max_sizeを超える=動画をアップしていない状態」になるという事は何となく分かりました。
となると動画の容量がデカイ状態と動画ファイルを指定していない状態を同一の処理にするしか
無いという事でしょうか。
0353nobodyさん
2010/02/26(金) 14:05:06ID:???0355346
2010/02/26(金) 14:15:28ID:???post_max_sizeあるいはupload_max_sizeを超えなければいける様です。
色々探してて次の様な記述見つけたのでとりあえずの対応策打っておきます。
>・php.ini で post_max_size > upload_max_size にしておかないと、
>スクリプト自体が強制終了して、$_FILES[...]['error'] を見てエラーメッセージを出せないので注意。
>・アップロード form において、hidden input の MAX_FILE_SIZE は
>type="file" な input より手前に書かないと適用されないので注意。
ありがとうございました。お騒がせしました。
0356nobodyさん
2010/02/26(金) 17:13:48ID:pmFXcZ0U単にmagicfileで検索しても名探偵コナンばっか出てくるし(苦笑)、それを検索から除去しても良く分かりませんでした
0357nobodyさん
2010/02/26(金) 17:23:35ID:???0359nobodyさん
2010/02/27(土) 14:37:21ID:96it23LZといわれるゆえんは何?
クラスも持ってるしクラスオブジェクトもつくれるしオブジェクト指向言語と呼ばれる資格は
十二分に兼ね備えていると思うんだが(´・ω・`)
0360nobodyさん
2010/02/27(土) 14:52:54ID:???普通CといったらC++はささないけど
PHPといったらPHP3もPHP5もさすし名称的な問題もあるのかなぁと
今の状態はまだまだなんちゃってオブジェクト指向
オブジェクト指向としての機能が弱かったり足りなかったり
0361nobodyさん
2010/02/27(土) 14:59:17ID:???でも相対的な程度の違いであって
オブジェクト指向かそうでないかと言われれば「YES」になる
0362nobodyさん
2010/02/27(土) 15:25:22ID:???0363nobodyさん
2010/02/27(土) 15:35:27ID:???0364nobodyさん
2010/02/27(土) 17:10:35ID:???if ((>>360 == >>363 || >>361 == >>363)
echo ">>363=チンピラ乙";
}
?>
0366nobodyさん
2010/02/27(土) 17:23:24ID:???0367nobodyさん
2010/02/27(土) 17:36:39ID:???0368nobodyさん
2010/02/27(土) 17:56:19ID:AeZrDmue【PHPのバージョン】php5.26
【連携ソフトウェア】apach2.2
【質問内容】
これまで相対パスしか使ったこと無くてドキュメントルートから上にファイル置いたとき、
どんな風に指定すればいいのかわからないよっ
誰かおしえて
0369nobodyさん
2010/02/27(土) 17:59:24ID:???0370nobodyさん
2010/02/27(土) 18:01:01ID:???0373nobodyさん
2010/02/27(土) 18:43:19ID:???0374nobodyさん
2010/02/27(土) 19:04:06ID:???あと例外投げないのが嫌ならエラーハンドリングすればいいのでは?
0375nobodyさん
2010/02/27(土) 20:03:19ID:???正しくアクセスできないわけだけど、 $this-> をつけなくてもエラーが返されないって点はこわくね?
うっかり $this-> を付け忘れるとそのメソッド内限定の変数として扱われ、クラスプロパティの値は
全く変えられなくなる。それでいてエラーとかは表示されないわけだからバグ混入の原因にもなる。
以前クラスを作った際にクラスプロパティの値が何やっても変更されなくて数時間の格闘の末
プロパティに$this->を付け忘れただけということが判明した。本当に恐ろしい体験だったぜ・・・
0376nobodyさん
2010/02/27(土) 20:03:56ID:???チンピラだから仕方がない
>>374
>あと例外投げないのが嫌ならエラーハンドリングすればいいのでは?
本人でないがそれじゃ意味ない罠
わざわざそういうことをしないために元々サポートされるものなんだから
0378nobodyさん
2010/02/27(土) 20:18:20ID:???しなくてもいいししてもいい
例外投げてくれたほうがいいと思うならすればいいじゃない
言語に使われるんじゃなくて言語を使わなくちゃだめだよ
0379nobodyさん
2010/02/27(土) 20:36:48ID:???0380nobodyさん
2010/02/27(土) 21:13:23ID:???デストラクタでファイルをクローズするのはお行儀のいいプログラムだと思う?
デストラクタを使えば確実にファイルをクローズすることができるし
0381nobodyさん
2010/02/27(土) 21:21:12ID:???0382nobodyさん
2010/02/27(土) 21:28:15ID:???0383nobodyさん
2010/02/27(土) 21:30:36ID:???0384nobodyさん
2010/02/27(土) 22:07:39ID:???サンクス、この調子でいってみるノシ
ところで"rb+"オプション(読み書きモード)付きでファイルをオープンしたあとflock()で排他ロック。
ファイルを読み込んで処理を施したあと再度上書き保存して排他ロックを解除、
というシナリオを考えているんだけど最後にファイルを上書き保存する際に
一度ファイルをまっさらにする方法って無い?
"rb+"モードだとポインタを先頭に戻して書き込んでも以前のファイルの内容が残ってしまうんだよね。
たとえば"rb+"モードで長文開いたあと短文を保存すると短文のあとに以前の長文の残骸が残って
しまう。
書き込み前に一瞬だけ排他ロックを外して"w"オプションでファイルに書き込めばこの問題は
解決できるんだけど一瞬排他ロックを外した瞬間にそのファイルがいじられてしまう可能性だって
ゼロではない。
う〜ん・・・、どうすればいいんだろう・・・
0385nobodyさん
2010/02/27(土) 22:14:17ID:???0387nobodyさん
2010/02/27(土) 23:17:37ID:???【PHPのバージョン】5.2.5 - SafeMode
【質問内容】
phpで送信されてきたidとpasswordをListファイルにあるidとpasswordで照合させたいのですが
外からListファイルを読めないようにするにはどうしたら良いのでしょうか。
0389388
2010/02/27(土) 23:21:14ID:???0390nobodyさん
2010/02/27(土) 23:42:50ID:wtKSisfTatpagesを使用してるのですが、ドキュメントルートより上におくって無理っぽい><
0392nobodyさん
2010/02/28(日) 04:50:09ID:???atpagesならDB使えるしそっちでも
0394nobodyさん
2010/02/28(日) 10:54:11ID:???【PHPのバージョン】5.2.5
【質問内容】
借りているサバでcronが使えないのでローカルの
タスクスケジューラーを利用してhttp経由で定期的に処理させたい
タスクがあります。
<?php
$URL="http://xxx.com/index.php"
file_get_contents($URL);
?>
上のようなコードでレンタサーバ上のPHPファイルは
実行されるでしょうか?
もし駄目ならフォームを作っておいて
フォームの変数に実行の権限を与えて
JSでdocument.form.fname.onsbmit();
してやればいいのかなと考えているのですが
判然としません。
0395nobodyさん
2010/02/28(日) 11:06:27ID:???0396nobodyさん
2010/02/28(日) 13:06:03ID:???0397nobodyさん
2010/02/28(日) 13:22:02ID:LiqVmvoYその配列を値のファイルの更新時間が新しい順にソートしたいのですが全く考えが浮かびません。
何か方法がありましたらお答え頂けると嬉しいです。
0398nobodyさん
2010/02/28(日) 13:24:39ID:???0399nobodyさん
2010/02/28(日) 13:24:42ID:???0400nobodyさん
2010/02/28(日) 13:28:01ID:LiqVmvoYありがとうございました。やってみます。
0401nobodyさん
2010/02/28(日) 13:33:10ID:???0402nobodyさん
2010/02/28(日) 13:34:15ID:???しかし、同じのを複数回呼び出すので効率悪い。
確定した値つかうのを推奨。
0403nobodyさん
2010/02/28(日) 13:36:13ID:???0404nobodyさん
2010/02/28(日) 13:38:36ID:???晒せや
0405nobodyさん
2010/02/28(日) 14:16:58ID:LiqVmvoY0406nobodyさん
2010/02/28(日) 15:01:13ID:???でビジターのIPアドレスを取得できると思いますが
たとえばノートンとか入れていてIPアドレスが表示
されないようにした人がアクセスしてきた場合は
$ipにはどんな値が代入されますか?
0408nobodyさん
2010/02/28(日) 15:15:57ID:???0409nobodyさん
2010/02/28(日) 15:17:23ID:VtmQa4kubase64とかナスリエンコードとか。
0410nobodyさん
2010/02/28(日) 15:18:32ID:VtmQa4kuナスリ=URL
バイナリの長文をソースコードに埋め込みたいのですが
0411nobodyさん
2010/02/28(日) 15:22:28ID:???0412nobodyさん
2010/02/28(日) 15:34:02ID:VtmQa4kubase64にしときます。asciiで使える文字はもっとありそうですが実績と手間削減から。
0413nobodyさん
2010/02/28(日) 15:41:30ID:???0414nobodyさん
2010/02/28(日) 16:22:48ID:???0415nobodyさん
2010/02/28(日) 16:24:31ID:???たぶんオプジェクトのオの字も知らない人が書いたと思われる。
こういうのを改修する場合って既存の書き方に習った方がいいのだろうか?
あるいはリスク覚悟で書き直した方がいいのかな?
お客さんは任せるって言ってるんだけど。
0416nobodyさん
2010/02/28(日) 16:28:26ID:???0417nobodyさん
2010/02/28(日) 16:34:01ID:???しかし酷いソースに合わせて機能拡張するって本当に苦痛だ
0418409
2010/02/28(日) 16:45:39ID:VtmQa4ku実行ファイルでサイズが半分くらいになりなかなか効率良いですよ。
<?php
function bin2ascii( $bin ) { return base64_encode( gzcompress( $bin, 9) ); }
function ascii2bin( $asc ) { return gzuncompress (base64_decode( $asc) ); }
function bin2ascii_file( $infile, $outfile ){
$fp = fopen( $infile, 'rb');
$data=fread( $fp, 10*1024*1024);
fclose($fp);
$data=bin2ascii($data);
$fp = fopen( $outfile, 'wb');
fwrite( $fp, $data);
fclose($fp); }
function ascii2bin_file( $infile, $outfile ){
$fp = fopen( $infile, 'rb');
$data=fread( $fp, 10*1024*1024);
fclose($fp);
$data=ascii2bin($data);
$fp = fopen( $outfile, 'wb');
fwrite( $fp, $data);
fclose($fp); }
bin2ascii_file("exploler.exe", "000");
ascii2bin_file( "000", "exploler.ex_");
?>
0419nobodyさん
2010/02/28(日) 16:54:11ID:???■ このスレッドは過去ログ倉庫に格納されています