【PHP】下らねぇ質問はここに書き込みやがれ 50
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/07/11(水) 17:50:01ID:fYd+34USPHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 49
http://pc11.2ch.net/test/read.cgi/php/1182794620/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0783753
2007/07/24(火) 09:22:09ID:Wdyxg0H6ありがとうございます
perlと似ているだけに少し使い方が違ったり、同じような動作をするのに
いくつも似たような演算子があったりと少々戸惑っていました。
おかげさまで納得のいくものができました。
ちなみに配列は同一IPをカウントしないために2行目からIPを格納するのに使っています。
while使うと\nばかりが延々続いた膨大なデータファイルが出来上がり、なぜこうなるのか
今の自分では理解できないです。
ただforeach使ったら狙った動作をしてくれたのでとりあえずは良しとし、これからwhileの謎を解明しようと思ってます。
遅レスで申し訳ないですが、ありがとうございました。
0785nobodyさん
2007/07/24(火) 10:47:54ID:???0787nobodyさん
2007/07/24(火) 11:21:03ID:???for($i=0;$i<10;$i++){
print "<form meghod=\"post\" action=\"this.php\">";
print "<input type=\"hidden\" name=\"hID\" value=\"$dID[$i]\">";
print "<input type=\"submit\" name=\"cmd_Delete\" value=\"削除\">";
print "</form>";
}
みたいに1個ずつFORMタグで囲まないと、全部のhiddenが送られちゃうでしょ。
GETで良いなら、<a href="this.php?delete_id=".$did(略
で簡単に済む。
消すIDを送るだけならPOSTする必要はない。
あとはsubmitのnameで渡しちゃって
PHP側でnameをごにょごにょする方法もある。
でも削除なら、チェックボックスにするのが一般的。
そうすれば一気に消したり出来る。
0788nobodyさん
2007/07/24(火) 11:42:14ID:???ほらよ
<script language="JavaScript" type="text/JavaScript">
<!--
function setval(val){
document.form.hID.value = val;
document.form.submit();
}
//-->
</script>
<form name="form" method="post" action="./0.php">
<input type="hidden" name="hID">
<?php
for($i=0;$i<10;$i++){
?>
<input type="button" value="削除" onclick='setval(<?=$i;?>)'>
<?php
}
?>
</form>
<?php
echo $_POST["hID"];
?>
0789nobodyさん
2007/07/24(火) 13:04:06ID:???みたいなこと(見つかった結果をひとつひとつphpの関数に投げる)したいんですが
どうすればいいですか?
0790789
2007/07/24(火) 13:07:13ID:???0792789
2007/07/24(火) 13:19:51ID:H27wi0OE>>790-791騙りは臣でいいよ^^;
0794773
2007/07/24(火) 13:21:32ID:qzMpiZVa誰も答えられないのかよ。
俺も含めてここの奴はたいした事ねえな。
0795nobodyさん
2007/07/24(火) 13:23:09ID:???説明不足じゃない?やりたい事がいまいち分からない。
phpのソース内で関数を使えばいいって答えじゃ駄目なの?
0797777
2007/07/24(火) 13:42:58ID:28scIEzFありがとう.formタグで囲めばよかったのか(汗
やはり削除とかはチェックボックスのが良いな.サンクス
0798789
2007/07/24(火) 13:48:24ID:H27wi0OEアドバイスおねがいします。
0799789
2007/07/24(火) 13:49:26ID:H27wi0OEわたしもたまに回答者にむかつきますがここは冷静になりましょうよ
0800789
2007/07/24(火) 13:50:45ID:H27wi0OE0803nobodyさん
2007/07/24(火) 13:56:21ID:???もっといい やり方も あると思いますが
$body = "abc 0 ABC 1 zzz";
echo "$body\n";
function call_back($n) {
$hoge_array[0] = "hoge1";
$hoge_array[1] = "hoge2";
return $hoge_array[$n[0]];
}
//$body = preg_replace('/([0-9]+)/', $hoge_array[$1], $body);
$body = preg_replace_callback('/([0-9]+)/', call_back, $body);
echo "$body\n";
神と崇めていただかなくて結構なので
その態度を改めていただけないでしょうか
0804nobodyさん
2007/07/24(火) 13:59:26ID:???下のほうにある call_back は single quotation で囲んでください
でないと notice レベルの警告が出ます
0805nobodyさん
2007/07/24(火) 14:17:58ID:PuYDSgkHどうしたらいいですか?
0806nobodyさん
2007/07/24(火) 14:23:21ID:Y3Stxh5i数字を入れるフォームを空にして更新するとエラーなってしまいます
文字型は入れなくてもエラーになりません
0809nobodyさん
2007/07/24(火) 14:57:29ID:???何故このスレでは強制されるんですか?
こんな悪習を続けていたらPHPerはケツの穴が小さいと思われますよ
ID出さなくても、答えたい人は答える、答えたくない人は答えない
それでいいじゃないですか
0811nobodyさん
2007/07/24(火) 15:02:44ID:CE11c5QjセッションIDでセッションを取得して$_SESSIONに格納する方法はありますでしょうか?
URLにID付加をするのではない方法であればお願いします。
0814nobodyさん
2007/07/24(火) 15:05:45ID:???最初にマニュアル読むように
引用
session_name() は、カレントのセッション名を 返します。name を指定した場合、カレントの セッション名は、その値に変更されます。
0815nobodyさん
2007/07/24(火) 15:05:54ID:Y3Stxh5iNULLを指定しても反映されません
デフォルトで設定するにはどうしたらいいんでしょうか
0816nobodyさん
2007/07/24(火) 15:08:51ID:z1nZ//nw知りませんか。
PHP4のモジュール版sqliteで2系のDBを作ってしまったとです。
0817nobodyさん
2007/07/24(火) 15:11:13ID:z1nZ//nwMySQLならカラム作るときにDEFAULT NULLだったと思います。
そすれば、何も入れなきゃNULLになるです。
0818nobodyさん
2007/07/24(火) 15:14:14ID:???> NULLを指定しても反映されません
設計段階でNOT NULL指定してないだろうな?
本来は設計段階で設定すべきだが…
ALTER TABLE [テーブル名] ALTER COLUMN [カラム名] SET DEFAULT [デフォルト値];
0819773
2007/07/24(火) 15:23:47ID:???preg_replace_calllbackは後方参照値が取れないから使ってなかったけど、
そういうやり方があったんですね。
解決しました。
ありがとうございました。
0821nobodyさん
2007/07/24(火) 15:44:05ID:???ID無しで質問するのも、それに回答するのも自由はあるよ、やればいいじゃん。
ただ、ニセモノが頻発するので推奨してるだけ。
0822nobodyさん
2007/07/24(火) 15:44:39ID:???誰が得するの?
0823nobodyさん
2007/07/24(火) 15:50:03ID:dkSuvKseどこにでもありそうな質問で恐縮です。
Apacheで.htaccessを使ったBasic認証のサイトがあります。
この中でパスワード変更のフォームを動かしていてきちんと動くのですが、
当然といえば当然で、パスワード変更して.htaccessを変更した瞬間に
次のリクエストでブラウザからは再度認証ダイアログが出てしまいます。
これを回避するためのテクニックってどういうのがあるでしょうか?
アドバイスいただければ助かります。
0824nobodyさん
2007/07/24(火) 15:50:07ID:Y3Stxh5iそれはどこに入れるんですか?
0825nobodyさん
2007/07/24(火) 15:50:58ID:???別にケツの穴が小さいと思われても俺に不都合があるわけないしどうでもいい
テンプレもマニュアルもまともに読めない。
アンカーすらまともに使えない厨が多くてカオスになったからそうなったんじゃね?
実際テンプレどおりやってる奴の質問は追っていきやすいのは事実だしな
0827809
2007/07/24(火) 16:02:52ID:???荒らして申し訳ありませんでした。
心を入れ替えます。
0828nobodyさん
2007/07/24(火) 16:02:59ID:???板違い UNIXかLINUXあたりの板のWEBサーバー関連で聞くように
>824
SQLのコマンドラインで実行
ちなみに君も板違いDB板で聞くように
0829809
2007/07/24(火) 16:06:49ID:???ケツの穴が小さいルールが偽者を作りだしているように思えてなりません
他のスレではIDがなくても偽者が出たりしませんから…
0830nobodyさん
2007/07/24(火) 16:09:00ID:???そのうちの>>809みたいな夏厨とかが偽者で書き込む。
それを防ぐためにID強制
0831823
2007/07/24(火) 16:09:53ID:???みたいなやつが出てくるからね
別にトリップでもいいんだけど
0832nobodyさん
2007/07/24(火) 16:24:24ID:???途中で表示を打ち切られた(><)
前までそんなことなかったのに
最近新しいオプション出来たの?
0833823
2007/07/24(火) 16:24:48ID:dkSuvKse>>828
そちらの板ではWeb系の話はとんと・・・
ここの板でよいと思うのですが、確かにPHP限定の話ではないです。
どなたかわかる方、ポインタだけでもお願いします。
0834nobodyさん
2007/07/24(火) 16:25:07ID:Wdyxg0H6$hoge に30行ほどの文字列が格納されている
そのうち10行を書き出したい
$kazu = '1';
foreach ($hoge as $val) {
if ($kazu > 10) {
last;
}
print "$val\n";
$kazu ++;
}
としても最後まで書き出されてしまいます。
last,next,redoに変わるものがあるのでしょうか?
0835nobodyさん
2007/07/24(火) 16:29:13ID:Y3Stxh5iすいません
コマンドラインってのはどこにあるんでしょうか?
0837nobodyさん
2007/07/24(火) 16:38:01ID:Wdyxg0H6ありがとう。助かりましたm(_ _)m
0841nobodyさん
2007/07/24(火) 17:32:11ID:???結構前はそれで平和にやっていた。
しかし、>>830の言う流れでこうなった。
これは随分前からの流れなのでしょうがない。
嫌ならID無しにどんどん答えてあげればいいじゃない。
0843nobodyさん
2007/07/24(火) 19:11:50ID:???っていうか、continueっていうネーミングはおかしいだろ。
skipとかにしろよ。php作った奴で馬鹿???
0844nobodyさん
2007/07/24(火) 19:16:04ID:???0845nobodyさん
2007/07/24(火) 19:23:33ID:WZenHGY2そこに定義されているクラスをリストアップするプログラムを書こうとしています
include→get_declared_classes
で、そのファイル中のクラスは判定できますが、
includeしたファイルに書かれたclass以外のプログラムも実行されてしまうのが
マズイです。
何かいい方法はないでしょうか?
実行せずにパースする方法があればいいのですが…
0846845
2007/07/24(火) 20:52:18ID:???なんかCatchable fatal errorが出まくりですが一応動作するようデス
0848nobodyさん
2007/07/24(火) 21:00:23ID:???0849nobodyさん
2007/07/24(火) 21:14:12ID:???その通りですが荷が重すぎます
単にclass hogeという文字を見つけるだけでは済まないので…
バッカス・ナウア記法とかなんとかサパーリ
0850nobodyさん
2007/07/24(火) 21:18:17ID:???大した技術もない癖に、調子に乗ってなめたこと書き込んでんじゃねーぞ、コラ!!!
0852nobodyさん
2007/07/24(火) 21:30:10ID:WZenHGY2/hoge/moge/../fuga/poko
のようなパスから..をなくす感じです
0853nobodyさん
2007/07/24(火) 21:49:14ID:???PHP構文が載ってるところってありますか?
0855nobodyさん
2007/07/24(火) 22:42:14ID:???すれ違いだが教えてやる。
sqlite-2.8.16.tar.gzで、ウエブ全体から検索で、ググレ。
探しているうちにソースが見つかるだろう
0857nobodyさん
2007/07/24(火) 23:01:25ID:wuKYIYS0PHP4とPHP5を両方使ってるが、どっちだろうがまったく気にしてない俺がいる。
クラスで書いてないから?
0858nobodyさん
2007/07/24(火) 23:34:10ID:9eCs8dRbでは読めるけど
require_once 'HTTP/Request.php';
ではうまくいきません。
パスを通す方法教えてください。
くだらんな質問ですいません。
0859nobodyさん
2007/07/24(火) 23:45:46ID:9eCs8dRb.htaccessに
include_path = ".:/lib/PEAR::/lib/PEAR/HTTP::/lib/PEAR/NET"
こんな感じでぶちこむと動きました。
0861nobodyさん
2007/07/24(火) 23:57:25ID:???URLにクラスのメソッド入れる様な作り方しない限りは殆ど関係無いよ。
とりあえず関数作りまくって壁に当たって
クラス使い出して慣れてきてからでOK。
0862nobodyさん
2007/07/24(火) 23:58:30ID:???FWといいたいのかも知れないがまったく意味不明。
0863nobodyさん
2007/07/25(水) 00:14:01ID:???0864nobodyさん
2007/07/25(水) 00:47:14ID:???0866nobodyさん
2007/07/25(水) 04:48:42ID:???今や「さくら」といえば、SAKURA Internetの事だと口をそろえていう。
これが時代の変化なんだろうが、嘆かわしい限りだ。
露と落ち露と消えにしわが身かななにはの事も夢のまた夢
0867nobodyさん
2007/07/25(水) 08:19:49ID:???0868nobodyさん
2007/07/25(水) 08:47:17ID:???0869nobodyさん
2007/07/25(水) 08:57:42ID:???0870nobodyさん
2007/07/25(水) 09:26:39ID:???0871nobodyさん
2007/07/25(水) 11:30:50ID:???俺は書いたスクリプトに不具合が出ては困るから
レンサバ借りるときは必ずPHP5が入ってるやる借りるぜ
ってか、もうすぐ6出るのにまだ4入れてる鯖が多すぎて萎える
0872nobodyさん
2007/07/25(水) 12:39:08ID:F1E3rbc2これはセッションをつかって発行されたクッキーなのでしょうか?
それともふつうにsetcookieによって発行されるクッキーなのでしょうか?
また、両者のどちらが安全度が高いですか?
よろしければアドバイスお願いいたします。
0874nobodyさん
2007/07/25(水) 12:54:20ID:F1E3rbc20877nobodyさん
2007/07/25(水) 14:12:18ID:TgPM8Cfn<form name="form1" method="post" action="">
<textarea name="txt"></textarea>
<input type="submit" name="Submit" value="送信">
</form>
<?
var_dump(mb_detect_encoding($_POST['txt']));
var_dump(mb_convert_encoding($_POST['txt'], "utf8", "auto"));
?>
このように、文字コードをUTF-8にしようとしてみたのですが、
Unable to detect character encoding
とのエラーで、文字コードが変換されません。
正直今までにこのようなエラーがなくて戸惑っています。
mb_detect_encodingでの出力はFALSE
mb_convert_encodingではstring(6)で文字コードがShift-JISのままです。
一体何が原因でこのようなことが起きるのでしょうか?
宜しくお願いします。
【環境】
Windows Vista Home Premium
PHP 5.2.2
0878nobodyさん
2007/07/25(水) 14:23:30ID:???文字コードが分かってるんならautoではなく直接指定
変わる場合があるならmb_detect_orderで指定しておく
0879nobodyさん
2007/07/25(水) 14:30:30ID:TgPM8Cfnありがとうございます。
mb_detect_orderでsjisをトップにもってきて
mb_convert_encodingでautoをsjisにすると解決しました。
今までこのような問題がなかったので、
何が原因でこのような文字化けなどが起きるのかわからないのですが、
もしよろしければ教えていただけないでしょうか?
0880nobodyさん
2007/07/25(水) 14:32:10ID:???0881nobodyさん
2007/07/25(水) 14:33:15ID:???それも、またmb_系関数のマニュアルを熟読しろ。
「今までこのような問題がなかった」のが単にラッキー程度だと思っておいたほうがよろしい。
mb_コンバート系統はその程度の実装だ。
■ このスレッドは過去ログ倉庫に格納されています