【PHP】くだらねぇ質問はここに書き込みやがれpart2
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
05/01/09 06:01:24ID:tJkdKk+eお前の下らない質問に回答があるかも知れないスレッドです。
0039nobodyさん
05/01/10 01:57:18ID:???送信して検索結果をGETの結果(result.php?k=XXX)で表示したいのですが
なにか方法はありますか?
004239
05/01/10 02:31:38ID:???ありがとうございます。
0043nobodyさん
05/01/10 03:06:48ID:???例えば、
class hoge{
function make($name, $value) {
$this->$name = $value;
}
}
0044nobodyさん
05/01/10 04:17:00ID:FH4yAxR1<FORM ACTION="xxx.php" METHOD="POST" name="MainForm">
<SELECT NAME="q01">
<OPTION value="0">---お選びください---</OPTION>
<OPTION value="1type">1タイプ</OPTION>
<OPTION value="2type">2タイプ</OPTION>
<OPTION value="3type">3タイプ</OPTION>
</SELECT><br>
<INPUT TYPE="TEXT" NAME="q02" SIZE="30"><br>
<INPUT TYPE="TEXT" NAME="q03" SIZE="90"><br>
<INPUT TYPE="SUBMIT" NAME="Submit" VALUE="実行">
</FORM>
上のようにHTMLを記述し、下のプログラムからそれぞれq1,q2,q3の値を取り込
むプログラムを作ったつもりですが、実行してもq1の値だけ空で値を選択した値を
取り込みません。(q2,q3は正常に取り込んでくれます)
どのようにしたらq1の値も正常に読み込むようになりますか?
$q01 = $_POST["q01"];
$q02 = $_POST["q02"];
$q03 = $_POST["q03"];
0045nobodyさん
05/01/10 06:20:30ID:???そういうキャラクターのオブジェクトならOK。そうでないならNG。
ちなみに、生成済みのプロパティにアクセスしないためには__set()を
0046nobodyさん
05/01/10 06:27:53ID:???コードは間違ってないように見える。
var_dump($_POST['q01']);とやって変数の中身を確認してみたら。
0047nobodyさん
05/01/10 06:45:40ID:???004818
05/01/10 10:39:49ID:???なんとか自己解決しました。
echoを使って生成された配列の中身を確かめていたので勘違いしていました。
printを使ったら期待通りの値を得ることができました。
0049nobodyさん
05/01/10 11:43:04ID:???0050nobodyさん
05/01/10 12:29:13ID:???ありがとう。__set()って使ったことなかったけど、こういう事もできたんだな…。
色々とありがたいヒントも得ました。2つぐらいしか思いつかなかったパターンが倍に増えたかんじ。
0051nobodyさん
05/01/10 15:04:58ID:V+OrI4POできる事を確認し、日本語が化ける問題に対処しようとgoogleで調べました。
まず、fonts用のディレクトリを作成し、そこにsazanami-gothic.ttfなどのフォント
を入れて、jpgraph.phpで
DEFINE('TTF_DIR','/usr/local/lib/php/jpgraph-1.16/japanese_fonts/');
このように参照できるようにしました。
次に
// Japanese font
DEFINE("FF_JPN_START", 40);
DEFINE("FF_JPN_END", 50);
DEFINE("FF_GOTHIC", 40);
DEFINE("FF_MICHO", 50);
DEFINE("FF_JPN_DEFAULT", FF_GOTHIC);
DEFINE("TF_JPN_DEFAULT", "sazanami-gothic.ttf");
を追加しました。
0052nobodyさん
05/01/10 15:06:34ID:V+OrI4POfunction TTF() {
$this->style_names=array(FS_NORMAL=>'normal',FS_BOLD=>'bold',
FS_ITALIC=>'italic',FS_BOLDITALIC=>'bolditalic');
// File names for available fonts
$this->font_files=array(
FF_COURIER => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf',
FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'sazanami-gothic.ttf' ),
FF_GEORGIA => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf',
FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'' ),
FF_TREBUCHE =>array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf',
FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'sazanami-gothic.ttf' ),
FF_VERDANA => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf',
FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'' ),
FF_TIMES => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf',
FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'sazanami-gothic.ttf' ),
FF_COMIC => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf',
FS_ITALIC=>'', FS_BOLDITALIC=>'' ),
FF_ARIAL => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf',
FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'sazanami-gothic.ttf' ),
FF_GOTHIC => array(FS_NORMAL=>'sazanami-gothic.ttf',FS_BOLD=>'sazanami-gothic.ttf',
FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'sazanami-gothic.ttf'),
);
このように修正しました。グラフを描画させてみたのですが、インストール直後と同じで日本語が
化けてしまっています。どなたかアドバイスをいただけませんでしょうか。
0053nobodyさん
05/01/10 15:17:21ID:iCuvDIZ1みんなあらそうぜ!
0054nobodyさん
05/01/10 18:22:36ID:2LPzHX5sSSLの有効範囲がよくわからないのですが、
例えば、AサイトのSSLフォームでID/PASSを入力し、
SSL無しBサイトのPHP+MySQLと照合する、といった場合、
暗号化されてない状態で盗み見されてしまう可能性があるのでしょうか?
図では
A ----------------> B
という状況になると思うのですが、
この-----の部分もAでSSLを使用するだけで暗号化されるのでしょうか?
イマイチ理解できないのです
0055nobodyさん
05/01/10 19:00:53ID:MMRXO/4k$a =
"あいうえお
かきくけこ
さしすせそ
たちつてと";
変数$aの各行にアクセスしたいのですが、
どうすればいいでしょうか?
0059nobodyさん
05/01/10 19:17:08ID:???."WHERE subject LIKE '%".$search."%'"
." OR message LIKE '%".$search."%'";
$count_result = mysql_query($sql, $object);
$row = mysql_num_rows($count_result);
print($row);
でヒットした数が出ると思うのですがなぜか全部「1」になってしまいます。
なぜでしょうか?アドバイスお願いします。
0060nobodyさん
05/01/10 19:23:46ID:???mysql_num_rowsはSELECTで取得できる件数を返す。
つまり、COUNT(*) とやっている以上は必ず「1」になる。
006160
05/01/10 19:26:28ID:???件数っていうのはCOUNT(*)の値じゃなくてレコード数のこと。
SELECT COUNT(*) だと COUNTの結果が1レコードだけ返るから
mysql_num_rowsは常に「1」。
0062nobodyさん
05/01/10 19:28:22ID:???ありがとうございます。
trueが帰ってきてたんですね。
SELECT COUNT(*)をSELECT * に変えたところちゃんと表示できました。
0063nobodyさん
05/01/10 19:29:06ID:???0064nobodyさん
05/01/10 19:48:51ID:???てか、SELECT * にしてmysql_num_rowsを使うよりは
素直にSELECT COUNT(*) の値を取得したほうがいいんじゃないか?
0066nobodyさん
05/01/10 19:54:35ID:nGVUH1Bqecho '$test';
ってして
$test
って表示させたいのに実際はブランクになっちまうっすよ。
どうか夜露死苦
0067nobodyさん
05/01/10 19:54:52ID:MMRXO/4kvar_dump($_POST);
したら、カタカナの'ソ'の文字の後ろに
¥マークなどが付加されました。
ページのエンコーディングはshift-JISです。
PHPはmbstring.internal_encodingEUC-JPです。
なぜでしょうか?
0068nobodyさん
05/01/10 19:58:26ID:MMRXO/4k\$test
0069nobodyさん
05/01/10 20:00:24ID:nGVUH1Bqできたっすよ。
あんたすげーよ!!
アリガトさん
0070nobodyさん
05/01/10 20:04:04ID:???COUNT(*) ってのはヒット数を取得するための関数なんだから、
わざわざROWSを取得しなくてもCOUNT値を取得するほうが
本来の意味としては正しいんじゃないの?ってこと。
0071nobodyさん
05/01/10 20:04:18ID:MMRXO/4kおいおい
echo '$test';ホントこれか?
echo "\$test";これじゃないのか?
0072nobodyさん
05/01/10 20:08:08ID:nGVUH1Bqおいおい、あんまこまけーこと気にしてっとはげるぞ
ここに書くときちょっと書き間違えてるだけじゃねーか
じゃあな、ベイビーちゃん
0073nobodyさん
05/01/10 20:11:41ID:???0074nobodyさん
05/01/10 20:13:24ID:???いえ、それのやり方を聞いてるのです。
$result = mysql_query("SELECT COUNT(*)〜);
で$resultにint型として数値が入るならいいですけどそうじゃないですし。
0075nobodyさん
05/01/10 20:22:06ID:???例えば SELECT subject FROM b_table とかやって
subject の値を取得したい場合はどうするよ?
取得する対象が subject か COUNT(*) かの違いだけで、やり方は一緒。
そのやり方すら分からないなら、素直にマニュアル読んでらっしゃい。
0077nobodyさん
05/01/10 20:30:50ID:???0079nobodyさん
05/01/10 20:37:37ID:???だから普段はselect * formだ。
でもヒット数用の関数といわれると使わないとかなとか思ってしまった。
0080nobodyさん
05/01/10 20:38:07ID:???×form
;y=ー(゚д゚)・∵. ターン
0081nobodyさん
05/01/10 20:42:17ID:???0082nobodyさん
05/01/10 20:44:17ID:???PHP5は.php5という拡張子じゃないと動かないらしいんですが
.phpという拡張子で動くように設定できないでしょうか?
今の設定では.phpでPHP4が動くようです。
008359
05/01/10 20:47:39ID:???mysql_fetch_rowsを使うのですか?
それとも他に何か綺麗な方法があるのでしょうか。
0085nobodyさん
05/01/10 20:55:04ID:???mysql_fetch_rowsでも構わないし、
カウント値しか取得しないならmysql_resultでもいいと思う。
0086nobodyさん
05/01/10 21:02:22ID:???0087nobodyさん
05/01/11 00:22:14ID:???文書数が1500を少し超えてしまいました。
php使えばと言われたのですが、何をどうやっていいか全然わかりません。
参考にするべき書籍やサイトがあれば教えてください。
0091nobodyさん
05/01/11 01:14:12ID:kHqHs+F6どのように解消すればよいですか?
0092nobodyさん
05/01/11 01:23:59ID:???すいません。自分でもよくわかりません。
というかなんでPHPを使えといわれたのかもよくわかりません。
とりあえず今サイト内検索にmserchというCGIを使っていて、
一昨日lime-wというページランキングのCGIを置いたところ
ものすごく重くなったので、コンピュータ関係の仕事をしている親戚に電話すると
PHPのことを言われました。が、忙しいので相談に乗る時間がないとのことで
ここに書き込んでみましたが、PHPで何がどうなるのかもそもそもわかりません。
0094nobodyさん
05/01/11 01:55:38ID:???LimeCounter+Wのことでいいのか?
たぶん集計じゃなくてカウントが重いんだと思うが、アクセスがあるたびにログファイルをリライトしてるから、
ここがボトルネックのように見える。一アクセスの度に、千数百件のログデータを精査してまるごと更新する
のはページ数アクセス数が多いサイトでは無理がある。
しかし1500行程度でものすごく重くなることはないはずだけどなあ。
PHPで書き直してもプロセス立ち上げるロスが軽減される程度なんで、本質的な解決にはならんと思う。
例えばアクセス過多でログの更新が重くなってるなら、カウントとログ更新のロジックを変えてみるしか。
ページごとにログファイルを分ければ集計は遅くなるけど、アクセスの度に千数百件のデータを精査して
更新する負荷は軽くなる、とか。
0095nobodyさん
05/01/11 02:53:54ID:???晒してみます。
ttp://n2ch.lazy8.info/moe/
>>94
そのcgiです。1500というのはhtml文書の数ですが、それくらいでは重くならないと
いうことでしょうか。ちなみに今は削除しました。
今はhttp://lily.boo.jp/php/tool.php?id=pv-ranking を使ってみようか思っているのですが、
結局imgタグでのカウント、アクセスログの精査とやることは同じようなので、
ロジックを変えないと結局同じということになりそうな気がしてきました。
ただ、そのロジックの変え方というのがちょっとよくわからないです。
0096nobodyさん
05/01/11 02:56:33ID:???0097nobodyさん
05/01/11 04:28:46ID:???そっちのはページごとにログファイルを作ってるし、カウントアップ時にページリストを
読み込むこともないから、ずっとまともだと思われ。(Lime counterは毎回全リスト全ログを読み書きするというトンデモ仕様のようだ)
それでもログが壊れるなら、なんか別の原因だろうね。
0098nobodyさん
05/01/11 04:32:58ID:???何をどうしたいのか、箇条書きでいいからまとめてくれ。
一応、漏れが理解できたのは、
現在1500ほどhtml文書がある。
それぞれのファイルに対するアクセス数のランキングを
知りたかったのでLimeCounter+Wを入れてみたが使い物にならなかった。
知り合いに尋ねたところ「PHP使え」と言われたが、どうしたらいいかさっぱりわからん。
と言うところまで。
#DB使ってみるとかになるのかな。
0099nobodyさん
05/01/11 04:34:20ID:???ページの数だけログファイルがあるとなると、集計結果を表示するときのファイルIOがすごそうだけどな
ランキングが頻繁に参照されるなら集計データをキャッシュするようにしたほうがいいだろう
作者じゃないので口だけだが
0101100
05/01/11 08:12:31ID:???この板のやつは
0102nobodyさん
05/01/11 09:46:04ID:???ありがとうございます。
とりあえず新しいほうを試してみます。
>>98
ありがとうございます。整理してい頂いた
>それぞれのファイルに対するアクセス数のランキングを知りたかった
というのがやりたかったことです。
ただ、これと「PHPを使え」という指示がどうリンクするのかわからないです。
0103nobodyさん
05/01/11 09:56:56ID:???★ ★
☆ 質問者が返信する際は、名前欄に「最初に質問したレス番号」を入れろ ☆
★ ★
☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆
0104nobodyさん
05/01/11 10:43:39ID:???なさそうな気もするけどDB使ってるのを探したほうがいい。
あるいはHTMLファイルをグループごとにわけて、一ランキングリストあたりの登録ページを減らすとか、、、
0105nobodyさん
05/01/11 10:49:14ID:???ランキング一覧は手動で更新してるみたいだから大丈夫じゃね?
リクエストの度に大量のログを読むわけじゃないなら鯖管もおおめにみてくれるかもよ
0109nobodyさん
05/01/11 12:30:43ID:J22T2QN3phpでどう書けばいいですか?
0110nobodyさん
05/01/11 12:39:04ID:???0111109
05/01/11 12:46:01ID:???0112nobodyさん
05/01/11 16:12:17ID:/YomWmAv「\」を投稿するとエラーになってしまいます。
原因はエスケープしてないため、とは思うのですが
現在使っている参考書には「\」を「\\」に変換するなどの記述はありません。
これはどのような原因が考えられるでしょうか?
よろしくお願いします。
0116nobodyさん
05/01/11 17:32:23ID:???Smartyのインストール方法がよくわからなくて。
PHPは自宅のFedoraCore3サーバーにyumコマンドでインストールしました。
なので、個別にSmartyをダウンロードして展開・設定を行う、などの
手順が難しいです。
ご教授願えないでしょうか?
ちなみにPHP4の環境です。PHP5にしたいのですが、そうすると、
xoopsが動かなくなってしまいます。
PHP5環境には、下記サイトを参考に一度してみました。
http://www.sera.desuyo.net/php5/
0117112
05/01/11 17:42:16ID:???いえ、エスケープの仕方はわかってるのですが、
なぜ参考書のサンプルではエラーにならないのかと思って質問しました。
ソースを見なければわからないとは思うのですが、
「\」をエスケープした記述はなくて不思議に思ってます
0118nobodyさん
05/01/11 18:04:27ID:???mysql_escape_string()をやればmysqlのエラーになるような文字は全部エスケープできるのですか?
それと掲示板に表示する際問題なく表示するためには
mysql_escape_string,nl2br,strip_tagsを使えば大丈夫でしょうか。
0119nobodyさん
05/01/11 18:26:03ID:hD8Gr+rzただしmysql_escape_string()においてperlからphpsへの変更により
FedoraCore3をSmartyをダウンロードして展開・設定するには
天ぷらを$pairs = explode( ';', $hogeへ変換し関連させなければ
mysql_escape_string,nl2br,strip_tagsを使うことはできません
0120nobodyさん
05/01/11 19:02:17ID:???<?php 〜 ?>と書くように、という記事を見つけました。
でも実際XHTML部分の解釈はブラウザ側、PHP部分の解釈はサーバ側なんだから
XHTMLなんかにとやかく言われる筋合いはない!と思うのですがどうですか。
0122アップロードについて
05/01/11 20:01:43ID:/7ZGSc21環境はPHP4.3.8+Apache1.3.31+WindowsXP なのですが、下記のように書いた
datetime.phpの「送信」ボタンを押しても、「$upfile_name」や「$upfile_size」
が表示されず、何もアップロード出来ません。、「$upfile_name」や「$upfile_size」
を表示させるにはどうすれば良いのでしょうか。どなたか教えて下さい。お願
い致します。
<form method="POST" enctype="multipart/form-data" action="datetime.php">
<input type="hidden" name="MAX_FILE_SIZE" value="10000">
ファイル名を入力して下さい
<input size="30" type="file" name="upfile"><br
<input type="submit" name="submited" value="送信">
</form>
<?php
$MAX_FILE_SIZE=$_POST['MAX_FILE_SIZE'];
$upfile=$_POST['upfile'];
$submited =$_POST['submited'];
if($submited !="")
{
//ファイルの情報を表示する
print("ファイル名:$upfile_name<br>\n");
print("ファイルサイズ:$upfile_size<br>\n");
print("ファイルタイプ:$upfile_type<br>\n");
}
?>
0124nobodyさん
05/01/11 21:16:37ID:???2頁目以降にいくときにsearch.php?search=検索文字とGETで渡してるのですが
全角だと文字化けしてしまいます。
何かいい方法はないでしょうか?
0125nobodyさん
05/01/11 21:19:09ID:???0126122
05/01/11 21:19:38ID:/7ZGSc21ありがとうございます!下のように書いたら出来ました!マニュアルって、
ttp://www.phpspot.net のことですよね?
<?php
$submited=$_POST['submited'];
$uploadfile =$_FILES['userfile']['name'];
if($submited !="")
{
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
print($_FILES['userfile']['name'] . "<br>");
print($_FILES['userfile']['size'] . "<br>");
print($_FILES['userfile']['type'] . "<br>");
print("<a href=\"" . $uploadfile . "\">$uploadfile</a><br>");
}
0129nobodyさん
05/01/11 23:18:56ID:blFDrsTZ相場は大体おいくらでしょうか?
0130nobodyさん
05/01/11 23:22:42ID:???0131nobodyさん
05/01/11 23:24:06ID:blFDrsTZ0132nobodyさん
05/01/11 23:25:40ID:???0135nobodyさん
05/01/12 05:58:33ID:aUwThzOF相対パス(realpath("../dir/file.ext"); )とかだとうまくいくんですが、
絶対パス(realpath("/dir/file.ext"); )とかだとダメです_| ̄|○
(c:\inetpub\wwwroot\dir\file.extが返ることを期待してるのにfalseが返る)
どうやらルート(/)がC:\と解釈されちゃうみたいなんですが…
何か設定が悪いんでしょうか? php.iniで(doc_rootをc:\inetpub\wwwrootにしてもダメでした)
要はASPのServer.MapPathと同じことをしたいんです。
環境はWIN XP+IIS+PHP4.3.10です。よろしくお願いします。
0137nobodyさん
05/01/12 06:43:57ID:???当たり前
0138nobodyさん
05/01/12 10:36:03ID:2Rwu3ejIどのように解消すればよいですか?
0139nobodyさん
05/01/12 10:50:06ID:5IhIpMX9こんにちわ とか うぃっす とか こんちゃーっす とかいろんなバリエーションで出したいんです
とりあえず
<?php
print('こんにちは','うぃっす','こんちゃーっす');
?>
これでやってみたんですがだめでした(´・ω・`)
だれかおしえてください
■ このスレッドは過去ログ倉庫に格納されています