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

くだすれPHP(超初心者用)

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/06/12(月) 14:06:01ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、 
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 
PHP使いが優しくコメントを返しますが、 
お礼はPHPの布教と初心者の救済をお願いします。 

PHP Home Page 
http://www.php.net/
05305222006/09/28(木) 19:12:13ID:ESgbH1eM
>>526
1個だけチェックのときは上手くいったけど
全部同じように処理したら1個チェックをつけただけで
全部のボックスにチェックが付いちゃった。
びっくり〜(●o●)
0531nobodyさん2006/09/28(木) 19:16:30ID:???
>>530
えーまじでぇー
中に'月'って入ってるか見ないとダメか!;
0532nobodyさん2006/09/28(木) 19:20:27ID:???
>>529
めんどくさかったら
login_idだけでもいいんじゃない?

さっきからオレ一人しか答えてないような気がするが。
0533nobodyさん2006/09/28(木) 19:29:54ID:???
>>530
受け取って表示するプログラムってどんなん?
0534530=5222006/09/28(木) 19:38:21ID:ESgbH1eM
>>533
お店が開いてる曜日をチェックするセクションを作ってます。
ただ営業時間とかお店の名前(読み方をカタカナで)とかいろいろ
あって、お店の名前のカタカナ項目にカタカナ以外が入ってたりとか
しないかをチェックしています。
で、カタカナ項目にエラーがあるのにチェックした曜日が消えちゃダメ
なので、前に入力された情報を保持する方法を考えています
やっぱり曜日はセットで保持するべきだと思って、チェックボックスの
項目を配列でまとめています。
0535長文ですいません。2006/09/28(木) 19:42:22ID:???
>>532
もっとめんどくさがって、$useridに数回、endodeした値を
セッションに入れるじゃ、セキュリティはダメですかね!?
すいません、質問ばっかして><
0536nobodyさん2006/09/28(木) 20:01:49ID:???
>>534
でけた。

表示。

$day_arr=array("dummy","月","火","水","木","金","土");
for($i=1;$i<count($day_arr);++$i){
echo '<input name="ShopOpenW['.$i.']" type="checkbox" id="ShopOpenW['.$i.']" value="'.$day_arr[$i].'"';
echo "> ".$day_arr[$i];
}

受取

$post_data = $_POST['ShopOpenW'];
$day_arr=array("dummy","月","火","水","木","金","土");
for($i=1;$i<count($day_arr);++$i){
echo '<input name="ShopOpenW['.$i.']" type="checkbox" id="ShopOpenW['.$i.']" value="'.$day_arr[$i].'"';
if(array_search("$day_arr[$i]",$post_data)) echo "checked";
echo "> ".$day_arr[$i];
}

これでDo?
0537nobodyさん2006/09/28(木) 20:04:45ID:???
>>535
直接useridを持ち歩かなければいいしょ!
なんらかの方法でハッシュ化とか別の物を使用するとかすれば
0538530=5222006/09/28(木) 20:13:59ID:ESgbH1eM
わーお
すごいのきたー。
これ使わせてもらいまっす。

ありがとうございました〜。
0539530=5222006/09/28(木) 20:17:18ID:ESgbH1eM
>>535
自分はユーザIDをセッションで保持することには余り抵抗が無いです
(単にドヘタレなだけだけど)。
ユーザIDとパスワードの両方を持ってるとまずいけどユーザIDだけなら
いいのでは?
あとはSQLインジェクションとかに気をつけて仮にユーザIDがばれても
悪さされないようにするのがいいと思います。

スレ汚しすまんとです。
0540長文ですいません。2006/09/28(木) 20:21:03ID:???
>>537
ありがとうございます!!!
じゃあ、当面は大丈夫だろうと、数回encodeして頑張ってみます。
もっと、勉強してからlogin用のフィールドを作り、ハッシュ化したりします。
本当にありがとうございます。
0541nobodyさん2006/09/28(木) 21:59:01ID:???
$useridを総当たりすると楽しいことができそうな悪寒。
0542521=523=524=527=531=532=533=5362006/09/28(木) 22:13:37ID:???
>>540
ぅぉーがんばれー

そして、俺のMingに対しては誰も突っ込んでくれないんだな;;

もうちょっと文献探して見るかー。
0543長文ですいません。2006/09/28(木) 22:22:41ID:???
やっぱ、エンコードじゃ危ないっすかね〜。。

Ming、頑張ってください。
mingでflash作るなら、普通にflashで作ったほうが自分には早いので!笑
0544nobodyさん2006/09/29(金) 01:33:21ID:???
>>525
その処理のどこが危険なのか、サッパリ意味がわからん。
$useridはPOSTされた値じゃなくて、DBから取った値なんでしょ?
だったら、それをセッション変数に入れて使っても、何の危険も無い。
SQLインジェクション云々などと頓珍漢なことを言ってるヤツもいるけど、
セッション変数とSQLインジェクションは全く関係ないし。

>>541なんてかなりバカで、$useridを総当りとか言ってるけど、
セッション変数を総当りする(総当りに任意の値を格納していく)ことなんて出来ないし。
0545nobodyさん2006/09/29(金) 02:07:01ID:???
俺も>>525が何を危惧してるのか謎。
0546521......536=5422006/09/29(金) 03:36:38ID:???
やっぱりさー、多分セッションとクッキーの違いって分り辛いじゃん。

勘違いしても、まぁ、しかないなかなぁ と思ったり思わなかったり。

でだ、そうなってくるとセッションって見れるん?とか不安を持ったりするんじゃないかな。
だとすると。ああ言う心配がでるのかと。

まぁ、レベルを下げた視野をで物事見ないと難しいよね。
>>541
に関してはナンセンス・・・。
0547nobodyさん2006/09/29(金) 03:41:24ID:???
>>546
そうか!
>>525はセッションとクッキーを混同してんのか!

セッション変数も、クッキーに格納した値と同じように
ユーザが中身を覗いたり改ざんしたり出来る…などと思い込んでるのかな?
0548長文ですいません。2006/09/29(金) 08:10:44ID:???
うーんと、セッションはサーバに保存されて、
クッキーはブラウザ?、ユーザーのほうに保存されるって感じの認識かな。
$useridが簡単な値だと、セッションハイジャック、CSRFが簡単にされたり、
されたときが危険、なのかなぁって思って。
0549nobodyさん2006/09/29(金) 08:30:04ID:???
>>505
君は正しかった・・・。
0550nobodyさん2006/09/29(金) 11:37:32ID:???
>>548
「$useridが簡単な値 → セッションハイジャック、CSRFが簡単にされる」
…などという無茶苦茶な論理構造をどうにかしろボケ。
どういう根拠でそんな100%間違ったこと言ってんだお前は。

スクリプト内の変数$useridに入れる値が簡単だろうが複雑だろうが、
セッションハイジャックやCSRFが発生する可能性とは全く関係ないことだぞ。

それからお前はIDを出せと言ってるだろうがチンカス。
0551nobodyさん2006/09/29(金) 13:23:49ID:???
>>548
セッションハイジャックされた時点でおわり
idが簡単とかいう問題じゃない
パスワードを暗号化してても認証後にハイジャックされたらパスワード関係ないし
0552nobodyさん2006/09/29(金) 17:46:04ID:???
みんなツンデレだなぁ

ちゃんと説明しといて貶す!
やるねぇ

セキュリティに関して考える事はいい事じゃないかーヽ( ´ー`)ノ
がんばれー(*・ω・)
0553 ◆aQcYunoka. 2006/09/29(金) 20:41:26ID:???
>>521
ヒント:CVS

私もコンパイルうまくいかなかったっけど、CVSの落としてきてCent3.7上で成功してるよ。

dependは、re2cとflex(GNUのやつ)だけだったはず。[@うちのLinux]

ちょっとまえにCent3.7でコンパイルさせたののSPECの該当部分。
BuildRequires: zlib-devel, perl,bison,libungif-devel,libpng-devel
Requires: libungif,libpng
0554nobodyさん2006/09/29(金) 23:24:26ID:???
セッションidの総当たりも結構被害大きいよね。
鯖の負荷が高くてサービス不能攻撃が先に成立するけど。
0555nobodyさん2006/09/30(土) 01:54:35ID:???
うちは普通にパスワード認証だよ。
3階間違えたら、画像の文字列を入力させられるよ。
0556nobodyさん2006/09/30(土) 02:43:26ID:???
>>555
なるほど、自動登録だけじゃなくて、総当りも防げるか・・
0557nobodyさん2006/09/30(土) 03:01:52ID:???
>>556
ログイン時の失敗回数をカウントして画像の文字列入力などをさせることと、
セッションID総当り攻撃を防ぐこととは何の関係もないぞ。
総当りってのはログイン通過後のセッションIDを探る攻撃なわけで、
ログイン通過「前」の認証部分における制御は全く関係ない。

ところで、セッションID総当りって、パスワード(通常8〜12文字程度)総当りよりも
確率の低い(時間のかかる)攻撃であって、実際にはありえないだろう。
0558nobodyさん2006/09/30(土) 11:13:19ID:???
セッションは、状況によっては比較的容易に固定させることが可能だから恐いんだがな
0559nobodyさん2006/09/30(土) 12:04:04ID:???
ジーオンクアッドでフレッツプレミアム1Gbpsなら毎秒数万セッションぐらい生成攻撃できると思うけど?
確率は低いと逝っても0じゃない以上、時間をかければ突破できる悪寒。

ログチェックとかで頻繁に検出して対処するしか無いと思う。
0560nobodyさん2006/09/30(土) 13:42:55ID:???
>>558
PHP標準のセッション使ってれば、まず通常考えうる時間内では無理。
さらに言えば、セッションIDをこまめに変更する仕組みをスクリプトに組み込めば良い。

>>559
そんなアホな攻撃、別の段階で検知されるだろう。っていうか検知すべきだろう。
0561nobodyさん2006/10/01(日) 09:36:47ID:???
検知してない鯖も多い罠。

変更する仕組みのデバッグが大変で、ほぼ固定が現実だと思う。
0562nobodyさん2006/10/01(日) 12:25:20ID:???
チャンとチョンのIPからのアクセスを排除すれば、とりあえずOK(w
0563nobodyさん2006/10/01(日) 12:38:56ID:???
>>561
>変更する仕組みのデバッグが大変

大変じゃないよ。PHPにはセッションID再生成専用の関数があるんだから。

だからセッションIDとあるフィンガープリントを結びつけておいて、
フィンガープリントが異なったらセッションハイジャックが起きたものと見なし、
その時点でセッションIDを再生成し、異なるフィンガープリントでやってきた訪問者(おそらくクラッカー)の
IPを一定時間拒否すればよい。
0564nobodyさん2006/10/01(日) 12:44:39ID:???
>>563
使いにくそうなシステムだなw
無駄にクラッカー認定されまくりな悪寒
0565nobodyさん2006/10/01(日) 13:33:14ID:???
>>564
どこが使いにくいのか具体的に指摘してみろっつーのボケ。
お前ずっと難癖つけてばっかりだけど、何も具体的なことが言えないんだな。

フィンガープリントには通常のブラウズでは変更されないような値を元に設定しておくので、
無駄にクラッカー認定されることはありえない。
お前のようなバカ頭で考えると、無駄に認定されまくり…の方法しか思いつかないんだろうな。
0566nobodyさん2006/10/01(日) 14:18:02ID:DeMI3pkc
$timestamp=mktime(0,0,0,10,1,2006);
$date1=date("Y年n月j日",$timestamp);
$date2=date("j,n,Y",$timestamp);
print($date1);
print($date2);
?>

このprintの部分、反映されると$date1と$date2が改行されず
くっ付いてしまうんですが、どうしたら改行できますか?
0567nobodyさん2006/10/01(日) 14:28:03ID:???
printは自動的に改行を付けてくれないから。
自分で改行を付けるヨロシ
・テキストとして -> \n を追加
・HTMLとして -> <br>を追加
0568nobodyさん2006/10/01(日) 14:47:59ID:???
if(!$a == $b) と if($a !== $b) の結果が違います。
この意味の違いは教えてください。
0569nobodyさん2006/10/01(日) 15:31:12ID:DeMI3pkc
>>567
print($date1);<br>
print($date2);
?>
こういう感じですか?それだとエラーが出てしまうんですが。
0570nobodyさん2006/10/01(日) 16:07:08ID:???
>>569
・・・?!
まさかそう来るとは思わなかったわ・・

そりゃPHPの中に<br>書いちゃったら構文エラー吐くに決まってる。

print($date1 . "<br>");

>>568
最近似たようなの見たな
05715702006/10/01(日) 16:22:50ID:???
> 最近似たようなの見たな
ん、どうやら前スレぽいな

>>568
例えば
$a = 1; // 数値
$b = "1"; // 文字列

// 暗黙の型変換を許容した比較
$a == $b // true (暗黙の型変換で文字列が数値に変換され比較される)←暗黙の型変換
$a != $b // true ($a と $b は等しくない)
!$a == $b // false (演算子の優先順位により、先に!$aが評価され「0」になる)←演算子の優先順位

// 型変換を行わないより厳密な比較
$a === $b // false (型も比較する。この場合、文字列と数値なのでfalse)←型を含めた比較
$a !== $b // false (↑に同じ)
05725702006/10/01(日) 16:26:49ID:???
ぁ、$a !== $b は true だったな。書き間違えてるわ
0573nobodyさん2006/10/01(日) 17:14:54ID:???
perlのuse strict;みたいな、未宣言の変数を制限する方法ってないんですか?
error_reporting(E_ALL);を使っても

$hege = 2;//hogeのタイプミス

みたいなのは駄目ですよね?
0574nobodyさん2006/10/01(日) 17:15:59ID:???
>>573
その先で$hogeを使った時に警告してくれる
0575nobodyさん2006/10/01(日) 17:22:57ID:???
>>574
なるほど。
でも、

$hoge = 3;
何かの処理。
$hege = 2;//hogeのタイプミス

みたいな感じで$hogeも使ってると、エラーも出ないですよね。
これはもうPHPはこうだ。って感じでなれるしかない感じですかね。
0576nobodyさん2006/10/01(日) 17:28:35ID:???
>>575
PHP5ならE_ALL | E_STRICTで使われていない旨の警告をしてくれるかもしれん。
が、そもそもPHPは変数の宣言は出来ないからどうしようもないというのが実情。
0577nobodyさん2006/10/01(日) 17:36:33ID:???
>>576
なるほど。とりあえず、PHP5の環境ではE_STRICT試してみます。
いまんとこPHP4使ってるので、気をつける。って感じで頑張ります。
0578nobodyさん2006/10/01(日) 18:58:02ID:???
>>575
のときは
hegeは未宣言ってnotice出るんじゃないのか
0579nobodyさん2006/10/01(日) 18:59:55ID:???
ああごめん、代入するのは出ないのね。
っていうかそれが宣言に相当するのね
0580nobodyさん2006/10/01(日) 20:20:13ID:???
phpって、セミコロンがついてないだけで、画面真っ白になるのですけど、
どこかのログにエラーとか出てくれないのですか?
0581nobodyさん2006/10/01(日) 20:21:16ID:???
鯖の設定
0582nobodyさん2006/10/01(日) 20:46:00ID:???
>>580
phpinfo()
0583nobodyさん2006/10/01(日) 21:26:55ID:DeMI3pkc
>>570
>print($date1 . "<br>");

あの、これもエラーになってしまうんですが。
0584nobodyさん2006/10/01(日) 21:41:18ID:DeMI3pkc
あれ?F5で更新を連打してたら、改行が成功しました。すみません。
0585nobodyさん2006/10/01(日) 23:22:23ID:???
大量にセッション張られて、フィンガープリントのチェックで鯖落ちしてサービス不能攻撃受けそうだな(w
0586nobodyさん2006/10/02(月) 00:05:03ID:???
>>585みたいなバカを見てると、本当にこの国の未来が思いやられるな。
0587nobodyさん2006/10/02(月) 00:09:50ID:???
たぶん覚えたての単語を使いたいだけなんだよ。
0588nobodyさん2006/10/02(月) 07:16:11ID:???
子供が夜11時に2chに書き込んでる姿、親はなんとも思わないのかな?
0589nobodyさん2006/10/02(月) 08:09:50ID:???
すみません・・・携帯弄ってるようにしかみえないもので・・・・
0590nobodyさん2006/10/02(月) 15:51:11ID:???
>>585の母です。

このたびは息子が覚えたての言葉を使いたいがあまり、
生半可な知識で余計な書き込みをしてしまいました。
>>585にはきつく言っておきますので、みなさんお許しください。
0591nobodyさん2006/10/03(火) 21:24:34ID:nl5vMJY+
前回カタカナと数字のみ入力という質問をしました。
ぱっと見、ちゃんと動いているように見えたのですが、
カタカナとマッチングしない文字の組み合わせで入力すると、
マッチングしないにもかかわらず、処理が通ってしまいました。

$_POST["hoge"]="アんたなんかにエレクチオンが分かるっていうの";

if(!(mb_ereg("^[0-9ア-ンーヴァ-ォヵヶ0-9]",$_POST["hoge"]))){
echo "カタカナと数字以外禁止";

$_POST["hoge"]="アんたなんかにエレクチオンが分かるっていうの";

これが通ってしまいます。
今はpreg_match_allを使っているのですが、これは上手く通す処理が記述できません

if(!($y=preg_match_all("/0-9/",$_POST["ShopNameKana"]))){

とすると数字だけ通す処理になりません。最終的には全角カタカナと半角数字、全角数字
以外を弾く処理にしたいのですが、どうしたらいいか御教jもといご教示下さい。
0592nobodyさん2006/10/03(火) 21:33:25ID:???
前回に何と言われたか覚えてるか?
0593nobodyさん2006/10/03(火) 22:48:58ID:???
文字コード処理しないと無理な悪寒。
0594nobodyさん2006/10/03(火) 23:11:44ID:???
つか、preg_match_allの使い方を根本的に間違えてるような気が…
0595nobodyさん2006/10/04(水) 00:50:49ID:???
phpからmysqlに接続して
load data local infile "./new_data.csv" into table my_table(以下略
を実行すると、
fail sql: The used command is not allowed with this MySQL version
と表示されるけど、これってphpの問題?、それともmysqlの問題?

mysqlコマンドから問題無く読み込めるのでmysqlは無実っぽいけど?
0596nobodyさん2006/10/04(水) 01:01:08ID:???
まずはエラーメッセージを和訳してそこから考えられる原因を列挙してみよ。
0597nobodyさん2006/10/04(水) 02:09:37ID:???
mysqlコマンドからは、 load data local infileコマンドが実行できるのに、
phpからは load data local infileコマンドが実行できないのはなぜかってことだろ。
同じ鯖でバージョンが違うってことも無いし、コマンド実行権が違うことも無い。
0598nobodyさん2006/10/04(水) 07:30:33ID:???
>>595
これは関係あるのかな
http://dev.mysql.com/doc/refman/4.1/ja/load-data-local.html
PHPで可能なら他人のファイルも読み込めるということになるからな
0599591@携帯で改行ずれてそう2006/10/04(水) 09:17:36ID:b45YYBRX
対象はwindowsのみなので、文字コードはシフトJISにしています。
サーバはLinuxだけど、PHPもHTTPDもシフトJISにしてあります。

日本語をプログラム内に含めるなとの指摘は自分がまだそれに違和感を覚えるほど
テクがないのと、mb_使えばいいって発想でとりあえず保留
(ソースにはコメントアウトして記載してあるけど
通すべき文字列まで弾かれるので保留が正しい理由)。
0600nobodyさん2006/10/04(水) 09:31:36ID:???
>>599
preg_matchにてsjis文字コードを指定振り分けして通す
だが、sjisを使う限り確実とは言えない
これはmbに関して振り分けしても同じ事が言える
どちらにしろ、一般利用ならば気にする事でも無いが
つか、アンタに言っても自我を通して文字指定を頑なに通すから無駄なんでしょうが
06015992006/10/04(水) 09:52:57ID:WY3OniKc
>>600
SJISにしとけばとりあえずいいんじゃない?っていう初学者的発想です。
mbとSJISがダメなのか・・・。
ありがとうございます。ちょっと調べながら考えてみます。
0602nobodyさん2006/10/04(水) 10:09:30ID:???
phpの--local-infile=0相当の指定がされてて、すべての LOAD DATA LOCAL コマンドを無効にされてる悪寒。
phpじゃなくてmysqlがエラー出すのが変だが。
phpのバイナリ入れ替えるしか。
0603nobodyさん2006/10/04(水) 10:21:08ID:???
>>601
頭膿んでないか?
どう斜め読みしても、そんな理屈にはならんと思うが
2chじゃない他の駆け込み寺を探して聞く方が良い
レベルとかそういう事ではなく、意固地で柔軟な考えができない奴はトラブルを起こし
2chのような場で質問をするには不向きなタイプではないと思われ
0604nobodyさん2006/10/04(水) 14:06:03ID:???
>>603
日本語でOK
0605nobodyさん2006/10/04(水) 15:01:03ID:???
最近流行りの二重否定ですね
0606nobodyさん2006/10/04(水) 15:14:03ID:???
いやいや、最後のないはないか?の略だろ
0607nobodyさん2006/10/04(水) 16:25:40ID:WY3OniKc
長さが不定の文字列が入った変数$Aを先頭から1文字ずつ格納した
配列$Aarrayを作る方法を教えてください。
例:
$A="ABCDE"だったら$A[0]"=A " $A[1]="B" $A[2]="C"みたいな
感じになるようにしたいです。
0608nobodyさん2006/10/04(水) 16:36:08ID:???
このくらい自分で調べなよ。

$A = 'ashitaha harerutoiina';
$Aarray = array();

for ($i = 0; $i < strlen($A); $i++)
{
 $Aarray[] = $A[$i];
}
0609nobodyさん2006/10/04(水) 16:40:48ID:???
いつ$Aの型がstringからarrayに変わったんでしょうか
0610nobodyさん2006/10/04(水) 16:42:30ID:???
>>607
Perlでは、explode系( split )の関数で一文字づつ配列にできたな。
0611nobodyさん2006/10/04(水) 16:43:33ID:???
>>608
それをやるなら、substringだな
最初から $A[$i]って出来るなら困らない。
0612nobodyさん2006/10/04(水) 16:49:56ID:???
なんだよマニュアルにそのままかいてるじゃないかよちゃんとよめよこのやろうあほばかおたんこなす
http://jp.php.net/manual/ja/function.preg-split.php

例 2. 文字列を文字要素に分割

$str = 'string';
$chars = preg_split('//', $str, -1, PREG_SPLIT_NO_EMPTY);
print_r($chars);
0613nobodyさん2006/10/04(水) 16:50:06ID:???
>>608
意味がわからん

609は607かな。
マニュアルに書いてあるよ。
0614nobodyさん2006/10/04(水) 16:51:03ID:???
あ、間違えた。

608じゃなくて611
0615nobodyさん2006/10/04(水) 16:52:02ID:???
http://jp.php.net/manual/ja/function.str-split.php
0616nobodyさん2006/10/04(水) 16:55:19ID:WY3OniKc
>>608>>613
ありがとう。マニュアルに書いてあるとは知らなかったです。
ぐぐっててなんか違うのばっかり出てきたからテクニカルなこと
しなきゃだめなのかと思ってました。

//マニュアルよりグーぐるっていうのがダメなのかしらん・・・。
0617nobodyさん2006/10/04(水) 16:58:28ID:???
>>612
このくらいの処理で正規表現使う必要ナシ。
PHPの正規表現はまだまだ遅い。

>>615
PHP5のみ
0618nobodyさん2006/10/04(水) 16:59:20ID:???
omedetou
0619nobodyさん2006/10/04(水) 17:16:40ID:???
$str = 'test';
echo $str[2];

結果: s

これ出来るの知らなかった・・・。でもあまり使うときないかなぁ。
0620nobodyさん2006/10/04(水) 17:20:04ID:???
文字化けについて、悩んでます。
検索をすると、一部の語(猫とだけ検索すると)だけが、?となります。
print_rなどで見ると↓のようになります。
Array ( [0] => ? )
Array ( [0] => 犬 )
ただ、複数の語で検索すると、正常に動作します。
Array ( [0] => 猫 [1] => 犬 )
Array ( [0] => 犬 [1] => 猫 )
これはどういったら直るでしょか?
phpもdbも全てEUCで書いてます。
どうか教えてください。
0621nobodyさん2006/10/04(水) 17:22:04ID:???
>>620
状況がよくわからんな
0622nobodyさん2006/10/04(水) 17:39:04ID:???
>>621
わかりずらくてすいません。php5、mysql5で、検索でdbからデータを抽出して
検索結果を表示させようとしているのですが、「猫」というキーワードで
検索すると、DBには猫というキーワードが入っているのに「該当するものは無い」と
表示されてしまいます。ただ、and検索で、「猫」と「犬」で検索すると、
それに当てはまるのもが表示されます。
これで、解りますかね??説明下手ですいません><
0623nobodyさん2006/10/04(水) 17:41:32ID:???
>>622
やろうとしていることに問題はないだろうから、ソースを書くなりしないと
0624nobodyさん2006/10/04(水) 17:54:17ID:???
ソースはどこいらへんを書けばいいですかね!?
とりあえず、↓のようにデータを取得してます。

$keyword = trim(stripslashes($_GET['keyword']));
$keyword = mb_convert_kana($keyword, 's');
$arraykey = explode(" ", $keyword);
$where = " WHERE (tag LIKE '%$arraykey[0]%')";
for($i=1; $i < sizeof($arraykey); $i++){
$where.= " AND";
$where.= " (tag LIKE '%$arraykey[$i]%')";
}

$sql = "SELECT * FROM table1 ".$where." ORDER BY date DESC
LIMIT ".$PAGESIZE*($page-1).", $PAGESIZE";
これにmysql_fetch_arrayでデータを取得して、表示させてます。
0625nobodyさん2006/10/04(水) 18:02:03ID:???
>>624
犬単品で検索かけたら「犬」ってでるん?
0626nobodyさん2006/10/04(水) 18:05:15ID:???
読み返したら・・・。
ああ、「犬」は出るんだね。
0627nobodyさん2006/10/04(水) 18:07:55ID:???
>>625
はい。犬や魚は普通に検索できるんです。
猫が何故か、ダメで、<!-- 美乳 -->を書くと直るようなことも
聞いたので書いてみても、変わらなかったです。
0628nobodyさん2006/10/04(水) 18:09:15ID:???
$_GETで受け取った時点とその後のでecho()で出して見たら?
最初から化けてる?
0629nobodyさん2006/10/04(水) 18:13:31ID:???
受け取った時点で化けちゃってます><
でも、複数(犬と猫)で検索だと、最初から文字化けしてません。
■ このスレッドは過去ログ倉庫に格納されています