- 1 名前:nobodyさん mailto:sage [2007/10/25(木) 16:04:31 ID:???]
- このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 PHP使いが優しくコメントを返しますが、 お礼はPHPの布教と初心者の救済をお願いします。 PHP Home Page www.php.net/ jp.php.net/ ---前スレのテンプレここまで--- 前スレ: くだすれPHP(超初心者用)2 pc11.2ch.net/test/read.cgi/php/1164617202/ 適当に関連スレ(マルチはだめぽ) 【PHP】下らねぇ質問はここに書き込みやがれ 57 pc11.2ch.net/test/read.cgi/php/1193062236/ △▲ WebProg 初心者の質問 Part16 ▼▽ pc11.2ch.net/test/read.cgi/php/1187729623/ 完走したら、雑談スレで待機でどうでしょう 【総合】 Webprog板質問雑談スレッド 1 pc11.2ch.net/test/read.cgi/php/1131016915/
- 485 名前:nobodyさん mailto:sage [2008/03/08(土) 14:46:24 ID:???]
- まず
||と&&の使い方を覚えよう 466でも書いたけど(最初のifで要らん部分あるけどw) ループ中にある if ($items[0] == $_POST['delradio'] && $items[4] == $_POST['delkey2'] || $items[0] == $_POST['delradio'] && 'masterpass' == $_POST['delkey2']) { これは変です(処理的には通るけど) if ($items[0] == $_POST['delradio'] && ($items[4] == $_POST['delkey2'] || 'masterpass' == $_POST['delkey2'])) { やりたい事は多分これ んで、POST内容は意図したものがきてるの?
- 486 名前:nobodyさん mailto:sage [2008/03/08(土) 14:52:21 ID:???]
- >>484
お前に言ってないw
- 487 名前:465 mailto:sage [2008/03/08(土) 16:30:22 ID:???]
- なにやらすごい間違いをしてました・・・・・・・・・
$items[4]がパス格納部じゃなくて$items[3]でした・・・・・・・・ 今から皆さんにご指摘頂いた部分の修正に入ります、 本当にすいませんでした。
- 488 名前:nobodyさん mailto:sage [2008/03/08(土) 16:36:16 ID:???]
- >>486
俺にか?
- 489 名前:465 mailto:sage [2008/03/08(土) 16:38:20 ID:???]
- なんだか喧嘩させてしまったようで申し訳ない・・・・・
- 490 名前:nobodyさん mailto:sage [2008/03/08(土) 17:05:38 ID:???]
- 架空請求の詐欺師が特定されてるよw
2ch.pne.jp/img/jpg/w_h/img_cache_d_180941_1_1204957189_jpg.jpg 【ユビキタス銀河】 詐欺師プログラマー 武田洋幸 pc11.2ch.net/test/read.cgi/antispam/1204457908/l50
- 491 名前:nobodyさん mailto:sage [2008/03/08(土) 17:42:02 ID:???]
- 何度も投稿すいません、掲示板で書き込んだ後ブラウザの更新ボタン押すと
もう一度書き込まれてしまうのですがこれを防止するのは2重書き込み防止処理だけでいいのでしょうか? これだとたまに別の人が書き込んだ後に更新押した場合 書き込まれちゃいますよね。 皆さん過去ログの内容走査処理したりしてるのでしょうか?
- 492 名前:nobodyさん mailto:sage [2008/03/08(土) 17:53:28 ID:???]
- >>491
書き込んだ後ブラウザを強制的に閉じるようにしたら更新できなくなるよ
- 493 名前:nobodyさん mailto:sage [2008/03/08(土) 18:01:26 ID:???]
- そんな〜、ドラえも〜ん!
- 494 名前:nobodyさん mailto:sage [2008/03/08(土) 18:26:21 ID:???]
- a.html←フォーム
b.php←post先 c.php←投稿完了しました表示 b.phpで投稿完了したら header('Location : example.com/c.php'); これでa.htmlまで戻るとかで戻らない限り2重投稿はある程度防げる
- 495 名前:nobodyさん mailto:sage [2008/03/08(土) 18:29:46 ID:???]
- なるほど、そういうことでしたか、取り乱しました。
html作成せずにphp1つだけで全部やろうとしてもややこしそうですね・・・・・
- 496 名前:nobodyさん mailto:sage [2008/03/08(土) 18:50:31 ID:???]
- >>495
別にhtml作らなくてもできるけど ファイルは分けたほうが後々良いよ
- 497 名前:nobodyさん mailto:sage [2008/03/08(土) 21:58:57 ID:???]
- >>495
だまされるな! ドラえもん呼ぶのが正解だ
- 498 名前:nobodyさん mailto:sage [2008/03/08(土) 23:16:31 ID:???]
- htmlってどうやって作るんでしたっけ?
なんかリファレンス読んでも見つからないのですが。
- 499 名前:nobodyさん [2008/03/09(日) 01:35:03 ID:BZEq18rG]
- target.phpをインラインフレームで表示するためのページをget.phpとします
その際にをtarget.phpへ送るリファラを example.com とするにはどうしたらいいのでしょうか。 過去ログを探して、 ヘッダに ""Referer: example.com\r\n" を追加すればいいと書いてあったのですが、 どのように追加したらいいのかがわかりません location みたいな書き方が思い浮かんだのでやってみましたができませんでした。 正しいやり方を教えてください。お願いします。 ------------------------------------- 【get.php】 <?php header("Referer: example.com\r\n"); ?> <iframe src="target.php"> </iframe> ------------------------------- 【target.php】 <?php echo $_SERVER["HTTP_REFERER"]; ?> ------------------------------- get.phpの実行結果 ****.jp/get.php
- 500 名前:nobodyさん mailto:sage [2008/03/09(日) 02:10:54 ID:???]
- >>499
【get.php】 <?php echo '<iframe src="target.php?referer='.$_SERVER["HTTP_REFERER"].'"></iframe>'; ?> 【target.php】 <?php echo $_GET["referer"]; ?>
- 501 名前:nobodyさん [2008/03/09(日) 02:31:20 ID:BZEq18rG]
- >>500
せっかく答えていただいたのに恐縮ですが、 それはget.phpで取得したリファラをtarget.phpへgetメソッドで渡す方法ですよね 私が知りたいのは、 get.phpでtarget.phpを開くけれども、 target.phpで取得されるリファラはget.phpではなく、example.com にしたいということなのです 印象の良くない言葉なので使いたくはなかったのですが、つまり、リファラ偽装ということです 書き方悪くてすいません
- 502 名前:nobodyさん mailto:sage [2008/03/09(日) 02:41:06 ID:???]
- >>501
example.com これは固定値かそれともget.phpで取得できる値かどっち? get.phpで取得するリファラの値なら方法は無いよ? get,php内でgetのリクエストをtarget.phpに宛てに投げて その時のヘッダにリファラ偽装して渡すとかなら可能だけど
- 503 名前:nobodyさん [2008/03/09(日) 03:08:23 ID:BZEq18rG]
- >>502
説明不足で本当にすいません 固定値です
- 504 名前:nobodyさん mailto:sage [2008/03/09(日) 04:55:14 ID:???]
- >>503
ファイルに対してアクセスあった場合 強制的に.htaccessとかでSetEnvとかかなぁ・・・ もしiframeのが別のサイトなら getのリクエスト投げた方が早い
- 505 名前:nobodyさん mailto:sage [2008/03/09(日) 05:16:16 ID:???]
- 変数に0入れてその後の分岐にNULLかどうかとか入れたら
0はNULLやfalseと判定されますか? その変数を変数-1としても-1とはならない?
- 506 名前:nobodyさん mailto:sage [2008/03/09(日) 05:24:57 ID:???]
- ===で比較すれば判定されない。
変数=0 変数=変数−1としたら変数の中身は−1になる。
- 507 名前:nobodyさん mailto:sage [2008/03/09(日) 05:29:10 ID:???]
- 型の自動変換に頼った比較は避けた方がベター。
- 508 名前:nobodyさん mailto:sage [2008/03/09(日) 05:31:25 ID:???]
- どうもすいません、ありがとうございました。
- 509 名前:nobodyさん [2008/03/09(日) 14:05:48 ID:BZEq18rG]
- >>504
いろいろなアドバイスありがとうございます target.phpが別のサイトなら、 target.phpのソースは <?php echo $_SERVER["HTTP_REFERER"]; ?> なのは弄りようがないわけですが、 target.phpの $_SERVER["HTTP_REFERER"]の値をexample.comであると認識させるためには、 get.phpからどうやってgetのリクエストを投げればいいのでしょうか
- 510 名前:nobodyさん mailto:sage [2008/03/09(日) 14:17:24 ID:???]
- >>509
GETと環境変数は別
- 511 名前:nobodyさん [2008/03/09(日) 14:34:13 ID:BZEq18rG]
- >>510
ありがとうございます つまり、getでリクエスト投げても、相手で表示される環境変数は変わらないわけですよね どうすれば get.phpでインラインフレームでtarget.phpを表示し、 target.phpの $_SERVER["HTTP_REFERER"]の値をexample.comtにできるのでしょうか やり方がさっぱりわからないのです
- 512 名前:nobodyさん mailto:sage [2008/03/09(日) 15:24:27 ID:???]
- >>511
getでリクエスト投げる時にリファラ偽装すれば リファラには固定値を入れる事ができる だがインラインフレームでやるのは無理 それをインラインフレームでやる必要あるの? どうしてもやりたいなら .htaccessにSetEnvってのがあって それを使ってtarget.phpにアクセスがあった場合 強制的にリファラを書き換えてやれば良い
- 513 名前:nobodyさん [2008/03/09(日) 16:02:31 ID:BZEq18rG]
- >>512
インラインフレームでしようとしていた理由は、 自分がやりたいことを考えた時に一番実現しやすそうだと思ったからです それが無理ならばインラインフレームでやることはありません >getでリクエスト投げる時にリファラ偽装すれば ここのやり方を教えてもらえないでしょうか getはわかりますが、リファラ偽装の部分がわからないのです
- 514 名前:nobodyさん mailto:sage [2008/03/09(日) 16:26:44 ID:???]
- >>513
pearのhttp_requestかcurlが楽じゃないかな 普通にfsockopenとかでopenして投げる事もできるけど <?php $request .= "GET / HTTP/1.0\r\n"; $request .= "Host: localhost.jp\r\n"; $request .= "Content-Type: application/x-www-form-urlencoded\r\n"; $request .= "Accept: */*\r\n" . "Referer: hogehoge.jp/\r\n" . "User-Agent: DoCoMo/2.0 Fa2(c100;TB;W28H15)\r\n"; $request .= "\r\n"; $request .= "\r\n"; $fp = fsockopen("yahoo.co.jp", 80, $errno, $errstr, 30); fputs($fp, $request); $response = ""; while (!feof($fp)) { echo fgets($fp, 4096); } fclose($fp); ?> こんな感じでやふーのトップをもってこれる
- 515 名前:nobodyさん [2008/03/09(日) 16:49:24 ID:BZEq18rG]
- >>514
ありがとうございます 私のくどい質問に回答続けてくれた方に感謝します
- 516 名前:nobodyさん [2008/03/10(月) 01:54:10 ID:HGPlOVh9]
- PHP + MySQL でスレッド式掲示板を作りました。
スレッド毎にテーブルを作成し、そのテーブルにコメント(&投稿者名など)を記録、 すべてのテーブルを管理するテーブルに最終投稿日時などを記録して、スレッド順位などを決めます。 以下、コメントを投稿した時の部分のスクリプト。 $comm = addslashes($_POST['comm']); //コメント $id = addslashes($_POST['id']); //テーブルID $name = addslashes($_POST['name']); //投稿者名 if($_POST['sage'] == NULL){$sage = 0;} else {$sage = 1;} if($name == NULL){$page_disp = "名前を入力してください。"; } else { if($comm == NULL){$page_disp = "本文を入力してください。"; } else { insert_comment($id,$name,$comm,&$seq,$res_dbcon,&$result); //スレッド(テーブル)にコメントを書き込み if($result == FALSE){$page_disp = "投稿に失敗しました。"; } else { update_temp_table($id,$sage,$seq,$res_dbcon,$result);//管理テーブルに投稿日時などを記録 $page_disp = "投稿しました。";}}} PCからのアクセスと、DOCOMO、auからは期待した通りの動作をしていますが、softbank携帯からのみ、動作がおかしくなっています。 症状としては、$name、$commといった変数を受け取れず(?)、テーブルには各カラムのNULLになったレコードが追加される。 テーブルの更新、レコードの追加は行われているので、CURRENT TIMESTAMPなどはちゃんと入っている。 管理テーブルは更新されているので、各変数のNULLのチェックは通過している。 という状態です。スクリプト上におかしい箇所などあるでしょうか? ちなみにPHP、MySQLの勉強は先月始めたばかりで、この掲示板のスクリプトは、本などを読んで作ったオリジナルのものです。 よろしくお願いいたします。
- 517 名前:nobodyさん mailto:sage [2008/03/10(月) 02:14:45 ID:???]
- すみません。サブルーチンの中身を書いてなかったです。
function insert_comment($tbl_id,$name,$comm,$seq,$dbcon,$result){//コメント追加 $l_sql = "SELECT count( * ) FROM `".$tbl_id."`"; $l_result = mysql_query($l_sql,$dbcon); $l_row = mysql_fetch_array($l_result); $seq = $l_row[0] + 1; $f_host = gethostbyaddr(getenv("REMOTE_ADDR")); $sql = "insert into `".$tbl_id."` (c_seq, c_time, c_name, c_comm, c_host, c_del_flg) VALUES (".$seq.", NOW( ), '".$name."', '".$comm."', '".$f_host."', '0' )"; $result = mysql_query($sql,$dbcon); } function update_temp_table($tbl_id,$sage,$seq,$f_dbcon,$f_result){//スレッド更新(管理テーブル更新) if($seq == 300){ $del_flg = 1;} else { $del_flg = 0;} //規定レス数に達したスレは終了 $sql = "update t_temp_table set c_count_comment = ".$seq." , c_del_flg = '".$del_flg."' where c_table_id = ".$tbl_id; $f_result = mysql_query($sql,$f_dbcon); }
- 518 名前:nobodyさん mailto:sage [2008/03/10(月) 02:20:25 ID:???]
- >>516
softbankのチェックした機種は何? 多分表示側の問題だとは思うけど それと、1スレッド1テーブルはやめた方が良い ファイルベースの設計なら1スレッド1ファイルの方が良いが・・・
- 519 名前:516 mailto:sage [2008/03/10(月) 02:40:11 ID:???]
- 機種はちょっと分からないんですよね。
ログ見てみたらソフトバンクだな、ってのが分かったというだけで。 しかも、その方が問い合わせフォームからメールも送ってくれたんだけど、 それがまた見事に文字化けしていて全く見れない状態です。 (これもまたDOCOMO、auは正常動作。) 1スレッド1テーブルが良くないというのは、パフォーマンスとかCPU占有とかいう話でしょうか? 素人考えで、一つのテーブルのみが異常にレコード数多くなるよりいいかな、と思ったのですが…
- 520 名前:nobodyさん mailto:sage [2008/03/10(月) 02:58:57 ID:???]
- ちょ,それはない
- 521 名前:nobodyさん mailto:sage [2008/03/10(月) 03:56:42 ID:???]
- >>519
旧Vodafone機種とかにはまともに送れないのとかあるからねー そこらへんが携帯対応のめんどくさい所 1つ要素追加しようとした時に全部のテーブル構造変えるほうが手間 あとデフォ設定でCPUがP4の3Gでメモリ2Gなマシンでも 1テーブル2000万件とかいれても平気だから1テーブルに入れろ DB設計は色々と勉強した方が良いよ
- 522 名前:nobodyさん mailto:sage [2008/03/10(月) 05:18:59 ID:???]
- 超初心者用ってあるのに全然わからない。・゚・(ノД`)・゚・。
2ヶ月ぐらいやってるけどなにをどうやっていいやら・・・ とりあえずHTMLを少しやってたのでPHPに挑戦してみたんだが 難しい。そして、どう使うのかがよくわからん。 PHPスーパーサンプル集って本を買って本の進行通りにやってるが だからなに?って感じでおわってしまう。 まず最初にこんにちはを画面に表示させた。うむ。 フォームはあらゆるところで使われるので重要ということで フォームもやってみた。うむ。 いま、フォームで送信されたデータを関数で色々条件をつける もしくは処理をするってのやってるんだけど、それも具体的によくわからん。 説明には、パスワードを入力とか普段サイトで使ってるようなことで使う みたいなことは書いてあったけど、実際自分でつかえるかなーと疑問。 何をどうしたらいいか、もっと分かりやすい本、もしくはページはないか しってたらお願いします。できれば、私はこう使ったというのを実体験で いってくれると分かりやすいです。m(_ _)m
- 523 名前:nobodyさん mailto:sage [2008/03/10(月) 06:26:17 ID:???]
- >>522
その手の質問きたら俺は毎回ここをオススメしてる 宣伝と思われそうだがw www.phppro.jp/school/phpschool/ 初心者には普通にオススメ あと何か作ってみたいものを見つけるのが良いんじゃないかな? んでこれを作るには何が必要で どんな事をしなきゃいけないのかとか あとは同じようなスクリプトは どんな風にしてるのかを調べるのも良いかな
- 524 名前:nobodyさん mailto:sage [2008/03/10(月) 18:52:10 ID:???]
- >>523
すごくよかったですm(_ _)m 私が買った本より説明が分かりやすく理解しやすかったです。 とりあえず、このページを読破し実際にやってみようと思います。
- 525 名前:nobodyさん [2008/03/11(火) 03:36:14 ID:xCa4blgr]
- すません。ある関数の返り値をvar_dumpしたら
object(stdClass)(1) { ["array"]=> "test"} みたいな感じでオブジェクトで返ってきました。 配列arrayの中の"test"という文字列を取り出すためにはどうしたらよいのでしょうか? ちなみにjson_decode()です。upgrade.phpを利用してassocをTRUEにしているのに配列ではなくオブジェクトで返されてしまって困っています。
- 526 名前:nobodyさん mailto:sage [2008/03/11(火) 03:42:27 ID:???]
- $obj->array
- 527 名前:nobodyさん [2008/03/11(火) 15:31:16 ID:xCa4blgr]
- >>526
ありがとうございます。
- 528 名前:nobodyさん [2008/03/11(火) 20:58:03 ID:LKhchWrt]
- PHP5のsimplexml_load_fileを使ってWordPressのRSSフィードを読み込もうと
しているのですが、フィード内の <content:encoded> といったエレメントが 読み込まれません。 どうも「:」がエレメント名に含まれていると、PHPはそれを見落としてしまうよう なのですが、同じような経験をされた方いらっしゃいますでしょうか?
- 529 名前:nobodyさん mailto:sage [2008/03/11(火) 22:34:53 ID:???]
- PHPって有名なプログラミングですよね?
今度の4月から大学(情報工学科)に通うんですけど 教授とかに聞いても大丈夫ですよね?
- 530 名前:nobodyさん mailto:sage [2008/03/11(火) 23:38:41 ID:???]
- そうそう、有名なプログラミングだよ。
- 531 名前:nobodyさん mailto:sage [2008/03/12(水) 01:15:12 ID:???]
- PHP で HTML のブロックをコメントアウトコメントアウトするのって
↓でええんか? <?php if(false){ ?> … <?php } ?>
- 532 名前:nobodyさん mailto:sage [2008/03/12(水) 01:22:22 ID:???]
- <?php if(false): ?>
... <?php endif; ?> なんでこの書き方って普及してないの?
- 533 名前:nobodyさん mailto:sage [2008/03/12(水) 01:29:31 ID:???]
- >>532
その書き方のメリットを教えてくれ
- 534 名前:nobodyさん mailto:sage [2008/03/12(水) 09:26:44 ID:???]
- くだしつで失礼します。
外部からのアクセスでPHPに情報を送り、それをPHPが一度Textファイルに保持した上で 他のアクセスがPHPからそれを受け取るという処理を行っています。 チェックは連続して行っていて情報が無ければ「NoEntry」という結果を返しています。 (保持した情報は消えます) (処理中、データはロックしています) 今現在そのチェック処理を2秒に1回の頻度で行っているのですが、 一般論の範囲でPHPはどれくらいの負荷までなら普通に耐えられるのでしょうか? 可能であれば上記のチェック処理を1秒に2・3回行いたいと思っています。 使用しているサーバはさくらインターネットのプレミアムコースです。 PHPのバージョンは、、すみません。詳しく分からないのですが初心者解説サイトの命令のみ使っています。 2秒に1回のチェックですが、実際にデータを保持し送信するペースは1時間に1回ほどです。
- 535 名前:nobodyさん mailto:sage [2008/03/12(水) 10:53:22 ID:???]
- >>534
チェックの方法にもよると思うけど file_existsかなんかでチェックしてるって事?
- 536 名前:nobodyさん mailto:sage [2008/03/12(水) 10:58:25 ID:???]
- よく分からんけどcronみたいな定期的な処理実行を無限ループでやってるということか?
他のアクセスがあった時点でファイルがあるかチェックするんじゃだめなの?
- 537 名前:nobodyさん mailto:sage [2008/03/12(水) 11:11:37 ID:???]
- すみませんでした。補足します。
繰り返しアクセスしているのは外部のプログラムで、PHPはそれに対して反応を返しています。 PHP内部では繰り返しの処理はしていません。 SaveパラメータでHTTPアクセスされると「A」という文字をPHPが記録します。 LoadパラメータでHTTPアクセスされると、今PHPが保持してる「A」という文字をEchoで返し、「A」は消します。 この時、保持している文字がなければ「NoEntry」を返します。 現状2秒に一度Loadパラメータでアクセスしています。(文字があるかチェック) その間に複数のSaveパラメータでアクセスされると「A,B,C」と同時に保持して、 Loadパラメータが来るごとに、古いものから順に1文字ずつ返します。 ただ通常、1時間に1〜2回、多くても10回ほどのSaveパラメータのアクセスしか無いため ほとんどはLoadパラメータのアクセスを受信し続けている状態です。 このLoadパラメータを、現状の2秒に1度から、1秒間に2〜3回にしたいなと考えております。
- 538 名前:nobodyさん mailto:sage [2008/03/12(水) 11:15:08 ID:???]
- >>537
そのLoadパラメータとやらの書き方次第だと 多分問題は無いと思うけどねー
- 539 名前:nobodyさん mailto:sage [2008/03/12(水) 11:28:02 ID:???]
- 処理負荷にもよるけど2,3リクエスト/秒なんて余裕だから大丈夫かと
- 540 名前:534 mailto:sage [2008/03/12(水) 11:52:49 ID:???]
- なるほど、助かります。ありがとうございました!
やはりPHPの性能はCGIとは比べものになりませんね。
- 541 名前:nobodyさん mailto:sage [2008/03/12(水) 17:51:48 ID:???]
- phpで出力した内容をhtmlで出力するのって
普通にfwriteとかで作成すればいいのでしょうか?
- 542 名前:nobodyさん mailto:sage [2008/03/12(水) 19:13:32 ID:???]
- file_put_contentsでおk
- 543 名前:nobodyさん mailto:sage [2008/03/12(水) 21:40:52 ID:???]
- >>541
ファイルに書き出したいなら>>542のを使えば良い 表示させるだけならechoなりでhtml書いたのを表示すればいい
- 544 名前:nobodyさん mailto:sage [2008/03/13(木) 04:03:55 ID:???]
- どうもありがとうございました、助かりました。
- 545 名前:nobodyさん [2008/03/14(金) 16:59:59 ID:P2EP3hdl]
- simplexml_load_fileを使い必要な部分を抜き出し下記のようなオブジェクトを取得しましたが
ループ文を使い値と属性を取得しようとすると、$nameという配列を作る行で Warning: Illegal offset type となります。オブジェクトの属性と値の取り方を間違えているのでしょうか? $xml SimpleXMLElement Object ( [id] => 2 [title] => hogehoge [spec] => 500 ) foreach($xml as $a => $b) { if ($a == 'id') { $id = $b; } if ($a == 'title') { $title = $b; } } $name[$id] = $title; ←エラー
- 546 名前:nobodyさん mailto:sage [2008/03/14(金) 17:41:35 ID:???]
- >>545
print_rよりver_dumpのがオススメ $idと$titleをdumpする事をおすすめする var_dump($id,$title); てかそのループしなくても良いと思うんだが? $name[$xml->id] = $xml->title;
- 547 名前:nobodyさん [2008/03/14(金) 19:16:02 ID:P2EP3hdl]
- >>546
ありがとうございます $name[$xml->id] = $xml->title; これだと同じエラー内容となりました ver_dumpしたところ下記のように出てきたのですが、さらにオブジェクトが続いているということでしょうか? object(SimpleXMLElement)#9 (1) { [0]=> string(1) "2" } object(SimpleXMLElement)#8 (1) { [0]=> string(8) "hogehoge" }
- 548 名前:nobodyさん mailto:sage [2008/03/14(金) 19:34:29 ID:???]
- 最近は、YAMLとJSONばっかりで
XMLを使っていない。使おうとも思わない。 つかうのは外部とのシステムでXMLを 使うことを強制された場合ぐらいだな。
- 549 名前:nobodyさん [2008/03/14(金) 20:27:50 ID:i8C7NkG0]
- <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="www.w3.org/1999/xhtml"> <head> <title>Gallery</title> <meta http-equiv="Content-Type" content="text/html; charset=shift_jis" /> </head> <body> <div align="center"> <br /> <?php include("../../koukoku.php"); ?><br /> <? $image = "***.com/gazou/01/" . $_GET['no'] . ".gif"; if(file_exists($image)){ print "<img src=\"$image\">"; } ?> </div> </body> </html> こんな感じで***.com/gazou/01/**.gifをページの真ん中に表示したいのですが画像がされません。 画像がローカルパスなら表示されるのですがどこが悪いのか教えてもらえませんでしょうか?
- 550 名前:nobodyさん mailto:sage [2008/03/14(金) 20:32:53 ID:???]
- 質問です。
よければ教えてください。 echo 45 * 1.4; echo "<br>"; $a = floor(45 * 1.4); echo $a; echo "<br>"; というプログラムで、結果が 63 62 となるんですけど、原因がわかりません… 63が正解なのですが、なぜなんでしょう? 実際は変数が入るので、結果も変動して小数点以下の数値も出るのでfloorしていますが、 なぜかこの数値の時だけ結果にずれが…
- 551 名前:nobodyさん mailto:sage [2008/03/14(金) 20:54:07 ID:???]
- >>550
典型的な、浮動小数点誤差の問題だね。 一般的にコンピュータは数値を二進数に変換して処理する。 1.4という数値は二進数では近い数字は表現できても、 1.4そのものは表現できない数値なんだ。(小数点以下が無限に続く) よって 45 × 1.3999・・・という計算になる。 当然答えも62.9999・・・になる。 あとはechoのとき、62.9999・・・というほぼ63という値なら、 それを63にして表示しているということだろう。 公式サイトにも書いてあるが。 www.php.net/manual/ja/language.types.float.php
- 552 名前:549 mailto:sage [2008/03/15(土) 12:13:27 ID:???]
- 聞く場所違いましたかな・・・汗
他で聞いてみます 失礼しました。
- 553 名前:nobodyさん mailto:sage [2008/03/15(土) 15:19:04 ID:???]
- >>552
php関係なくね?
- 554 名前:nobodyさん mailto:sage [2008/03/15(土) 17:15:03 ID:???]
- for内でもう一度forつかうと$iの値が干渉しあうのですが
$iって$aとかにする事は可能でしょうか?
- 555 名前:nobodyさん mailto:sage [2008/03/15(土) 17:22:41 ID:???]
- $A = file_get_contents("ファイル");
としてるだけなのに標準出力にファイルの内容が表示される@さくら エロい人解決方法を教えてください。
- 556 名前:nobodyさん mailto:sage [2008/03/15(土) 18:41:49 ID:???]
- >>554
for文って何ぞや?から改めて調べてみるとよろし >>555 そんなことはありえない。
- 557 名前:nobodyさん mailto:sage [2008/03/15(土) 22:02:20 ID:???]
- >>554
頑張って$iだけを使うように工夫するのが定石
- 558 名前:nobodyさん mailto:sage [2008/03/15(土) 23:28:03 ID:???]
- <br/>\nってどういう意味?
なんで改行が二つあるの?
- 559 名前:nobodyさん mailto:sage [2008/03/15(土) 23:35:04 ID:???]
- それぞれ違う改行。
意味を調べろ。
- 560 名前:nobodyさん mailto:sage [2008/03/16(日) 01:00:46 ID:???]
- >>556 >>557
ちょっとログ分の画像掲示板のhtml出力しつつ その1ページ分にすべてのページへのリンクを作ったりと複雑なので whileで代用しました、ありがとうございました。 後、もう一つ聞きたいのですが .=で処理したデータを継ぎ足していってhtml出力すると ソースで改行が■になったりしてしまいます。 後々の事を考えて見栄えよく整形したいのですが どんな要因が考えられるのでしょうか?
- 561 名前:nobodyさん mailto:sage [2008/03/16(日) 01:13:28 ID:???]
- >>560
> どんな要因が考えられるのでしょうか? メモ帳でLF改行を見てるだけ、とか。
- 562 名前:nobodyさん mailto:sage [2008/03/16(日) 01:23:50 ID:???]
- >>561
すいません、まさにそのとおりなんですがtxtファイルに phpproの講座のとおりEUC-JPとLFで設定してます。 改行をCR/LFにしたらちゃんと見えたんですが EUC-JPとLFだとwindows使いには不便なのでしょうか? 後、ログにtxtファイルを使うと外部から見えてしまうと聞いたのですが 何がお勧めなのでしょうか?
- 563 名前:nobodyさん mailto:sage [2008/03/16(日) 01:30:50 ID:???]
- >>562
ログにtxt〜とか媒体が問題じゃないよ。 ドキュメントルート以下におけば外部から見られる危険性は当然ある。
- 564 名前:nobodyさん mailto:sage [2008/03/16(日) 01:58:38 ID:???]
- あれ?そうでしたか。
過去cgiとかにしとけといわれた思い出があるんですが。
- 565 名前:nobodyさん mailto:sage [2008/03/16(日) 02:22:24 ID:???]
- >>564
その説は、ごく限られた人しか .htaccess でごにょごにょできなかった時代とか .htaccess の書き方を説明するのがめんどくさいとかの産物なので、 せめて .log とか .dat で終わる名前のファイルにして deny from all に設定。 というか、>>563。 >>561前半は Shift_JIS の地雷を踏みまくるほうがよっぽど不便だと思う。
- 566 名前:565 mailto:sage [2008/03/16(日) 02:23:29 ID:???]
- アンカーミスった。>>562前半、ね。
- 567 名前:nobodyさん mailto:sage [2008/03/16(日) 02:41:19 ID:???]
- htmlの投稿フォームからphpにデータ送ると
phpの中身がテキストデータとして開かれててしまいます。 phpに同じフォームデータを書いて送信したら普通に処理できてたんですが どうしたものでしょうか?
- 568 名前:nobodyさん mailto:sage [2008/03/16(日) 14:32:57 ID:???]
- 日本語でおk?
- 569 名前:nobodyさん mailto:sage [2008/03/16(日) 19:12:01 ID:???]
- html出力した内容に含まれてる投稿フォームから
phpにその内容を飛ばして処理しております。 本文がない場合、名前&パスワードをクッキーをセットして 1行目のフォームに送り返してるんですが名前欄に何も出ません。 名前欄のvalue値に phpプログラムを使用して受け取ったクッキーを表示するコードを書いてるんですが 1行目フォームのようにhtmlファイルにphpコード書いても意味なかったでしたっけ?
- 570 名前:569 mailto:sage [2008/03/16(日) 19:19:19 ID:???]
- ややこしくなってしまいました、
要するにログをhtml出力したファイル内にあるフォームに クッキーの受け渡しってできるんですか? 書き込みを処理するphpからクッキー発行しただけでは駄目なんですよね?
- 571 名前:nobodyさん mailto:sage [2008/03/16(日) 19:31:40 ID:???]
- できるよ
- 572 名前:569 mailto:sage [2008/03/16(日) 19:44:08 ID:???]
- すいません、お手数ですがどのようにすればよいのでしょうか?
>>569を書き込んでから今までログをhtmlで出力する掲示板のサンプルを見回ってたら <input value="">のvalue記述さえ無しにクッキーが表示されてるものが あってどんな方法を使ってるか知りたくて。
- 573 名前:nobodyさん mailto:sage [2008/03/16(日) 20:02:28 ID:???]
- 名前欄に何も出ないっていう現在のコードを出してみて。入力と共に。
- 574 名前:nobodyさん mailto:sage [2008/03/16(日) 23:54:38 ID:??? BE:147567375-2BP(1)]
- >>569
出力されたhtmlファイルの拡張子はphp?それともhtml? 出力されたファイルがhtmlであれば サーバの設定が基本的な設定のままなら cookieなんて出せないやんJavaScriptとか使えば別だが phpであれば <input value="<?php echo $_COOKIE['name'];?>"> とかすれば出るが
- 575 名前:nobodyさん mailto:sage [2008/03/17(月) 00:03:56 ID:???]
- 拡張子はhtmlです、
それで元々作っていたのは総phpで<input value="<?php echo $_COOKIE['name'];?>"> が出来てて htmlにデータ書き出すようにしてからそれが通用しなくなったので混乱しておりました。 ただここだと 3d.skr.jp/3d/ 出来てるのはなぜなんでしょう?
- 576 名前:nobodyさん mailto:sage [2008/03/17(月) 00:10:47 ID:??? BE:303567089-2BP(1)]
- >>575
そこはjavascriptでクッキーをセットしてる
- 577 名前:nobodyさん mailto:sage [2008/03/17(月) 00:19:25 ID:???]
- なるほど、万人には無理ですかhtmlでは。
とりあえずクッキーの部分は飛ばして別の部分作ります。
- 578 名前:nobodyさん mailto:sage [2008/03/17(月) 00:27:11 ID:??? BE:84324645-2BP(1)]
- function l(e){
var P=getCookie("pwdc"),N=getCookie("namec"),i; with (document) { for(i=0;i<forms.length;i++){ if(forms[i].pwd) with(forms[i]){ pwd.value=P; } if(forms[i].name) with(forms[i]){ name.value=N; } } } }; onload=l; function getCookie(key, tmp1, tmp2, xx1, xx2, xx3) { tmp1 = " " + document.cookie + ";"; xx1 = xx2 = 0; len = tmp1.length; while (xx1 < len) { xx2 = tmp1.indexOf(";", xx1); tmp2 = tmp1.substring(xx1 + 1, xx2); xx3 = tmp2.indexOf("="); if (tmp2.substring(0, xx3) == key) { return(unescape(tmp2.substring(xx3 + 1, xx2 - xx1 - 1))); } xx1 = xx2 + 1; } return(""); } こんな感じだな適度に直せばいける
- 579 名前:nobodyさん [2008/03/18(火) 16:47:11 ID:npoe+Lzf]
- www.phppro.jp/school/phpschool/vol4/1
のプログラムですが、 localhost/uranai.php だと「入力された値は数字ではありません。」と表示されるのですが localhost/uranai.php?age=22 だと文字化けしてしまいます。 本来「あなたの年齢は:22才です。」と表示されると思うのですが。 何が原因と考えられますか?
- 580 名前:nobodyさん mailto:sage [2008/03/18(火) 17:12:58 ID:???]
- >>579
コードうp
- 581 名前:nobodyさん mailto:sage [2008/03/18(火) 17:15:35 ID:???]
- ちなみにこちらの環境で実行したら後者も正しく表示された
mb関係かhtmlspecialcharsの文字コードの設定か? 文字化け文字列も出すと何かわかるかも
- 582 名前:579 [2008/03/18(火) 18:00:26 ID:npoe+Lzf]
- レスありがとうございます。
、「、ハ、ソ、ホヌッホ、マ。ァ22コヘ、ヌ、ケ とでます。
- 583 名前:nobodyさん [2008/03/18(火) 18:15:19 ID:sNjVpZ9l]
- WordPressで困っています。
サイドバーをカスタムしたくてsidebar.phpを弄っているのですが、カレンダーなどを取り除いてアバウトやその他をとりつけたいのですが、 どう記述するべいいのかわかりません。 カレンダーを消すことには成功したのですが、他のコンテンツをサイドバーに入れるには何を記述すればいのでしょうか。
- 584 名前:nobodyさん mailto:sage [2008/03/18(火) 21:06:15 ID:???]
- >>583
WordPress (ワードプレス) その6 pc11.2ch.net/test/read.cgi/blog/1202116662 こっちのがいいんでない?
- 585 名前:nobodyさん mailto:sage [2008/03/18(火) 21:53:51 ID:???]
- >>579
ブラウザ上で右クリック→エンコード→日本語 (EUC) でおk ま、もう解決しちゃってるだろうけどw
|

|