【PHP】下らねぇ質問はここに書き込みやがれ 27
■ このスレッドは過去ログ倉庫に格納されています
00011様
2006/08/23(水) 00:54:52ID:uM5Jzzy0まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄に何も記述しないでください)
2. サーバーのOS、WebサーバーとPHPの種類やバージョン等を明記すること。
3. 己の行った操作、変更などを詳しく明記すること。
4. エラーメッセージはそのまま表記すること。「エラーが出ます」では絶対分かりません。
5. 質問者としても態度をわきまえること。
6. 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・質問者は必ずIDを表示させてください。(メール欄に何も記述しないでください。)
・2回目以降は最初に質問した際のレス番号を名前欄に入れてください。
(逆に回答者は質問者に対して>>(アンカー)をつけて答えてください。)
・解決しなくても回答をもらった場合はお礼を言う。
(荒らし、煽りは除く。逆に煽られたときも、無闇に反論せずスルーすべし)
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークはそれぞれの該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
・オブジェクト指向については良スレがないから本を買え。理解できないならムリに使うな。
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
0353nobodyさん
2006/08/28(月) 20:00:19ID:???テストするのが面倒なのでマニュアルの定数のページだけ見て答えるが、
DIRECTORY_SEPARATOR じゃまいか?
0355nobodyさん
2006/08/28(月) 20:03:27ID:B31oQAMbねぇ、in_array って何さ? 意地悪しないでいい加減教えろよっ
0357nobodyさん
2006/08/28(月) 21:58:27ID:???何で>>347に聞いてるのか分からんがコレドゾー
つ【http://jp2.php.net/in_array】
0359nobodyさん
2006/08/29(火) 01:35:18ID:???登録ボタンを押したあとINPUTのTEXTの中の文字列をurlencodeするのってどうやればいいんでしょう?
なんか、POSTで文字列を取ってきたら一部漢字が文字化けしちゃうんです。
0363nobodyさん
2006/08/29(火) 02:04:58ID:???0364359
2006/08/29(火) 02:08:11ID:???<input type="text" name="aaa">
<input type="submit" value="OK">
こうなってる奴のOKを押したあと
再度よみこむ前に変換作業などするにはどうしたらいいのか分からなくて。
0365nobodyさん
2006/08/29(火) 02:46:04ID:???どうせ、お前の言ってる文字化けとかいうのは「表\示」とかそんなレベルだろ。
0366359
2006/08/29(火) 03:02:21ID:???をやるとすでに文字化け(?)してるんですよ。
化けるのは
予→?
予定→予定
無→?
無事→無事
無敵→?遵・BR>
こんな感じです。
表示は表\示には化けませんでした。
というか、たぶんそれ以前の問題で
INPUTのtextの値をどうやっていじって変換するのかが分からない状態でして。
0367nobodyさん
2006/08/29(火) 03:03:24ID:???つくづくバカだなお前も。
PHPの勉強をする前に、質問の仕方を勉強しろ。
俺たちはエスパーじゃないから、お前の心の中を読み取ることは出来ない。
0368nobodyさん
2006/08/29(火) 03:10:39ID:???多分、してないんだろう。
0369nobodyさん
2006/08/29(火) 03:12:56ID:???<META http-equiv="Content-Type" content="text/html; charset=EUC-JP">
これは書いてるんですけど他にも指定が必要です?
0370nobodyさん
2006/08/29(火) 03:16:27ID:???Winな「メモ帳」で
<?php
phpinfo();
?>
を呼ばれるファイル名で保存してサーバにアップ
呼ぶファイルを呼び出してsubmitすると下のほうにPOSTされた
データが表示されるからどうなってるか確認
0372nobodyさん
2006/08/29(火) 03:37:51ID:???php.ini の mbstring.encoding_translation や mbstring.http_input、mbstring.http_ouput あたりの設定かもな。
0373nobodyさん
2006/08/29(火) 03:45:10ID:???phpinfoを見ると
mbstring.encoding_translation on on
mbstring.http_input auto auto
mbstring.http_output EUC-JP EUC-JP
mbstring.internal_encoding EUC-JP EUC-JP
になってました。
0374nobodyさん
2006/08/29(火) 06:25:04ID:N+TQF1f0$l = "2ch\nhtml\nxml\nphp\nperl";
explode("\n",$l);
$fp = fopen(log.txt , w);
while(!feof($fp)){
fputs($fp , $l[$b]);
$b++;
}
fclose($fp);
こんな風にしてみたんですが、実行すると、「致命的なエラー」が発生してしまいます。
fputs($fp,$l[$b]);
の変がおかしいと思うのですが、原因がわかりません。
どなたか教えてください。、
0376nobodyさん
2006/08/29(火) 06:48:28ID:???0377nobodyさん
2006/08/29(火) 06:56:09ID:???このループは読み込む時に使う
foreachをexplodeで出来た配列に使うべし
0378nobodyさん
2006/08/29(火) 06:59:08ID:???$l = "2ch\nhtml\nxml\nphp\nperl";
$fp = fopen('log.txt', 'w');
fputs($fp, $l);
fclose($fp);
でよくね?
0379nobodyさん
2006/08/29(火) 07:11:38ID:???入力文字が短すぎて文字コードの自動判定に失敗している
入力文字コードを変換する必要はまずないので
mbstring.encoding_translation を offにしる
php.iniも.htaccessもいじれないならformの一番最初に判定用のダミーデータを入れる
<input type="hidden" name="autodetect" value="美乳">
0381nobodyさん
2006/08/29(火) 10:22:40ID:N+TQF1f0>>375
え。、、私explode関数すごい変な思い違いしてたかもしれないです。
$lを\nで区切ってくれるような関数だった気が・・・
>>376
やってみたんですが・・・
>>377
そうなんですか
すいません無知で><
>>378
確かにそれで良いのですが、最終的にフォームから送信された名前とコメントを結合して云々候みたいな
ことがしたいので、できればexplode関数使いたいのです。
0382nobodyさん
2006/08/29(火) 10:31:05ID:???explodeは確かに区切る関数だが、区切った結果は戻り値で返る。
× explode("\n", $l); // $lは何も変化しない
○ $l = explode("\n", $l); //$lは改行ごとに分割された配列に変わる
0383nobodyさん
2006/08/29(火) 10:34:57ID:???あとちなみに、「致命的エラー」になるのはwhile()の条件のせいだと思う。
それだと絶対に終了できないので永久ループになる。
0384nobodyさん
2006/08/29(火) 10:37:17ID:N+TQF1f0>>375さん、ありがとうございます><
解決しました^^
ありがとうございます
0386nobodyさん
2006/08/29(火) 11:22:48ID:???たとえば3行分のデータがあるとして、
1.こぶた
2.ろば
3.ちんぱんぢー
ある指定した行を消す場合はどのようにしたらいいのでしょうか?
0387nobodyさん
2006/08/29(火) 11:26:20ID:???0389nobodyさん
2006/08/29(火) 12:07:31ID:???$fp = fopen("log.txt" , "w");
文字列は引用符でくくれ
お前にはerror_reporting(E_ALL);を進める
0390nobodyさん
2006/08/29(火) 12:34:04ID:OWMs78pdなどでインストールした場合、php を make した時の configure オプションってどうやって調べればいいのでしょうか?
とある理由により、PHPをバージョンダウンさせたいのですが、既存のPHPがどのようなconfigureオプションでmakeされたのかがわからないので、どうやって調べたらいいのかなぁ、、、と彷徨っているところです...
0391nobodyさん
2006/08/29(火) 12:38:38ID:K0UosIpnphpinfo();
0393nobodyさん
2006/08/29(火) 13:00:47ID:???0396nobodyさん
2006/08/29(火) 13:34:47ID:???別に使えない命令じゃないのに避けてしまいそうなオレがいる
0397nobodyさん
2006/08/29(火) 14:32:44ID:???<input type="checkbox" name="fC[]" value="hoge"> hoge <br>
<input type="checkbox" name="fC[]" value="foo"> foo <br>
<input type="checkbox" name="fC[]" value="bar"> bar <br>
<input type="submit" value="OK">
</form>
でfc[]を$_POSTで取得したいのですが、
$a = $_POST[fc[]]では取得できませんでした。
どなたかご教授お願いいたします。
0399nobodyさん
2006/08/29(火) 14:49:10ID:???0403nobodyさん
2006/08/29(火) 14:55:17ID:jUXXd5I9extract($_POST)と展開して行いたいと思っていますがセキュリティ的に見て危ない点とかありますでしょうか??
0404397
2006/08/29(火) 14:56:33ID:???0405397
2006/08/29(火) 14:57:31ID:???0407397
2006/08/29(火) 15:16:06ID:???<form action="hoge.php">
<input type="checkbox" name="fC[]" value="0"> hoge <br>
<input type="checkbox" name="fC[]" value="1"> foo <br>
<input type="checkbox" name="fC[]" value="2"> bar <br>
<input type="checkbox" name="fC[]" value="2"> bar <br>
<input type="submit" value="OK">
</form>
<?php
if (isset($_POST['fC[]'])) {
$array = file(hoge.txt);
$del = $_POST["new_data[]"];
array_splice($del_array,$del]);
}
?>
チェックしたところのデータを配列から消したいのですが、これだとうまくいきませんでした。
不適切な箇所ございましたらご指摘お願いいたします。
0409nobodyさん
2006/08/29(火) 15:39:15ID:???0410nobodyさん
2006/08/29(火) 15:41:41ID:???鏤?
な感じの文字化けが出てくることがあるんだけど、どんなときに出るかわかる人います?
途中でUTF8で書いてるphpを呼んでるから出るのかな?
0414397
2006/08/29(火) 16:13:38ID:???修正してみました。
<form action="hoge.php">
<input type="checkbox" name="fC[]" value="0"> hoge <br>
<input type="checkbox" name="fC[]" value="1"> foo <br>
<input type="checkbox" name="fC[]" value="2"> bar <br>
<input type="checkbox" name="fC[]" value="2"> bar <br>
<input type="submit" value="OK">
</form>
<?php
if (isset($_POST['fC'])) {
$array = file(hoge.txt);
$del = $_POST["new_data"];
array_splice($del_array,$del]);
}
?>
array_spliceの使い方ま間違えているのでしょうか?原因がわかりません。
ご教授おねがいいたします。何度も長文すみません。
0415nobodyさん
2006/08/29(火) 16:21:48ID:???$_POST['fC'] を isset() 以外で使って無いじゃないか。
$_POST['new_data'], $del_array がどこから来てるかも分からないし。
原因どころか、何がしたいか分からない。
何でもここで訊く前に、しばらく自分で考えた方がいいぞ。
0416nobodyさん
2006/08/29(火) 16:39:49ID:???if($_POST['fC'][$i] === "") { unset($_POST['fC'][$i]); }
}
0417nobodyさん
2006/08/29(火) 16:44:05ID:???if($_POST['fC'][1] !== 1) { unset($_POST['fC'][1]); }
if($_POST['fC'][2] !== 2) { unset($_POST['fC'][2]); }
if($_POST['fC'][3] !== 2) { unset($_POST['fC'][3]); }
print_r($_POST['fC']);
0421397
2006/08/29(火) 17:56:30ID:???やりたいことは、WEBメールにあるような、
チェックボックスにチェックを入れてsubmitボタン押すと
チェックされたデータを削除する動作を行いたいです。
データはテキストファイルに一行ずつ格納してあります。
何度も申し訳ございません、ご教授願います。
0422nobodyさん
2006/08/29(火) 18:00:36ID:???いや、まず動かしてから質問しようよってことだと思うのだが・・・
わかりません以前の問題があるから突っ込まれているんだと思うんだけど(;´Д`)
0423nobodyさん
2006/08/29(火) 18:09:01ID:???$_POST['fc']には何が入るんだ?
今一、分からんが数字でとってきてあとはその行を削除すればいいんじゃね?
一行ずつとは?
1つのtextファイルに1行毎に入っているのか、1行のtextファイルがなんこもあるのか?
0424397
2006/08/29(火) 18:11:22ID:???<input type="checkbox" name="fC[]" value="0"> hoge <br>
<input type="checkbox" name="fC[]" value="1"> foo <br>
<input type="checkbox" name="fC[]" value="2"> bar <br>
<input type="checkbox" name="fC[]" value="2"> bar <br>
<input type="submit" value="OK">
</form>
<?php
if (isset($_POST['fC'])) {
$list = file($file_name);
$flg = $_POST["fC"];
foreach($list as $line) {
$k = 0;
if($k != $del_f) {
array_splice($list,$k,1)
}
++$k;
}
}
?>
何度もお見苦しくて申し訳ございません。新しくソース書いてみました。
不適切な記述がございましたらご指摘ください。
0425397
2006/08/29(火) 18:16:52ID:???一つのファイルに1行毎にデータが格納されてます。
何かひっかかる箇所がございましたらご指摘ください。
0426nobodyさん
2006/08/29(火) 18:44:53ID:???> 何かひっかかる箇所
ほぼ全部。
$flgは何?$del_fってどこから来た?$lineは何のために存在するの?
そもそも、そのチェックボックスは複数選択できるよね?だったら、そんなコードで動くわけない。
(まあ、なんとなくやりたいことは伝わったけどw)
foreachするのは $list ではなく $_POST['fC'] のほうが良くね?
0427nobodyさん
2006/08/29(火) 18:53:36ID:???要はtextファイルにある掲示板のログをチェックボックス式で消すって感じだろ
$del_file = $_POST['fc'];
$list = file($file_name);
if(is_numeric($del_file)) {
if($del_file <= $list) {
foreach($del_file as $number) {
unset($list[$number]);
}
}
}
エラーでるかもしらんがうまくアレンジ
0428427
2006/08/29(火) 18:57:58ID:???$count = count($list);
foreach($del_file as $number) {
if(is_numeric($number)) {
if($number<=$count) {
適当にこんな感じにしる
0429nobodyさん
2006/08/29(火) 20:24:07ID:???そもそもここからしておかしい気がする今日この頃
0430nobodyさん
2006/08/29(火) 20:49:25ID:???ありがとうございます。
かれこれ9時間くらいこの問題に向かってようやく解決できました。
本当にありがとうございます。
0431nobodyさん
2006/08/29(火) 20:52:51ID:5eCmr2IIwebでリアルタイムモニターの表示のようなものを考えているのですが、
while(1) {
print($a);
flush();
sleep(1);
ー処理ー
}
として、ブラウザは1秒置きに$aの値が表示されるのですが、
表示が流れていってしまいます。常に最新の値だけを1個表示したい
のですがどうすればいいでしょうか?
0432nobodyさん
2006/08/29(火) 21:02:55ID:???0433nobodyさん
2006/08/29(火) 21:03:40ID:???0434433
2006/08/29(火) 21:05:03ID:???的外れでしたらすみません。
0436nobodyさん
2006/08/29(火) 21:18:46ID:???と推測してみる
0438nobodyさん
2006/08/29(火) 21:21:15ID:???0439nobodyさん
2006/08/29(火) 21:24:05ID:???いまさらの発言にワロタw
0440431 ID:5eCmr2II
2006/08/29(火) 21:24:18ID:5eCmr2IIあとで試して見ます。
l
0441nobodyさん
2006/08/30(水) 02:30:27ID:IYdUp6kA再帰的に読み込んだphpに飛ぼうとすると
Access forbidden!ってでるんだけど、どういうこと?
0442nobodyさん
2006/08/30(水) 02:44:20ID:???お前の言っている意味が良く分からん。全然html関係ないんじゃないの?
パーミッションの設定がおかしいだけだろ。
PHPファイルの場合ちゃんと実行権限あるのか?フォームで自分にデータを
渡して処理しようとしてるんじゃないの?
0443nobodyさん
2006/08/30(水) 03:00:37ID:???もっと勉強しまっす。
0444nobodyさん
2006/08/30(水) 04:13:36ID:f9Q+oUlSPHPのバージョンは4.4.2です。サーバーはxreaです。
どうかよろしくお願いします。
0445nobodyさん
2006/08/30(水) 04:29:06ID:???fgetとループを使うとかfileで全行取得してから配列をいじるとか
0446nobodyさん
2006/08/30(水) 04:31:22ID:???0447nobodyさん
2006/08/30(水) 05:54:00ID:r1SUfqGuパーミッションの変更ってどうやってますか?
0448nobodyさん
2006/08/30(水) 09:06:21ID:???0449nobodyさん
2006/08/30(水) 10:27:26ID:???0450nobodyさん
2006/08/30(水) 11:38:50ID:???そのシステムはUNIXのものより複雑になっており、
各ファイル/ディレクトリのプロパティにおいて、
それぞれのアクセス権を一覧・変更(権限がある場合のみ)できる。
Windows NT/2000/XPシステムにおけるアクセス権を
パーミッションと呼ぶことはあまりない。
0451nobodyさん
2006/08/30(水) 11:49:58ID:???ただいま自分のサイトにページャーをつけようと格闘してます。
いまのところ以下のようなとてもスマートとは思えないPHP構文でなんとか
動作はしてますが、これからデータベースの件数がどんどん増えるたびに
そのつど20件ごとの構文を付け足していかなければいけないと思うと鬱になりますw
ごらんの通り今は20件ごとにいちいち設定してます。
これを件数が何件あろうと適応できるようにするのは可能でしょうか?
先輩方、お知恵をお貸しください。
0452nobodyさん
2006/08/30(水) 11:50:49ID:???$Data=$Arr;
$P=$_GET["p"];
$url = "../hogehoge.php?id={$id}&p=";// リンクURL
if ($P <= 1) $alpha = 1 - $P + 1;
for ($i = $P - 1; ($i <= $P + 1 + $alpha) && ($i <= 2); $i++) {
if ($i < 1) continue;
if ($i - 1 == $P) {
$preTag = "<strong>";
$aftTag = "</strong> | ";
}
else {
$preTag = "<a href='".$url.($i - 1)."'>";
$aftTag = "</a> | ";
}
if (sizeof($Arr) > 20) { // 20件まで
$links .= $preTag.$i.$aftTag;
}
}
if ($P <= 1) $alpha = 1 - $P + 1;
for ($i = $P - 1; ($i <= $P + 2 + $alpha) && ($i <= 3); $i++) {
if ($i < 1) continue;
if ($i - 1 == $P) {
$preTag = "<strong>";
$aftTag = "</strong> | ";
}
else {
$preTag = "<a href='".$url.($i - 1)."'>";
$aftTag = "</a> | ";
}
if (sizeof($Arr) > 40) { // 40件まで
.............
■ このスレッドは過去ログ倉庫に格納されています