[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 2chのread.cgiへ]
Update time : 08/02 03:26 / Filesize : 165 KB / Number-of Response : 587
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

くだすれPHP(超初心者用)3



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/

298 名前:nobodyさん mailto:sage [2008/01/20(日) 17:21:32 ID:???]
>>296
jp.php.net/manual/ja/language.operators.comparison.php#language.operators.comparison.ternary

299 名前:nobodyさん mailto:sage [2008/01/20(日) 21:00:02 ID:???]
perl にもあるし、C/C++ にもあるし…あとは…
結構サポートしてる言語あるぞえ

300 名前:nobodyさん mailto:sage [2008/01/21(月) 00:37:42 ID:???]
レンタルサーバー(アイル)でセッションを使ってユーザ管理できる形で
スケジューラー作ってます。

最近利用している人から、見ていたらお前のログイン状態が出てきたぞと
言われ、キャプチャされた内容が送られてきました。
セッションは
session_start()
ではじめて
$_SESSION[id]
$_SESSION[pwd]
にデータを入れてます。セッションはブッキングすることがないと
聞いていたのですが、たった4人の利用でブッキングがあったため、
もしかすると

iクラスタでは、クラスタリング環境となっており、
セッションの使用、またflock, fcntl 等のロックは機能しません。
symlink, mkdir 等での代用いただくようお願いします。
とレンタルサーバーにはかかれていましたが、クラスタリング環境で
flock,fcntlが使えないことでこういう事が起きているのでしょうか?
ここがはっきりしないと、別のサーバーに切り替えてもらえないし、
自分が選んだサーバーでもプランでもないので板挟みで状態で困ってます。

301 名前:nobodyさん mailto:sage [2008/01/21(月) 00:44:27 ID:???]
セッションは機能しませんってこれ以上なく明確に書いてるやん('A`)

302 名前:nobodyさん mailto:sage [2008/01/21(月) 13:09:21 ID:???]
>>300
DB使えるならDBでセッション管理すれば?
別にそんなに規模大きいもんでもないんでしょ?

303 名前:296 mailto:sage [2008/01/21(月) 14:21:47 ID:???]
>>297
>>298
ありがとう

304 名前:244 [2008/01/21(月) 19:22:48 ID:5H6OPrCr]
過去の話掘り返してスマナイ。

>>253でmd5にして認証を行ったはいいが
HTTPヘッダ見たら暗号化した文が表示されてた。

これってこの文盗聴されてそのまま打たれたら結局意味ないじゃんって結果に。

参考にしたページ: ttp://jsgt.org/mt/archives/01/000301.html

Digest認証でここはやってますが
どうも不完全なまま終わってるようで続きが見当たりません。

実際にSSLを使わないで認証してる方はいないでしょうか?
自分しか使わないのでSSLの証明はいらないんですが、、、

305 名前:nobodyさん [2008/01/21(月) 20:16:56 ID:5H6OPrCr]
連投スマソ

結構大きなネトゲのサイトでburp suiteでHTTPヘッダを見てみた。

IDとパスがそのまま表示された…。
これってこの部分盗聴されたらログインされるはずだよな…?と思って
mixiのhttpsでログインしてみた。

こちらは何も表示されなかった。


そのネトゲのスレ行ってみたらセキュアなしかよって散々叩かれてた。
こんなのもあるんですね。


一応報告まで。

306 名前:nobodyさん mailto:sage [2008/01/21(月) 21:07:52 ID:???]
>>304
そりゃまんまじゃ駄目。
ワンタイムパスワードにでもしないと。



307 名前:nobodyさん mailto:sage [2008/01/21(月) 22:07:39 ID:???]
>>305
ネ糞○

308 名前:nobodyさん [2008/01/22(火) 00:42:56 ID:Qziki4SA]
すみません、phpを始めたいのにインストール段階で行き詰っちゃいました…
すごく初心者なので、書き方おかしかったらすみません。
・os
windows vista
・希望
apache_2.2.6-win32-x86-no_sslをインストールしたい
・困ってる事
「このインストール パッケージを開くことができませんでした。
パッケージが存在し、アクセスできることを確認してください。
またはアプリケーション ベンダに問い合わせ、この Windows インストーラ パッケージが有効かどうかを確認してください。」
が出てインストールできない。
・やった対策
vistaだと通常とは違うという事で色々と調べて「コマンドプロンプト」というやつを管理者の権限で開いてインストーラーを実行させました。
そうすると何回やっても上記のエラーメッセージが出ます。
なので「windows install cleanup」をダウンロードして開いてみましたが該当するものはなし。

無知なりに考えた原因は、何度も違うバージョンのapacheをインストール→アンインストールしたせいでインストーラが狂ったのかと…。
どうにかインストールしたいです。「ベンダ」に問い合わせる他に何かまだ出来る事があれば教えてほしいです。

309 名前:nobodyさん mailto:sage [2008/01/22(火) 01:33:19 ID:???]
>>308
このあたりが関係しているのかも。
www.apachefriends.org/jp/xampp-windows.html
> Windows VistaではC:\Programfilesのフォルダのパーミッションが限定されております。
> その為、通常のインストールではインストールが成功しない場合があります。
> xampp用のフォルダをCドライブの直下か、C:\userの下にxamppというディレクトリを
> 作成してご利用いただくことをお勧めします。


XAMPPだと、インストーラを使うタイプと使わないタイプがあるから、こっちで
試してみたらどうかな。全部がセットになってるから便利だし。

310 名前:nobodyさん mailto:sage [2008/01/22(火) 07:54:00 ID:???]
今の時期は、出来ればVistaでやるのは避けた方が良い。

311 名前:nobodyさん mailto:sage [2008/01/22(火) 11:52:06 ID:???]
>>306
ワンタイムパスワードを考えてみました。
データベースにpass1とpass2のあるテーブルを作る。
pass1はユーザーが決めたパスワードをmd5した物。

ログインページにアクセスした時点で
ランダムな文字列を発行。(例 ZztMHpWSD)
全てのユーザーのpass2を更新する(pass1 + ZztMHpWSD)

<input type="text" name="pass">
<input type="hidden" name="rand_pass" value="(ランダムな文字列)">

submit押すと
md5_func(document.formname.pass.value)+document.formname.rand_pass.value;

これでpass1+ランダムな文字列が渡されました。

これで送られてきた物をpass2で一致すればOK。
この処理はできました。

----続く----

312 名前:nobodyさん [2008/01/22(火) 11:56:30 ID:q9syKBOV]
問題点

Aさんがログイン画面にアクセスしてログインの情報を入力してる最中に
Bさんがアクセスしてきました。

その場合また新しいランダムな文字列が発行され
データベースのpass2が更新されてAさんの hidden に入ってる物が違ってきます。

現在この状況でつまっております。
何か助言を頂けないでしょうか?

313 名前:nobodyさん mailto:sage [2008/01/22(火) 12:03:57 ID:???]
> 全てのユーザーのpass2を更新する(pass1 + ZztMHpWSD)
すべてのユーザーのを更新する理由は何?
ログインとかログアウトする時に一人のユーザーのみを
更新してはいけないの?

314 名前:nobodyさん [2008/01/22(火) 12:12:27 ID:q9syKBOV]
>>313
> すべてのユーザーのを更新する理由は何?
アクセスしてるユーザーがどのユーザーかわからないためです。

ログアウトした時に一人のユーザーを更新する場合
ログアウトする時にpass1+ランダムな文字列で更新

再ログインするためにランダムな文字列発行するわけにもいかないし、
ログアウトの時クッキーにランダムな文字列書き込んだ場合
他のパソコンでログインできなくなる。

一応こんな風に考えてます。

315 名前:nobodyさん [2008/01/22(火) 12:28:18 ID:q9syKBOV]
古い物上げてきたんで一応悩みをまとめておきますね。

・ SSLをできれば使いたくない(証明とかいらない&節約)
・ HTTPヘッダを見るとパスワード丸見え(盗聴怖い)
・ md5で暗号化しても暗号化した物を盗聴されて打たれたら意味ない
・ ワンタイムパスワードを作って毎回パスワードを変更するが他のユーザー接続で失敗

こんなところです。

316 名前:nobodyさん mailto:sage [2008/01/22(火) 14:19:06 ID:???]
節約とセキュリティーをあげるのは相反するものだぞ。一般論として。
金属探知機を設置せずに、拳銃の持込を完全に防止したいみたいな意味だ。



317 名前:nobodyさん [2008/01/22(火) 14:40:45 ID:q9syKBOV]
>>316
私がしたいのは独自で作成した金属探知機を使用したいのです。
金をかければ有名ブランドの金属探知機で安心、安全でしょう。

私がほしいのは安全だけなのです。

未熟なので能力が伴うかどうかは別として。

318 名前:nobodyさん mailto:sage [2008/01/22(火) 14:42:26 ID:???]
ユーザに負担思いっきりかけていいならPGPの秘密鍵暗号鍵みたいな仕組みにすれば?
可能か不可能かって話なら可能だろ

319 名前:308 mailto:sage [2008/01/22(火) 16:03:11 ID:???]
>>309
ありがとうございます!
今職場なので、帰宅したら試してみます。

>>310
避けたい気持ちでいっぱいです。
一応使えている人がいる様なのでもう少しいじり倒してみます。

320 名前:nobodyさん [2008/01/22(火) 17:21:38 ID:q9syKBOV]
ざっとセキュリティ関連の記事をいくつか見てきたのですが
どうやらこのスレにいるレベルでは無理そうな感じがしてきました。

>>318
ユーザーに負担はやはりかけたくないですね…。
PGPをざっと見てどのような物かがわかったのですが
できればユーザーにはシンプルにログインさせてあげたいです。
(ID & PASS ぐらい)

とは言っても数人で使う程度の予定で、
一度ログインしたら自動ログインできるように設定したいので、

ログイン画面は
ID入力画面→(データベース内容変更)→pass入力画面→ログイン
この流れでいこうと思います。

これだったら全ユーザーのパスワードを変更しなくていいですし。
これでどうしても証明やユーザーの手間を削減する必要がでてきたら、SSL導入を考えます。

ありがとうございました。

321 名前:nobodyさん mailto:sage [2008/01/22(火) 17:46:58 ID:???]
ワンタイムパスワードなのに自動ログインてw

322 名前:nobodyさん mailto:sage [2008/01/22(火) 17:52:25 ID:???]
>>321
自動ログインは別の処理だろ?

>>320
素直にSSL入れておけ。
何に使うかよくわからんがSSLに慣れておく事も重要

323 名前:nobodyさん [2008/01/24(木) 12:32:36 ID:NF7q/+V1]
はじめまして。

別サーバにあるファイルの更新時間を表示させるには
どうしたらいいのでしょうか?


324 名前:nobodyさん mailto:sage [2008/01/24(木) 13:50:13 ID:???]
ファイルの更新日時はftp接続じゃないと取得できないような気がする。
ttp://always-pg.com/php/std_rd/ftp/ftp_rawlist.html
ファイルの中身だけであれば、httpで
$file = file("......../data.csv");
見たいな感じでいけるけれど。

325 名前:nobodyさん mailto:sage [2008/01/24(木) 15:19:32 ID:???]
別サーバにあるのが性的で、Webサーバ経由で読み出せるなら

get_headers("www.hoge.jp/hoge.html");

とやって、last-modifiedの値を見る

phpファイルなら、そのファイル自身にfilemtime(__FILE__)とかで更新時を出力させればいいと思う

326 名前:323 [2008/01/24(木) 15:32:15 ID:NF7q/+V1]
ありがとうございます。
試してみます。

いろいろ探してみたところ下のように”HTTPヘッダーから拾う”という方法を見つけました。
これで「Wed, 23 Jan 2008 00:00:00 GMT」と表示されるのを、
JSTにして、「6:15 1/24 Thu 」と表示したいのですが、整形の方法がわかりません。
どなたかご教授ください。よろしくお願いいたします。





327 名前:323 [2008/01/24(木) 15:32:38 ID:NF7q/+V1]
<?php
$URL="http://対象ファイル";
$purl=parse_url($URL);
if(!$purl["port"]) $purl["port"]=80;
//開く
$fp=fsockopen($purl["host"],$purl["port"]);
//リクエストを送る
if($purl["query"]){
fputs($fp,"GET ".$purl["path"]."?".$purl["query"]." HTTP/1.0\n");
}else{
fputs($fp,"GET ".$purl["path"]." HTTP/1.0\n");
}
fputs($fp,"Host: ".$purl["host"]."\n");
if($purl["user"]) fputs($fp,"Authorization: Basic ".base64_encode($purl["user"].":".$purl["pass"])."\n");
fputs($fp,"\n");
//HTTPステータスラインを取得
$buf=fgets($fp,1024);
if(!strstr($buf," 200 ")) return(FALSE);
//HTTPヘッダを取得
//$finfo["HTTPヘッダ名"] に内容が格納される
while(!feof($fp)) {
$buf=chop(fgets($fp,1024));
if(!$buf) break;
ereg("^([^:]*): *(.*)$",$buf,$sbuf);
$finfo[$sbuf[1]]=trim($sbuf[2]);
}
echo $finfo["Last-Modified"];
?>


328 名前:nobodyさん mailto:sage [2008/01/24(木) 15:46:09 ID:???]
>>326
echo date('G:i n/j D',strtotime('Wed, 23 Jan 2008 00:00:00 GMT'));
こんな感じで。下記参照。
jp.php.net/manual/ja/function.date.php

329 名前:323 [2008/01/24(木) 16:57:23 ID:NF7q/+V1]
最後の行を
echo date('G:i n/j D',strtotime($finfo["Last-Modified"]));
としたら望みどおりの結果になりました!!!

ありがとうございました。

330 名前:nobodyさん mailto:sage [2008/01/26(土) 03:19:27 ID:???]
俺は Last-Modified → Date → クライアントローカル って順にしてるな

331 名前:nobodyさん mailto:sage [2008/01/27(日) 19:58:32 ID:???]
はじめまして。超初心者用という事でわからない事があったので質問してみます

YahooAPIを用いて画像検索を行い、検索された画像をクリックする事でその画像の類似画像を新たに検索して
Webページに表示させるPHPを作成しているのですが、クリックされた画像の色情報を取得する方法がわかりません。
画像のRGB値を求めて、その値に近い画像を表示させるつもりで現在考えています。
色の取得自体は一応できてるのですが下に処理を書きます
  $im = imagecreatefromjpeg($content);
  $img_w = imagesx( $im );
  $img_h = imagesy( $im );
  $cnt = $img_w * $img_h;
  $r = array();
  $g = array();
  $b = array();
  for( $i = 0 ; $i < $img_w ; $i ++ ){
  for( $j = 0 ; $j < $img_h ; $j ++ ){
  $rgb = imagecolorat($im, $i , $j );
  $r[] = ($rgb >> 16) & 0xFF;
  $g[] = ($rgb >> 8) & 0xFF;
  $b[] = $rgb & 0xFF;
  }
  }
  $index_r = intval( array_sum( $r ) / $cnt);
  $index_g = intval( array_sum( $g ) / $cnt);
  $index_b = intval( array_sum( $b ) / $cnt);
クリックされた画像に対してこの処理を行う方法がいまいちわかりません。
わからない事だらけなのですが何か助言を頂ければお願いします。

OS:WindowsXP
PHP: Version 5.2.5
ApacheVersion:1.3.26

332 名前:nobodyさん mailto:sage [2008/01/27(日) 21:02:47 ID:???]
>>331
検索結果表示時に画像リンクを
img.php?src=hogehoge.jpg
こんな風にimg.phpを経由させれば
img.php内で画像のソース取得などできるけど

こういう風に出来ない場合は
javascriptとかで画像に対してクリックイベント設定して
そこから処理させるとかかな・・・・

333 名前:331 mailto:sage [2008/01/28(月) 11:07:03 ID:???]
>>332
遅くなりましたがレスありがとうございます。

事情があってjavascriptは使わずに処理をさせたいのですが
上の方法で少し考えてみます。
img.phpという別のphpを新たに作成してそこで処理をさせるみたいな感じでいいのでしょうか?

334 名前:nobodyさん mailto:age [2008/01/28(月) 11:31:46 ID:???]
PHPはPerlと比較するとオブジェクト指向プログラミングが
やり易いようになっているけれど、やはり、大規模な開発には
向かないとかいわれています。javaの方が良いと。
この理由は何処にあるのでしょうか。他のプログラムとの連携や
モジュール関連なのでしょうか。

335 名前:332 mailto:sage [2008/01/28(月) 11:46:04 ID:???]
>>333
あーごめんちょっとぼけてた
<a href="hoge,php?src=hogehoge.jpg"><img src="hogehoge.jpg" /></a>
こういう風なリンクにしちゃえば
hogehoge.php内でどの画像がクリックされたとか解ると思うんだけどどうかな?
このhoge.phpにsrc=hogehoge.jpgを渡してやることによって
hoge.phpにはどの画像がクリックされたかわかるし
どの画像がクリックされたか解ればあとは上のコードでなんとかなると思うけど


336 名前:331 mailto:sage [2008/01/28(月) 11:54:21 ID:???]
>>334
レスありがとうございます。
PHPだけでしたいのは他にも理由はあるのですがjavascriptはまだ全然勉強してないので・・・
でもPHPと連動させて作成するものが多いようなのでこれから勉強していきます

>>335
レスありがとうございます。
hoge.phpでそんなことができたのですね。一度やってみます
親切に教えてくれてありがとうございます



337 名前:nobodyさん mailto:sage [2008/01/29(火) 22:16:32 ID:???]
無知すぎて申し訳ありませんが

ttp://www.harudake.net/m-ga.html

↑のようなRSSから自動的に画像を抜き出してサムネイル表示させるには
どのようにすればよろしいでしょうか?
参考になりそうなサイトや書籍があったら教えてください

338 名前:nobodyさん mailto:sage [2008/01/29(火) 23:04:54 ID:???]
>>337
それは多分JavaScriptでやってる
んで、PHPでやるなら
まずRSSをパースして画像のURLを抽出する
抽出した画像をDLしてローカルに保存するor抽出したURLをそのまま使用
IMGタグを生成時に一定サイズ以上はサムネイル化する処理を実行
表示デ終わり

339 名前:nobodyさん mailto:sage [2008/01/29(火) 23:40:56 ID:???]
>>338
有難うございました 早速実行してみたいと思います

340 名前:nobodyさん mailto:sage [2008/02/03(日) 14:38:33 ID:???]
お聞きしたいのですが、PHPを実行した時画面の左上に?が必ず表示されていて
困っているのですがどうすれば無くなるのでしょうか?
日本語で表示させたくてPHP本体の文字コードをUTF-8にして毎回保存しています。
これだと文字化けはせず日本語は表示されるのですが必ず?が表示されます。
PHPを保存する時の文字コードを変更するのではなく、php.iniの設定を変えなければならないのでしょうか?

OSはWindowsXP。PHPはバージョンを確認すると5.2.5なのですが途中でバージョンアップしたのか
iniファイルはPHPとPHP4の二つあります。Apacheは1.3.26です。

ただPHPの環境作りは別の人がやってしまったので今いちどこを修正すればいいのかわかりません。
なんとか解決する方法を教えてもらえないでしょうか

341 名前:nobodyさん mailto:sage [2008/02/03(日) 14:54:58 ID:???]
>>340
PHPのソースコードに変な記号を表示させる記述がないのであれば、
間違って?を書いてるとかの可能性が考えられる。
あと、実行後のhtmlのソースのどの部分に記述があるかによって、
推測する事になると思う。

<?php
echo "test!<br>";

と、あえて書いてみるとか。

342 名前:nobodyさん mailto:sage [2008/02/03(日) 15:18:25 ID:???]
<?php
echo "test!<br>";

と書いてためしに実行してみましたが、?test!と表示されます。
色んなPHPで実行してみましたが必ず?がついてきます。
間違って?を書いているということは無いと思うのですが・・・

343 名前:nobodyさん mailto:sage [2008/02/03(日) 15:51:00 ID:???]
BOM

344 名前:nobodyさん mailto:sage [2008/02/03(日) 16:13:35 ID:???]
>>343
BOMというのは始めて知りました。ありがとうございます。
このBOMを削除するのにUTF-8nで保存すると直るようなのですが、普通のメモ帳ではUTF-8でしか保存できません。

function delete_bom($str)
{
if (ord($str{0}) == 0xef && ord($str{1}) == 0xbb && ord($str{2}) == 0xbf) {
$str = substr($str, 3);
}
return $str;
}

上のコードでBOMを削除できるそうなのですが。<?phpの処理の中で記述すればいいのでしょうか?
?が消えないのですが。本当にわからない事だらけで申し訳ありません

345 名前:nobodyさん mailto:sage [2008/02/03(日) 16:16:54 ID:???]
エディタでUTF-8のBOM無しにするかUTF-8Nにすればおk

346 名前:nobodyさん mailto:sage [2008/02/03(日) 16:18:30 ID:???]
悪いよく読んでなかったけど、要するに文字コード指定できるエディタ使えってこと。
メモ帳で開発は有り得ない。

参考:besunday.hp.infoseek.co.jp/html_editor.htm



347 名前:nobodyさん mailto:sage [2008/02/03(日) 16:22:16 ID:???]
>>346
ありがとうございます。まだ勉強し始めたばかりだったので(汗)

348 名前:nobodyさん mailto:sage [2008/02/04(月) 00:53:06 ID:???]
あれ?bom無しは駄目なのか?
いつも秀丸使っててbom有りでスクリプト書いてたんだが…

349 名前:nobodyさん mailto:sage [2008/02/05(火) 16:49:29 ID:???]
逆、BOM有りがダメ
予期せぬエラーが起きる

350 名前:nobodyさん mailto:sage [2008/02/05(火) 19:30:27 ID:???]
あぁ、ごめん。逆だった…
bom有りで書いてたぜ。
具体的にどんなエラーが起きるの?

351 名前:nobodyさん mailto:sage [2008/02/05(火) 20:27:52 ID:???]
基本的にEUCでbomは知らんかったんで秀丸でUTF-8で保存してみたけど?出ないな。
秀丸だと保存オプションもUTF-8Nとかもないしbom入らないのかな。
メモ帳でUTF-8で保存して実行したら ・ソtest!<br> みたいのは出た。

352 名前:nobodyさん mailto:sage [2008/02/05(火) 20:48:26 ID:???]
秀丸でもBOMオプションあるな。
あんまり古いのだとないかもしれんけど。
これはphpが読み込んだときに自動的に削るべきもんかもね。

353 名前:nobodyさん mailto:sage [2008/02/05(火) 23:51:41 ID:???]
秀丸、bom有り、bom無し で試してみた。
web 上では見た目上、変化無かったけど、
CLI で実行させたら、bom付きでは頭に 0x81, 0x45, 0xbf の3バイトがくっついてきた。

354 名前:nobodyさん mailto:sage [2008/02/06(水) 00:11:29 ID:???]
>>353
そのくっついてくるのがアレ。
BOMつきUTF-8でファイル冒頭に

<?php
header("Content-Type: text/html; charset=UTF-8"); // 例。

なんてのを書くと「ヘッダ送ったあとでヘッダ変えたいとか、無理」と
PHPさんが優しく語りかけてくれる。

355 名前:nobodyさん mailto:sage [2008/02/06(水) 00:16:53 ID:???]
なるほど。解ったよ。アンガト

356 名前:354 mailto:sage [2008/02/06(水) 00:24:06 ID:???]
書いてから気づいた。

> 頭に 0x81, 0x45, 0xbf の3バイト

0xef 0xbb 0xbf の3バイト(>>344参照)、じゃないのね。



357 名前:nobodyさん [2008/02/07(木) 16:59:49 ID:d+qc2qYD]
チェックボックスでチェックされていたらチェックさせたいです
POSTのデータと一致してるかどうかでforeach書いてるんですけど
なんとなく無駄な感じがしてます…
いい書き方ってありますか?

foreach ( $hoge as $k => $v ) {
$checked = "";
if (isset($_POST['hoge'])) {
foreach ( $_POST['hoge'] as $key ) {
if ($key == $v) {
$checked = " checked=\"checked\"";
}
}
}
echo "<input name=\"hoge[]\" type=\"checkbox\"$checked value=\"$v\" />\n";
}


358 名前:nobodyさん mailto:sage [2008/02/07(木) 17:42:05 ID:???]
>>357
こーかな?判定は一行にもできるけど逆に見づらいし。

foreach ( $hoge as $k => $v ) {
    $checked = "";
    if( is_array($_POST['hoge']) && array_search($v, $_POST['hoge']) != FALSE ){
        $checked = " checked=\"checked\"";
    }
    echo "<input name=\"hoge[]\" type=\"checkbox\"$checked value=\"$v\" />\n";
}

359 名前:nobodyさん mailto:sage [2008/02/07(木) 17:44:38 ID:???]
でも$v素通りはあんまよくないな。

360 名前:357 mailto:sage [2008/02/08(金) 13:26:21 ID:???]
>>358
array_searchなんてあったんですね!
ありがとうございます

>>359
素通りとは…?

361 名前:nobodyさん mailto:sage [2008/02/08(金) 13:37:59 ID:???]
$v を validate しろって事だよ。
359 はクロスサイトスクリプティングの可能性を示唆してるんだろ。

362 名前:357 mailto:sage [2008/02/08(金) 17:52:07 ID:???]
なるほど。
これは例なのでいれてないだけです。
$vはこっちで作成してる配列なのにな〜と思って。

ちなみに358は
!= FALSE ではなく !== FALSE ですね

363 名前:nobodyさん mailto:sage [2008/02/08(金) 18:47:04 ID:???]
それが確実。

364 名前:nobodyさん mailto:sage [2008/02/09(土) 01:31:23 ID:???]
つーか何で毎回is_arrayでチェックするんだよ


365 名前:nobodyさん mailto:sage [2008/02/10(日) 18:46:39 ID:???]
フォームで入力した内容に " が含まれる場合、
それをそのまま出力したら\"となるのですが、
どうすれば\をつけずに表示や保存できるんですか?

366 名前:nobodyさん mailto:sage [2008/02/10(日) 19:57:48 ID:???]
magic_quote_gpcをoffにする



367 名前:nobodyさん mailto:sage [2008/02/10(日) 20:08:37 ID:???]
エー
それしか方法ないのですか?

368 名前:nobodyさん mailto:sage [2008/02/10(日) 20:10:21 ID:???]
あるよ

369 名前:nobodyさん mailto:sage [2008/02/10(日) 20:19:51 ID:???]
お願いします

370 名前:nobodyさん mailto:sage [2008/02/10(日) 20:42:46 ID:???]
>>369
jp.php.net/manual/ja/function.stripcslashes.php

371 名前:nobodyさん mailto:sage [2008/02/10(日) 20:43:34 ID:???]
>>369
jp.php.net/manual/ja/function.stripslashes.php

372 名前:nobodyさん mailto:sage [2008/02/10(日) 21:12:31 ID:???]
どうもです!解決しました。

stripcslashes(htmlspecialchars())っていう風につかったんだけどこれでいいのかな

373 名前:nobodyさん mailto:sage [2008/02/10(日) 21:21:05 ID:???]
>>372
順序は逆の方が良くないか?

374 名前:nobodyさん mailto:sage [2008/02/10(日) 22:06:12 ID:???]
ああ、phpには
"はフォームを通すと\\\"として送られてくるんですね
だから先に勝手につけられたスラッシュを消して
htmlspecialchars(stripcslashes($a, ENT_QUOTES)) とやれば"も'もHTML上できちんと表示できるようになりますね
勉強になりました

375 名前:nobodyさん [2008/02/10(日) 22:35:31 ID:rhutwfEM]
PHPないにプリントタグを使いたいんですが、
<BODY>
<?php
print <table>
print <tr>
<td>print"値"</td>
<td>print"値2"</td>
<td>print"演算"</td>
<td>print"答"</td>
print </tr>
print </table>
?>
</BODY>
</HTML>
だと、エラーがでます。だれかご教授ください・・・

376 名前:nobodyさん mailto:sage [2008/02/10(日) 22:37:08 ID:???]
>>375
参考ページをよく見て
違いを調べろw



377 名前:nobodyさん mailto:sage [2008/02/10(日) 22:39:38 ID:???]
ワロタw

378 名前:nobodyさん [2008/02/10(日) 22:40:35 ID:rhutwfEM]
>>376
すいません、テーブルタグでした。
申し訳ありませんが、参考ページを教えてくれますか?

379 名前:nobodyさん mailto:sage [2008/02/10(日) 22:43:46 ID:???]
>>378
どこでもいい。さがせw

380 名前:nobodyさん [2008/02/10(日) 22:48:34 ID:rhutwfEM]
>>378
わかりました。もう一日考えます。。。


381 名前:nobodyさん mailto:sage [2008/02/10(日) 22:48:39 ID:???]
基礎ってレベルじゃねえぞww

382 名前:nobodyさん mailto:sage [2008/02/10(日) 23:21:00 ID:???]
糞ってレベルだ

383 名前:nobodyさん mailto:sage [2008/02/10(日) 23:54:56 ID:???]
ひょっとしてこういう事がしたいのか?
だとしたら文法根本的に間違えてるだろうに。

<BODY>
<table>
<tr>
<td><?php print"値";?></td>
<td><?php print"値2";?></td>
<td><?php print"演算";?></td>
<td><?php print"答";?></td>
</tr>
</table>
</BODY>
</HTML>

384 名前:nobodyさん mailto:sage [2008/02/11(月) 00:20:01 ID:???]
なんというか…wwwwwww

解った後でもう一度このスレに来て自分の書き込み見てみろw

385 名前:nobodyさん mailto:sage [2008/02/11(月) 03:49:39 ID:???]
携帯とPCの振り分けをしたく思い
blogn.hustle-user.com/e19.htmlを参考にして、

index.htmlをindex.phpにリネームして、先頭に
<?php
$title="○○";
$page_e='www.○○/m/index.html';
$page_j='www.○○/m/index.html';
$page_i='www.○○/m/index.html';
$i=$_SERVER['HTTP_USER_AGENT'];

require_once('agent.txt');

?>
としました。そして携帯からアクセスしたところ無事振り分けることが出来ました。
しかしPCからみたら外部のcssを読み込んでいないようでページレイアウトが崩れてしまいました。
相対パスなのがいけないと思って、
<link href="http://○○/css/global.css" rel="stylesheet" type="text/css" />
と、絶対パスに書き換えましたが改善しませんでした。
そしてさらにわからないことに、ブラウザ(Sleipnir)で何回も読み込んでいると
5回に一階ぐらいきちんと読み込んで表示されるのです。

どういうことなのでしょうか。もしかしてphpの問題じゃなくhtmlの問題でしたら板違い申し訳ありません。


386 名前:nobodyさん mailto:sage [2008/02/11(月) 04:14:40 ID:???]
問題の切り分けオヌヌメ



387 名前:nobodyさん mailto:sage [2008/02/11(月) 05:29:22 ID:???]
そのコードでどうやったら振り分けられる方が興味あるなw

388 名前:385 mailto:sage [2008/02/11(月) 05:49:50 ID:???]
>>386
問題の切り分けですか。
まずCSSのパスは間違ってませんでした。

htmlや画像のリンクは相対パスでも問題なく通ってるんで
もしかしたらパスの問題ではないんでしょうか?

となると。。文字コードとかでしょうか・・?
ちなみにphpもcssもS-Jis、改行コードはCR+LFでした。


>>387
ふ、振り分けられないですか?
サイトを参考にしつつやってみたのですが・・


389 名前:nobodyさん mailto:sage [2008/02/11(月) 10:01:19 ID:???]
俺は>>387では無いが。
page_e, page_j, page_i 全部URLが一緒な件

390 名前:nobodyさん mailto:sage [2008/02/11(月) 11:04:25 ID:???]
>>389
いや、それは別にそういう作り方もあるから別にいいけど
そもそも参考したっていうサイトの内容が突っ込みどころが多すぎて…


391 名前:nobodyさん mailto:sage [2008/02/11(月) 11:10:17 ID:???]
ttp://blogn.hustle-user.com/e101.html
の処理に、腹抱えてワロタ

392 名前:nobodyさん mailto:sage [2008/02/11(月) 11:13:06 ID:???]
>>388
そこのサイトのはあんま参考にならんから別の探せw
あと火狐+火虫いれてCSSが適用されてるか確認しろ

393 名前:385 mailto:sage [2008/02/11(月) 17:22:49 ID:???]
返事が遅くなってしまい申し訳ありません。
>>389
あ、それはケータイのキャリア別に振りわけていないからです。。。
基本はみんなパソコンのメインサイトのindex.phpにアクセスしてもらって
ケータイの人は別のサイトに飛んでもらうってことで。。

なんか参考にしたサイトがまずかったようで。。。
もしおすすめなどあれば教えて頂けると嬉しいです。

>>392
firefoxはいれてないんで、今からいれて確認してみます。
ところで、火虫とは・・・?

394 名前:nobodyさん mailto:sage [2008/02/11(月) 17:30:47 ID:???]
> ところで、火虫とは・・・?
水虫のライバル。


395 名前:nobodyさん mailto:sage [2008/02/11(月) 17:57:57 ID:???]
火虫=FireBug

396 名前:385 mailto:sage [2008/02/11(月) 17:59:06 ID:???]
firefoxでみたところ問題なく見れました!

となると、IE側の問題になるのでしょうか?

そして火虫はわかりませんでした><



397 名前:385 mailto:sage [2008/02/11(月) 18:13:19 ID:???]
firefoxのアドオンでしたか。ありがとうございました。

398 名前:nobodyさん mailto:sage [2008/02/11(月) 20:29:28 ID:???]
fopen追記モード('a')で開いたファイルに追記したいとき
どうすれば改行してつなげていけますか?
たとえば
$fh = fopen($file, 'a');
fwrite($fh, "test\n");
としても改行してつないでくれません






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<165KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef