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

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

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2007/11/16(金) 18:09:05ID:kurqBmt1
まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り

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

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

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

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

【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0357nobodyさん2007/11/21(水) 19:12:54ID:???
ちょっと名前忘れたんですけど、
perlやrubyにある(?)安全なeval(safe eval?)の
PHP版ってないですかね?

データベースにユーザーが定義できる条件式という項目を作ろうと
思っているんですけど、その項目に危険な命令(たとえばファイル削除)を
入れられたら困るんで、最低限の計算式・指定の関数だけ実行できるevalが
ほしいのですが。

もしくは、それができるPHP内スクリプト言語でも可。
0358nobodyさん2007/11/21(水) 19:21:32ID:???
バリデーションしろ
0359nobodyさん2007/11/21(水) 19:36:10ID:???
>>356
再現性あるコードを出してくれ
0360nobodyさん2007/11/21(水) 20:05:51ID:Tisg2A2C
色んな種のイラストがある場所知らないですか?
種から芽と根が出るgifもさがしてます
0361nobodyさん2007/11/21(水) 20:08:06ID:???
>>360
GDで書いた奴とか?
0362nobodyさん2007/11/21(水) 20:14:39ID:???
>>360
つ イメージ検索
0363nobodyさん2007/11/21(水) 20:20:54ID:???
PHP関係なさすぎワロタ
0364nobodyさん2007/11/21(水) 22:08:23ID:???
mod_rewriteで全てindex.phpを受け口にしようとしてるんだけど、
POSTデータの受け渡し方がわかりません・・・
フレームワークとかではどうしてるんでしょう?
0365nobodyさん2007/11/21(水) 22:22:50ID:???
普通に受け取ればいいだろが
0366nobodyさん2007/11/21(水) 22:35:11ID:???
フレームワークとかどんだけ大きいんだよ
03673642007/11/21(水) 22:44:58ID:???
うお、Zend Studioのデバッガが取れてないだけだった・・・
そうか普通にPOSTデータもリライト先に送ってくれたんだね。
うーん、これはこれでどうすべきか・・・
03683642007/11/21(水) 22:50:13ID:???
すんません、Zendも悪くありませんでした・・・
風呂でチンコ洗って寝ます。
せめてチンコだけはフレームワーク並に大きければ救いがあったんですが。
0369nobodyさん2007/11/21(水) 23:35:46ID:ZEFNTxNm
非常に困っているのでどなたか力を貸してください。
サーバ;apache_2.0.59-win32-x86-no_ssl.msi
PHP5
MySQL:mysql-5.1.22-rc-win32

症状は、"ほげほげ"の部分に"あ"とかを入力すると文字がインサートされるのですが、
"ほげほげ"を入れると何も入りません。
文字化け問題はよく散見できるのですが、文字が入らないといったエラーは見つけるこ
とができなかったので、どうすることも出来ず困っています。
尚、全ての文字コードは character_set_systemがutf8でそれ以外は全てeucに統一しています。
<html>
<head><title>データインサート</title>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
</head>
<body>

<?php
mb_internal_encoding("EUC-JP");

$con = mysql_connect("localhost","roooot","aaaaaaa");
mysql_query("SET NAMES EUC-JP");
mysql_select_db("cart",$con);
$dat = "ほげほげ";
$dat = addslashes($dat);
$sql = "insert into kokyaku_info(name)values('$dat')";
$res = mysql_query($sql,$con);

?>
0370nobodyさん2007/11/21(水) 23:59:19ID:???
キー重複か型が違う
0371nobodyさん2007/11/22(木) 00:12:13ID:d6OHwmCn
>>370

プライマリーキーは指定していません。
型はテーブルを作ったときにvarchar(100)を指定しました。
create table kokyaku_info(name varchar(100));
0372nobodyさん2007/11/22(木) 00:24:55ID:???
じゃmysql_errorでも出力すれ
0373nobodyさん2007/11/22(木) 00:45:17ID:d6OHwmCn
>>372
さんアドバイスありがとうございます。そういうエラーの出力方法があるとはしりませんでした。
<?php
mb_internal_encoding("EUC-JP");

$con = mysql_connect("localhost","root","omaemona");
mysql_query("SET NAMES EUC-JP");
mysql_select_db("cart",$con);
$dat = "開\発";
$dat = addslashes($dat);
echo mysql_errno($con).": ".mysql_error($con)."<BR>";
$sql = "insert into kokyaku_info(name)values('$dat')";
echo mysql_errno($con).": ".mysql_error($con)."<BR>";
$res = mysql_query($sql,$con);
echo mysql_errno($con).": ".mysql_error($con)."<BR>";

?>

としてみたところ、以下のエラーが返されました。
0:
0:
1366: Incorrect string value: '\xB3\xAB\\xC8\xAF' for column 'name' at row 1
0374nobodyさん2007/11/22(木) 00:48:36ID:???
だそうです。
0375nobodyさん2007/11/22(木) 00:48:39ID:???
自分で解決しようとする気にはならんのね。死ねば?
0376nobodyさん2007/11/22(木) 00:53:20ID:d6OHwmCn
エラーの文章で色々しらべたのですが、どうやら文字コードの問題らしいですが、解決方法が見つかりません。
やはり文字コードが違うということなのでしょうか?
0377nobodyさん2007/11/22(木) 00:56:05ID:???
試してから聞け
0378nobodyさん2007/11/22(木) 00:57:56ID:???
$dat = "開\発";
これじゃねーの?
$dat = "開\\発";
とかしてみれ
0379nobodyさん2007/11/22(木) 01:04:51ID:d6OHwmCn
>>387
アドバイスありがとうございます。早々試してみましたが、うまくいきませんでした。
英語の意味的には不正確な文字列を挿入したために出たエラーと解釈しても良いでしょうか?
しかし、文字コードは全て統一しているのにどうしてこのようなエラーがでてしまうのでしょうか
0380nobodyさん2007/11/22(木) 01:15:11ID:d6OHwmCn
文字コードをデフォルトのラテンでやると上手く文字が挿入できましたが、
なぜEUCではだめなのでしょうか?
0381nobodyさん2007/11/22(木) 01:21:40ID:???
ならラテンでいいだろ
たぶんmy.cnfのデフォルト設定がsjisになってるからじゃない
文字化けとかの場合はujisにすれば使えるけど、関係があるかは知らん
0382nobodyさん2007/11/22(木) 01:21:57ID:???
カラムの照合順序がlatinになっているから。
頼むからこれで最後にしてくれ。
0383nobodyさん2007/11/22(木) 02:08:30ID:???
  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;; 
  ヾ;;;ハ    ノ       .::!lリ;;r゙  レベル低っく …
   `Z;i   〈.,_..,.      ノ;;;;;;;;>
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f
   ~''戈ヽ   `二´    r'´:::. `!




0384nobodyさん2007/11/22(木) 02:13:02ID:???
わざわざ自己紹介しなくていいよ
0385nobodyさん2007/11/22(木) 02:15:40ID:???
  ,j;;;;;j,. ---一、 `  ―--‐、_ l;;;;;;
 {;;;;;;ゝ T辷iフ i    f'辷jァ  !i;;;;;  君たちどんだけレベルが低いんだよ・・・
  ヾ;;;ハ    ノ       .::!lリ;;r゙ 過去の産物で必死になるのはいいが、
   `Z;i   〈.,_..,.      ノ;;;;;;;;> ロジックはどんどん日進月歩してる。
   ,;ぇハ、 、_,.ー-、_',.    ,f゙: Y;;f  MITのレポートなんか読んだことないだろwww
   ~''戈ヽ   `二´    r'´:::. `!



0386nobodyさん2007/11/22(木) 03:35:53ID:???
はいはい

脳内板に【超上級者】PHP高度な質問スレその1【玄人歓迎】でも立ててやってね
0387nobodyさん2007/11/22(木) 03:37:23ID:???
マジで高度な質問用スレ作っといたほうがいいかもな。誘導できるし。
0388nobodyさん2007/11/22(木) 03:40:21ID:???
過疎るのが目に見えてる。
結局、自称上級者(笑)はココに戻ってくるのさ。
0389nobodyさん2007/11/22(木) 03:49:56ID:???
PHPなんて実際には触ったこともない部外者もいます

俺俺
0390nobodyさん2007/11/22(木) 07:04:57ID:???
>>380
skip-character-set-client-handshake
0391nobodyさん2007/11/22(木) 07:53:47ID:1BRgOth3
画像ファイルにうめこまれたPHPスクリプトがあるとします。
これをチェックするにはどうしたらよろしいでしょうか?
0392nobodyさん2007/11/22(木) 08:10:24ID:???
Content-Type:
0393nobodyさん2007/11/22(木) 08:16:37ID:1BRgOth3
Content-Typeは信用できるものなんですか?
0394nobodyさん2007/11/22(木) 08:18:12ID:???
実行したくないなら実行しなければいいんじゃね?
0395nobodyさん2007/11/22(木) 08:31:51ID:???
何言ってるかワカランな。この質問者は
Webシステムでクライアントから送られてくる画像ファイルの事言ってるのか、
それとも、スタンドアロンでの事なのか、
結果的に画像ファイルをどう処理したいのか、

全然書いてないじゃん
0396nobodyさん2007/11/22(木) 08:36:11ID:???
こんにちは
こんな事をしたいのですが、良い作りが思いつきません
火曜日ごとに1106.jpg 1113.jpg 1120.jpg 1127.jpgと更新するサイトがありまして
その画像をその日の午後になったら取得したいのですが…
time()にたいして一番近い火曜日の時間を決定するのはどんな式がいいでしょうか?
forでtime()から60*60*24引いて曜日検査のループ?
0397nobodyさん2007/11/22(木) 08:36:52ID:7QpoLgnt
こんにちは
こんな事をしたいのですが、良い作りが思いつきません
火曜日ごとに1106.jpg 1113.jpg 1120.jpg 1127.jpgと更新するサイトがありまして
その画像をその日の午後になったら取得したいのですが…
time()にたいして一番近い火曜日の時間を決定するのはどんな式がいいでしょうか?
forでtime()から60*60*24引いて曜日検査のループ?
0398nobodyさん2007/11/22(木) 08:50:01ID:???
>>397
画像を取得するようなPHPなり何なりを書いて
cronで毎週火曜に回るように設定すれば終わり
0399nobodyさん2007/11/22(木) 08:50:04ID:1BRgOth3
すみませんでした、補足します。
画像アップローダーです。
不特定ユーザーが画像をアップロードできるため、
攻撃コードをしくまれた画像をはじきたいと考えてます。
0400nobodyさん2007/11/22(木) 08:55:23ID:???
>>399
不特定ユーザーがアップする
攻撃コードをどうやって解析するつもりだ?
0401nobodyさん2007/11/22(木) 09:02:36ID:???
思いつきません。
やはり対応はできそうにないですよね
0402nobodyさん2007/11/22(木) 09:27:23ID:7QpoLgnt
>>398
レンタルサーバーなので
phpだけで実装したいのです・・・
0403nobodyさん2007/11/22(木) 09:55:09ID:???
ふと思ったんだけど、質問スレって初心者しかいないんじゃないかと思う。
他の板もそうだけどさ。
上級者は質問スレなんて見ないよな。見る必要ないし。

お前らもこんなところで質問してないでgoogleで回答やヒントを検索した方が早いと気が付いた22才の秋。

さて、この次にレスをする人はニート。

↓ ニート ↓
0404nobodyさん2007/11/22(木) 09:55:50ID:???
>>397
火曜日の月日がファイル名であるなら、
今日の日付と曜日を取得して、火曜日に変数をセットしてゲットすりゃいいじゃん
0405nobodyさん2007/11/22(木) 10:03:57ID:???
つーか>>397は
>forでtime()から60*60*24引いて曜日検査のループ?
これを>>398の返事より前に試して解決済みなんだろうw
0406nobodyさん2007/11/22(木) 10:20:21ID:7QpoLgnt
>>405
と、今試してみて動きました。
毎回ターゲットのサイトのソースを取ってきて、そこのurlを取って来れば?
なんて思ったのですか悪手ですよね
//w = 2 火曜日
if( date("w",time()) != "2")
{
//現在秒数
$time_count = time();

while( date("w",$time_count) != "2")
{
$time_count -= 60*60*24;
}
echo '<img src="http://???'.date("md",$time_count).'.jpg">';
}else{
echo '<img src="http://???'.date("md",time()).'.jpg">';
}
0407nobodyさん2007/11/22(木) 10:22:43ID:7QpoLgnt
外側のifいらないですね…ありがとうございました。
0408nobodyさん2007/11/22(木) 10:45:44ID:sPAH13/5
pearがインストールできない客先のサーバなどで、
pearを使いたい場合はどんな方法がありますか?
0409nobodyさん2007/11/22(木) 10:48:27ID:???
>>408
URL直下にならないとこに使いたいPEARをUploadして
htaccessなどでinclude_pathを指定してやればいいんじゃね?
インストールといっても展開だけだからな
0410nobodyさん2007/11/22(木) 11:03:41ID:???
408ではないけど、URL直下において、その中にhtaccessでdeny allにするのは
セキュリティ的に問題ありですか?
0411nobodyさん2007/11/22(木) 11:05:08ID:???
>>410
おそらく問題はないと思うが確実ではない
URL直下にしか置けない場合はそれでいいと思う
0412nobodyさん2007/11/22(木) 11:16:52ID:???
>>408
いくらインストールしてもサーバに必要なモジュールがなければpearなんて使えねえぞ
0413nobodyさん2007/11/22(木) 11:20:53ID:ucDTt70g
Test("example","test","hogehoge");

function Test(){

}

これで、受け取ったデータを配列に格納する方法ってどうやるんでしたっけ
度忘れしてしまいました
0414nobodyさん2007/11/22(木) 11:35:00ID:8EI8IvP2
自分自身にPOSTするプログラムで処理に20秒ほど時間がかかるのですが、
処理中に別人が違う値をPOSTしたらどうなりますか?

また、もし問題がある場合、どんなキーワードを調べれば良いですか?
0415nobodyさん2007/11/22(木) 11:37:03ID:???
>>414
別々だから問題ないよ
外部ファイルに書き込みとかなければ
そんときゃロック
0416nobodyさん2007/11/22(木) 11:38:07ID:???
>>413
Test("example","test","hogehoge");

function Test($a.$b.$c){

$a...

}
04174142007/11/22(木) 11:39:39ID:???
>>415
ありがとうございます!
0418nobodyさん2007/11/22(木) 11:40:11ID:???
>>413
array("example","test","hogehoge");

>>414
アパッチのアイドルが何とかするから気にするな
だめならサーバーが遅くなるか死ぬ
POSTで20秒もかかる処理があるほうが問題
04194132007/11/22(木) 11:40:40ID:???
>>416
書き方がわるかったみたいです・・・。

func_get_args()で自己解決できました。
有難うございました。
04204142007/11/22(木) 11:51:30ID:???
>>418
で、ですよね(汗

それどころかset_time_limit(60);にしてたりして・・・
0421nobodyさん2007/11/22(木) 12:16:42ID:ucDTt70g
PEARのDBを使っているのですが、
MySqlからPostgreSQLに移行させる場合はどのように手順を踏めば良いでしょうか
DNSをmysql://〜をpgsql://〜にするだけで良いのでしょうか?
0422nobodyさん2007/11/22(木) 13:17:37ID:???
>>421
逆に質問させてくれ。おまえはなぜpearを使うのだ?
0423nobodyさん2007/11/22(木) 13:34:40ID:???
現在実行中のスクリプトのパスって
どうやって取得するんですかね?

カレントパスではないです。
04244232007/11/22(木) 13:36:56ID:???
$_SERVER['SCRIPT_NAME']ではないです。
CakePHPなのですが、$_SERVER['SCRIPT_NAME']は
/app/webroot/index.php となっていました。

これではなく、index.phpから呼ばれていった
○○クラスが入っているphpファイルです。
0425nobodyさん2007/11/22(木) 13:36:59ID:???
>>423
phpinfo()をよくみろ!
04264232007/11/22(木) 13:38:12ID:???
__FILE__ これか・・?
0427nobodyさん2007/11/22(木) 13:43:23ID:ucDTt70g
>>422
ですよねー
0428nobodyさん2007/11/22(木) 13:46:20ID:???
>>425
そういうことじゃないのでは

>>426
http://php.mirror.camelnetwork.com/manual/ja/reserved.variables.php
もしくは
単に現在のphpファイルのディレクトリをしりたいってのなら、
dirname(__FILE__)
0429nobodyさん2007/11/22(木) 13:47:34ID:???
>>427
可憐さん?
0430軟式PHP2007/11/22(木) 13:58:48ID:???
いいえ、ケフィアです。
0431nobodyさん2007/11/22(木) 15:23:44ID:t/zyhRCZ
インストール時に--with-mysqlをするには
mysql-develが必要ですが、
mysql-develのバージョンはとりあえず一番新しいものを入れておけばいいのですか?
新しいmysql-develで
古いmysqlサーバにも
問題なく接続できるのでしょうか?
0432nobodyさん2007/11/22(木) 15:30:30ID:???
試してから言え
0433nobodyさん2007/11/22(木) 15:36:06ID:???
古いmysql-develを組み込んだPHPでも
新しいmysqlに接続できるよな…
どういう仕組みなんだろう?
0434nobodyさん2007/11/22(木) 15:41:35ID:???
fgetsとかfpassthruってEOFに当たるまでのデータを返すとのことですが
0バイトのファイルでいきなりEOFになるような場合だと
返ってくるのは空文字なのかそもそもエラーが出るのかどちらでしょうか?
0435nobodyさん2007/11/22(木) 15:41:35ID:???
使うライブラリ名(mysql.soとか?)と関数名が同じなら呼べるし、
仕様が変わってなければそのまま動くでしょ。
0436nobodyさん2007/11/22(木) 15:46:13ID:???
mysql1.0ってまだある?
0437nobodyさん2007/11/22(木) 15:47:57ID:???
func_get_args()ってどんな時につかうんだ?
0438nobodyさん2007/11/22(木) 15:49:07ID:???
>>437
引数が不定のときだろ
0439nobodyさん2007/11/22(木) 15:53:00ID:???
最近のレンタルサーバーでPHP5、MySQL使えるとこって
mysqliも使える物かな・・・
0440nobodyさん2007/11/22(木) 16:04:51ID:???
個別にお問い合わせ下さい
0441nobodyさん2007/11/22(木) 16:08:46ID:ucDTt70g
$str = '西鴻池町一丁目';
$preg = '/^(.*)([一二三四五六七八九十〇]丁目)$/';

preg_match($preg, $str, $match);
print_r($match);

として、○丁目というのを取得したいのですが、
これで取得するとなぜか、

Array(
[0]=>西鴻池町一丁目
[1]=>西鴻池町・・
[2]=>・丁目
)

のように文字化けします。
preg_matchで文字コードを指定してマッチするような引数はないみたいですが、
どうやって文字化けを防ぐことができるのでしょうか。

ちなみに上記はUTF-8を使用しています。
EUC-JPで試してみましたが同じところが文字化けします、。
0442nobodyさん2007/11/22(木) 16:10:35ID:???
/uにすると幸せになれるかも?
0443nobodyさん2007/11/22(木) 16:12:27ID:ucDTt70g
>>442
ありがとうございます、幸せになれました
これはマルチバイト対応なのですか
0444nobodyさん2007/11/22(木) 16:19:14ID:???
http://jp.php.net/manual/ja/reference.pcre.pattern.modifiers.php
0445nobodyさん2007/11/22(木) 16:33:57ID:???
UTF-8のみか・・・気をつけて使わないと・・・
0446nobodyさん2007/11/22(木) 16:39:46ID:sPAH13/5
>>409
どうもありがとうございます。
なぜ直下じゃだめなんでしょう??
0447nobodyさん2007/11/22(木) 16:46:20ID:???
>>446
おまえに指摘してやった>>412だがレスは読んだかな?
0448nobodyさん2007/11/22(木) 16:51:43ID:sPAH13/5
>>447
おおっと、見落としてしまってました。すみませんでした。
「サーバに必要なモジュール」とは例えばなんでしょうか?

今、PEARのサイトにいって、適当なものダウンロードしてみて解凍してみたんですが、
XMLファイルしか入ってなかったです。phpファイルが手に入ると思っていたんですが・・・。
0449nobodyさん2007/11/22(木) 17:14:23ID:???
mysqlのbegin,commit,rollbackってmysql_unbuffered_queryでやっちゃだめ?
mysql_queryじゃないとだめなのかな。
0450nobodyさん2007/11/22(木) 17:19:21ID:???
>>449
>>1
0451nobodyさん2007/11/22(木) 17:45:46ID:???
>>413
func_get_args()
0452nobodyさん2007/11/22(木) 19:42:29ID:???
>>448
PEARがあればなんでもできるってわけじゃないんだぞ・・・
サーバにインストールされたモジュールを確認してからにしろよ。。
0453nobodyさん2007/11/22(木) 20:37:58ID:???
<?php
if($_SERVER['HTTP_REFERER'] == "http://ほげほげ.com/" or "http://ちょめちょめ.com/") {
print "バカ";
}
?>

全然うまく動作しませんが、どのようにすればOKなのでしょうか?
0454nobodyさん2007/11/22(木) 20:48:17ID:???
ワラタ
0455nobodyさん2007/11/22(木) 20:53:50ID:???
>>454
真剣なんです。おしえてください。
0456nobodyさん2007/11/22(木) 20:57:39ID:???
>>455
じゃまず>>1を読め
■ このスレッドは過去ログ倉庫に格納されています