08/10/08 12:42:57
配列をループさせて作るプルダウンは生成できてるの?
一度、プルダウン生成のループ前でexit;してみなよ。
それでタイムアウトしなければ配列の要素が多すぎるか無限ループ起こしてるか。
750:nobodyさん
08/10/08 12:50:49
whileやfor文はないけどforeach文はあるんですとかいうオチか?
配列つかっててループ使わないとは到底思えないわけだが
751:nobodyさん
08/10/08 13:03:33
エスパー呼んで来い!
752:nobodyさん
08/10/08 14:52:41
ふつうに再帰呼び出しのバグのような...
753:nobodyさん
08/10/08 14:55:49
>>744
>arrayList.phpはたくさんの配列が定義されていて
その配列の数だけプルダウンメニューを生成していると・・・
ま、問題箇所はそこだね。
プルダウンメニューの生成部分をここに書いてご覧。
754:nobodyさん
08/10/08 16:06:32
文字コードの変換についての質問です
対象となる文字を書き込むと文字化けするようですので以下のURLの検索結果を見ていただけますでしょうか
URLリンク(www.google.co.jp)
これらの漢字をUTF8からSJISに変換しようとすると?に化けます。
※SJIS-winも同じ
用途はウェブから拾ってきた文字列(UTF8)をWindowsのフォルダ名として使用したいのですが、
特殊な文字が含まれている場合に文字化けを起こし、場合によってはフォルダの作成に失敗します。
ちなみにPythonだと、str.decode('utf8') でデコードすると特殊な文字のままフォルダ名として使用できました。
これと同じ事をPHPで実現可能でしょうか?
よろしくお願いいたします。
OS:WindowsXP
phpは5.2.5を使用
755:754
08/10/08 16:08:37 l2gN2Unr
すみません。age忘れました・・
756:nobodyさん
08/10/08 16:22:07
中国語じゃないの?
757:nobodyさん
08/10/08 20:36:06
Imagickを使用して複数のGIF画像からアニメーションGIFを作成したいと思います。
以下のようなコードを実行したところ、作成はされたのですがアニメーションが繰り返しません。
$im = new Imagick("1.gif");
$im2 = new Imagick("2.gif");
$im->addImage($im2);
$im->writeImages('3.gif', true);
$im->destroy();
$im2->destroy();
どのようにしたら繰り返すアニメーションGIFを作成できますか?
PHP 5.2.3
Fedora Core release 6
よろしくお願いします。
758:757
08/10/08 20:37:40 AijBw8uq
すいません。ID出してませんでした。
759:nobodyさん
08/10/08 20:37:47
>>757
>>1
760:nobodyさん
08/10/08 20:40:30
>>758
URLリンク(www.google.com)
761:nobodyさん
08/10/08 20:54:08 ZJxG3jMs
【OS名】CentOS 5.2
【PHPのバージョン】php 5.1.6-20.el5_2.1
【連携ソフトウェア】mysql
【質問内容】
これまで正常に動作していたサイトの出力の先頭にゴミが出るようになった。
下記のようなゴミ。これを消したい。
出るようになったタイミングは CentOS で yum update やってサーバ再起動してから。
PHP上で動いているプログラムの問題かと思ったら、phpMyAdmin でも同様の
状態だった。ゴミの文字列は毎回違う。
------------------------------------------------
10be4 (←これがゴミ)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 ...
------------------------------------------------
猛烈に以前も同じことがあった気がする。
おながいします。
762:nobodyさん
08/10/08 21:08:44
BOM
763:たまちゃん ◆ExGQrDul2E
08/10/08 21:20:35 EssfW95q
PHP 正規表現
で質問があります。
画像ファイルとかの
test.jpg
1234.test.jpg
テスト.jpg
のように、一番最後の.の後にある拡張子を取得したいんですけどどうしたらよいですか?
$test = 'test.test2.gif';
if(preg_match("/(.+?).\d/",$test){
$filename = $test[1];
}
では全然ダメでした。
764:nobodyさん
08/10/08 21:33:51
/[^\.]+$/
ていうか何がどうなってその正規表現に行き着いたんだ
765:nobodyさん
08/10/08 21:35:26 ij2fkFmB
今帰りました。
お礼が遅れましたすいません。
>729
ありがとうございます。
該当すると思われるページにたどり着き納得しました。
>730
入力の制限も勉強してみます。
ありがとうございます。
766:nobodyさん
08/10/08 22:55:04 QSI2sKBR
XSS対策で、htmlspecialchars関数を使ってますが、&をエスケープするので、
&#9829等の特殊文字が表示されなくなりました。
みなさんはこの部分はどう対策されてますか?
767:741
08/10/08 23:43:38 pfYxFPga
>>749-753
親切なレス本当にありがとうございます
外出しててお返事遅れてしまいました
配列をプルダウンにする処理は以下の通りです
function makeStypePd($name,$selectNum,$modifyMode){//$modifyMode top>通常 rewrite>修正 db>db取得
$name=strtoupper($name);
$options="";
//修正画面用
if($modifyMode == "rewrite"){
for($i=1;$i<=count($this->sTypeAry)-1;$i++){
$options .="<option value=\"".$this->sTypeAry[$i][1]."\" ";
if(($selectNum != NULL) && ($selectNum == $this->sTypeAry[$i][1])){
$options .= "selected=\"selected\"";
}
$options .= ">".$this->sTypeAry[$i][0]."</option>\n";
}
return $options;
}
//DB参照画面用
else if($modifyMode == "db"){
//同様の処理
}
//通常画面用 普通にプルダウンを作る
else if($modifyMode == "top"){
//同様の処理
}
}
おかしいでしょうか? 選択値を配列の各要素が持つ値と照合して、同じだったらselectedとする、
そうでなければ普通にoptionを作っていくという処理のつもりです。配列は以下のものを使っています。
$sTypeAry = array(array("こだわらない",0),array("バー",1),array("カフェ",2),array("レストラン",3),array("ライブハウス",4));
768:nobodyさん
08/10/09 00:17:59
つっこみどころ満載で涙が出るな
ループでは「$this->sTypeAry」、定義では「$sTypeAry」、
ちゃんと「$this->sTypeAry」に代入されてるか?
forで「$i=1」ってなってるけど、それだと「こだわらない」が使われないよな?
(配列ならforeachの方がいいと思うんだがなぁ)
単純なループだから大概な数を回しても30秒以内に終わりそう・・・・
ここには原因がないのだろうか
769:nobodyさん
08/10/09 00:44:35 ju+5ve0t
>>768
どうもです 本当にすみません
配列の代入はされてます
「こだわらない」はこの場合適用されなくていいんです(一言添えるべきでした すみません)
forよりforeachの方がいいんですか? そのほうが早いとか?
foreachをよく理解できないので使わなきゃ良いやって気分だったんですが、、
どこがまずいのかなぁ、、
あと、ちょっと話題がずれるかもしれないですが
ある画像ファイルがあるときは、それを出力する処理をしています
$dbPicPath = "../../../".$_SESSION['uType']."/img/".$_SESSION['uId']."/".$corner."/".$name.".jpg";
if(getimagesize($dbPicPath)){
$rtn.="<img src=\"".$dbPicPath."?".$rand."\"".$resize." />\n";
}else{
$rtn.="-\n";
}
return $rtn;
この処理に対して、該当する画像が存在しない場合エラーログに
PHP Warning: getimagesize(../../../artists/img/1/pic/***.jpg) failed to open stream: No such file or directory
といわれます
この警告Warningを出さないようにするにはどうしたらいいでしょうか? これが遅い原因かな?
上記処理の時点では、該当ファイルの有無はわからないので 「そんなファイルやディレクトリはないよ」と
いわれてもしょうがないじゃんって気分です。。 すみませんが気が向いたら教えてください
770:nobodyさん
08/10/09 00:53:31
ソースはともかくプルダウンはできてるぞ
getimagesize()の前にファイルの有無をチェック
771:nobodyさん
08/10/09 01:05:05 ju+5ve0t
>>770
たびたびすみません
getimagesizeをfile_existsに置き換えたらwarning出なくなりました
もう少し粘ってみます 今日はありがとうございました
772:nobodyさん
08/10/09 01:08:35 e6lF3vrt
データベースに接続するために、ユーザーIDやPWDをphp側で設定する必要があると思うのですが、
そのような設定値は、どこに書くのが適切でしょうか?
ファイルに外だしすると、データベースに接続するたびに、
ファイルI/Oが発生して処理が遅くなるかと思いますが、
ソースに直接書くと、異なるサーバー(例えばテスト環境と本番環境)毎にソースを変えなければいかず、
それも、欠点が多いような気がします。
みなさんは、どこに書かれていますか?
よろしくお願いします。
773:nobodyさん
08/10/09 01:20:53
>>766
preg_replace("/&(#[0-9]+|[a-z]+);/i", "&$1;", htmlspecialchars($value)
とか。
ウザイけど。
774:nobodyさん
08/10/09 02:03:19 HkhPxnZW
>>772
config.php作って定数にしてinclude
775:nobodyさん
08/10/09 02:04:43
>>772
config.ini作ってfile_iniみたいた感じのやつで読み込んでる
776:nobodyさん
08/10/09 07:18:15
>>766
考え方がおかしい
htmlspecialchars() は文字列をHTMLのCDATAに変換するためのもの
もともと実体参照が含まれているCDATAな文字列に対して
htmlspecialchars() を噛ませばおかしな事になるさ
実体参照をエンコーディングに従って割り当てられた文字コードに直せ
777:773
08/10/09 09:54:59 T+Rb7EjR
>>773
私の場合単純に
$var = htmlspecialchars($var,ENT_QUOTES);
$var = ereg_replace('&#([19])','?\\1',$var);
とやろうと思ったのですが、セキュリティーホールができそうでちょっと怖いです
>>776
よくわからないのですが、実体参照(文字参照)に文字コードが関係するんですか?
ユーザーの中に、?&#9829;とか?&#9834;とか書き込んでくる人がいるので、そういう人のために
きちんと記号表示されるようにしてあげたいのですが、、
URLリンク(ja.wikipedia.org)
778:773
08/10/09 10:14:06 T+Rb7EjR
>>777
追記
2chに変換されてしまった、、(^-^;
2chでは特殊文字が普通に変換されるサーバと?になるサーバとがあるみたいですね
&#[0-9]* って感じか
4行目
$var = ereg_replace('&amp;#([19])','&#\\1',$var);
779:nobodyさん
08/10/09 12:37:12
>>763
それ正規表現いらない
780:773
08/10/09 13:07:33 T+Rb7EjR
その後いろいろ調べたのですが、どうやら&はエスケープしなくてもセキュリティー上は問題ないようです。
URLリンク(shimax.cocolog-nifty.com)
とりえずこんな感じにしてみました
$var = htmlspecialchars($var,ENT_QUOTES);
$var = ereg_replace('&amp;#(9[0-9]{3}|1[0-9]{4})','&#\\1',$var);//一桁目が1(5ケタ)と9(4ケタ)のみ許可する
781:nobodyさん
08/10/09 13:52:37 XhRaoWbe
【OS名】レンタルサーバで不明
【PHPのバージョン】php4.4.2
【連携ソフトウェア】mysql
【質問内容】
WebAPIよりXMLを取得しているのですが、階層が一定でなく
再帰処理によりデータを処理したいと考えています。
その際、staticによりデータを保持して再帰処理しているのですが
staticで指定したデータを初期化する方法はないでしょうか?
メインのファンクションから再帰処理を呼び出しているのですが
すべてのデータが残ってしまい困っています。
782:nobodyさん
08/10/09 14:16:55
歯茎
URLリンク(www.vipper.org)
783:nobodyさん
08/10/09 14:24:39
>>781
staticよりリファレンスの方が良くね?
function sample ($node, &$out) { ~ }
$outに返り値を格納するようなヤツ
784:nobodyさん
08/10/09 14:35:29
>>783
望み通りの動作になりました。ありがとうございます!!
785:nobodyさん
08/10/09 17:58:27 waFB31sw
"aaa","bbb"
と言うように区切られた文字列を
$array[] = "aaa";
$array[] = "bbb";
と言うように配列に入れるにはどうしたらいいのでしょうか?
ファイルではないのでfgetcsvも使えません。
786:nobodyさん
08/10/09 17:59:43
>>785
split
787:nobodyさん
08/10/09 18:04:59 DVR9Hu5G
すみません、質問させて下さい。
PHP4のサーバーでエラー内容がブラウザに表示されず白紙のままです。
display_errorsとhtml_errorsはphpinfoで確認したところOnでしたが、念のためini_setとhtaccess両方試したけどダメでした。
よかったらご教授ください。よろしくお願いします
788:nobodyさん
08/10/09 18:07:46
>>787
error_reportingは?
789:nobodyさん
08/10/09 18:19:02 DVR9Hu5G
>>788
これが0でした!ありがとうございました。
790:nobodyさん
08/10/09 20:04:59 HNHF0bWh
質問なんですが、配列の名前をループ内で自由につけるのはどうすればいいですか?
一つの配列$arrを分けたいので、$arr1、$arr2、…、のように分けるつもりで
$arrX[] = $arr[$i]
のようにしたいのです。
(※ X の所にループ内で得られる数字を入れたい)
どうすればいいですか?
791:nobodyさん
08/10/09 20:26:55
$key = "arr$i";
$$key = $arr[$i];
792:790
08/10/09 20:49:00 HNHF0bWh
>>791
$$keyの様にやってみたのですが、
ループ2周目で$$keyが上書きされてしまうで、$$keyが配列になりません。
($arrXに複数入れたいのです)
そこで
$$key[] = arr[$i];
にしたのですがエラーになってしまうのです。
他に方法はないでしょうか?
793:nobodyさん
08/10/09 20:51:36
教えてもらったやり方から色々工夫してみれ
794:nobodyさん
08/10/09 21:31:39
LPO対策クラス作って設置し実際に効果があった、需要があればさらす。
795:nobodyさん
08/10/09 21:48:48
むしろ効果のほうを晒してくれ
796:nobodyさん
08/10/09 22:15:58
>>739
お前分からんだけやろw
797:nobodyさん
08/10/09 22:41:31
お前は誰と戦ってるんだ
798:nobodyさん
08/10/09 22:44:13 HNHF0bWh
>>796
お分かりでしたら教えて下さい。
変数はできたのですが変数が配列になりません。
799:nobodyさん
08/10/09 22:59:01 ZnuIQjgo
イラレ+phpのgdでアバター機能作成をしています。
パーツ画像種類はPNGで、合成後jpgに変換して表示しています。
アンチエイリアスをかけて画像を保存して、下記を実行すると、絵がある部分の背景が黒くなってしまいます。
アンチエイリアスをかけずに画像を保存すると、画像がぎざぎざになってしまいます。
どうにか、うまい按配で合成することはできないでしょうか?
/**/$imgpro[0]=array("../img/abt/base/w2.png","0","0");
$imgpro[1]=array("../img/abt/huku/w2.png","0","0");
$imgpro[2]=array("../img/abt/hair/w2.png","0","0");
$imgpro[3]=array("../img/abt/eye/w2.png","0","0");
$imgpro[4]=array("../img/abt/hana/w2.png","0","0");
$imgpro[5]=array("../img/abt/kuti/w2.png","0","0");
$imgpro[6]=array("../img/abt/mayu/w2.png","0","0");
$src = imagecreatefrompng($imgpro[0][0]) or die("error!1\n");
foreach($imgpro as $value){
$mrg1 = imagecreatefrompng($value[0]) or die("error!2\n");
list($mrg1_width, $mrg1_height) = getimagesize($value[0]);
// イメージをマージ
imagecopymerge($src, $mrg1,$value[1],$value[2],0,
0,$mrg1_width,$mrg1_height,100) or die("error!3\n");
}
800:nobodyさん
08/10/09 23:14:45
白背景の画像用意してマージすりゃいいのと違うのか
801:nobodyさん
08/10/10 01:04:15
>>798
$$key = array($arr[$i])
でできますよ。
802:nobodyさん
08/10/10 02:23:46 6LvKpYRu
phpの質問と言うよりはプログラミングの基本な質問で悪い。
いま仮に100個あるデータの中からランダムで重複せずに(←重要)
10個のデータを取り出したい場合なんだが
スマートな書き方ってどうするんだろ?
$arr = array(100個のデータ);
$random = mt_rand(0, $arr-1);
$random を以前取り出したデータと重複していないかチェックして
新たな配列に入れるみたいな作業になると思う。
803:nobodyさん
08/10/10 02:33:05
上からこられるといらっとするよね
804:754
08/10/10 02:55:06 uSuuZHDd
>>802
配列をシャッフルしてarray_popで取り出す
805:802
08/10/10 03:03:14 6LvKpYRu
>>804
あー、頭いいな~。
if文も使わないし非常にスマートですね。
で調べていたらarray_randというまさにそのためにあるような
関数で解決しました。
マニュアルには明記されていませんが、
どうやら重複せずに配列からランダムで取り出すみたいです。
PHPは関数が豊富ですな。
806:nobodyさん
08/10/10 05:13:24
そんなんどこに書いてあったんだよ
マジレスすると種次第。
>>804は切り出さなくても先頭10だけ使うって方法でも良いね
807:nobodyさん
08/10/10 09:17:06
URLリンク(www.php.net)
種は自動で生成する
808:nobodyさん
08/10/10 09:56:30 Mjn4nOqX
2chぽい掲示板を作っています。データの保存形式も同じです。
最新30レスだけ読み込みたい場合、今のところ全部読み込んで抜き取っているのですが
全部読み込まずにファイルの後方から読み込むような方法はないでしょうか
負荷に困ってるわけではないのですが、負荷を軽くする方法を知っておきたくて。よろしくおねがおします。
809:nobodyさん
08/10/10 09:58:37
>>808
tail -fでやるのは如何でしょうか?
810:nobodyさん
08/10/10 11:09:14
fopenして
fseek(ファイルのケツ)して1行づつ戻して読めば?
アッー!
811:nobodyさん
08/10/10 12:13:05
ケツにseekしても行単位で戻せんし、どうしてもバイト単位になるす
行単位でseek出来れば最初からヤっとるわ!
アッー!
812:nobodyさん
08/10/10 16:28:36
わがまま言わずに行区切りくらい自分で見付けなさい
行単位でシークしたけりゃおとなしく固定長レコードか、データベース使えば?
負荷が問題になるならキャッシュの導入を先に考えればいいよ。
813:nobodyさん
08/10/10 18:31:41 Yvgf2UGi
php4とphp5をくらべて、php4でしか使えない関数ってありますか?
814:nobodyさん
08/10/10 18:34:30
>>813
たとえば、mb_系の関数やwhile文やexit、functionなどが使えない。
815:nobodyさん
08/10/10 18:45:41 Yvgf2UGi
ありがとうございます
以下のサイトを参考にしたのですが、このページに掲載されている関数は全部php5で使えるということでしょうか?
URLリンク(php.benscom.com)
816:nobodyさん
08/10/10 18:57:59
>>815
釣られんな、>>814に書いてるヤツが使えなかったらヤバいだろ
URLリンク(www.php.net)
同じ内容だが本家見ような、余裕あれば原語も
URLリンク(www.php.net)
マニュアルを見る前にここチェック
関数の説明にはちゃんと対応バージョン書いてあるからな
817:nobodyさん
08/10/10 19:23:21 Yvgf2UGi
ありがとうございます
これからは本家で見るようにします。
php4を切り捨てるため、php5で使える関数をテキストエディタの補完色分けに作ろうと思ってます。
関数の説明ページをひとつずつ開いて対応バージョンを調べるしかないですよね・・・
時間との戦いになりますが、地道にやっていきます。
818:nobodyさん
08/10/10 20:02:39
いくつあると思ってるんだw
819:nobodyさん
08/10/10 20:19:02 Mjn4nOqX
>>809-812
試してみます。
ありがとうございました。
820:nobodyさん
08/10/11 02:23:25 Dg304RS1
いいってことよ
無料人力検索ボランティアをこき使ってくれたまえ
821:nobodyさん
08/10/11 02:25:45 Dg304RS1
1.質問があがる
↓
2.質問を読んだ者が検索して答えをみつけてくる
↓
3.検索してみつけたページに書いてあることをコピペ(文章改ざん)して偉そうに回答
そんなスレだからがんばれよ
822:nobodyさん
08/10/11 02:26:39
そんな今さらなこと言われてもなぁ
823:nobodyさん
08/10/11 02:47:43
これいいなと思う質問回答はwikiにまとめようぜ
URLリンク(wikiwiki.jp)
824:nobodyさん
08/10/11 04:35:19
一人でやってろ
825:nobodyさん
08/10/11 07:43:55
>>830がwikiwiki登録してくれます
826:nobodyさん
08/10/11 16:02:58 hw8joz8b
すみません。このようなエラーが出ていますが、何が原因ですか?
Service Temporarily Unavailable
The server is temporarily unable to service your request due to maintenance downtime or capacity problems. Please try again later.
--------------------------------------------------------------------------------
Apache/1.3.34 Server at www.mannanlife.co.jp Port 80
827:nobodyさん
08/10/11 16:03:54
URLリンク(www.mannanlife.co.jp)
828:nobodyさん
08/10/11 16:33:13
>>826
いつから、こうなるの?
あなたは誰?単なる訪問者、それともHP設置者とか。
829:nobodyさん
08/10/11 21:20:05
フッターを外部ファイルで一括管理したいのですが、
ググってみてもあまり情報が出てきません。
phpのインクルードの方法について教えてください。
830:nobodyさん
08/10/11 21:21:11
include 'footer.html';
831:nobodyさん
08/10/11 22:21:44 4K6Y3Waq
バッチファイルにftpコマンド書いておいて
サイト閲覧者に開かせれば
そいつのパソコンのデータを自動で俺のサーバーに移せますか?
832:nobodyさん
08/10/11 22:23:32
無理
833:nobodyさん
08/10/11 22:53:19 8WtsmSV0
PEARのMDB2を使用してTCP/IPを使用しているMySQL5の環境で
接続しようと試みているのですが、接続できません。
ご教授願えますか?
834:nobodyさん
08/10/11 23:07:58
>>833
localhostじゃないならポートが開いてるか確認する必要がある
MySQL接続ユーザのhostに接続元のホスト名(または%)が指定されてるか確認する必要がある
あと、「接続出来ません」では分からん
MDB2ならデバッグでエラーメッセージを取れるから、何が原因で接続出来ないか見ような
835:nobodyさん
08/10/11 23:20:16 G3J1VtlX
PHPエディタなんだけど、
ファイルを2つ開いておいて、
タブで切り替えるってできないの?
836:nobodyさん
08/10/11 23:29:26 8WtsmSV0
エラーメッセージを取得しましたら下記のようなエラーです。
Access denied for user: 'username@hostname' (Using password: YES)]
ポートの開閉確認とは??レンタルサーバーを使用しております。どのように
行えばよいでしょうか?お恥ずかしい質問ですが、よろしくおねがいします。
837:nobodyさん
08/10/11 23:29:53 4K6Y3Waq
>>832
回答ありがとうございます。
余談ですが
delコマンドを使うと閲覧者のPCのデータを消せますか?
>>835
メモ帳二つ開けばいいよ。漢(おとこ)ならメモ帳だろ。
関係ないけど、さっきすっきりデフラグってソフト使ったら、
PHPのセッションのフォルダごと自動で削除されてセッション使えなくなった。
838:nobodyさん
08/10/11 23:31:23
>>836
IDかパスが間違ってる
839:nobodyさん
08/10/11 23:37:11 8WtsmSV0
ソースに記述したIDとパスでphpMyAdminはログインできるんです・・・。
840:nobodyさん
08/10/11 23:37:45
じゃ接続の仕方がおかしい
841:nobodyさん
08/10/11 23:41:28 8WtsmSV0
$mdb2 =& MDB2::connect("mysql://username:pass@hostname/tablename");
と記述しております。どこか間違えておりますでしょうか?
842:nobodyさん
08/10/11 23:57:24 8WtsmSV0
記述ミスです。
$mdb2 =& MDB2::connect("mysql://username:pass@hostname/databasename");
です。
843:nobodyさん
08/10/12 00:10:26
そのレン鯖のMySQLは外部接続を許可しているのか?
そうでないならlocalhostしか接続出来んだろ
phpMyAdminはレン鯖提供か、自スペースに置いたものだろ?(レン鯖ないで動くアプリはlocalhost接続)
844:843
08/10/12 00:14:23
ちょっと言い方が悪かったかもしれん
つまりホスト名に「localhost」以外を指定出来る設定になってるかどうか
普通は「mysql://username:pass@localhost/databasename」にする
(MySQLはユーザ名だけでなくホスト名もチェックする認証方式)
845:nobodyさん
08/10/12 00:16:43 cg/RVdaY
セッションを利用するWEBページを見て回ってるときに、
そのセッションIDが自分のパソコンの中のクッキーに保存されていて、
そのクッキーを盗み出されたら、セッションIDがばれてしまって
なりすましされてしまうの?
846:nobodyさん
08/10/12 00:40:17
サイトの対策次第
セッションIDと共にIPでのチェックもしてる場合は抑制されるし
サイトが未対策で、IDバレたらなりすまし可能(ヘッダーにIDを仕込むだけだし)
847:nobodyさん
08/10/12 00:43:36
>>845
セッションハイジャックは都市伝説。
存在しないよ。
848:nobodyさん
08/10/12 00:57:13
>>846
セッションIDが分かっても、鯖はコネクションが切れた時点でセッション内容を破棄するから
盗んだセッションでアクセスしても既に内容が無いんと違うか?
>>847
同意。セッションのフォルダは隠しフォルダだから外からアクセスできないし、外部から見るのは不可能だよな。
849:nobodyさん
08/10/12 01:44:14 kzFvqNLy
おう、わいや、清原や。
お前ら、他のやつが作ったフリーのライブラリとか使う時に
自分のサイトで「○○さんのを使わせてもろたで」とか書くんか?
書かんでええやろ。どないやねん。はよ答えろや。
850:nobodyさん
08/10/12 02:30:18
>>848
…こんな奴がいるからいつまでたってもPHPが馬鹿にされる
851:nobodyさん
08/10/12 04:54:47 kzFvqNLy
おう、わいや、清原や。
PDF作ろうと思うとるねんけどFPDFは文字化けしてよう作られへんわ。
PHPのマニュアルに個人利用フリーで商用有料のモジュールあるんやけど
個人でアフィリエイトするサイトは商用になるんか?
そもそも商用って何やねん。
ウェブプログラマーになって他人のサイト作る事が商用?
会社で自社のサイト作るんが商用?
どないやねん。はよ教えろや。
というか外部の奴からは関数なんて分からんから商用やってもバレへんのちゃうか?
852:nobodyさん
08/10/12 04:59:49 LpzkFgnx
____
/__.))ノヽ
.|ミ.l _ ._ i.)
(^'ミ/.´・ .〈・ リ そんなこと知らんわ
.しi r、_) |
| `ニニ' /
ノ `ー―i
853:nobodyさん
08/10/12 05:14:04
>>851
ちんちん舐めて
854:nobodyさん
08/10/12 06:31:27
>>852
星野に似てるな。
855:nobodyさん
08/10/12 09:01:37 B7DkksYv
すいませんURLリンク(openlab.ring.gr.jp)で
タグ名とそのタグの属性名を正規表現で抜き出したいのですがうまくいきません
どなたかご教授おねがいします
$file = file_get_contents("URLリンク(openlab.ring.gr.jp)");
preg_match_all("/<dl>.*</dl>/",$file, $ary);
856:845
08/10/12 09:50:14
うぜえ回答者はだまってろ!
わかるかた回答おね
857:nobodyさん
08/10/12 10:20:47
>>855
正規表現で/使う場合はエスケープ
オプションで改行も全て含むやりかたがあるからやってみろ(mだかUだか忘れたけど)
.*を(.*?)にしてみろ、.*は最長マッチだが.*?は最短マッチだ
858:nobodyさん
08/10/12 10:30:37
>>845
なりすましはセッションではなくSSLで使う言葉じゃね。
Session Fixationでググれ。
859:nobodyさん
08/10/12 12:57:38
>>856
俺のチンコなめ回したら教えてやる。
860:nobodyさん
08/10/12 13:30:21
>855
もうDOM使っちまえよ
861:nobodyさん
08/10/12 13:53:51 UTQYH/CT
php.ini の以下の設定のコメントを外してもociドライバが認識されません(phpinfo()で確認)
extension=php_oracle.dll
extension=php_oci8.dll
extension=php_pdo_oci.dll
Oracle Database 10g Express Editionを使用してます。
どうしたら、認識されるのでしょうか?
862:211
08/10/12 13:59:14 fXLt5ZTj
>>861
Oracleのクライアントを入れていないんじゃない?
863:211
08/10/12 14:06:40 fXLt5ZTj
おっと。うっかり想像で書いてしまったぜ。
>>861
エラーログみたらなんか出てるんじゃない?
ロードに失敗しているなら、DLLをロードする時必要なファイルに
パスが通ってないとかそもそも必要なものがインストールされてないとか、、、
URLリンク(www.php.net)
864:nobodyさん
08/10/12 15:12:01 kzFvqNLy
おう、清原やけど、
数字を16進数や2進数にするんわ分かってんけど
文字を16進数や2進数にするんわどうしたらええの?
文字かて2進数にできるんちゃうか?
教えろや。はよしてや。急いでるねん。
865:nobodyさん
08/10/12 15:15:31
asciiコードってこと?
全角だと文字コードによって変わっちゃうんだけど
866:211
08/10/12 15:20:51 fXLt5ZTj
要するに… 「文字」を「数字」にできればいいんだよね。
この変見ればやりたいこと書いてあるんじゃない?
URLリンク(www.php.net)
867:nobodyさん
08/10/12 15:32:26
>>864
急いでるなら、俺のチンチンを今すぐ舐めろ!
868:nobodyさん
08/10/12 16:32:51 ZWInd4bd
変数展開をその場でなく任意の場所で行う
標準的な関数か方法はないでしょうか?
通常の変数展開は
$foo = 'bar';
echo "foo: {$foo}"; // => foo: bar
ですが
$hoge = 'foo: {$foo}'; // ここでは展開しない
$foo = 'bar';
echo func($hoge); // ここで展開する
// または echo func($hoge, array('foo' => $foo)); など
のような形にしたいです。
sprintf()の%sに名前を指定できる感じのものと言えばいいでしょうか。
よろしくお願いします。
869:nobodyさん
08/10/12 16:36:35
そういうときのためにsprintfがあると思うんだが
もしくはeval
870:861
08/10/12 16:56:09
>>863
Oracle Instant Clientを落としてきて、中身をsystem32フォルダに入れたらうまくいきました。
ありがとうございました。たすかりました。
871:nobodyさん
08/10/12 17:14:38
>>869
ありがとうございます。
sprintfは展開する順序が固定なのが少し困るところです。
evalは思いつかなかったので
初心者なりにevalを使って期待する関数をつくってみました。
こういった感じの標準的な関数・方法はないでしょうか?
function interpolate($str, $args) {
extract($args);
return eval('return "' . $str . '";');
}
$hoge = 'foo: {$foo}';
$foo = 'bar';
echo interpolate($hoge, array('foo' => $foo)); // foo: bar
872:868
08/10/12 17:16:11 ZWInd4bd
すみません。>>871は868です。
873:211
08/10/12 17:19:51 fXLt5ZTj
標準的かどうかはよくわからないけど、変数を展開させることに拘らなければ
str_replace かその関係の関数が簡単なんじゃないかな?
echo str_replace(array('$foo'),array('bar'),$hoge);
みたいな。
URLリンク(jp2.php.net)
874:868
08/10/12 18:18:51 ZWInd4bd
>>873
ありがとうございます。
str_replace()やpreg_replace()はすべての引数で配列を指定できるのですね。
1つずつの文字列しか引数に取れないと思い込んでいたので
勉強になりました。
配列の中身の展開("{$baz[0]}"など)が必要にならない限り
これを使っていきたいと思います。
皆さんありがとうございました。
875:nobodyさん
08/10/12 20:15:22
トーシロなんだけど
このページの
URLリンク(www.phppro.jp)
if (isset($_POST["title"]) && $_POST["title"])
って入力確認だけど、なんでissetで事足りるように見えるのに後ろに余計な物付け足してるん?
念のため聞くけど、後ろのは入力されてたらTRUEを返すんだよね?
なんか見苦しくてすまない、回答いただけるとウレシス
876:nobodyさん
08/10/12 20:19:57 qbuV3HNr
ごめんID出し忘れた
877:nobodyさん
08/10/12 20:20:37
>>875
0
878:nobodyさん
08/10/12 20:28:59
つかissetだけでいいわな
879:211
08/10/12 20:29:53 fXLt5ZTj
「入力されてたらTRUE」の認識は正しいと思います。
何でよけいだと思ったのかな。
880:211
08/10/12 20:36:51 fXLt5ZTj
あ。ごめん。俺間違ってる。
875の書き方も、877の事を考慮すると間違ってる。
881:nobodyさん
08/10/12 20:37:46 qbuV3HNr
回答どうもです。
これってissetだけじゃ駄目なんですかね?
882:nobodyさん
08/10/12 20:38:52 qbuV3HNr
あ、そういう事か
0だと入っててもFALSEかなんかになるんですよね
回答どうもです
883:nobodyさん
08/10/12 20:46:54
なんねーよissetは
884:nobodyさん
08/10/12 20:49:37
0だとisset通るけど後方で引っかかる
array()も同じく
885:nobodyさん
08/10/12 21:05:30 cg/RVdaY
WEB系ってある程度きわめると
勉強することなくなるの?
886:nobodyさん
08/10/12 21:08:42
んなわけねーだろ。
887:nobodyさん
08/10/12 21:12:53 cg/RVdaY
URLリンク(wiki.bit-hive.com)
ここに、PHPのCGI版は、実行時に
HTTPヘッダを自動で送信している、って
書いてあるけど、
自分はPHPのモジュール版を使っているのだが、
この場合はHTTPヘッダを自動で送信しているのかな?
それともしていないのかな?
888:211
08/10/12 21:32:59 fXLt5ZTj
使っているのなら自分で確認できませんか?
889:nobodyさん
08/10/13 01:00:05
>>875
そのURLは面倒なので見てないが、変数定義があるかどうかを調べた後にその変数の正当性を調べるのは、
何らおかしい事ではないというかむしろ普通。
PHPはそこら辺いい加減な言語だから別に好きにすりゃいいが、変数が定義されているかどうか分からないケースの場合、
先にisset()で調べた方が、実行速度は上がるケースがある。未定義の変数の参照は遅い。
if (isset($_POST["title"]) && $_POST["title"]) だと、$_POST["title"]が未定義ならその後の処理は実行されない。
if ($_POST["title"]) だと、$_POST["title"]が未定義の時に遅い。まぁマイクロ秒単位の世界だがw
890:nobodyさん
08/10/13 01:02:20
なんで isset($_POST["title"] だけではだめなの?
891:nobodyさん
08/10/13 01:48:34
みんな回答ありがとう
892:211
08/10/13 07:30:16 2R92n/wD
>>890
だめかどうかは知らないけど、
isset($_POST["title"])
と
$_POST["title"]!=""
は意味(結果)が違うからね。
必要に応じて使えばいいと思う。
893:nobodyさん
08/10/13 07:38:41
じゃstrlenにすれば一発でできんじゃん
894:nobodyさん
08/10/13 07:46:42 CGfh2V74
phpファイルで
<html>
<head><title>PHP TEST</title></head>
<body>
<?php
require_once(DB.php);
?>
</body>
</html>
というのを作ってapacheで実行したら
エラーが出ました
Warning: require_once(DB.php) [function.require-once]: failed to open stream: No such file or directory in C:\Program Files\Apache Group\Apache2\htdocs\atest.php on line 7
Fatal error: require_once() [function.require]: Failed opening required DB.php (include_path=.;c:\php\includes;c:\smarty\libs) in C:\Program Files\Apache Group\Apache2\htdocs\atest.php on line 7
と書かれていたのでC:\WINDOWS\php.iniの
include_path = .;c:\php\includes;c:\smarty\libs
を確認したのですが違いはなかったようです
どうすればよろしいでしょうか?
895:nobodyさん
08/10/13 07:50:19
PEAR入れれ
896:nobodyさん
08/10/13 08:05:13 CGfh2V74
>>895
え?入ってないってことですか?
入れたはずなんですが
897:nobodyさん
08/10/13 08:07:59
include_pathがそれでいいのか良く見て考えれ。終了。
898:nobodyさん
08/10/13 08:20:52 CGfh2V74
>>895か>>897のどっち?
pearは入れたはず
include_pathはとりあえず言われたのをやったんですけども
pear導入のときから少し変えた
なにを入れたらいいの?
899:211
08/10/13 08:51:11 2R92n/wD
>>898
警告メッセージってコピペですか?
require_once の引数はそれで正しいですか?
900:894
08/10/13 09:13:10 CGfh2V74
レスありがとうございます
コピペです
require_onceの引数ですが
c:\php\pear\DBなので間違いではないと思います
901:211
08/10/13 09:26:59 2R92n/wD
>>900
> コピペです
私の理解では、DBとphpが定数定義されていない限り、
require_once(DB.php);
は
require_once("DB"."php"); つまり require_once("DBphp");
という動きをします。
しかしそうだとすると、894の警告と食い違うので聞きました。
手で打ち直してないですか?
二つめの質問もつまりそういうことです。
もし私の理解が正しくなくて、require_once が DB.php を
開こうとしているなら、DB.phpが include_pathで指定されている
ディレクトリのどこかにあるかどうか確認すればよいと思います。
あるいは、require_onceの引数にパスを含めて指定することも
できると思います。
902:894
08/10/13 10:38:31 CGfh2V74
ありがとうございます
一度帰宅してやってみます
詳しく書いて頂き大変感謝してます
いつもここのスレは丁寧な方が多くて嬉しい限りです
903:nobodyさん
08/10/13 12:24:01
>>892
もしかすると
gettypeでstringの場合とstrlenで1文字以上をチェックすれば完璧じゃね?
または(string)で強制的にstringに置き換えてstrlenでチェック
904:211
08/10/13 12:37:29 2R92n/wD
>>903
>>889 で書かれていることは知らなかったけど、そういうこともあると思う。
自分で isset($_POST["title"]) && $_POST["title"]!="" とか書くときの
isset は Notice が出ないようにするためだな。
905:nobodyさん
08/10/13 12:40:44
>>903
>>893