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

【PHP】下らねぇ質問はID出して書き込みやがれ 92

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2010/01/09(土) 20:11:42ID:lsb/cZ9k
質問者はまず>>1を良く読むこと(必須!)
過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。

◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 91
http://pc11.2ch.net/test/read.cgi/php/1260247989/

◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)

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

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

【その他諸注意】
・SQL・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
0446nobodyさん2010/01/27(水) 14:30:05ID:???
>>445
無抵抗なソースを痴漢する
0447nobodyさん2010/01/27(水) 14:30:36ID:???
異常終了する場合はまずログを見ろ
0448nobodyさん2010/01/27(水) 14:42:21ID:???
>>443
phpにパスを登録するとlibmysql.dllが関係してるみたいです
0449nobodyさん2010/01/27(水) 14:46:50ID:???
>>448
どういう風に?
0450nobodyさん2010/01/27(水) 14:48:00ID:???
PHPが悪いんじゃなくてそのlibmysql.dllが悪いんでしょ?
じゃそれを削除するか場所を変えるかおかしくない奴拾ってくるかすればいいのでは?
0451nobodyさん2010/01/27(水) 14:50:56ID:???
>環境変数にphpを登録すると
原因がわかっているなら、登録を削除すれば解決するんでね?
楽するよりもエラーを吐いて動かない方が重症だろ

>マンドラインでどのフォルダからでも楽にphpが使用できるのですが
PHPをインストールしているディレクトリのショートカットを、デスクトップに貼っとけ
0452nobodyさん2010/01/27(水) 14:53:53ID:???
現状はCLIでの利便性を捨ててパスは削除しています
補足ですが、mysql5.1とphp5.2で動かない症状が出た場合、
mysqlに入っているlibmysql.dllをphpに入っているlibmysql.dllで上書きすると動きます
0453nobodyさん2010/01/27(水) 14:54:43ID:???
>>450
あなたバカでしょ
0454nobodyさん2010/01/27(水) 15:10:59ID:???
それは単にバージョンコンフリじゃないか・・・
エラーを吐くDLL名でファイル検索して、バージョン違いをゴミ箱入れれ
0455nobodyさん2010/01/27(水) 15:22:10ID:???
パスを通す意味がわからない人はコマンドラインを使うことは難しい
0456nobodyさん2010/01/27(水) 15:28:38ID:???
括弧つけなくちゃw
(コマンドラインを使うことは)
0457nobodyさん2010/01/27(水) 16:58:23ID:???
昼間は厨房しかいないから残念だったな
夜になったら質問してればいいのに
0458nobodyさん2010/01/27(水) 18:32:55ID:J0bFMzRr
<html><body>
ID ちょめちょめ PASS にゃーん
ID でっていう PASS すぐやる夫
・・・
</body></html>
というhtmlファイルから、各IDとPASS抜き出すのはどうすればいいんですか?

$ID1 = "ちょめちょめ";
$PASS1 ="にゃーん";
$ID2 = "でっていう";
$PASS2 ="すぐやる夫";

という形にしたいです。宜しくお願いします。
0459nobodyさん2010/01/27(水) 18:38:11ID:???
splitとevalあたり?
ハッシュ使った方がいい気がするが
0460nobodyさん2010/01/27(水) 18:40:11ID:???
>>453
なんでだよw
0461nobodyさん2010/01/27(水) 18:47:58ID:???
まずhtmlファイルを生成しているDBに接続します
0462nobodyさん2010/01/27(水) 18:52:04ID:???
次にIDとPASSを取得するSQL文を投げます
0463nobodyさん2010/01/27(水) 18:52:35ID:???
なんということでしょう
0464nobodyさん2010/01/27(水) 18:53:49ID:???
最後に下記の通りに実行します
$w=<<<_YARUO_
$ID1 = "ちょめちょめ";
$PASS1 ="にゃーん";
$ID2 = "でっていう";
$PASS2 ="すぐやる夫";
_YARUO_;
echo $w;
0465nobodyさん2010/01/27(水) 18:58:12ID:???
ヒアドキュメントでその書き方は駄目だろw
0466nobodyさん2010/01/27(水) 19:36:50ID:J0bFMzRr
explode関数でどうにかなりそうな気がします。
ありがとうございます。

他にいい抜き出し方があったらお願いします。
0467nobodyさん2010/01/27(水) 19:55:59ID:???
あるけど、それで回答するとまたかって言うやつがいるので
0468nobodyさん2010/01/27(水) 20:17:23ID:???
explodeでできねえよカス
0469nobodyさん2010/01/27(水) 21:08:43ID:J0bFMzRr
$file = file_get_contents('kitaaaaaaaaaaaa.html');
$get = explode(" ",$file);
$ID1 = $get[1];
$PASS1 = $get[3];
print $ID1.$PASS1;

で一応表示されたんですが、これではダメですか?
あとこれを行数だけ繰り返してID2,PASS2と振るにはどうすればいいですか?
宜しくお願いします。
0470nobodyさん2010/01/27(水) 21:11:59ID:???
配列使え
0471nobodyさん2010/01/27(水) 21:38:36ID:???
>>469
嘘つけ
適当に書いたものを貼るな
0472nobodyさん2010/01/27(水) 21:41:05ID:J0bFMzRr
>>470
ありがとうございます。
arrayを使えばいいですか?

行数の分だけ繰り返すところと、置き換えの文字列を変更する作業が
手こずっています。
0473nobodyさん2010/01/27(水) 22:42:51ID:???
>>471
htmlファイルになってますが、中身はテキストのみなんです。
0474nobodyさん2010/01/27(水) 23:38:17ID:???
ぽか〜ん
0475nobodyさん2010/01/28(木) 00:02:48ID:Y7CMbuAK
ID1 PASS1
ID2 PASS2
という感じ末尾を変更するやり方を教えてください。

>>474
すいません。
0476nobodyさん2010/01/28(木) 04:54:47ID:???
うむ、だいぶ下らなくなってきたな。質問も回答も。
0477nobodyさん2010/01/28(木) 09:41:19ID:???
>>475
preg_match_allを使います
explodeではできないので覚えとけよカス
0478nobodyさん2010/01/28(木) 10:51:17ID:???
wikiを作りたいのですが、どのような仕組みで作るのが楽でしょうか?
ファイルにデータを貯めるよりもデータベースに貯める方が楽でしょうか?
0479nobodyさん2010/01/28(木) 11:10:51ID:???
はい
0480nobodyさん2010/01/28(木) 12:24:33ID:???
とある文字列を半角カンマ、半角スペース、全角スペースで区切って配列に入れるにはどうしたらいいでしょうか?
04814802010/01/28(木) 12:24:56ID:WZ4SPb0m
ID出すの忘れてました
0482nobodyさん2010/01/28(木) 12:34:11ID:???
print_r ( preg_split("/[ , ]+/", "a b c,de,f g,h"));  //[半角スペース,全角スペース]
0483nobodyさん2010/01/28(木) 12:40:32ID:???
うわっ
0484nobodyさん2010/01/28(木) 12:44:46ID:???
>>482
ありがとうございました
preg_splitがあったのを忘れていました
0485nobodyさん2010/01/28(木) 18:33:03ID:???
>PHPコードは「<?php」という開始タグから始まります。
>終了タグは「?>」です。HTMLにPHPコードを埋める際は終了タグを使いますが、
>ライブラリのようにPHPコードのみを記述する際は終了タグを省くことが慣例となっています。

というのをみて(ブログ記事の一部)、
-- test.php

<?php
〜〜
?>
改行
改行

--
みたいな場合がかなりやばい、ということはわかったのですが、
え?それだけ?で?
な気持ちです。たしかに改行改行がダメなことは初めて気付かされましたが、
2つ以上の改行に注意するのと、?>を記述しないという注意と
そんなに言うほど変わりないと思うのです。
しかしいろいろなところで、(phpコードのみの場合は)絶対?>を取り除きましょう!!
みたいなノリについていけないというか・・実際やってる人なんているんでしょうか・・
0486nobodyさん2010/01/28(木) 18:36:33ID:???
まずスレタイと>>1を読みましょう
04874852010/01/28(木) 18:37:12ID:Wx5X+hZm
すいませんでした
よろしくお願いします
04884852010/01/28(木) 18:38:57ID:6pvkIKgb
久しぶりで完全に忘れていました
すみません id
0489nobodyさん2010/01/28(木) 18:41:07ID:???
どっちだよw
04904852010/01/28(木) 20:28:59ID:DXCM0MC8
私です、私以外は全部偽物です
0491nobodyさん2010/01/28(木) 20:32:21ID:???
?>は意識して打たないと入らないからな
0492nobodyさん2010/01/28(木) 21:53:49ID:CVOGs3cZ
【OS名】Debian Lenny 【PHPのバージョン】php5.2.6  【質問内容】以下のコードが期待した動作をしません。
<?php
// メニュー用画像リスト
$menuimg["login"] = "<IMG src=\"./img/top.login.gif\" width=\"100\" height=\"50\" alt=\"ログイン\">";
$menuimg["regist"] = "<IMG src=\"./img/top.regist.gif\" width=\"100\" height=\"50\" alt=\"新規登録\">";
$menuimg["mail"] = "<IMG src=\"./img/top.mail.gif\" width=\"100\" height=\"50\" alt=\"管理人へメール\">";
$menuimg["osaifu"] = "<IMG src=\"./img/top.osaifu.gif\" width=\"100\" height=\"50\" alt=\"######\">";
// メニュー用URLリスト
$menuurl["login"] = "./constr.htm";
$menuurl["regist"] = "./constr.htm";
$menuurl["mail"] = "mailto:############@yahoo.co.jp?subject=【サイト名】問い合わせ";
$menuurl["osaifu"] = "http://######.com/#####/";
// タグ生成関数の定義
function writeout($name){
print "<A href=\"".$menuurl[$name]."\">";
print $menuimg[$name]."</A>";
}
// タグ発行
writeout("login");
writeout("regist");
print "<BR>";
writeout("mail");
writeout("osaifu");
?>
writeoutの引数に書かれた文字を連想配列名として出力したいのです。どうかお力をお貸しください。
0493nobodyさん2010/01/28(木) 22:06:22ID:???
>>492
writeoutの中でvar_dump($menuurl);
あと期待する動作と実際の動作を書かないと片手落ちでは?次回からね。
0494nobodyさん2010/01/28(木) 22:18:48ID:2KkwWo9K
テキストファイルのしゅうたんから10バイト前の位置に追記するにはどうすればいいですか
04954922010/01/28(木) 22:23:49ID:CVOGs3cZ
>>493様
var_dump($menuurl);
の結果は以下のようになりました。
Notice: Undefined variable: menuurl in /var/www/xxx/xxx.php on line 29

writeout(login);の結果
期待した動作:
<A href="./constr.htm"><IMG src="./img/top.login.gif" width="100" height="50" alt="ログイン"></A>

に対し、実際の動作が
<A href=""></A>

になります
0496nobodyさん2010/01/28(木) 22:41:29ID:???
>>495
>あと期待する動作と実際の動作を書かないと片手落ちでは?次回からね。
0497nobodyさん2010/01/28(木) 22:41:45ID:???
これを実行しても何も表示されないのと同じ理由
<?php
$str="test";

function write() {
echo $str;
}
write();
?>
0498nobodyさん2010/01/28(木) 22:45:09ID:???
ごめんつい反射的に冷たいレスをしてしまった。今では反省している。
・var_dumpの結果を見て自分で判断してほしかった。
・次回からねというのは今回の質問の意図は分かるので次レスではなく次質問から(=次レスでいちいち説明すんじゃねーぞ)という意味だった。
で結論としては関数内はスコープが違うので引数で渡してあげれば良いです。
04994922010/01/28(木) 22:56:02ID:CVOGs3cZ
あっ、スコープですね。
>>497様
global $menuurl, $menuimg;
を追加することで期待した動作をしました。
ありがとうございました。
05004922010/01/28(木) 23:07:10ID:CVOGs3cZ
>>498様
いろいろとすみません。
こんな初心者丸出しの私に丁寧にご教示いただき、ありがとうございました。
おかげさまで無事に解決しました。
0501nobodyさん2010/01/29(金) 00:45:00ID:+kLxfVXG
こんばんわ。

今回、ある相対パスで指定されているアドレスを絶対パスに変換したいと思い以下のように書いたのですが、

※$Srcは相対パスの場合は../pを必ず含む。$Srcが相対パスではない事もある。
$AbsSrc = ereg_replace("../p","http://絶対パス/p",$Src);

「http://piza/〜」 というアドレスも一緒に変換されてしまいました。
相対パスを絶対パスにする良い方法があれば教えてほしいのですが。
ちなみに、realpath()は使ってみましたが、元々$Srcは文字列から引っ張ってきているので、
絶対パスを知る方法がなく上手くいきませんでした。

よろしくお願いします。
05025012010/01/29(金) 01:08:31ID:+kLxfVXG
同様の問題は結構起きてるみたいですね。
他サイトを見ながらもう一度トライしてみます。
スレ汚し失礼しました。
0503nobodyさん2010/01/29(金) 01:13:34ID:???
ん、いいのか
0504nobodyさん2010/01/29(金) 04:20:40ID:???
基本的な質問ですいません。

<script type="text/javascript">
function zzz() {
setTimeout('aaa1()',1000);
setTimeout('aaa2()',2000);
}
</SCRIPT>

のsettimeoutの部分を、txtファイルの行数分だけ
count関数を使って入れたいのですが、

$count=0;
$res=fopen($logfile,"r");
while(!feof($res)){
$str=fgets($res);
$count++;
$count1000 = $count*1000;
$sall = "setTimeout('aaa$count()',$count1000);}";
}

とすると

<script type="text/javascript">
function zzz() {setTimeout('aaa2()',2000);
}</SCRIPT>

になります。希望の動作になるにはどうしたらいいか宜しくお願い致します。
0505nobodyさん2010/01/29(金) 07:32:35ID:???
>>504
echo $sall;
をwhileの中の最後尾に入れるのはどうですか?
0506nobodyさん2010/01/29(金) 10:09:40ID:???
変数はダブルクオーテーションの中でも、おっぱい括弧でくくれば使えますが
$hoge="aaa";
$kage="bbb{$hoge}ccc";//$kage=bbbaaaccc

定数はおっぱい括弧でくくっても展開されないようです。
define("mage","mmm");
$kage="bbb{mage}ccc";//$kage≠bbbmmmccc
勿論
$kage="bbb".mage."ccc";とすれば望んだ値が入りますが
出来れば変数と同じく、ダブルクオーテーションを増やさずに参照したいです。
0507nobodyさん2010/01/29(金) 10:28:55ID:???
>>506
>>1
0508nobodyさん2010/01/29(金) 10:29:54ID:???
僕は展開してほしくないです。
質問なら質問らしく、独り言ならチラシの裏にお願い致します。
0509nobodyさん2010/01/29(金) 10:53:33ID:???
ob_get_levelのデフォルトの数値が1の時と0の時があるんですが、
これってどこかで設定するんでしょうか?

ローカルでやってると最初のフォルダの頭で実行すると0なんですが、
サーバーで実行させると1になってます。
0510nobodyさん2010/01/29(金) 10:56:06ID:???
>>509
>>1
05115092010/01/29(金) 18:59:02ID:xrxVmrZ0
失敬。
最初のフォルダじゃなくて、スクリプトファイルでした。
0512nobodyさん2010/01/29(金) 19:47:29ID:56kcplo8
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】

文字化けの件について教えてください。

データベースから抽出したデータはきちんと書き出されますが
htmlの<? ?>で囲ったところ以外の全部 (ページタイトルも) が ????? になってしまいます。

mysqlでもhtmlのmetaタグ内でもutf-8を指定してあります。
htmlファイル自体の文字コードもutf-8です。

なにか解決の手がかりになるようなことをご存知でしたらお願いします。
0513nobodyさん2010/01/29(金) 20:50:13ID:???
>>512
ヘッダに文字コード指定するといいのでは?
header("Content-type: text/html; charset=utf-8");
0514nobodyさん2010/01/29(金) 21:50:52ID:JATQlPdV
preg_matchが正しく機能してくれません。どうすれば良いか教えてください。
フォームからテキストを受け取って、$text_dataに入れます。それをチェックしてマッチしなかったら、
$error文を表示するのですが、123、yes、その他日本語、何を入れても$error文が表示されてしまいます。
理由が解りません。教えて下さい。お願いします。

$text_data = $_POST['person'];
if (!preg_match("/^([一-龠][ァ-ヶー][ぁ-ん]){1,8}$/uD",$text_data)){
echo $error = '漢字、カタカナ、ひらがな以外の文字が使われてます。';
}

WinXP
PHP:5.2.6
Apache:2.2
MySQL:5.1
文字コードはUTF-8で保存してます。
05155122010/01/29(金) 22:19:29ID:56kcplo8
>>513
ありがとうございます  だめでした
極限まで短くしても

<?
header("Content-type: text/html; charset=UTF-8");
?>
<HTML>
<meta http-equiv="Content-type" content="text/html; charset=utf-8">

<title>ねこ</title>
<BODY>

いぬ
</BODY>
</HTML>

いぬとねこが??になってしまいました
0516nobodyさん2010/01/29(金) 22:19:59ID:???
>>514
'一ァぁ' を POST してみればわかる
0517nobodyさん2010/01/29(金) 22:23:25ID:???
>>515
mbstring.internal_encoding
mbstring.http_output
0518nobodyさん2010/01/29(金) 22:31:37ID:???
>>514
>>1

正規表現の書き方がまずいのでは?
あまり使ったことがないので詳しくはわからんが
preg_match('/[^一-龠ァ-ヶーぁ-ん$]{1,8}/uD', $text_data)
こんな感じだと思う。
0519nobodyさん2010/01/29(金) 22:37:51ID:cGTMydf+
1)ファイルの最後の文字が指定された文字だったら削除

2)ファイルの行を行番号を書いてボタンで削除

はどうすればいいですか?宜しくお願い致します。


2)について
$csv_file = file("test.csv");
print "<input name=\"sakujo\" type=\"text\" size=\"3\" maxlength=\"3\">番を<input type=\"submit\" value=\"削除\" />";
$sakujo = $_POST['sakujo'];
unset($csv_file[$sakujo]);
$fp = fopen("test.csv", "w");
foreach ($csv_file as $line) {
fwrite($fp, $line);
}

とすると、1行目を削除するのが0番を削除と指定することになります。
$sakujo = ++$_POST['sakujo'];
また
$sakujo = ++$sakujo;
などに指定すると、ファイル読み込みと同時に勝手に2行目を削除します。
05205182010/01/29(金) 22:42:05ID:???
>>518も間違ってるので無視してください
perl互換だったな…
0521nobodyさん2010/01/29(金) 22:42:48ID:???
>>519
POSTしてない状態では$_POST['sakujo']はnullだからunsetされてないだけでしょう
ちゃんと$_POSTで表示処理と削除処理を分けて、番号を1増やせばいいかと
0522nobodyさん2010/01/29(金) 23:17:40ID:???
>>521
回答ありがとうございます。
$sakujo = $_POST['sakujo']; のあとに
$sakujo = ++$sakujo;(若しくは$sakujo++,$sakujo+1等)
としても、2行目が勝手に削除されてしまいます。
0523nobodyさん2010/01/29(金) 23:21:11ID:cGTMydf+
連投、ID出し忘れ申し訳ありません。

$_POST['sakujo'] = ++$_POST['sakujo'];
$sakujo = $_POST['sakujo'];
も試しましたが、これも自動的に削除されます。
宜しくお願いします。
05245142010/01/29(金) 23:22:33ID:JATQlPdV
>>516
ありがとうございました。解決しました。

>>520
書き方を指摘して貰えて助かりました。
それをヒントに解決できました。ありがとうございました。
0525nobodyさん2010/01/30(土) 00:49:04ID:???
>>523
>ちゃんと$_POSTで表示処理と削除処理を分けて
0526nobodyさん2010/01/30(土) 05:42:04ID:obVWCfxQ
ファイル名test.php
<?php
class Test{
function hoge(){
return 'test';
}
}
?>

というファイルがあったときに、test.phpにアクセスできないようにしてもいいのですが、
あえて何もせずtest.phpにアクセスされた場合について質問です。
(ただし、test.phpのソースをローカルにダウンロードすることはできない)

例えば、http://〜〜/test.phpな感じでブラウザからアクセスがあった場合、
これだけではインスタンスも生成していないし何も表示されることはないので、
特に危険はないかなと思ったのですが自分なりに考えたところ、
少なくともそのファイルの存在がわかってしまうし、
ファイル名がサイト独特のものだと他にも似たようなファイルがあるなと予測されてしまうし、
くらいを思いつきました。他に何か危険は潜んでいませんでしょうかよろしくおねがいします。
0527nobodyさん2010/01/30(土) 06:11:52ID:qAKPfLy/
>>525
ありがとうございます。表示処理 削除処理 PHPでぐぐっても出てきません。
初心者ですいません。
0528nobodyさん2010/01/30(土) 06:12:03ID:???
>>526
なんでもいいから .php以外の名前にしといてアクセス禁止しとけばよくね?
0529nobodyさん2010/01/30(土) 06:13:29ID:???
フレームワークを使いたくないけど、<select>や<table>書いてるときは
フレームワーク使いたくなってしまうよな
0530nobodyさん2010/01/30(土) 07:30:56ID:???
>>527
ただフォームを表示するだけのページと実際に削除を行うページをif文で分けるって事だと思う。

$sakujo = $_POST['sakujo'];
if(ereg("^[0-9]{1,3}$", $sakujo)){
//実際に削除を行う
}else{
//削除フォームを表示する
}
0531nobodyさん2010/01/30(土) 07:35:16ID:???
>>526
呼び出し元にフラグ立てて、test.phpで条件分岐させるってのはどうだい?

if(isset(フラグ)){
処理する
}else{
header(HTTP 404);
}
0532nobodyさん2010/01/30(土) 09:03:20ID:qAKPfLy/
>>530
回答ありがとうございます。そのままコピペしてみたところ
フォーム部分が消えてしまいました。
http://uploader.sakura.ne.jp/src/up3233.jpg
http://uploader.sakura.ne.jp/src/up3234.jpg

[0-9]{1,3}$を$csv_fileに変えてみたんですが、消えないようです。
0533nobodyさん2010/01/30(土) 12:17:31ID:???
正規表現とかwww
issetとかでいいじゃんw
0534nobodyさん2010/01/30(土) 13:34:51ID:???
>>532
$csv_file = file("test.csv");
print "<input name=\"sakujo\" type=\"text\" size=\"3\" maxlength=\"3\">番を<input type=\"submit\" value=\"削除\" />";
if (isset($_POST['sakujo'])) {
if (!is_numeric($_POST['sakujo'])) {
echo "数字ぢゃないがな( ゚Д゚)ヴォケ!!";
} else {
$sakujo = $_POST['sakujo']++;
if (isset($csv_file[$sakujo])) {
unset($csv_file[$sakujo]);
$fp = fopen("test.csv", "w");
foreach ($csv_file as $line) {
fwrite($fp, $line);
}
} else {
echo "行が無いぞ(#゚Д゚)ゴルァ!!";
}
}
}
0535nobodyさん2010/01/30(土) 13:37:08ID:???
>>532
それとファイルの「1行目」を削除する場合に"1"を入力する場合は
fileで読んだ配列の[0]が該当行なので
$sakujo = $_POST['sakujo']--; デクリね
0536nobodyさん2010/01/30(土) 13:51:46ID:???
なんでis_numericの否定が先?
0537nobodyさん2010/01/30(土) 14:45:07ID:yMr7jIEh
【PHPのバージョン】php5.2.12
【連携ソフトウェア】mysql
【質問内容】 データベースからレコードをプルダウンで取り出したい
<form method="post" action="test.php">
<table>
<tr><td>地域</td><td>
<input type="text" name="pref" value="<?php print(htmlspecialchars($_POST['pref'])); ?>" /></td></tr>
<tr><td>性別</td><td><input type="text" name="sex" value="<?php print(htmlspecialchars($_POST['sex'])); ?>"/></td></tr>
</table><input type="submit" value="検索" /></form>
<?php
中略
// プリペアド・ステートメントの準備
$sql = 'select * from address where pref = ? and sex = ?';
$type = array('text', 'text');
$sth = $mdb2->prepare($sql, $type);
// プリペアド・ステートメントの実行
$data = array($_POST['pref'], $_POST['sex']);
$res = $sth->execute($data);
if (PEAR::isError($res)) { exit('selectに失敗しました');}
0538nobodyさん2010/01/30(土) 14:45:51ID:yMr7jIEh
// レコードの内容を表示
print("<table border=\"1\">\n");
print("<tr>");
print("<th>ニックネーム</th><th>地域</th><th>コメント</th><th>詳細</th>");
print("</tr>");
while ($data = $res->fetchRow()) {
print("<tr>\n");
print("<td>" . $data['name'] . "</td>");
print("<td>" . $data['pref'] . "</td>");
print("<td>" . $data['comment'] . "</td>");
print("<td>" . $data['mypage'] . "</td>");
print("</tr>\n");}
print("</table>\n");
?>
現在このようにテキストボックスに文字を入力して該当すれば出力
させるようにしているのですが、これをプルダウンで選択して、該当すれば
出力という用に変更したく試行錯誤しているのですが・・・
全く動かせる気配がありません。どなたか力を貸してください、よろしくお願いします。
0539nobodyさん2010/01/30(土) 14:53:20ID:???
PHPではなくHTMLの問題では?
<select name="sex">
<option value="1">男</option>
<option value="2">女</option>
</select>
でいいかと
0540nobodyさん2010/01/30(土) 16:28:25ID:yMr7jIEh
>>539
ありがとうございます
でもそれだとプルダウンにはなっても検索が出来ない状態です
0541nobodyさん2010/01/30(土) 16:32:41ID:???
フォームに入れてるの?
0542nobodyさん2010/01/30(土) 17:54:33ID:yMr7jIEh
>>541
ありがとうございます
>>539さんのを元に自己解決しました^^
0543nobodyさん2010/01/30(土) 20:39:54ID:qAKPfLy/
>>534-535
(´;ω;`)やっとできました。
if (isset($csv_file[--$sakujo]))
にしたら動きました。ありがとうございます。
0544nobodyさん2010/01/30(土) 21:56:00ID:???
ナにつくろっかなー
最近ガンブラーっての多いから怖いなー
しばらく辞めとくね
0545nobodyさん2010/01/31(日) 00:03:50ID:A4bjb08C
if ($_SERVER["QUERY_STRING"] == "test") {
}
でページ分けしながらサイトを作成しているのですがあまり書きすぎると容量が多くなってしまうじゃないですか。
そこで考えたのですが文字だけならテキストファイルにぶち込んで外部呼び出しすれば少しはマシになるかななんて
思ったのですが何か良い方法があれば教えて下さい。
■ このスレッドは過去ログ倉庫に格納されています