【PHP】下らねぇ質問はここに書き込みやがれ 61
at PHP
[前50を表示]
100:nobodyさん
07/12/21 15:46:33
おい上原ぁ!!お前が何とかしろ!
101:nobodyさん
07/12/21 15:53:53
""を含むhtmlタグ入り文章をechoやprintで表示、
変数に格納するにはどうしたらいいんでしょうか。
初心者質問スマソ。
102:nobodyさん
07/12/21 16:01:46
> ◆質問する時の注意
> ・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
> ・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
> ・ 己の行った操作、変更などを詳しく明記すること。
> ・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
> ・ 質問者として、態度をわきまえること。
> ・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
103:nobodyさん
07/12/21 16:03:59
>>101
URLリンク(www.php.net)
104:101
07/12/21 16:04:34
自己解決しました
<a href="index.html">2ちゃんねる</a>だったら
↓
echo "<a href=\"index.html\">2ちゃんねる</a>";とするか
echo '<a href="index.html">2ちゃんねる</a>';とすることで解決しました。
君たちみたいなバカに聞いたのが間違いでした、ニートどもは黙って職安いきなさいクズ
105:nobodyさん
07/12/21 16:11:34 Bll92Vnt
Ethnaでのトランザクション処理について、
DB更新を処理ごとに複数の関数で作成する場合は
エラー時にロールバックするためにそれぞれの関数の頭に
$db = $this->backend->getDB();
$db->db->autocommit(false);
$db->begin();
これを書く必要がありますか?
それとも
$db = $this->backend->getDB();
だけでOKですか?
106:nobodyさん
07/12/21 16:13:00
最近>>1読まないやつ多いな
>・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
107:nobodyさん
07/12/21 16:23:19
$db = $this->backend->getDB();
$db->begin();
のみでOK
108:101
07/12/21 16:40:25
>>103-104
ありがとう。専ブラなんでsageチェック外すの忘れてました。
>>104さん、他人を騙ってる割にはいい人ですね感謝。
109:90
07/12/21 16:57:32 mXpbsFrG
あれま、レスが無いと思いきや、同じくsageてました。失敬。
あらかじめロックファイルの方で排他ロックを制御できれば
処理が簡単でいいなぁ、と思ったんですが、>>90のやり方で
data.datに対しての同時書き込みは防げますでしょうか?
110:nobodyさん
07/12/21 17:00:05 mCAqxYSI
音楽(asxファイル)の再生数をカウントするスクリプトを作りたいのですが
PHPをどこにはさんでよいのかがわかりません。
一覧ページで再生する曲をチェックし、フォームで取得しています。
form actionで指定したページに
<OBJECT ID='Player' width='300' height='48'
CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
<PARAM name='autoStart' value='true'>
<PARAM name='URL' value='file_name.asx'>
<embed src='file_name.asx' autostart='true' width=300 height=48></embed>
</OBJECT>
を記述しています。
PHP5.2.4 APACHE2
よろしくお願いいたします。
111:nobodyさん
07/12/21 17:00:17 bUxsI4En
ログイン画面から入る会員領域のトップページを作ってるんですが、
入力されたID・パスが違うときはエラー画面に飛ばす処理が上手くいきません
session_start();
/* ログイン情報問い合わせ-----------------------------------------*/
require_once 'config.inc.php';//DB接続関連の設定ファイルの読み込み
require_once 'adodb/adodb.inc.php';//ADOdbモジュール読み込み
$DB = NewADOConnection(_DB_TYPE);//接続の設定
$DB -> pconnect(_DB_HOST, _DB_USER, _DB_PASS, _DB_NAME);
if(!$DB){//接続エラー時
header("Location: /system/index.html?ec=1");?//エラーページへ
exit;
}
php部分は上記の記述だけですが、表示すらされません。リダイレクトもされません
//if文の中のheader;とexit;をコメントアウトすれば、省略されてる
<html>タグ以下のページデザイン部分が表示されます
headerはすべての出力よりも先に書くというルールは知ってるんですが
何も出力してないはずでわけがわかりません
低レベルですみません、教えてください
112:nobodyさん
07/12/21 17:01:30 bUxsI4En
すみません、間違えました
×入力されたID・パスが違うとき
○接続エラーのとき
113:nobodyさん
07/12/21 17:01:36
>>106
テンプレのスレなんてねーぞコラ
114:nobodyさん
07/12/21 17:02:43
自分で立てろカス
115:nobodyさん
07/12/21 17:15:35
>>113
あるだろボケ
スレリンク(php板)
116:105
07/12/21 17:35:04 Bll92Vnt
>>107
ありがとうございます。助かりました。
>>106
すいませんでした。Ethna固有の機能ではなかったので「Ethnaの環境でやってます」という意識でした。
117:nobodyさん
07/12/21 18:01:23
>>110
音楽ファイルを読み込む前か後ろにカウント処理
118:nobodyさん
07/12/21 18:02:09
>>111
headerの使い方をもう一度確認
119:110
07/12/21 18:42:10 mCAqxYSI
>>117
やってみたのですが、やっぱりページカウンターになってしまいました。
if(isset($_POST['maker'])) {
$db = new mysqli("*","*","*","*");
$stt = $db->prepare("select * from music_lank where url=?");
$stt->bind_param("s",$_POST['maker']);
$stt->execute();
if($stt->fetch()!==TRUE) {
$sql="insert into music_lank(url,count) values(?,1)";
}
else {
$sql="update music_lank set count=count+1 where url=?";
}
$stt->close();
$stt2 = $db->prepare($sql);
$stt2->bind_param("s",$_POST['maker']);
$stt2->execute();
$db->close();
print("
<OBJECT ID='Player' width='300' height='48'
CLASSID='CLSID:6BF52A52-394A-11d3-B153-00C04F79FAA6'>
<PARAM name='autoStart' value='true'>
<PARAM name='URL' value='ASX/{$_POST['maker']}.asx'>
<embed src='ASX/{$_POST['maker']}.asx' autostart='true' width=300 height=48></embed>
</OBJECT>
<br>
");
}
冒頭の「isset」が原因なのはわかるんですが
埋め込みのメディアプレーヤーの再生ボタンを
押した瞬間にPHPを発動できれば解決なんですが・・・。
120:nobodyさん
07/12/21 19:39:49
そりゃそんなところに仕込めばページカウンターになるw
121:110
07/12/21 19:49:36 mCAqxYSI
どこに仕込めばよいのかがわからないです・・。
122:nobodyさん
07/12/21 19:55:42
>>119
>埋め込みのメディアプレーヤーの再生ボタンを
>押した瞬間にPHPを発動できれば解決なんですが・・・。
むり。どうしてもやりたいならAjaxとかFlashつかえ
123:nobodyさん
07/12/21 19:57:20
1.再生ボタンを素材で用意して、そこを押すと再生ページに移動
2.FlashでActionScriptで組み込む
124:110
07/12/21 20:00:51 mCAqxYSI
>>122
無理でしたか。それが分かっただけで一歩進めました。
ありがとうございました。
>>123
ありがとうございます。
125:nobodyさん
07/12/22 00:11:25
windows, xammp な環境で
URLリンク(localhost)(UTF8なファイル名).html
のようにアクセスすると、ローカル上の
UTF8なファイル名.html
ではなく
SJISなファイル名.html
にアクセスしにいくんですが、これってどういう理屈かご存知の方いませんか?
firefox, ie7 共になります。
これって windows じゃなくて linux サーバ上だと
EUCなファイル名.html
を見にいったりすることになるんですかね?厄介。
126:nobodyさん
07/12/22 00:13:29
>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
127:nobodyさん
07/12/22 00:15:38 YFLFW+ip
echo <<<EOF
〜〜
EOF
ってのがよくあるけど、この〜〜の部分で関数を実行できないの?
echo <<<EOF
<td>$hoge->gethoge(1);</td>
EOF
って感じ。関数でなく、変数を書いてその値を表示ならできたんだけど。。
128:nobodyさん
07/12/22 00:26:48
>>127
>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
129:nobodyさん
07/12/22 00:45:03 VmEGw74T
教えて下さい。
よく、以下の表示を見るのですが、これはどのように制御しているのでしょうか?
セッション数を取得して閾値を越えたら、この表示を出すといった処理なのでしょうか?
私も作りたいとは考えているのですが、何を基準にしていいいのか分かりません。宜しくお願いします。
現在アクセスが集中しています。
現在アクセスが集中しており表示しにくい状態となっております。
申し訳ございませんが、しばらく時間を置いてからアクセスするようお願いいたします。
130:nobodyさん
07/12/22 00:49:58
>>129
httpのステータスコード見て判別すれ
131:nobodyさん
07/12/22 01:39:24
>>127
できるよ。ある関数を使うけどね
132:nobodyさん
07/12/22 01:40:47
>>129
考えられる方法
1.apacheの設定
セッション使うのはもったいないからapacheの設定だな
133:133
07/12/22 03:51:34 PQDDH9MU
レン鯖やヤフーメイルで仮登録
→メールが送られてきて、リンクをクリックすると本登録
→サーバスペースやメールboxが作られる
この一連の動作を自分のサイトで実現しようと思ったら何を勉強すればいいだろうか。
phpとDB系を組み合わせればできる?
134:nobodyさん
07/12/22 04:03:34
>>129
DB関連でエラー出たらそれ出してるんだと思ってた。。
セッションやApacheへの接続数より、DBがボトルネックになることが
多い気がするし、「現在アクセスが集中しています。」の表示が出るまで
ちょっと時間かかるサイトが多いし。
ただしDB接続エラーでこれ出すだけでもDBに負荷かかるんで、132の言う
通りApacheでやるのが一番いいかなあ。
Apacheの設定、PHPでセッション数、DBの接続エラー全部でそういう処理
入れといて、DBの接続エラー出る前にApacheの接続数の上限に達する
ようにうまく調整するのが一番よさそう。
135:nobodyさん
07/12/22 04:21:23
>>133
メールサーバとサーバOSもかな。Webサーバもね。
・仮登録メールを受信してPHPを実行する仕組みが必要。これはメールサーバ。
本登録用のメールはPHPがメーラーの役割を果たして、メールサーバ利用して
返信する。
・サーバスペースは物理的にHDDにフォルダ作ることになるから、PHPからシェル
コマンド叩くとかの処理がいる。手動であらかじめ作っといて、空きがないなら
登録拒否とかでもいいかもだけど。。
・メールボックス作成はやったことないんでよくわからん。
コマンドラインでそういう処理ができるメールサーバはありそうだから、やっぱり
PHPから実行することになるかな。これも手動であらかじめ、ってできるかもだけど。
・Webサーバの知識はWebアプリ作る以上当たり前。
その機能を実装するだけなら通り一遍の知識でも動くと思うけど、
サーバスペース貸与サービスってレンタルサーバでできるのかな?
できないなら自分でサーバたてて運用することになるんで結構大変。
特にメールサーバは下手に立てるとWebサーバ以上に迷惑をかけることになるので。
知り合いがそういうサービス個人でやってたけど、自宅にサーバ
置いてたしなあ。
136:127
07/12/22 05:00:56
自己解決しました
一旦外で実行してから読み込めばいいんですね どうもお騒がせしました
137:nobodyさん
07/12/22 05:57:17
>>133
分かりにくい質問だけどメールサーバ関係ないんだろ?
セッションやmd5でユニークな値を持つチケットを発行すれば済む話
138:133
07/12/22 06:35:51
>>135 レスありがとうございます。
実は趣味で自宅鯖立てて、最近スペース貸出を考えているのですよ。
それでそんなプログラムできればいいかな、と。
PHPって結構いろんなことできるんですね。PHPを習得するとともに、まずメル鯖立てるために固定IPゲットせねばw
135さんのレスをもとに勉強の方針立てて頑張りたいと思います。
ところでこんな時間にレス、て何者?w
139:nobodyさん
07/12/22 09:36:10
今日は休日だからな。
自鯖立てるのは結構だが、質問内容からするとかなり不安なので、
最初は審査はさんで手動登録にするとして、鯖管としての勉強をするのが第一。
踏み台になって周りに迷惑かけないようにね。
140:133
07/12/22 11:10:17
>>139
余計なお世話です。
141:nobodyさん
07/12/22 11:21:56 JyLvDbSd
classが存在するか調べる方法はありませんか?
PEARでDB.phpが読み込まれているかチェックするために
クラスチェック("DB")のようにしたいのです
142:nobodyさん
07/12/22 11:24:26 JyLvDbSd
class_existsで解決しました
143:nobodyさん
07/12/22 13:21:02 iV97cpSO
$str = "1+2+3"; というようになっているstring があったとして、
これを数式だと解釈して 1+2+3 (= 6) を返すような関数て
ありましたかね?
144:nobodyさん
07/12/22 13:21:36
>>143
eval
145:nobodyさん
07/12/22 13:36:39 iV97cpSO
>>144 ありがとう。
$str = "1+2";
echo $str. "\n";
eval("\$str2 = $str ;");
echo $str2. "\n";
解決した。
146:138
07/12/22 13:46:19
>>133
まあ鯖管やるといろいろと勉強になるし、がんばってくれ。
ただ139と同意見でもあるので、いっぺんにいろいろやろうとせずに
PHPならPHPだけって感じでやっていったほうがいいと思う。
メールサーバは半日放置すればすぐ踏み台にされるし、他のメール
サーバの管理者から文句が来たり、ISPその他から警告来ることがあるよ。
147:nobodyさん
07/12/22 15:17:14 JyLvDbSd
PEARのmimeDecodeで
$structure = Mail_mimeDecode::decode($params);
をしたときに、メールの件名・本文の文字コードを取得したいのですが、
本文はcontent-typeにありますけど、件名がありません。
どこで取得すればよいのでしょうか?
148:nobodyさん
07/12/22 15:29:17 XDbomIjm
本でもWebでもいいんですが、PHPの長い良質なソースコードないですか?
勉強したいので。。独学ですが、普通の本のソースじゃものたりなくなりました。。
よろしくお願いします。
149:nobodyさん
07/12/22 15:35:26
>>148
pear
zend framework
あたりかな
150:148
07/12/22 15:40:37 XDbomIjm
>>149
どうもありがとうございます。その2つをとりあえず見てみます。あと、思いついたんですが
洋書でいいのないですかね?あっちの方が本格的な気がして。。洋書でいいのを知っている方
教えてください。よろしくお願いします。
151:nobodyさん
07/12/22 15:49:04
シェル形式(perl形式)のコメント#って廃止予定とかあったりする?
あまり使われてないようだけど、#がスクリプトに混ざってたりしたら気持ちわるかったりするのかな
#昔書いたスクリプトで、いたるところにコメントで/* */を使ってあるのをメンテしてて、
#/* */使って問題箇所を切り分けようとしたら酷い目にあった
152:nobodyさん
07/12/22 15:50:38
>>150
「気がする」程度なら必要ない
それよりまず日本語ドキュメントを完全マスターすべし
153:nobodyさん
07/12/22 15:54:32
>>148
PHP5でクラス使ってるのが所望なら、mediaWIKIおすすめ
俺はめまいがして静かにエディタを閉じたけどw
154:nobodyさん
07/12/22 15:54:49
ユーザーが入力した式を
evalで実行してます。
(計算機のようなものです)
でもこうすると、ユーザーがたとえばファイル読み書きなんかの
命令を入れたら実行されてしまいます。
なんかいい方法はありますか?
ちなみに単純な計算機ではなく、関数など複雑な
式を入力することが出来きることが条件です。
155:nobodyさん
07/12/22 15:55:21
pearなんてあんま良質とは思えないのも多々ある訳だが
動物本でも読んだら?
156:nobodyさん
07/12/22 16:00:36
pearといえばNET_IP_V4←うろおぼえ
で、どんなIPアドレスでもネットワーク内ある(trueになる)という、
物凄いバグありバージョンがあったな
設置だけして使ってはいなかったけど
157:nobodyさん
07/12/22 16:13:35
>>154
なんのためにそんなの作ってんの?
158:nobodyさん
07/12/22 16:23:32
>>154
自分も式を扱うプログラム書いてるけど、色々処理が必要なので真面目にパースしてる。
簡単に済ませるなら、正規表現で計算式以外の要素が無い事を確認するのが良いんじゃないかと思う。
正規表現では対応しにくいようなら、Tokenizer使って分解してチェックじゃないかな。
URLリンク(jp2.php.net)
159:nobodyさん
07/12/22 17:20:10
>>157
複雑な検索条件入力 ですが?
160:nobodyさん
07/12/22 18:52:20
>>154
>>1
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
161:148
07/12/22 19:01:21
>>152 日本語ドキュメントもしっかり読んでみます。ありがとうございました。
しかし、ソースを打ちたい。。
>>153 MediaWikiをググって見てみました。今のところどういうものかわかりませんが
時間ができたらよく調べてみようとおもいます。どうも有用な情報ありがとうございました。
お二方、お礼が遅くなりすみませんでした。ありがとうございました。
162:nobodyさん
07/12/22 20:40:17
>>150
Advanced PHP Programming
がいいよ(洋書)。
163:nobodyさん
07/12/22 23:19:52
>>162
すごい、きになる。
やっぱ洋書がいいのかなあ
164:nobodyさん
07/12/23 01:20:47
別に変わらんと思うが
165:nobodyさん
07/12/23 01:28:41
そりゃまぁ、書いてある事は同じだろ。
というか違う事が書いてあったら困る。
166:nobodyさん
07/12/23 02:11:39
>>163
もう少しで新しいバージョンのが出るらしい。
今気付いたけど、Amazon見ても目次もないから買おうか迷ってる人が判断できないな。
もったいない。
この本には、中括弧の置き方くらいの事に関しても、BSD style, GNU style,
K&R style のそれぞれの説明とかがある。
あと、Extensionの説明だけでなく、「Writing SAPIs and Extending the Zend Engine」
なんて章があって、SAPIで使ってる構造体から説明してる。
データベースマッピングの複数のデザインパターンの説明もあって、
The Active Record Pattern とかいろいろ書いてある。
もちろんその他には、エラーハンドリング、テンプレートシステム、テスト、
キャッシング、セッション、認証、RPC、プロファイリングとかの説明もある。
なんて言うか、本格的。
なんで日本語訳されてないんだろう。
167:nobodyさん
07/12/23 03:32:32 KIQSv7/M
[a.php]
<?
$hoge = 'a';
〜インクルードここまで
$hoge = 'b';
?>
[include.php]
<?
include 'a.php';
echo $hoge;
?>
$hoge = a にしたい場合、ifで制御する方法はありませんか?
include_break();みたいな
168:167
07/12/23 03:33:34 KIQSv7/M
ifで制御 → if以外で制御
169:nobodyさん
07/12/23 04:06:10
ファイル分ければ?
170:nobodyさん
07/12/23 04:16:30
>>167
わざわざ難しく考えないで、今できる知識で組めよ。
コードを今の10倍の量を書いたとき、新しい技法を覚えるってことよ
171:nobodyさん
07/12/23 04:57:03
phpに関する初歩的な質問です。書いたコードは下に示します。
htmlquickformでメールフォームを作りたいのですが、その過程でprocess関数を使うところでつまづいてしまいました。
process('test',false)としてfunction test($values)と受け取るのですが、
具体的にvaluesが何の値を受け取っているのかがよく分からないのです。
下のコードでいうと
function mail($values)
{
mb_send_mail(??????????????);
}
のところで、「valuesって一体何?」と思うわけです。
直感的にmb_send_mail(:::@:::,$subject,$body);としてもダメなようですし、、、混乱してます。(C→phpとやってきたからかな、、、
172:nobodyさん
07/12/23 04:57:57
ryaku
$form->addElement('header',NULL,'お問い合わせ');
$form->addElement('text','name','名前');
$form->addElement('text','mail','メールアドレス');
$form->addElement('text','subject','件名');
$form->addElement('text','body','本文');
$form->addElement('submit','sbm','送信');
$form->addRule('name','名前を入力してください。','required','client');
$form->addRule('mail','メールアドレスを入力してください。','required','client');
$form->addRule('mail','メールアドレスを正しく入力してください。','email','client');
$form->addRule('body','本文を入力してください。','required','client');
$form->setRequiredNote('<font color="Red">*</font> 必須項目です。');
$form->setJsWarnings('入力ミスによりエラーが発生しました。','エラーをご確認の上、再度[送信]ボタンをクリックしてください。');
if($form->validate())
{
$form->process('mail',FALSE);
}
else
{
$form->display();
}
function mail($values)
{
mb_send_mail(??????????????);
}
?>
173:nobodyさん
07/12/23 05:00:50
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
174:nobodyさん
07/12/23 06:07:25
SimpleXMLElementで、
<data>
aaa
<p>bbb</p>
ddd
</data>
てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって
アクセスしたらいいでしょう??
asXML()すると復元できるんだよなぁ
175:nobodyさん
07/12/23 06:23:36 /N04QiDA
sageてしまった……すいませんorz
SimpleXMLElementで、
<data>
aaa
<p>bbb</p>
ddd
</data>
てなXMLの"aaa"とか"ddd"のようなTextノードにはどうやって
アクセスしたらいいでしょう??
asXML()すると復元できるんだよなぁ
1つ思いついたのは、
$dom = dom_import_simplexml($xml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
とやる。
ってこれじゃーSimpleXMLの意味がない
176:nobodyさん
07/12/23 07:02:39
XMLはあまり得意じゃないんで補足を待ちたいが、"aaa"とか"ddd"ってそれぞれ
単独のテキストノードなの?
aaa〜dddまでひとつのノードじゃないかって気がするんだけど。
<data></data>しかないじゃん。
さらにそのサンプルは<data>zzz</data>にしてる気がするんだけど、
"aaa"や"ddd"へのアクセスってのとの関連がよくわからん。
177:nobodyさん
07/12/23 07:13:23
んでいちお意図を汲み取ると
<?xml version='1.0' standalone='yes'?>
<data>
<content>aaa</content>
<content><p>bbb</p></content>
<content>ddd</content>
</data>
ってことになるのかな。
$dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。
後半意味が分からんのは変わらんので、
URLリンク(jp2.php.net)
ここの例の部分よく読んで意図がちゃんと分かるように書き込みやがれこのキャベツ野郎。
あ、書いたXMLが正しいかどうかはとりあえずメモ帳当たりにコピペしてXMLで
保存してIEあたりで開けば分かるよ。
178:nobodyさん
07/12/23 07:19:03
>$dom->content[0]で"aaa"、$dom->content[2]で"ddd"が取得できる。
ここ紛らわしいかな。
$xml = new SimpleXMLElement($xmlstr); //$xmlstrには177のXML文字列が入る
$content0 = $xml->content[0]; // aaa
$content2 = $xml->content[2]; // ddd
ってことね。
179:175
07/12/23 07:45:21 /N04QiDA
<data>
aaa
<p>bbb</p>
ddd
</data>
この状態でXMLとして正しくてDOMで厳密にいうと、
Elementノードdataの最初の子はTextノードで、"\naaa\n"となる。
2番目の子は、Elementノードpで最後の子がTextノードの"\nddd\n"。
んで、SimpleXMLElementから、"\naaa"などのTextノードにアクセスしたい。
$sXML = new SimpleXMLElement($xml);
$dom = dom_import_simplexml($sXml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
ってやると、結果は
<data>zzz<p>bbb</p>
ddd
</data>
となる。
'zzz'の部分を"\nzzz\n"とすれば、
<data>
zzz
<p>bbb</p>
ddd
</data>
こうなる。
180:175
07/12/23 07:49:19 /N04QiDA
あっしまった。s/sXML/sXml/です。
ちゃんと書くとこう。
<?
$xml = <<<XML
<data>
aaa
<p>bbb</p>
ddd
</data>
XML;
$sXml = new SimpleXMLElement($xml);
$dom = dom_import_simplexml($sXml);
$dom->firstChild->nodeValue = 'zzz';
$sXml = simplexml_import_dom($dom);
echo $sXml->asXML();
?>
181:nobodyさん
07/12/23 10:36:41
すみません質問です。 ヒアドキュメントの中で、プルダウンを動的に生成できません
というか、ヒアドキュメント外で実行した関数の値(プルダウン表示)を中に
持ち込めない状況です
$address1_PD = $callData->makeKenPd("address1",$address1,1);
(↑の関数は、<option val=n>nName</option>を40回ほどループしてprintします)
echo <<<DOC
<select name="address1">
$address1_PD;
</select>
DOC;
とやってもうまくいきません $address1_PD = print($callData〜 なども
試したんですがダメでした
お手数をおかけしますが、回答お願いします php5 apache2 winxpです
182:nobodyさん
07/12/23 10:37:51 6DPIzhWO
すみません 上の181書き込みe-mail欄を消去しそこねました
アドバイスよろしくお願いします
183:nobodyさん
07/12/23 11:22:06
おっぱいカッコ
184:nobodyさん
07/12/23 11:42:34 MvcJEZMN
fgetcsvについて質問です。
A,B,C,D,E
F,G,H,I,J
K,L,M,N,O
という内容のテキストファイルcount.txtから
$handle = fopen("count.txt", "r");
$data = fgetcsv($handle);
for ($c=0; $c < 5; $c++) {
echo $data[$c];
}
fclose($handle);
というコードを用いてファイル内容を表示させようとしてるのですが
一行目までのABCDEまでしか値を取得出来ません。
二行目を抜き出すにはどんな条件を設定すればいいのでしょうか。
PHPManualを見ても、どの条件が該当するのか分からなかったので
よろしくお願いします。
185:nobodyさん
07/12/23 11:53:45
>>184
URLリンク(jp2.php.net)
例をよく見ろ
186:nobodyさん
07/12/23 12:12:21 MvcJEZMN
>>185
すみません、質問が悪かったですね。
Manualでは表示のためにwhileでfor文を繰り返してることは分かるのですが
!== FALSEがファイルの終端での全処理終了条件であることを除けば
単純にfor文を繰り返してるだけに見えるんです。
ABCDEABCDE...とループを繰り返さないための条件が何処に該当するのか、
ご教授お願いします。
187:nobodyさん
07/12/23 12:41:31
>>186
fgetcsv()すればファイルポインタが1行進む。
しまくればいずれEOFに到達して終わる。
188:nobodyさん
07/12/23 13:01:34 MvcJEZMN
>>187
whileの継続条件で用いられているfgetcsvが、
同時にポインタを進める役割も果たしてたということですか。
ポインタについてあまり学んでいないので気づきませんでした。
回答ありがとうございました。
189:nobodyさん
07/12/23 13:06:40 Dd+txFZ/
質問です。
変換するコマンド、をexecさせたいのですが、
どうしても引数を受け取る関数が必要なのでしょうか?
例えば、
exec("convert $hoge $huga);
$hogeが引数のファイル
$hugaがconvertした後のファイル
としたいのですが、失敗してしまいます。
190:nobodyさん
07/12/23 13:25:53
上の文を訳しなさい。【30点】
191:nobodyさん
07/12/23 13:37:38
質問です。
FATをNTFSに変換するコマンドconvertをPHPのexec関数で実行させたいのですが
どうしても出力を受け取る第二引数が必要なのでしょうか?
例えば、
exec("convert $hoge $huga);
$hogeが変換するファイル名
$hugaが変換後のファイル名
としたいのですが、失敗してしまいます。
192:nobodyさん
07/12/23 13:39:07 j7tEfXX4
質問があります。
PHP+PostgresqlまたはPHP+mysqlでシステム
を作ろうと思うのですが、PHP5が認識をしてくれません。
PHP info();でその部分がでてきません。
なんのパッケージをインストールしたらいいのでしょうか?
OSはFedora core4です。
板違いかもしれませんが、よろしくお願いします。
193:nobodyさん
07/12/23 13:42:43
>>192
何をしたけど認識をしてくれないの?
194:nobodyさん
07/12/23 13:48:06
SQLを、じゃない?
195:194
07/12/23 13:48:45
誤爆
196:nobodyさん
07/12/23 14:46:06
>>192
板違いです
「fedora core4 php mysql インストール」とかでググレカス
197:nobodyさん
07/12/23 14:55:33
板違いだが教えよう。
普通はyumでいれればパッケージ全部はいるはずだが、あとはphp-mysqlを入れればよいはず。php関連に限っていえばね
198:176
07/12/23 15:49:32
>>175
そのXMLであってるのか。。
DOM的には確かにノードの扱いはそうなると思うけど、XML的には
\naaa\n<p>bbb</p>\nddd\n がひとつのノードになるのは確かだと思う。
なので、
・DOM使ってXML的にもノードがばらけるように変換する。
・XML文字列を適当に文字列変換する。
くらいしかやっぱりないような気がするけどなあ。
199:nobodyさん
07/12/23 16:13:53
>>175、>>176
\naaa\nはTextNode
<data></data>、<p></p>はElementNode
firstChildNode、SiblingNodeとNodeTypeとかでとれる気もするけどXMLってそういう使い方はしない気がする。
そしてSimpleXMLElementにそれがあるかどうかは知らない。
200:nobodyさん
07/12/23 17:04:49 4Xlz9Mde
複数の変数をいっきにチェックしたいのですが効率的な書き方ありませんか?
if (empty($var1) && empty($var2) && empty($var3))
今こんな風になってます。
201:nobodyさん
07/12/23 17:13:25
自分で関数を作る
202:nobodyさん
07/12/23 17:52:07
emptyて !$hoge と同義じゃなかたけ?
203:nobodyさん
07/12/23 17:56:22
>>200
別にその書き方でいいと思うんだけど。
204:175
07/12/23 18:08:04 /N04QiDA
>>175
XPathでもXQueryでもSAXとかも全部別々にあつかうし
XMLでも、それぞれ別にあつかうよ
>>198
それについては、>>179-180に
結論としては、やっぱ無理っぽい
SimpleXMLElementって名前な時点で、Elementノードしか
無理じゃないかな〜て気はしてたんだ
それでもやるなら、SimpleXMLElement派生させるなりHelper関数用意するしかないっぽい
205:175
07/12/23 18:11:12 /N04QiDA
どんべえ食いながらレスしてたら、レス番号ずれまくり……orz
>>204において
>>175 → >>198
>>198 → >>199
です。
206:nobodyさん
07/12/23 18:11:19
>>202
変数限定(返り値や即値は使えない)ってことと
UndefinedVariableエラーにならないってとこらが違うかな。
207:nobodyさん
07/12/23 19:35:35
>>200
in_array
208:nobodyさん
07/12/23 19:56:37 Lt3D3rib
PHP4 から PHP5に移行して
サンプル集を買ってきたんですが
$select = "select * from hoge where name = $hage";
$query = mysql_query($select);
$result = mysql_result($query,0,0);
などと書いてた事が
$db = new mysqli(-------);
$aa = $db->prepare("select * from hoge where name = ?");
$aa->bind_param("s",$jakld);
みたいな文に変わってるのですが、結局どっちでもいいのでしょうか?
かなり戸惑ってまして一から勉強しないと全く分からない状態で・・。
209:nobodyさん
07/12/23 19:57:23
>>200
1つのメソッドにする。
by 「リファクタリング」
210:nobodyさん
07/12/23 20:04:09
>>208
mysql関数を使うスタイルとmysqliを使うのは
好き好きでいい(でもPHP5以降ならmysqli使った方がスタイルが入り混じらないので良い)
けど、後者のサンプルにあるプリペアードクエリの発行の仕方は反映した方が良いよ。
211:nobodyさん
07/12/23 20:23:13
>>208
練習したり、ちょっとした使い捨てでないなら、どっちもよくない
PDOでもadodbなりPEARのライブラリなり、何でもよいが、
なんらかのインターフェイスでラップするべき
お薦めは、PDOだ。
212:nobodyさん
07/12/23 20:24:33 2UmaE0fQ
pdoってなんですか?
213:208
07/12/23 20:38:27 Lt3D3rib
>>210
ありがとうございます。
prepareはたしか、パフォーマンスの向上と自動的にエスケープ
されるんでしたよね。
>>211
参考になります。ありがとうございました。
>>212
PHP Data Objects (PDO)
俺が説明するより検索したほうが確かな情報が得られると思うので。
214:208
07/12/23 20:51:51 Lt3D3rib
あ。。。
mysql4.1移行はmysqliを使わないとだめなんですね。。
サーバーが4.1以降だからmysqli使わないと・・・。
勉強しなおしか・・・。
215:nobodyさん
07/12/23 21:04:06
別にmysqlでも書けるけど
216:208
07/12/23 21:34:13 Lt3D3rib
>>215
え?
試してみましたがエラーになってしまいます・・。
217:nobodyさん
07/12/23 21:38:57
エラーになったと言われても
エラーを晒さないと解らないな
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
218:208
07/12/23 21:44:48 Lt3D3rib
>>217
大変失礼しました。。。
平凡なエラーなんですが
Call to undefined function mysql_connect
です。
なんか凡ミスしてるっぽいなぁ・・・。
219:nobodyさん
07/12/23 21:56:53
ぉぃぉぃ…
220:nobodyさん
07/12/23 22:15:35
>>218
エスパーなので、Windowsだということも判るし
php_mysqli.dllが読み込まれてるのに
php_mysql.dllは読みこまれてないということも判る。
221:208
07/12/23 22:18:13 Lt3D3rib
!!
あなたの言うとおり!
ありがと。
222:nobodyさん
07/12/23 22:20:25
すげえw
223:nobodyさん
07/12/23 23:00:41
以上、自演でお送りしました
224:nobodyさん
07/12/24 00:05:58
ID:Lt3D3ribが楽しそうでなによりだ。
225:nobodyさん
07/12/24 00:48:15 sRF6QhUm
192です。
fedora core4 php mysql インストールで
ググッてみたんですが、でてきません。
また、今後はどこの板で聞けばいいでしょうか?
後postgresqlも認識してくれないのですが。
php-mysqlと同じでいいのでしょうか。
すいませんが、よろしくお願いします。
このことに関するサイトがあれば教えてください。
226:221
07/12/24 00:59:41 PecBMOMk
>>225
ここじゃだめかしら?
URLリンク(www.fedoraz.com)
227:nobodyさん
07/12/24 01:37:31
>>225
それで検索すると>>226が出てくるわけで、それで分かんなきゃあきらめたほうがいい
228:nobodyさん
07/12/24 02:52:04
あるサイトに昨日アクセスした際にスクリプトエラーが出て、
その内容が画面に出た際、xxx.incの何行目のエラーとか出た。
試しに、xxx.incのURLで指定したら、そのソースが丸見えwwで、
その中にDBの接続のためのパラメータ(ID、PWDまで)まで書かれている。
こんな馬鹿な作りをしているサイトに天誅を下そうと思うのだが、
面白い天誅の食らわし方ない?
知っている人も結構多い、大きめのサイトなんだが。
229:nobodyさん
07/12/24 03:11:37
>>228
は?直ちに管理者にその旨を連絡するべきなのに、悪用しようなんてお前が逆にリアル天誅を食らうだけだから
一応言っておくと、明示的に公開されていないものに対してのアクセスで逮捕された前例もある
230:192です。
07/12/24 03:19:58 sRF6QhUm
226さん、227さんありがとうございます。
postgresqlも使いたいのですが、yumでphp側のインストール
はなにをすればよいでしょうか?
サイトがあれば、サイトはありがたくブックマークしました。
231:208
07/12/24 05:28:08 PecBMOMk
>>229
「リアル天誅」ウケたwwwww
>>230
ごめんよ。fedora core4 とか初耳だし
OS違うとそんなにインストの方法が変わるなんて
知らないし、教えてあげられんよ。。。
232:nobodyさん
07/12/24 05:48:42
>>230
検索ぐらいしようぜ
yum postgre phpとかで検索すれば直ぐ出てくるだろ
233:nobodyさん
07/12/24 08:41:55
>>229
じゃ、リアル天誅を食らわないように、日本の捜査権が及ばないクラッキング集団のサイトとかないの?
そこで、IDとPWDさらせば問題ないってことだよね?
234:nobodyさん
07/12/24 09:30:50 P1UMzL+u
phpMyAdminでCSVデータをインポートする時に、
CSVのフィールド囲み記号は「"」で指定すると、
データの数値で「"」で囲まれていない部分があると読み込んでくれません。
(「フィールド数が合わない」とエラーが出ます。)
もともとこういう仕様なのでしょうか・・・?
それだと、ダウンロードしてきたデータが読み込めなくて大変です
(基本的に「"」で囲まれているのは文字列だけなので)
235:nobodyさん
07/12/24 09:49:55
>>233
やー、考え浅いぞ
そういう奴らそもそも裏取るまで行動起こさないし、まずそういう情報投げた奴を洗うし叩くし。要はここと大差ねえな
そういう厨房っぽい所存でいくなら、ハッカーになりたがってるご同類の
サイトの掲示板にでも書き込んだ方がいいんじゃねえの。
無論揉め事になったら煽動で関わった事になるけどな
忠告はした
alt.2600あたりでぐぐってあとはお好きなように。類似のアレなのも色々芋蔓で引っかかるでしょう
一応先に自衛でtorやらのなんとかする品物でも入れとけよ
236:nobodyさん
07/12/24 10:14:28
>>235
詳しくサンクス。参考になった。
最近多いんだよな。素人のくせに自鯖立てて踏み台にされて迷惑掛けているやつとか、
簡単に会員の個人情報がわかるようなサイトとか、
こういうのは天誅を下さないとダメだろうなぁ。
こういう奴に限って、過失を認めず、過失を認めても誤って終わりとか。
警察や役所やプロバイダーやクレジット会社から個人情報が流出しても、損害賠償なんてしないし、天誅しかないな。
237:nobodyさん
07/12/24 10:17:04
ちなみに、俺はクレジット会社から個人情報が流出されて、
一時期毎日のようにサラ金業者から電話に掛かってきた。
テレビで報道されているのを知って、苦情言っても、
謝っても、それは私たちから漏れている情報ではないかの一点張り。理不尽な世の中に天誅を。
238:nobodyさん
07/12/24 10:34:27
世知辛い大義名分だなあ
もっと理性的な説諭の手段がありそうなもんだが。
ま、ただの感想だ。流してくれや
239:192
07/12/24 11:13:48 sRF6QhUm
URLリンク(shikabo.ddo.jp)
これがみつかった。
ほかにないかな?
240:192
07/12/24 11:14:47 sRF6QhUm
連続すいません。
上記のがみつかったのですが、
ほかにもっと詳しく書いてあるサイトはないかな?
知っている人よろしくです。
241:nobodyさん
07/12/24 11:23:36
もっと詳しいのが必要ってことは、そこの手順と対処方法で躓いたんだよね?
どこで躓いたのか明記しないと誰も有益な情報返せないんじゃないかな
只でさえfcな人がどんだけ見てるのか判らんのだし。
linux板とか当たってみるのもありかも
242:nobodyさん
07/12/24 12:32:11
なんとか苦労してApache2.0とPHP5をインストール完了。
ブラウザはFireFoxを使ってるんだけどアドレスバーから「URLリンク(localhost)」と打つと
問題なくページが表示されるんだけどフォルダからダブルクリックで「abc.php」を開くと
ブラクラみたいにタブが無限に開いていってしまう (; ´Д`)
どうしたらいいんですか・・・・?
243:nobodyさん
07/12/24 13:19:28
>>242
abc.phpのどっかが無限ループになってるんでしょ。
winならxamppという便利なものがあんのに。
244:nobodyさん
07/12/24 15:48:25 tHEPo1ls
<form>
<input type="text" name="text">
<input type="submit" value="test1" name="test1">
<input type="submit" value="test2" name="test2">
</form>
こんな感じでformの中にinput-submitのボタンが複数あって、
押したボタンによってPHP側で"text"の処理分けしたいんですが、
valueの値で判定するしかないんでしょうか。
valueだとボタンの名前として表示されるため他の方法を探しています。
245:nobodyさん
07/12/24 16:15:56
>>244
var_export($_GET); したものをtest1、test2のクリック時に見比べてみ
246:nobodyさん
07/12/24 16:27:38
isset()
247:244
07/12/24 17:11:12 tHEPo1ls
>>245
valueの値だけは違いがありますね。
input-submitじゃなくて
button-submitを使いボタン名をvalueとは別に設定することで解決しました。
レスありがとうございました。
248:nobodyさん
07/12/24 17:19:57
どうみても押したボタンのnameとvalueのセットだけが送信されます。
本当にありg(ry
249:244
07/12/24 17:29:41 tHEPo1ls
別の処理でうまくいった気がしたので過信してました。
本当にありがとうございました…。
250:244
07/12/24 17:54:23 tHEPo1ls
あまりに下らないので、スレ汚し続けたくはないのですが間違いがあったので訂正だけ。
<button type="submit" value="test" name="test1">内容</button>
だとvalueに設定されているtestは送信されなくて、内容が送信されるようですね。
手元のHTML本ではvalueが送信値となってますが、仕様変更でもあったのか。
>>248さんのご指摘とは違い他フォームの内容もちゃんと送信される模様です。
251:nobodyさん
07/12/24 18:18:44
>>250
嘘だろうと思って動作確認したらIE7では確かにそう動いた。
ちなみにFireFox2 Opera9 ではvalue値が送信されてる。(IE7と動作が異なる)
PHPの話題じゃないけど、RFC的にはどうなんだろ。
<html>
<head><title>test</title>
<meta http-equiv="content-type" content="application/xhtml+xml; charset=UTF-8" />
</head>
<body>
<?php print_r($_GET); ?>
<hr/>
<form action="test.php" method="get">
<button type="submit" value="test" name="test1">内容</button>
</form></body></html>
252:245,248
07/12/24 19:02:38
RFCというよりHTML4の仕様なんだけど、IE6,7はそれに従っていない。
以下のコードで、
・name1 name2 のいずれかをクリックした時に、3,4は送信されるべきでは無い
・name3 name4 のいずれかをクリックした時に、value3またはvalue4が送信されるべき
DOMの扱い時にも同様の支障がでてくる。
なので、buttonを使うより、input type=button を使う方が良い。(buttonに比べて表示の自由度は落ちる)
検証用コード
<html><body><form>
<input type="submit" name="name1" value="value1"></input>
<input type="submit" name="name2" value="value2"></input>
<button type="submit" name="name3" value="value3">3</button>
<button type="submit" name="name4" value="value4">4</button>
</form><p>
<?php
var_export($_GET);
?>
</p></body></html>
253:nobodyさん
07/12/24 22:47:49
まじで?
IE7でも相変わらず腐ってるんだな・・
254:nobodyさん
07/12/25 08:19:17
imap_open とかでサーバ側のエラーメッセージ(たとえば、LoginError)を
取得したいのですが、基本的に不可能でしょうか?
ZendFrameworkのZend_Mail使ってみたんですが、
オブジェクト指向を完全に理解していないオイラには
かなりつらい部分があったので、imap関数に移ろうとしてるのでつが。
255:255
07/12/25 09:05:15 Coxwnlyh
linux環境でphpを勉強し始めて5日の者です。phpのサンプル集を買って勉強しているんですが、
その中のメールフォームサンプルを自分のサイトの隅っこに置いて、apacheを起動させて動作確認してみたところ、
フォームに文字入れて確認画面に進み、送信を押すと 本当は「送信成功しました。or失敗しました。」と表示されるはずが、何も
表示されず、メールも送られていません。php.iniはデフォのままなんで、そこがダメなんじゃないかと思うのですが、
どうなんでしょう。書籍には何も書いてないです。
256:nobodyさん
07/12/25 10:39:57
エラーのときどうする、って話が書いてない本はダメだね。
そういう本(書いてない本)多いけど
257:nobodyさん
07/12/25 11:11:07
zend_extensionとextensionの違いってなんでしょう?
何時もphp.iniに書く時に迷う・・・
258:nobodyさん
07/12/25 11:15:16 M0LvCdnx
>>255
送信しましたor失敗しました あたりのソースうp
質問ですが、SQLインジェクション対策ってどうしてます?
自分はMySQLを使っていたので、mysql_real_escape_strngを使っていたのですが、
他のデータベースでも書き換えなくていいように、全てのデータベースで活用できるような
インジェクション対策などありませんでしょうか?
259:nobodyさん
07/12/25 11:53:41
>>258
PDOを使うのが定石かなぁ。
260:nobodyさん
07/12/25 12:06:36
pdo丸投げで一切自前では対策してないけど、それでいいのか不安w
261:nobodyさん
07/12/25 13:18:29
test.iniってファイルを
parse_ini_file("test.ini",true);
で読み込むとshift_jisで読み込まれちゃうんですが、ファイル読み込みのエンコーディングをUTF-8にしたいんです。
iniや表示するphpファイルは全てUTF-8になっています。
php.iniでファイル読み込みのエンコードとかでしょうか?
iniの中身は
------------------
[友達]
"佐藤" = "コスプレ"
"伊藤" = "女装"
------------------
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4066日前に更新/264 KB
担当:undef