【PHP】下らねぇ質問はここに書き込みやがれ Part19
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/04/09(日) 01:31:18ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/
【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/
過去スレは>>2-3あたり
0721nobodyさん
2006/04/21(金) 21:58:05ID:???…なんか釣られてる気がしないでもないが
foreach($lines as $line) {
list(, $key[]) = explode(",", $line);
}
array_multisort($key, $lines);
print_r($lines);
結果
Array
(
[0] => aoki,32
[1] => yamada,521
[2] => takahashi,6013
)
これでいいんだろ?あほですか?
0722nobodyさん
2006/04/21(金) 22:05:06ID:???>>714
無理。そんなのできたら携帯用あぷろだとか出来てる。
0723nobodyさん
2006/04/21(金) 22:16:31ID:???720 名前:nobodyさん[sage] 投稿日:2006/04/21(金) 21:57:38 ID:???
>>714
無理。そんなのできたら携帯用あぷろだとか出来てる。
0724nobodyさん
2006/04/21(金) 22:18:05ID:???722:nobodyさん :2006/04/21(金) 22:05:06 ID:??? [sage]
720 名前:nobodyさん[sage] 投稿日:2006/04/21(金) 21:57:38 ID:???
>>714
無理。そんなのできたら携帯用あぷろだとか出来てる。
0726nobodyさん
2006/04/21(金) 22:57:53ID:q11WDkz8あの・・・ありますけど・・・
0727nobodyさん
2006/04/21(金) 23:03:54ID:???試験的にセキュリティ無視でfwrite()とフォームを使ってスクリプトを書いたら***.phpで保存するといったプログラムを組んだのですが、
Warning: Unknown(): SAFE MODE Restriction in effect. The script whose gid is 1000 is not allowed to access
というエラーを吐いてくるのですが
どう対処したらよいでしょうか
0729727
2006/04/21(金) 23:07:44ID:???対処は無理なのか・・・・
0730nobodyさん
2006/04/21(金) 23:07:45ID:xjsHzaEwこれって、どういうエラー?
ちなみに221行目は、$tag .= "<form action=\"$_SERVER['PHP_SELF']\" method=\"post\">";
なんだけど・・・
0731nobodyさん
2006/04/21(金) 23:08:36ID:???どっちにしろ無駄だけど
0733nobodyさん
2006/04/22(土) 00:31:56ID:???具体的にはユーザー情報を格納したcookiesを発行なんかしちゃうと
ほかのサイトでも読み出しできてしまう
ということなんでしょうか?
でもそしたらどうやってログインして、複数のページを渡り歩けるようにすればいいんでしょうか・・・・
0734nobodyさん
2006/04/22(土) 00:49:23ID:???まず、最近話題のCSSXSSとCSSは全くの別物なので勘違いしないように。
XSSはphpでの出力時に、危険性のある全ての変数(ユーザ入力の値など)を全てhtmlspecialcharsでエスケープすれば防げる。
以上。
0735733
2006/04/22(土) 00:57:45ID:???ありがとうございます
クロスサイトスクリプティングに関しての質問でした
CSSとかくと混同するのでXSSと書くとか書かないとかまでググって来ました
タグを入れられるようにして拡張性をと考えていましたが、
便利の裏には様々な問題があるんですね・・・
0736nobodyさん
2006/04/22(土) 01:36:52ID:???0738nobodyさん
2006/04/22(土) 16:13:48ID:8MNYgK3yがあったとして、答えの二文字目までを表示させる事は可能でしょうか?
その場合どうすればよろしいでしょうか?
5/3の答えは1.666666・・・と続いていくので
2文字目、つまり 1.6まで表示させたいのです。
0741nobodyさん
2006/04/22(土) 17:19:10ID:he2KK3wFtest.phpにPOSTでデータを渡せますか?
(すれ違いでしたらすみません。。)
0742nobodyさん
2006/04/22(土) 17:20:36ID:kQFmUDLJ$birth=2006年4月22日
というデータが入っているとします。これを
$birth1=2006
$birth2=4
$birth3=22
という風に分解して各変数に入れるにはどうしたらいいのでしょうか?
0743nobodyさん
2006/04/22(土) 17:26:19ID:3kTedSI2これでエンコードしてみるものの、「"」「'」「\」といった記号をエンコードすると
それぞれ「%5c%22」(\")「%5c%27」(\')「%5c%5C」(\\)となってしまいます。
つまりエスケープされている訳ですが、こういった記号をエスケープさせないように
するにはどうしたら良いでしょうか?バックスラッシュ(\)までエンコードされて困っております。
宜しくお願いします。
0744nobodyさん
2006/04/22(土) 18:07:05ID:???$birth = "2006年4月22日";
$birth1 = mb_substr( $birth, 0, 4 );
$birth2 = mb_substr( $birth, 6, 1 );
$birth3 = mb_substr( $birth, 8, 2 );
// これで目的は達成できるが、月が2桁だったりするとだめぽ
$birth = "2006年4月22日";
list( $birth1, $birth2 ) = explode( '年', $birth );
list( $birth2, $birth3 ) = explode( '月', $birth2 );
list( $birth3, $birth4 ) = explode( '日', $birth3 );
// これだ!
0745742
2006/04/22(土) 18:24:54ID:???出来ました!こういう使い方があるんですね・・。
よくわかっていないので、関数を調べながら理解出来るようにします。
ありがとうございました。
0746743
2006/04/22(土) 18:27:38ID:3kTedSI2>>741
POSTデータを渡そうと思えば出来るけど面倒だと思われ。
クエリでいいじゃん。。
0747nobodyさん
2006/04/22(土) 18:32:48ID:???この画像って勝手に使っていいの?
0748nobodyさん
2006/04/22(土) 18:35:16ID:???今更だけど
$birth = '2006年4月22日';
preg_match('/^(\d+)年(\d+)月(\d+)日$/',$birth,$matches);
list($birth1,$birth2,$birth3) = array($matches[1],$matches[2],$matches[3]);
ってのもあり
0750741
2006/04/22(土) 19:05:13ID:he2KK3wF> POSTデータを渡そうと思えば出来るけど面倒だと思われ。
POSTで渡す方法を教えていただけないでしょうか?
#GETも考えたのですが、渡すデータが大きく無理でした。。
> クエリでいいじゃん。。
すみません、この場合のクエリがわかりません。。。
(データベースのクエリ?じゃないですよね。。)
0751nobodyさん
2006/04/22(土) 19:13:13ID:UThkpkc+0752nobodyさん
2006/04/22(土) 19:40:49ID:1mp5s2wDShift_JIS → %82%a0%82%a2%82%a4%82%a6%82%a8
EUC-JP → %a4%a2%a4%a4%a4%a6%a4%a8%a4%aa
UTF-8 → %e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
これらのように、文字コードによって違いますよね?
この文字コードを指定してエンコーディングする方法は無いでしょうか?
0753nobodyさん
2006/04/22(土) 19:45:40ID:???送信者のメールアドレスは$fromの中に格納されます。
$write = false;で書き込みが中断されます。
//このアカウントからのみ受信
$carrier = array('docomo.ne.jp','ezweb.ne.jp','pdx.ne.jp');
//キャリア限定処理 追記部分
if(!in_array('$from',$carrier){
$write = false;
}
これだと駄目ぽみたいです。ご意見ください。
0754nobodyさん
2006/04/22(土) 20:05:35ID:???0755nobodyさん
2006/04/22(土) 20:42:50ID:???何がやりたくて何ができないの?
特に問題ないようだけど。
>>753
$host = substr(strstr($from, '@'), 1);
if(!in_array($host, $carrier){
・・・ってこと?
0757753
2006/04/22(土) 20:55:44ID:???記載ミスによるものかと何度も見ましたが違うようです。
あきらめて寝ます。おやすみなさい。
0758753
2006/04/22(土) 21:37:57ID:???一人でバカ騒ぎしてもうしわけないです。
0759752
2006/04/22(土) 22:02:27ID:1mp5s2wDじゃあ例えば、変数$strに $_POST["data"]の値を代入。
エンドユーザはそれぞれ「Shift_JIS」、「EUC-JP」、「UTF-8」といった文字コードを選択し、エンコードすることが出来ます。
出力結果はこれらの文字コードによって違います↓
Shift_JIS → %82%a0%82%a2%82%a4%82%a6%82%a8
EUC-JP → %a4%a2%a4%a4%a4%a6%a4%a8%a4%aa
UTF-8 → %e3%81%82%e3%81%84%e3%81%86%e3%81%88%e3%81%8a
mb_convert_encoding()で$_POST["data"]をエンコードするのかなー…?orz
何か良い方法を知っていたら教えてください。
0760752
2006/04/22(土) 22:08:05ID:1mp5s2wDこれです http://www.tagindex.com/tool/url.html
このように文字コードを選択リストから選択できるようになっているのですが、一体どのような仕組みなんでしょうか?
0761nobodyさん
2006/04/22(土) 23:16:50ID:???1.ます普通にPOSTやらなんやらで入力されてデータを受け取る(このときに文字コードは何でエンコードするかも!)
2.で受け取った値をエンコードする
3.エンコードしたデータを表示する
こうじゃない?
0762752
2006/04/22(土) 23:40:44ID:1mp5s2wD…うーん、(1)で文字コードを変換するための関数は一応調べはみたんだけど
mb_convert_encoding()でいいのかなぁ?
でもなんかちょっと違う気ガス。
0764761
2006/04/23(日) 02:17:22ID:???何で違うと思ったんだ?理由があるのか?
そもそもお前自分で俺の出した提案でコーディングしてみたのか?
答えだけ教えてもらおうと思うな馬鹿
ちなみにmb_convert_encoding()でOKだクソ野郎
デフォルトでは使えないようになってるけどな
そこまで教えられんよググレカレー
0765752
2006/04/23(日) 07:13:43ID:B54Vaitl(rawurlencode(mb_convert_encoding($_POST["data"], "Shift_JIS"))
とやっても「あいうえお」が「%3F%3F%3F%81%91%3F%3F%3F%3F%3F%81N」のようになってしまいます(「???¢?????¨」に文字化けする)
mb_convert_encoding()の使い方が間違ってるんだろうか
0766nobodyさん
2006/04/23(日) 07:35:05ID:???>「あいうえお」が「%3F%3F%3F%81%91%3F%3F%3F%3F%3F%81N」のようになってしまいます(「???¢?????¨」に文字化けする)
よく分からん。どっちになってるんだ?
0767nobodyさん
2006/04/23(日) 07:44:52ID:???まるごと書いてやるから、よく読めよ。
(サンプルなのでセキュリティは全く意識していないので注意)
<?php
header('Content-type: text/html; charset=Shift_JIS');
$encList = array('sjis', 'euc-jp', 'utf-8');
if ($_POST) {
$data = @$_POST['data']; // sjisで書いてあると想定
$enc = (int) @$_POST['enc'];
if (!isset($encList[$enc])) throw "(・∀・)";
echo rawurlencode(mb_convert_encoding($data, $encList[$enc], 'sjis'));
die();
}
?>
<form action="<?php echo $_SERVER['PHP_SELF'] ?>" method="POST">
<textarea name="data"></textarea>
<select name="enc">
<?php foreach ($encList as $enc => $encName) { ?>
<option value="<?php echo $enc ?>"><?php echo $encName ?>
<?php } ?>
</select>
</form>
0768767
2006/04/23(日) 07:50:14ID:???<input type="submit" />
0769nobodyさん
2006/04/23(日) 07:51:00ID:???0770nobodyさん
2006/04/23(日) 07:51:46ID:???0771767
2006/04/23(日) 07:54:35ID:???スマソ。不慣れだったので間違えた。
$enc_listとか$enc_nameって名前にするほうがpear標準だったっけ
0772nobodyさん
2006/04/23(日) 07:58:24ID:???知らない奴も居るだろうからまとめてみよう。勘違いがあったら教えてちょうだい
変数名:全て小文字。単語の区切りは「_」 例[ hoge_hoge ]
定数名:全て大文字 例[ HOGE ]
関数名:基本的に小文字だが、単語の区切りは大文字 例[ hogeHoge ]
0773nobodyさん
2006/04/23(日) 08:21:12ID:???pearのコーディング標準では変数名の単語の区切り方に関しては触れてないっぽいね。それ以外は>>772の通りだけど。
pearの他にもphpのコーディング規約みたいなのあったっけ?
0774nobodyさん
2006/04/23(日) 08:38:39ID:???クライスラージャパン中古車検索結果
http://www.chrysler.co.jp/servlet/chrysler.UCarSearchServlet?SV_ACTION=PAGE_CHANGE&PAGENO=1&SQL=WHERE@CLASSID@in@(@'PT'@)@AND@DELFLAG@=@'0'@&ORDER=3
WHERE CLASSID in ('PT') AND DELFLAG = '0'& ORDER = 3
(^ω^;)・・・
0776nobodyさん
2006/04/23(日) 09:25:42ID:???そうなの?ソースキボンヌ。
ちなみに「プログラマとしての」と名打つならJavaの反例出すけど、この変数名の規約はどうとらえられてるの?デファクトスタンダード的には。
http://java.sun.com/docs/codeconv/html/CodeConventions.doc8.html#367
CとかRubyとか関数名/メソッド名はアンダースコアで区切ることのほうが多いようだけど。
C++みたいにSTLの命名に従うかJava風にするかどっちつかずなのもあるし。
PHPの場合は標準関数の命名が割と無茶苦茶な前提の上だからどうしても規約みたいなのは必要でしょ。
一応公式に公開されてるのがpear標準くらいしかないから、それに従っておくのが妥当ってのはよく聞くけど。
0778nobodyさん
2006/04/23(日) 12:10:28ID:???ちゃんとSELECTしかできない権限とかにしてあるのかなぁ
これかなりヤバイ香りが漂ってるが。
おい>>774、七氏だろ お前SQLインジェクションやってみて報告しる!
0779nobodyさん
2006/04/23(日) 14:06:26ID:???0780752
2006/04/23(日) 14:56:53ID:B54Vaitlとってもありがとう。
書き方とか参考にします。
0781nobodyさん
2006/04/23(日) 15:05:20ID:???“->”なんですけど
これって
$A=1+2
$B=$A
この場合
$B=$A->1+2
こんな感じ?
0782nobodyさん
2006/04/23(日) 15:10:14ID:???-> はクラスを使った時に、クラスの変数や関数を使うためのもの。
クラスって何?って場合は、マニュアルを参照のこと。
0783nobodyさん
2006/04/23(日) 15:39:22ID:???ありがとうございます。
->なんですけど、これはPHP5〜から使えるのでしょうか?
それともPHP4の最新バージョンでも標準で使えるのでしょうか?
0784nobodyさん
2006/04/23(日) 16:22:55ID:???$this->testとかね
0786nobodyさん
2006/04/23(日) 17:30:05ID:???さっさと読むだけにして、青マンモスに進んでも良いでしょうか?
0787nobodyさん
2006/04/23(日) 17:44:42ID:???特定のディレクトリ/hogeから画像(.jpg)の名称を取得して、指定サイズで
一覧表示するという。
登録しているファイル名を出力するのはわかるのですが、画像のファイル名自体を
取得して〜というのは可能なのか?っと疑問に思いまして。(単に出来ないのですが・・・
0788nobodyさん
2006/04/23(日) 17:46:37ID:???0789nobodyさん
2006/04/23(日) 18:12:30ID:???Shift_JIS(sjis-win)
EUC-JP(eucjp-win)
iso-2022-jp(jis…だけど厳格にはすこしちがう)
utf-8
について、徹底的に学びましょう
0790787
2006/04/23(日) 18:18:13ID:???凄い!!出来ました!!所持リファレンスにも載っていない関数でしたが、
以下のようなソースで思い通りに出来ました。
<?php
$img_list=glob('./photo/*.jpg');
$count=count($img_list);
for($i=0;$i<$count;$i++){
print"<img src=\"$img_list[$i]\" width=100 height=80>";
}
?>
ありがとうございました。
0792nobodyさん
2006/04/23(日) 18:36:08ID:???0793nobodyさん
2006/04/23(日) 18:37:13ID:T/zlG2dE0794nobodyさん
2006/04/23(日) 18:46:06ID:m0Rs4MP50795nobodyさん
2006/04/23(日) 18:50:57ID:???0796nobodyさん
2006/04/23(日) 19:30:53ID:???0797nobodyさん
2006/04/23(日) 19:33:58ID:???URIって何の略??
0799nobodyさん
2006/04/23(日) 19:45:34ID:???http://www.kanzaki.com/docs/html/htminfo-uri.html#uri
0800nobodyさん
2006/04/23(日) 20:01:24ID:???以下のアドレスに示した自鯖においたのですが
http://no2.no-ip.info/up/upload.php
Undefined variable: 変数名
などがでまくってしまいます
http://no2.no-ip.info/up/1.txt
設置したあぷろだのソース
http://no2.no-ip.info/phpinfo.php
鯖のPHPの情報
エラーで検索したら
http://wonder.bms.ms/tower/bin/sugoiuploader/upload.php
気にせず使っている方もいるようです
翻訳したら未定義の変数だそうですが
$act=="envset"これはダメってことですか?
どうすれば動くようになるでしょうか
0801nobodyさん
2006/04/23(日) 20:06:08ID:???そんな変数ありませんよって言われてるだけじゃないの?
ってか、値が無いのに何で比較してるんだろ?
0802nobodyさん
2006/04/23(日) 20:14:46ID:???0804nobodyさん
2006/04/23(日) 20:25:22ID:???該当個所は多そう。
0805nobodyさん
2006/04/23(日) 20:38:32ID:???PHPのガン細胞 レッツ
0806nobodyさん
2006/04/23(日) 20:55:44ID:???0807nobodyさん
2006/04/23(日) 21:48:10ID:???変数名は間違い。
区切りに_は使わない。
例: anApple
定数名の区切りは「_」
詳しくはPearコーディングルール見ろ
あと関数名の最初は大文字
0808807
2006/04/23(日) 21:50:22ID:???変数名はコーディングルールになかったみたいだ
すまそ
0809nobodyさん
2006/04/23(日) 22:43:05ID:WZpCLvOAしたオブジェクトに要素をappendし、
saveXML
しても、何も取得できません。
DOMDocumentでは
euc-jpを使えないのでしょうか?
0810nobodyさん
2006/04/23(日) 23:54:16ID:???受信メールの取得と、こちらで用意したメッセージをそのアドレス宛に送信
これを自動化するのを実現したいのですが
ROMっていたら、同じような例が載っていたので読んでいましたが
その際にサーバの負荷は高くなってしまうのでしょうか?
CRONで一定時間で起動させる方法も良いかとは思いますが
スクリプトだけで実行するのは出来ないものでしょうか?
また、受信したメールアドレスをエンコードして
送信メールの本文にURLとして、hoge.com/test%40fuga.jpのように載せてみたいのですが
mb_encode_mimeheader()を使って良いしょうか。
良い方法をご存知の方、ご教授お願いします
0811nobodyさん
2006/04/24(月) 00:10:51ID:???環境によって方法はさまざまなわけで、
自分の環境さらさなきゃ明快な回答は得られまい。
mb_encode_mimeheader()はmimeheaderをencodeするのだ。判るかな?
0813nobodyさん
2006/04/24(月) 00:15:40ID:???勝手に人を名乗って書き込みするな
0814nobodyさん
2006/04/24(月) 00:18:23ID:MxIb/Ds6MySQL + PHP つかってます。
商品マスタと商品データの2つのテーブルがあって、双方にレコードを追加します。
$sql1='insert into 商品マスタ......';
mysql_query($sql1);
$sql2='insert into 商品データ....';
mysql_query($sql1);
としたいのですが、商品データに、追加したばかりの商品マスタのpkyをセットしたいのですが、
どうすればいいでしょう??双方のテーブルのpkyはauto increment です。
追加したばかりのレコードを取得して変数に入れるようなものや、
pkyだけ先に知るとか…そんなんあれば良いんですが
アドバイスもらえるとありがたいです。
0815nobodyさん
2006/04/24(月) 00:23:55ID:???0818nobodyさん
2006/04/24(月) 00:33:46ID:MxIb/Ds6助かったよ、ありがとう〜(;´д`)
0819nobodyさん
2006/04/24(月) 00:41:53ID:???お前は
http://pc8.2ch.net/test/read.cgi/db/1140154701/601
じゃ無いんだよな?無いんだよな?ん?無いよな?
0820nobodyさん
2006/04/24(月) 00:46:40ID:MxIb/Ds6とりあえずBカップです
■ このスレッドは過去ログ倉庫に格納されています