【PHP】下らねぇ質問はID出して書き込みやがれ 81
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2009/02/18(水) 21:09:16ID:xNLzAD7T過去スレ、関連スレ、FAQなどは>>2-10辺り
次スレは>>980が立てる。10分以内に立たない場合、宣言してから立てたい人が立てること。
◆前スレ
【PHP】下らねぇ質問はID出して書き込みやがれ 80
http://pc11.2ch.net/test/read.cgi/php/1233479457/
◆質問用テンプレ
【OS名】vine linux
【PHPのバージョン】php5.26
【連携ソフトウェア】mysql
【質問内容】
◆質問する時の注意
・ スレを上げて自分のIDを表示させること。(メール欄に何も記述しない。専ブラのsageチェックを外す)
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に関連リンクの公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
(PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。)
◆質問後の注意
・2回目以降は最初に質問した際のレス番号を入れて、偽者防止に必ずIDを表示させること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
0082emi
2009/02/19(木) 19:46:09ID:62n5TebmPHPとjavascriptを連携させるにはどうしたらいいのでしょうか。
<?php
$fp = fopen('http://自分のHP/GPS/20090109.txt', 'r');
$count = 0;
$remove_row_list = array(1, 2, 3, 4);
while ($data = fgetcsv($fp, 10000)) {
if (!in_array($count % 5, $remove_row_list)) {
echo $data[1] ."<br>\n";
echo $data[2] ."<br>\n";
echo $data[4] ."<br><br>\n";
}
{
$count++;
}
}
fclose($fp);
?>
008482
2009/02/19(木) 19:53:50ID:/38upbVh<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://maps.google.com/maps?file=api&v=2&key=[APIkey]" type="text/javascript"></script>
<script src="c.php" type="text/javascript">
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
//表したい場所の地図の表示
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(○,△), 16);
//○=PHPのデータ $data[2]、△=PHPのデータ $data[4] を出したい
//特定の箇所にピンを立てる
var marker = new GMarker(new GLatLng(○,△));
map.addOverlay(marker);
}
}
//]]>
</script>
</head>
<body onload="load()" onunload="GUnload()">
<div id="map" style="width: 500px; height: 500px"></div>
</body>
</html>
これらをまとめてHTMLで表したい場合どのようにすればよいのでしょうか。
0085nobodyさん
2009/02/19(木) 19:54:13ID:???連携してJavaScriptに何やらせたいのか書かないとわからん
サーバでPHP処理→ブラウザでJavaScript実行の順番はわかってるのか?
0086nobodyさん
2009/02/19(木) 19:56:22ID:???var data4=<?=$data[4]?>;
//表したい場所の地図の表示
var map = new GMap2(document.getElementById("map"));
map.setCenter(new GLatLng(data2,data4), 16);
//○=PHPのデータ $data[2]、△=PHPのデータ $data[4] を出したい
//特定の箇所にピンを立てる
var marker = new GMarker(new GLatLng(data2,data4));
map.addOverlay(marker);
でOK
008773
2009/02/19(木) 19:56:55ID:???レスどうもありがとうございます
kccコマンドが使えるのですができればコマンドラインは回避したいです
>>81
どうもありがとうございます
JISだとだめみたいだったのでISO-2022-JP,SJIS,EUC-JP,UTF-8
とやったところ4種類に対応することができました
全てに対応させるのは限界がありそうなので妥協してこの方法にしたいと思います
皆さんどうもありがとうございました
0088nobodyさん
2009/02/19(木) 19:56:58ID:???その手の質問はよくあるけど、結論「無理」
できても、PHPでJavaScriptを書き出すくらい(変化に応じて書き出せる)
PHPから動的に読み込むにはAjaxを使えばできる
ちなみにその辺使うなら、ある程度JavaScriptは勉強しておいたほうがいい
関係ないが、無駄にAjax使いすぎるやつがいてうぜぇ・・・
しかも、JavaScriptをPHPのechoで吐き出してるから修正すらダルい
0089nobodyさん
2009/02/19(木) 20:04:10ID:???まるっとキャプチャしちまえばいいじゃねぇか
0090nobodyさん
2009/02/19(木) 20:05:07ID:nJvgqLn9echo "あ";
echo 'あ';
というを"と ' を使ったら書き方をするとクロスサイトスクリプティングが発生するみたいなのですが
これはなぜでしょうか?
009182
2009/02/19(木) 20:06:16ID:/38upbVhPHPのほうのテキストデータはサーバから読み込んだものなので
ブラウザからPHPで処理できるのかと…
>>88
やはり無理なのでしょうか?
すみません初心者なものなので知識はないのですが↓
でしたらPHPで出力したデータをjavascriptで扱うにはどうすべきなのでしょう?
0092nobodyさん
2009/02/19(木) 20:06:50ID:???0093nobodyさん
2009/02/19(木) 20:08:25ID:???PHPでJavaScriptを書き出せばいいんじゃね?一番簡単な方法なら
function javascript() {
<?php
for($i = 0 ; $i < 5 ; $i++) {
echo "var test[$i] = '{$array[$i]}'\n";
}
?>
}
009590
2009/02/19(木) 21:13:27ID:???echoを使うとき「"」で文字列を囲むのと、「'」で文字列を囲む記述がありますが
この"と'を統一せず、入り組んで使うとsjisとeucではクロスサイトスクリプティングになるのですがなぜなんでしょうか?
例
echo "テスト";
echo "こんにちは";
echo 'はじめまして';
echo "ありがとう";
0096nobodyさん
2009/02/19(木) 21:17:53ID:???その質問は間違っている。
その例に出てきたもので、XSSが起きるわけじゃない。
しかし、君にそのクイズを出した人が言わんとしていることには二つ以上の可能性がある。
一つは、htmlspecialcharsのENT_QUOTESとENT_COMPATの動作の問題
もう一つはSJISの5Cの問題。
他になんか意図があるかもしれんが、仮定が間違ってるので、何を言っても意味がないだろう。
0097nobodyさん
2009/02/19(木) 21:19:55ID:???009890
2009/02/19(木) 21:24:50ID:???ttp://d.hatena.ne.jp/harupu/20060328#p1
どなたかお願いします
0099nobodyさん
2009/02/19(木) 21:25:53ID:SUg9mjPG0100nobodyさん
2009/02/19(木) 21:26:33ID:???0103nobodyさん
2009/02/19(木) 21:32:32ID:???シングルクォートとダブルクォートをミックスすると表示は崩れるがXSSはできない。
0104nobodyさん
2009/02/19(木) 22:20:00ID:???echo htmlspecialchars($data[1])
echo htmlspecialchars($data[2])
0105nobodyさん
2009/02/19(木) 22:25:13ID:NhJwmPwv0106nobodyさん
2009/02/19(木) 22:27:41ID:???0107nobodyさん
2009/02/19(木) 22:42:26ID:???データベースとか楽に構築できるしね
0108nobodyさん
2009/02/19(木) 22:56:12ID:???スレチと思ったが開発環境スレが落ちてるな
Eclipseのいいところは、
クラスや関数のアウトライン参照、コンテキストに沿ったコード補完、リファクタリング(まだまだ貧弱だが)、
ブレークポイントやステップ実行、その際の変数参照、
プラグインを導入すればバージョン管理システムやDBMSともIDE上から作業できる
これらに興味がなければ無理して乗り換える必要もないかな
0109nobodyさん
2009/02/19(木) 23:01:15ID:???PDT使ったら、DWには戻れない。
まぁ、でも、サイトにすぐアップできるとか、いいよね。
でも、コードカラーリング崩れない? > DW
0110nobodyさん
2009/02/20(金) 00:57:08ID:???使ったことないから知らないけどデバッガとかついてないでしょ?
011182
2009/02/20(金) 01:21:04ID:w405pQbs>>104
ありがとうございます。
あと、たとえば$data[2]はたとえば3645.5218のような数字なのですが
桁を変えて36.455218にしたうえで10進から60進にしたいんです。
度 = int(36.455218) = 36
分 = int(0.455218 * 60) = int(27.31308) = 27
秒 = int(0.31308 * 60 *1000) / 1000 = 18.7848
= 36°27′18.7848″といったような感じにしたいんです。
0112nobodyさん
2009/02/20(金) 01:37:44ID:r16tK4jFテンプレートを表示する時
$smarty->display("index.html");
で表示できますが、display()の中を変数にする事って出来ないでしょうか?
それが出来たら、DBに保存しているHTMLをSmartyに反映させることが
出来るのですが、$smarty->display($html);とする方法では無理でした。
0113nobodyさん
2009/02/20(金) 02:41:12ID:???0114nobodyさん
2009/02/20(金) 05:22:05ID:nLAMcH0Pデストラクタでunsetとかしないでも大丈夫ですか?
0115nobodyさん
2009/02/20(金) 07:29:32ID:???無闇にunsetすると非効率になることが多いらしい
が、処理時間の長いジョブとかの場合は開放した方がいい場合もある
0116nobodyさん
2009/02/20(金) 08:38:58ID:???http://www.smarty.net/manual/ja/template.resources.php#templates.from.elsewhere
これでできないか?
0117nobodyさん
2009/02/20(金) 09:18:57ID:???$template = 'index.html';
$smarty->display($template);
で普通にできるのでは?
0118nobodyさん
2009/02/20(金) 10:16:20ID:P+ZCl9Zr<html><body>
<?php
if(!適用条件)
{ echo "適用外"; exit;}
// 適用条件内
...
?>
</body></html>
と書くと適用条件外の場合"</body></html>"が出力しないようなのですが仕様なのでしょうか?
その場合回避策としてタグの終りにジャンプとか抜けるみたなことは出来るのでしょうか?
(適用条件内を1スコープにして括弧で括る、は出来ればしたくないので…)
0120nobodyさん
2009/02/20(金) 10:39:43ID:???5.3以降でしか使えない変な物を教えるな
>>118
条件外の時はexitしてるからそれ以降が実行されないので
それ以降の</body></html>が出力されない
そういう風に書くなら
if (適用条件) {
条件内処理
}
else {
条件外処理
}
にすればいい
あと、こっちのスレのがオススメ
http://pc11.2ch.net/test/read.cgi/php/1227303362/
0121nobodyさん
2009/02/20(金) 10:45:06ID:???せめて、
{ echo "適用外</body></html> "; exit;}
だな。
0122nobodyさん
2009/02/20(金) 11:05:37ID:???中級者向け:テンプレエンジン使え
上級者向け:フレームワーク使え
0124nobodyさん
2009/02/20(金) 11:06:54ID:/aL6hv6c逆じゃない?PHPで自分で作れないからフレームワーク使うんだろ?
0125nobodyさん
2009/02/20(金) 11:06:57ID:???0126nobodyさん
2009/02/20(金) 11:08:20ID:???0130nobodyさん
2009/02/20(金) 11:23:24ID:P+ZCl9Zr取りあえず出来る書き方で書いて、天に祈りが届いたと思ってPHP5.3を待つ事にします。
>>128
Cで例外処理の場合はgoto文を使いたい(条件文が増えるとネストが深くなったりコードが重複したりするので)
みたいなものです、プログラム思想みたいなものなので余りこれ以上の突っ込みはご勘弁を…
0131nobodyさん
2009/02/20(金) 11:25:54ID:???0132nobodyさん
2009/02/20(金) 11:34:03ID:???0133nobodyさん
2009/02/20(金) 11:39:58ID:???0136nobodyさん
2009/02/20(金) 11:56:21ID:???0137nobodyさん
2009/02/20(金) 11:59:50ID:???0138nobodyさん
2009/02/20(金) 12:55:37ID:???困るんだわ…w
0139nobodyさん
2009/02/20(金) 13:12:10ID:???0140nobodyさん
2009/02/20(金) 15:34:00ID:???主にコマンドラインプログラムが対象です
attachの機能(すでに起動しているものを乗っ取れる)が
必須なんですが
0141nobodyさん
2009/02/20(金) 16:27:31ID:DGCUxhS+// 赤の他人の尻拭い中
識者いらっしゃいましたら助けてください。
よろしくお願いします。
【OS名】Linuxカーネル 2.6.18-92 (RHEL5.3)
【PHPのバージョン】php5.1.6
【連携ソフトウェア】Akelos
【質問内容】
XHTML 1.0 / UTF-8 な日本語ページ(タイトルも日本語)を出力する view があります。
IEやFireFoxなどのブラウザ、docomo iモードでは期待する内容が表示されます。
が、ezwebで文字化けします。
UTF-8が問題かと思ったのですが、同ページをPCブラウザ上で表示させ、
ソースを xx.html として保存。
このxx.html をezwebで表示すると、文字化けせずに期待通りの表示になります。
ezweb のブラウザ側の問題の可能性もあるかもしれませんが、回避策など
ありましたら、教えてください。
--- xx.html の内容
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
<title>たいとる</title>
// 以下略
0142nobodyさん
2009/02/20(金) 16:33:21ID:???ezwebだけ出力するときだけsjisに変換したら?
0143nobodyさん
2009/02/20(金) 16:35:22ID:???http://www.au.kddi.com/ezfactory/tec/spec/4_2.html
> また、EZwebでサポートする文字コードはShift-JISです。
0144141
2009/02/20(金) 16:44:08ID:???返答ありがとうございます。
Shift-JISに変換して出力するようにします。
ですが、.html拡張子のUTF-8なページは文字化けしないのが疑問のままなのは
ちょっとモヤモヤが残ります。
識者いらっしゃいましたら、引き続きよろしくお願いします。
0146nobodyさん
2009/02/20(金) 18:58:54ID:QkuM0xlTバッチファイル的に使われているのか(シェル上で、php hoge.php)を
判断する方法を教えて下さい
0148nobodyさん
2009/02/20(金) 19:12:40ID:???ありがとうございます
それをヒントにして$_SERVERを比較したところ
SHELLというキーが、シェルから呼んだ場合には設定されていました
0149nobodyさん
2009/02/20(金) 19:17:35ID:???もろそういう用途の関数がありますよ
0150nobodyさん
2009/02/20(金) 20:55:16ID:???http://pear.php.net/go-pear
0151nobodyさん
2009/02/20(金) 21:07:24ID:???自分の才能がコワイお(´・ω・‘)
0152nobodyさん
2009/02/20(金) 21:09:59ID:???0153nobodyさん
2009/02/20(金) 21:34:19ID:JGeRmwBmstr系の関数組み合わせて3個目の/が何文字目で4個目が何文字目で…
ってやれば出来るでしょうが、非効率というかアホっぽいので、正規表現でバキっと出す方法を
教えてください
よろしく御願いします
0154nobodyさん
2009/02/20(金) 21:37:09ID:???scandirが使えるバージョンならドメイン直下のディレクトリ名を取得すればおk
使えないならopendirとreaddirでググレカス
0156nobodyさん
2009/02/20(金) 22:16:34ID:???文字コードがshift-jis、Euc-jpだとSQLインジェクションされる
かといってutf-8は安全?というとそうでもない。
0157nobodyさん
2009/02/20(金) 22:24:54ID:???氏ねや
0158nobodyさん
2009/02/20(金) 22:27:27ID:???0159nobodyさん
2009/02/20(金) 22:37:43ID:???世の中にはいくらやっても報われないことが二つある
ひとつは賽の河原の石積み
もうひとつはお前のPHPの勉強だ
0160nobodyさん
2009/02/20(金) 23:27:51ID:r16tK4jF基本的に外部入力値をhtmlspecialcharsしていれば良い
って考えは間違い?
0162nobodyさん
2009/02/20(金) 23:34:48ID:???>>161はhtmlspecialcharsを使用しても抜けられる穴について説明よろ
0163nobodyさん
2009/02/20(金) 23:39:40ID:???htmlspecialchars(,ENT_QUOTES)で防げるのは「Script Injection」。
Javascript埋め込みとかそんなヤツ。
「SQLインジェクション」は別問題。
「PHPサイバーテロの技法」を買って読んどけ。
0164nobodyさん
2009/02/20(金) 23:47:18ID:???LIKEのとこに%とか*突っ込んでみるとか。
select * from table where name like '%' ;
0165nobodyさん
2009/02/21(土) 00:28:20ID:???$str = '<font size="10">でっかい</font>';
$smarty->assign('tag', $str);
$smarty->display('hoge.tpl');
---hoge.tpl---
<body>
{$tag}
</body>
とかいう意味だったら笑う。
>162
>164の変数名のところに「' OR 1=1」と入れるとレコードが全件変数に入り個人情報大暴露大会。
「'; DROP なんたらかんたら」と書くとテーブルがぶっ飛ぶ。レプリケーション先も全部死ぬからサービス復旧不能で店じまい、会社は倒産。
MySQLの設定が甘いと、管理テーブルを書き換えられてroot奪われるとかもあるな。
0166nobodyさん
2009/02/21(土) 00:32:30ID:???0169nobodyさん
2009/02/21(土) 01:19:11ID:???0171nobodyさん
2009/02/21(土) 01:47:18ID:???クエリの9割以上はカバーできるはずだ
0172nobodyさん
2009/02/21(土) 02:05:10ID:???0173nobodyさん
2009/02/21(土) 02:17:42ID:???ありえねーな
likeを使ってなかったらだいじょうぶ?
0174nobodyさん
2009/02/21(土) 02:35:53ID:60WB0UqAある本にmysql_escape_stringより良いって書いてあったのに、早いって。。
純朴な素人をバカにしやがって
0175nobodyさん
2009/02/21(土) 02:37:42ID:???本にWebに書いてあることを鵜呑みにすることが「勉強」じゃないぞ?
0176nobodyさん
2009/02/21(土) 02:44:35ID:???だいたいこの関数はSQLステートメントとして成立する文字列リテラルを作るためのものだ
%を勝手に殺したりする用途に使うもんじゃない
0177nobodyさん
2009/02/21(土) 02:45:52ID:???エスケープする必要ない
0178nobodyさん
2009/02/21(土) 02:46:31ID:???0180nobodyさん
2009/02/21(土) 02:49:17ID:RWcdEiGuprintしているのですが、これってもしreadonlyに対応していない
ブラウザとかだったら変更可能ですかね?ブラウザとか関係なく、
もし確実じゃなければ、それに代わる確実な方法を実現したいのですが
何か方法があれば教えてください。
■ このスレッドは過去ログ倉庫に格納されています