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

このエントリーをはてなブックマークに追加
1nobodyさん
このスレッドは、他のスレッドでは書き込めない超低レベル、
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。

PHP Home Page
http://www.php.net/
http://jp.php.net/



前スレ: くだすれPHP(超初心者用)3
http://pc11.2ch.net/test/read.cgi/php/1193295871/

適当に関連スレ(マルチはだめぽ)
【PHP】下らねぇ質問はここに書き込みやがれ 69
http://pc11.2ch.net/test/read.cgi/php/1211879073/
2nobodyさん:2008/06/17(火) 16:58:46 ID:???
いつの間に
>>1おつ
3nobodyさん:2008/06/17(火) 20:01:46 ID:Xhinm60Q
あげとく
4nobodyさん:2008/06/17(火) 22:08:49 ID:???
超初心者用と普通のくだすれの切り分けが難しいね。
5919です。:2008/06/18(水) 00:58:52 ID:eWKB+6dR
書籍本から来ました。
大角本でわからないところがあり質問です。
カテゴリーのところがよくわかりません。
一応カテゴリーに関するところのソースをUPしたんですが
http://gichioka.web.fc2.com/document.rar
誰か説明してください。
よろしくお願いします。

特になんでこれでcategoryが作られるのかわかりません。
新しくカテゴリーが、これであとなんで商品登録ができるのでしょうか?
6nobodyさん:2008/06/18(水) 13:15:56 ID:???
>>5
SQLを知らないとか?
7919です。:2008/06/19(木) 01:07:52 ID:uVAJKLwk
いや、なんでそれでカテゴリーが作成されるのかが
わからない。
8919です。:2008/06/19(木) 01:11:28 ID:uVAJKLwk
もしかしてSQLの知識がたりないのかもです。
9nobodyさん:2008/06/19(木) 15:20:33 ID:byCSm/Ip
ケータイとPCで自作した掲示板の処理を確認しています。

PCだと、
コメントを削除→元の画面
→コメントが削除されている


ケータイだと、
コメントを削除→元の画面
→コメントが表示されたまま(実際にはデータは消えいてる)


更新すると、コメントが削除されている画面が表示される。



どうも、ケータイだと前の画面の情報を掴んだままの状態があるようです。
cache-control
などをやっていますが、効果はないようです。
ケータイのブラウザに、昔の情報を表示させない方法はご存知ありませんか?
10nobodyさん:2008/06/19(木) 15:30:10 ID:???
URLのうしろに毎回変わる無意味な変数入れとけば
11nobodyさん:2008/06/19(木) 15:35:08 ID:byCSm/Ip
>>10
あっ、なるほどURLと画面が紐づいているなら有効そうですね。
試してみます。
12nobodyさん:2008/06/19(木) 16:01:00 ID:???
>>10
上手くいったみたいです。
ありがとうございました。
13nobodyさん:2008/06/19(木) 19:58:24 ID:???
>>8
じゃぁ、逆にSQLって何するもんだと思ってる?
14nobodyさん:2008/06/20(金) 00:26:27 ID:???
>>9
間違っています。
以上。
はい次の方。
15nobodyさん:2008/06/20(金) 23:47:29 ID:???
レッツPHP!の新着ブロガー ttp://php.s3.to/net/
を使いたいのですが、下記のようなエラーが出てきます。
なんとか自分のHPに設置したいのですが、どこをどう直せばいいのやら
わかりません。

Warning: main(XML/RSS.php) [function.main]: failed to open stream:
No such file or directory in /home/sites/lolipop.jp/users/main.jp-
○○○/web/allblog/rssup.php on line 5

Fatal error: main() [function.require]: Failed opening required
'XML/RSS.php' (include_path='.:/usr/local/lib/php:/usr/local/lib/php/Smarty')
in /home/sites/lolipop.jp/users/main.jp-○○○/web/allblog/rssup.php on line 5

レンタルサーバーはロリポップ
サブドメインでallblog.ドメインとしてます。
ファイルは
allblog
├reeup.php
├RSS.php
├PEAR.php
├Parser.php
├index.html(このHTMLに<?php include("rssup.php"); ?>を貼ってます)
├.htaccess(中にAddType application/x-httpd-php .htmlと書き込んだだけ)

なんとか動かしたいのですがどなたか親切な方教えていただけないでしょうか?
16nobodyさん:2008/06/21(土) 01:26:38 ID:???
>>15
今、reeup.phpの5行目が有効になってると思う。
ソレをコメントアウトして、
3行目をコメントインしたら、動くんじゃないかなぁ。
1715:2008/06/21(土) 01:38:50 ID:???
>>16 動きました。ありがとうございました。2日ぐらい悩んでたのでうれしいです。
ほんとうにありがとうございました。
18nobodyさん:2008/06/21(土) 01:52:50 ID:???
>>17
今後も似たようなエラー出てくると思うから、
思い立ったときにでも、エラーメッセージをそのまま検索とかして、何のエラーかとか、
少し学習するのもいいと思う。
がんばって下さい。
19nobodyさん:2008/06/22(日) 13:25:43 ID:PqDX8Tuj
php勉強したいんですが
お勧めのHPとかありますか。
20nobodyさん:2008/06/22(日) 15:16:41 ID:???
21nobodyさん:2008/06/22(日) 16:53:20 ID:???
>>19
PHP 入門
でググって出てきたサイトを上から眺めていけばいいんじゃないかな。

ほでなすPHPとかでも勉強にはなった。

まぁ、入門っていうなら、PHP関連の書籍スレでも眺めて、初心者向けでいい本を読むのがいいかな。
22nobodyさん:2008/06/25(水) 02:35:31 ID:???
あのすいません。質問です。
基礎からのPHPでの質問ですが、admin.phpのところで、
if (isSet($_GET['tab']) && $_GET['tab'] == 'conf')
{
require('adminConfig.php');
}
else if (isSet($_GET['tab']) && $_GET['tab'] == 'edit')
{
require('adminEdit.php');
}
else if (isSet($_GET['tab']) && $_GET['tab'] == 'list')
{
require('adminList.php');
}
else
{
require('adminConfig.php');
の部分でisSet($_GET['tab']) の意味がわかりません。
どっからtabはでてきたんですか?
http://gichioka.web.fc2.com/blog.rar
ここにソースを保存したので、よろしくです。
23nobodyさん:2008/06/25(水) 03:03:27 ID:???
>>22
GETメソッドと、POSTメソッド、って言うものを理解しないと正直きつい。

まぁ、とにかく、
このadmin.phpにアクセスするときに、
ttp://www.example.com/admin.php?tab=conf
とか、って書いた場合、これはGETメソッドで、そのadmin.php以下のプロパティを渡すんだ。

で、ソレはPHPが自動的に、$_GETっていう連想配列に渡される。

上の例だと、$_GET['tab']に、'conf'が渡されるわけだ。

POSTメソッドで渡されたものは、$_POSTに渡されてくる感じ。

で、分かるかな。
適当な回答なので突っ込みあれば宜しく。
24nobodyさん:2008/06/25(水) 17:06:02 ID:???
>>21
PHP関連の書籍スレってひどくね?
基地外しかいないみたい
25nobodyさん:2008/06/25(水) 19:14:43 ID:???
23へ
よくわかりました。
ありがとうございます
26nobodyさん:2008/06/25(水) 21:01:39 ID:57l0ft98
すいません。質問です。
大角本で質問なんですが、
?
if ( $_SESSION['checked_item'] != '' ) {
foreach( $_SESSION['checked_item'] as $value ) {
$sql = "select * from item
left join author on item.author_id = author.author_id
where item_id = '$value'";
$result = mysql_query( $sql );
while ( $item = mysql_fetch_array( $result ) ) {
?>
の部分の$_SESSION['checked_item']の'checked_item'はどこからきたの?
あと$sql = "select * from item
left join author on item.author_id = author.author_id
where item_id = '$value'";
このsql文はなんでしょうか?
教えてください。
ソースはこちらにあります。
http://gichioka.web.fc2.com/sample-ec101.zip
27nobodyさん:2008/06/25(水) 21:03:44 ID:???
検索しない理由は?
28nobodyさん:2008/06/25(水) 21:18:45 ID:???
なんで自分で考えないんだろうね
29nobodyさん:2008/06/25(水) 21:18:57 ID:57l0ft98
検索したんですが、
sessionとmysql見てみたんですが、
sqlに関しては左側の部分をとりだすとのことなんですが、
いまいち意味がわかりません。
よろしくお願いします。
author.author_id ここの部分とか....
わかりません。
30nobodyさん:2008/06/25(水) 21:22:09 ID:57l0ft98
質問してはだめですか?
もしだけならここ見たらいいよとかのURLやここに聞いたらいいよ
とかのヒントだけでもお願いします。
31nobodyさん:2008/06/25(水) 21:22:35 ID:???
1.ググれ
2.本読め
3.リファレンス読め
32nobodyさん:2008/06/25(水) 21:23:06 ID:???
>>27,>>28
まぁ、超初心者スレだから、そういうなよ。何をどう検索したら良いかとかいまいちピンと着てないだけかもしれないでしょ。

とりあえず、>>26は、そのSQL文の何がどうわからないのか教えてよ。

$_SESSIONは、セッション変数って奴で、多分別のファイル見れば、セッション変数に値入れてる行があると思うよ。
詳しくは、
http://jp2.php.net/session
3332:2008/06/25(水) 21:26:52 ID:???
亀レス過ぎたww
恥ずかしい。

>>29
item.author_idってのは、itemテーブルのauthor_idフィールドのこと。
author.author_idってのは、authorテーブルのauthor_idフィールドのこと。
34nobodyさん:2008/06/25(水) 22:10:36 ID:???
文字化けのことで困っています。

・PHP 5.26 @ WinXP SP2
・ファイルは BOM無しのUTF8 で保存
・mbstring.internal_encoding = UTF-8
・mbstring.http_output = pass
・mbstring.http_input = auto

以上の環境にて、以下のようなスクリプトを動作させたとき、
<?php
var_dump($_GET);
?>
$_GET に日本語が含まれると文字化けを起こしてしまいます。
mb_detect_encoding を使ってみた結果、$_GET が SJIS で渡されており、これがファイル保存時の文字コードと異なるために、
文字化けを起こすものと思われます。

これをどうにか解消したい($_GETをUTF8で受け取ってほしい)のですが、どのようにすればよいか検討がつきかねます。
どなたか、ご助力いただけると幸いです。よろしくお願いします。
3534:2008/06/25(水) 22:11:44 ID:???
ミスです。
・PHP 5.2.6 @ WinXP SP2
です。
36nobodyさん:2008/06/25(水) 22:15:56 ID:???
htmlをutf-8にする
37nobodyさん:2008/06/25(水) 22:23:08 ID:6PfOtUiM
>>36
・ファイルは BOM無しのUTF8 で保存 に含めたつもりでしたが、
HTMLもUTF8になっています。
38nobodyさん:2008/06/25(水) 22:48:20 ID:???
>>37
HTMLの<head>タグに、
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
を突っ込んだらどうよ。
3934:2008/06/25(水) 22:48:25 ID:???
追記です。

同じように $_POST も試してみましたが、こちらは文字化けは起こらず、mb_detect_encodingの結果も UTF-8 でした。
発生するのは $_GET のときのみのようです。
40nobodyさん:2008/06/25(水) 22:50:15 ID:???
>>38
ありがとうございます。
meta に入れるのもやってみました。
やはり、$_GET で受け取った文字列だけが文字化けが起こします。
41nobodyさん:2008/06/25(水) 22:54:13 ID:???
>>40
あぁ、
日本語WindowsのアプリってエンコードSJISだから、GETメソッドでクエリ送れば、SJISになりますよ。
http://example.com/index.php?hoge=あいうえお
とかやると。
URLに渡すときはURLエンコードとかかけなきゃいけないんじゃないかな。
42nobodyさん:2008/06/25(水) 23:04:21 ID:???
ああアドレスバーに直接打ち込んでんの?
43nobodyさん:2008/06/25(水) 23:06:51 ID:???
>>42
情報小出しになってしまってごめんなさい。
はい、アドレスバーに直接打ち込んでテストしています。
あきらめて、SJISでプログラムしたほうがいいのでしょうか……。
44nobodyさん:2008/06/25(水) 23:08:44 ID:???
そういう特殊なことしてるんなら先に言ってくれないとわかんねーよ・・・

んでもって、本番でもアドレスバーから直接入力するんですか?それともページ中にリンク張るんですか???
45nobodyさん:2008/06/25(水) 23:12:40 ID:???
>>44
本当に申し訳ないです。
もちろん、ページ中からリンクを貼りますが、$_GET から値を持ってきて、HTML中で表示させたときに文字化けしてしまうとなると、
form などから get で送って、次のページで受け取り表示する、ということができないので、何とか解決したいと思っています。
46nobodyさん:2008/06/25(水) 23:15:52 ID:???
>>45
form から get で送ればURLエンコードされるよ
?hoge=あいうえおの部分はinput type=hiddlenで指定する
47nobodyさん:2008/06/25(水) 23:18:36 ID:???
>>46
スペル間違えた

<A>だとURLエンコードする必要があるな
48nobodyさん:2008/06/25(水) 23:19:29 ID:???
>>45
よく分からん。
HTML中に<a href="hoge.php?q=あいうえお">とか書くってこと?
それともフォームでmethod="get"でinput type="text"に日本語入力してもらうってこと?
いずれも適切にエンコード設定すれば文字化けなんかしないから大丈夫
49nobodyさん:2008/06/25(水) 23:19:33 ID:???
>>46
あれれれ……?
そのとおりです。formから送ったらgetでも正常でした。
ってことは、「アドレスバーから直接打ち込んでいた」ことが原因だったようですね……。

これだけのために、本当にご迷惑をおかけしました。
情報の小出し、気をつけます。
ありがとうございました。
50nobodyさん:2008/06/25(水) 23:40:40 ID:???
最初から書いていれば1レスで終わったのにね。まぁ頑張ってください。
51nobodyさん:2008/06/26(木) 23:16:43 ID:???
>>26
「item.php」のこの部分みたい

if ( ++ $_SESSION['checked_item_num'] > 4 ) $_SESSION['checked_item_num'] = 1;
if ( ! in_array( $_GET['item_id'], (array)$_SESSION['checked_item'] ) )
       $_SESSION['checked_item'][$_SESSION['checked_item_num']] = $_GET['item_id'];


ところで二行目の (array) ってなんの意味があるの?
だれか教えて下さい。
52nobodyさん:2008/06/26(木) 23:31:32 ID:???
>>51
マニュアル
53nobodyさん:2008/06/27(金) 00:15:13 ID:???
よくわからない・・・

こういう使い方なら理解できるんだけど
function foo($value)
{
$array = (array) $value;
print_r($array);
}

なんでif()の条件に
if ( ! in_array( $_GET['item_id'], (array)$_SESSION['checked_item'] ) )
こういう使い方をするんだろ。
54nobodyさん:2008/06/27(金) 00:23:41 ID:???
55nobodyさん:2008/06/27(金) 00:26:03 ID:???
>>53
$_SESSION['checked_item']が配列じゃなかったときにエラーはかれるのを回避したかったんじゃないの?
(array)で型キャストすれば単一文字列が入ってても、配列に変換されるし。
56nobodyさん:2008/06/27(金) 00:43:47 ID:???
$_SESSIONはそれ自体で配列じゃないの?
要素が一つでも配列は配列だし。
うーん。
眠いから明日また考えてみる。
ありがとう。
57nobodyさん:2008/06/27(金) 00:50:44 ID:???
>>56
$_SESSIONは配列かもしれないけど、
$_SESSION['checked_item']は、配列じゃないかもしれないだろ?
58nobodyさん:2008/06/27(金) 02:50:58 ID:???
(array)取ってどんなエラーが出るか動作確かめればいいのに。。
59nobodyさん:2008/06/27(金) 04:01:35 ID:XEI5jC31
if ( ++ $_SESSION['checked_item_num'] > 4 ) $_SESSION['checked_item_num'] = 1;
if ( ! in_array( $_GET['item_id'], (array)$_SESSION['checked_item'] ) )
       $_SESSION['checked_item'][$_SESSION['checked_item_num']] = $_GET['item_id'];
僕もわかりません。
(array)と結局なんの処理なんでしょうか?
60nobodyさん:2008/06/27(金) 04:47:35 ID:???
>>59 >>55で「キャストしてる」って教えてくれてるのに、それは無視なの?
61nobodyさん:2008/06/27(金) 07:32:24 ID:???
これはひどい自演
62nobodyさん:2008/06/27(金) 12:39:58 ID:???
in_arrayを使ってる時点では$_SESSION['checked_item']が配列若しくはnullの可能性があって
item_idがその中に無ければ配列として追加してってる感じ?
その配列キーは$_SESSION['checked_item_num']で最大4まで
それ以上の場合は1に戻す
6356:2008/06/27(金) 22:24:17 ID:???
>>57
やっと理解できました。
array型へのキャストは、スカラならその値をひとつの要素とした配列に
配列ならそのままの状態、というふうに切り替わるんですね。
そこを知らなかったから余計に混乱してました。
ありがとうございます。
64nobodyさん:2008/06/27(金) 22:42:45 ID:???
だから何でマニュアルすら読まないのか
65nobodyさん:2008/06/27(金) 23:39:22 ID:???
>>64
型キャストって言葉が出てこなかったら、(array)で何が起こってるかっていうのは、
検索しづらいんじゃない?

きっかけとかとっかかり掴みづらい内容ではあったと思う。
超初心者スレだし、多めに見てやりなよ。
66nobodyさん:2008/06/27(金) 23:44:38 ID:???
算数解らないのに数学やろうとしても解るわけ内じゃん
67nobodyさん:2008/06/27(金) 23:56:10 ID:???
キャスト自体は知ってたんだろよく読め
あとマニュアルが一番基礎の教科書
68nobodyさん:2008/06/28(土) 00:44:20 ID:???
知ってることと理解してることは別
69nobodyさん:2008/06/28(土) 00:46:53 ID:???
なら尚更マニュアル読むかググれって感じ
70nobodyさん:2008/06/28(土) 07:49:57 ID:9QUTsyON
質問です。
$str = <<<EOM
あああ<br />
いいい<br />
ううう<br />
<!--S-->
えええ<br />
おおお<br />
<!--E-->
EOM;

このうち<!--S-->と<!--E-->で囲まれている<br />だけを削除したいのですが、
正規表現を使って綺麗に書けるでしょうか?
以下のように試したのですが、<!--S-->と<!--E-->が消えるだけでした。
$str = preg_replace("/<!--S-->([\W\w]+)<!--E-->/",str_replace("<br />","","\\1"),$str);
また、<!--S(E)-->で囲まれている部分は改行や半角英数字などが含まれる場合があります。
どなたかご教示いただけますでしょうか。よろしくお願いいたします。
71nobodyさん:2008/06/28(土) 07:57:27 ID:???
正規表現スレでどうぞ
7270:2008/06/28(土) 08:34:53 ID:???
>>71
失礼しました
73nobodyさん:2008/06/29(日) 10:08:17 ID:l4KJ7KZ4
あいうえお眉幅はEUCを判別させるために有効みたいだけど
同じ方法でUTF-8を判別させる方法てありますか?BOMは
考慮にいれたくないです。
74nobodyさん:2008/06/29(日) 17:48:22 ID:???
3バイトならutf-8なんじゃね
75nobodyさん:2008/06/29(日) 18:23:50 ID:hneArZSD
あのすいません。質問です。
基礎からのPHPからの質問なんですが、
自分のサーバーに移行して実行したところ、
loginForm.phpでIDとパスワードを聞かれて入力したいのですが、
うごきません。というかIDとパスワードはなんなんでしょうか?
本にはroot,rootpassと書いてあったんですが、動きません。
すべてデータベースも起動させているのですが、pearも入っています。
http://gichioka.web.fc2.com/blog.rar
ここにソースを保存したので、よろしくです。
76nobodyさん:2008/06/29(日) 18:31:26 ID:???
書いてあるURLは403で落とせないんだが・・・
それよりおまえ、>5で>26だろ?
SQLを基礎から勉強してこいって。
77nobodyさん:2008/06/29(日) 18:41:10 ID:hneArZSD
落とせるようになりました。
よろしくです。
SQLの勉強もします。
お願いします
78nobodyさん:2008/06/29(日) 18:43:49 ID:???
では身に付いたら知らせて下さい
79nobodyさん:2008/06/29(日) 19:07:35 ID:hneArZSD
教えてもらえないんですか?
80nobodyさん:2008/06/29(日) 19:10:11 ID:???
SQLの勉強はいつするんですか?
81nobodyさん:2008/06/29(日) 19:14:08 ID:hneArZSD
初めてのPHP+MYSQLの本も買いましたし、読んでいます。
今回これがなぜうごかないのかわかりません。
この板ではだめですか?
82nobodyさん:2008/06/29(日) 19:15:56 ID:hneArZSD
あと
あと、ログイン画面は表示されるのですが、
下のトップページに戻るは真白です。
よろしくお願いします。
83nobodyさん:2008/06/29(日) 19:42:13 ID:???
アクセスするDBサーバのIDとパスワードを入れればいいんではないでしょうか
84nobodyさん:2008/06/29(日) 20:50:46 ID:hneArZSD
DBサーバのIDとパスワードもだめでした。
85nobodyさん:2008/06/29(日) 21:24:23 ID:???
じゃエラー表示するようにして見れ
86nobodyさん:2008/06/29(日) 22:42:12 ID:???
ID:hneArZSDを「画伯」と呼びたくなる
87nobodyさん:2008/06/30(月) 01:49:34 ID:???
これはもうだめかもわからんね
88nobodyさん:2008/06/30(月) 02:51:43 ID:???
こんな奴が中途で入社してきたら最低だろうな…
89nobodyさん:2008/06/30(月) 18:04:53 ID:???
SQLの文字コードって全部合わせておけばいいのかな……?
テーブル、カラム、データベース全体……個別個別で細かく設定できすぎてよくわからない。
90nobodyさん:2008/06/30(月) 22:24:41 ID:???
PHPでスタックとキューを表現するコードを書きたいのですが、
どこか参考になるサイトありますか?

/* PUSH */

$arr = array();
$num = 5; //意味ないかもしれませんが・・・
for($i = 0;$i < $num;$i++)
{
$arr[] = $i; //array_push($arr,$i); とやろうとしたけど、これは無理でしょうか。
}

$ct = count($arr);
echo "要素数:$ct\n");





てな感じで書いてるんです。
本当はarray_pushやarray_pop、unshiftやらを使いたいのですが、
これら全てが上手く動いてくれません。助言お願いします。
91nobodyさん:2008/06/30(月) 22:27:09 ID:???
上手く動いてくれないって?
92nobodyさん:2008/06/30(月) 22:31:07 ID:???
>>91
for文の中身は確か、
$arr[] = $i + 1;
の間違いでした、スイマセン。

echoで$arrの中身を順番に表示させると、
1
2
3
4
5
という風になるんですが、array_pushで>>90のコメントで書いている通りのコードで
実行させると、配列から何も取り出せてなかったんです。
93nobodyさん:2008/06/30(月) 22:32:46 ID:???
コード見せてみ?
94nobodyさん:2008/06/30(月) 22:34:22 ID:???
見せることが出来ません・・・持って帰ってこれない決まりになっているので。

実は入社してから、初めてPHPを触りまして、まだ2日目です。
95nobodyさん:2008/06/30(月) 22:35:55 ID:???
いや問題が再現する部分だけでいいからw
96nobodyさん:2008/06/30(月) 22:39:20 ID:???
>>90 array_push array_pop
97nobodyさん:2008/06/30(月) 22:40:44 ID:???
>>95
pushの部分では、>>90の通りです。
後は、echoで&arrの中身5つを順に表示させて終わりです。

$arr[] = $i + 1;
の下に、
echo = "$arr[i]\n";

これだけです。
ちなみにstackクラスの中でpushとpopの関数を作っています。
98nobodyさん:2008/06/30(月) 22:41:37 ID:???
$arr[$i]ぢゃないでしょうか
99nobodyさん:2008/06/30(月) 22:42:43 ID:???
>>98
ああ・・そうです、すいません
まだ$つけるの慣れてないものでつけ忘れました・・・
実際のコードではつけてますので。
100nobodyさん:2008/06/30(月) 22:45:49 ID:???
なんかよく分からんけどとりあえずはい
$arr = array();
for($i=0; $i<5; $i++) {
array_push($arr,$i);
echo "$arr[$i] ";
}
結果
0 1 2 3 4
101nobodyさん:2008/06/30(月) 22:56:51 ID:???
>>100
ええ・・・出来るんですか
あと、>>97でecho = ...とかやってますね、もう間違い酷すぎます・・・。

自分の環境では、
PHP5
apache 2.2
eclipse(PDT) 3.3

なんですけど、array_push等が使えないはずはないと思うんですけどね。
メモらせていただきます、ありがとうございます。
102nobodyさん:2008/07/01(火) 20:24:33 ID:???
PHPの勉強を兼ねて、投票CGIを作っています

A〜Eの5つの投票対象(固定)に対して1票と1行コメントを同時送信できるスタンダードな(?)ものです
A.txt 〜 E.txtまでを作成し、そこから票数を読んで加算、上書きするという形で一応投票の基本的な部分までは作成することが出来ました
またコメントも別にA_comment.txt 〜 E_comment.txtを用意し、そこの最後の行に追記していくことで保存できるようにしました

そして今、現在の各アイテム票数をランキングにして表示できるようにしたいのです
具体的には、例えばAに15票、Bに20票、Cに5票、Dに1票、Eに50票入っていたとしたら

1位 E(50票)
2位 B(20票)
3位 A(15票)
4位 C(5票)
5位 D(1票)

という風に表示したいのです
またそれに関連して各項目をクリックするとコメントを見られるページに飛ぶという仕様を考えましたが、これはリンクでGETを使ってパラメータで分岐すればいいと考えています

肝心のランキング表示部分をどう作っていいのか分からないので、どなたか教えていただけないでしょうか
ソートについても色々調べてみましたが、票数を並べ替えた後の項目との関連付けをどうやっていいかよく分かりませんでしたorz
103nobodyさん:2008/07/01(火) 20:57:33 ID:???
>>102
rsort (krsort/arsort)
10475です。:2008/07/02(水) 02:21:42 ID:/ZwHa0Ji
レスくれた方シカトしてしまってすいません。
今勉強をして、なんとか自己解決できるように
したいと思います。
SQL勉強中です。
亀レスすいません。
105nobodyさん:2008/07/02(水) 02:48:17 ID:???
>>104
一回、PHPから離れて、MysqlとかでDB構築して、コマンドラインでいろんなSQL実行してみればいいと思うよ。
がんばれ。
106nobodyさん:2008/07/02(水) 02:49:38 ID:???
ttp://search.net-newbie.com/php/wrappers.http.html
一番最後「HTTP リクエストで独自のヘッダを送信する」にある

ini_set('user_agent', "PHP\r\nX-MyCustomHeader: Foo");
$fp = fopen('http://www.example.com/index.php', 'r');

送信されるリクエスト
X-MyCustomHeader: Foo

とありますが、実際受信側のレスポンスを見ると、
HTTP_X_MYCUSTOMHEADER: Foo

という風に"HTTP_"が付加されていました。
そういうものなんでしょうか?
107102:2008/07/02(水) 06:34:22 ID:???
>>103
解決しました!ありがとうございました!
108nobodyさん:2008/07/02(水) 12:23:28 ID:???
>>106
Host: www.example.com →HTTP_HOST
User-Agent: PHP →HTTP_USER_AGENT
X-MyCustomHeader: Foo →HTTP_X_MYCUSTOMHEADER
つまりはそういうこと。
109nobodyさん:2008/07/04(金) 00:37:52 ID:q3bb7c0a
8953201 や 3545 や 156783 などの数字を
89.53201 35.45 15.6783にしたいのですがどうしたらいいのでしょうか?
110nobodyさん:2008/07/04(金) 00:38:48 ID:q3bb7c0a
あ、すいません。三つをつなげたいわけじゃなくて2桁目に.を入れたいという意味です。
111nobodyさん:2008/07/04(金) 00:39:27 ID:???
二桁目じゃなくて右から2つ目にですね…
すいません…
112nobodyさん:2008/07/04(金) 00:43:41 ID:???
>>109
$a = 8953201
$a = preg_replace('/^([0-9]{2})([0-9]+)$/', '$1.$2', $a);

つまり正規表現を使えばよいのではないか。
113nobodyさん:2008/07/04(金) 00:52:45 ID:???
おお、できました!ありがとうございます!!
ちなみにこれは、前半部分が$1に、後半部分が$2になってるって解釈でいいんでしょうか?
114nobodyさん:2008/07/04(金) 01:09:26 ID:???
>>109 sprintf
115nobodyさん:2008/07/04(金) 01:09:53 ID:???
あ。うそ。ごめそ。
116nobodyさん:2008/07/04(金) 12:20:55 ID:???
mssqlに接続をやってみようと思い

<?php

$link = dbx_connect(DBX_SYBASECT, "localhost", "db", "username", "password");
dbx_close($link);

?>

とりあえずこれで、dbx関数とsybasect周りが使えるかどうかチェックしたんですけど
エラーが出てしまいました。

Warning: dbx_connect() [function.dbx-connect]: dbx: module '7' not loaded or not supported

環境はxampp1.6.6 for linuxで、apacheは2.2.8、PHPは4.4.8です。
extensionに設定されたディレクトリに、php_dbx.dllとともに、php_sybase_ct.dllを配置してあるので
読み込まれていない・・・ということは無いと思いますし(apacheの再起動は何度もかけています。)
php.iniの設定も問題なさそうです。
PHPのバージョンも、4.2.0より後発のもので、サポートもしていると思うのですが
どなたか、なにとぞ助力をお願いできないでしょうか。
117nobodyさん:2008/07/04(金) 13:10:39 ID:???
linuxでMSSQLでdll???
118nobodyさん:2008/07/04(金) 14:04:56 ID:???
あ、ごめん 間違えてた windows機のほうでした・・・。
マシン入れ替えていろいろ試してたら混乱してしまった。
119nobodyさん:2008/07/04(金) 15:33:23 ID:???
phpinfoで確認
120nobodyさん:2008/07/04(金) 16:50:08 ID:4Xa3cuiv
PHPスクリプト内の文字列の扱いについて質問なのですが
PHPバージョンは5
自動変換系は全てパス、スクリプトはUTF-8で記述、
internal_encodingもutf-8とします。
スクリプトの処理内容は
UTF−8エンコードで送られてくる文字列”あいうえお”
を受け取りそれをスクリプト内で
”あいうえお”か判断して”あいうえお”
なら真を返すてだけの単純なものなのですが
”あいうえお”を送っても真を返してくれません。
それで今度はポストするデータをEUCエンコードで送ってみると
あらふしぎ真を返してくれるんです。
PHPスクリプト内に書いてある文字列たとえば
<?php
$a="あいうえお";←ここの部分
?>
はロケールのエンコードで解釈されてる気がするのですが
(OSのロケールはEUC−JPだった)
どうなんでしょうか?舌ったらずで申し訳ありません。。。
12175です。:2008/07/05(土) 00:32:52 ID:MACe5BF6
euc-jpでやれば。
なんかutf-8にしないといけない理由とかあるの?
122nobodyさん:2008/07/05(土) 00:36:49 ID:???
wordpressとか?
123nobodyさん:2008/07/05(土) 01:57:54 ID:???
>>120
送られてくるデータってのは、GETしてるの?
POSTしてるの?
ついでに、どちらでもいいけど、ブラウザがGETorPOSTしたデータを、echoしたら文字化けするの?
真偽値取る前に、そこらへん確認してみては。
124nobodyさん:2008/07/05(土) 06:27:10 ID:???
>>120
ソースの文字コードがeuc-jpだったというオチでは?
euc-jpの「あいうえお」とutf-8の「あいうえお」じゃ当然マッチしないわ。
125nobodyさん:2008/07/08(火) 22:48:01 ID:nzIgHbiU
exif_read_dataってちゃんと画像の形になってないと読んでくれないんですかね?
mail_mimedecodeで添付付きメールを分解したんですが、その添付ファイルを撮影時間の名前で保存したいんです
おそらく、一度保存してからexifデータを読み込み、その後名前を変えるって形ならいけるとは思うんですが
二度手間になってしまうのでもし出来るのならと思いまして
126nobodyさん:2008/07/09(水) 01:55:27 ID:U9Y+NLIi
そうだね
127nobodyさん:2008/07/11(金) 12:12:19 ID:???
どなたか、解決に力をお貸し願えないでしょうか。

postfixを使って、phpからメールを送りたいのですが
うまく動作していない状態です。
環境はCentOS5上、Apache2.2.9 PHP-4.4.8 postfix-2.5.2で
全てソースからインストールしています。

直接、mailコマンドでgmailにテストメールを送信したら、正常に送信されたので
ポートの開放や、postfixそのものの設定は問題なさそうなのですが
PHPからmb_send_mailを使用して送信した場合、gmailに送信されずにいます。
php.iniのsendmail_pathには「/usr/sbin/sendmail.postfix -t -i」と
設定しているのですが、エラーログに以下の内容が出力されていました。
Jul 11 11:52:42 localhost postfix/local[31480]: fatal: open database /etc/aliases.db: No such file or directory
Jul 11 11:52:43 localhost postfix/master[23909]: warning: process /usr/libexec/postfix/local pid 31480 exit status 1
Jul 11 11:52:43 localhost postfix/master[23909]: warning: /usr/libexec/postfix/local: bad command startup -- throttling

問題点が思い当たる方いらっしゃいましたら、何卒ご助言をお願いいたします。
128nobodyさん:2008/07/11(金) 12:58:30 ID:???
別にsendmail_path通さなくても
alternatives --config mtaでpostfix選択するか
system-switch-mailで切り替える方が良いよ
129nobodyさん:2008/07/11(金) 19:41:44 ID:???
なんかDB周りの設定とかindex.phpとsideBar.phpとentryView.phpとadmin.phpと
loginform.phpの部分とかがおかしいみたいです。
Windowsでは動くらしいけどlinuxでは動かないとかなんとか。
もうくそ本でした。
くやしい.....
誰かなんとか動くようにはできないでしょうか。
ソースは
http://gichioka.web.fc2.com/blog.rar
です。
マルチ失礼しました。
報告までです

13075です。:2008/07/11(金) 19:49:15 ID:???
すいません。
129=75です。あのときブログのことで質問しました。
あの時はいろいろ教えていただきありがとうございました。
131nobodyさん:2008/07/11(金) 20:40:04 ID:???
まだやってたのか
ログインできたの?
132nobodyさん:2008/07/11(金) 20:44:45 ID:???
loginformはだめですが。
admin.phpはいけます
133nobodyさん:2008/07/11(金) 22:11:31 ID:???
誰か助けてくれ---------------------
134nobodyさん:2008/07/11(金) 23:01:47 ID:???
何を?
135nobodyさん:2008/07/12(土) 10:17:05 ID:???
あんた向いてないから諦めろ
136nobodyさん:2008/07/13(日) 04:23:27 ID:???
あきらめきれない。
3000もしたんだよ
137nobodyさん:2008/07/13(日) 20:06:55 ID:???
画伯も大変だな
3000は大金だもんな
元気出せよ
138nobodyさん:2008/07/13(日) 21:41:45 ID:???
買った本をあきらめろってことじゃなくて、
PHPの勉強をあきらめろってことじゃあ…
139nobodyさん:2008/07/15(火) 03:16:57 ID:YrbWt9It
この本返そうかと思ったぜ。
ソフトバンクの本はもう買わん

140nobodyさん:2008/07/15(火) 15:59:19 ID:px8EuhxF
simplexmlについて質問です。
以下のようなXMLからCountの値を取得したいのですが、
取得できません。
$string = <<<XML
<?xml version="1.0" ?>
<document>
<Hoges>
<Count>2</Count>
<Hoge>
<aa label="monar" />
<name>モナー</name>
</Hoge>
<Hoge>
<aa label="yaruo" />
<name>やる男</name>
</Hoge>
</Hoges>
</document>
XML;

$xml = simplexml_load_string($string);
foreach($xml->Hoges as $key => $tmp){
/* ここでCountの値を取ろうとしていますが
$keyが'Hoges'になっていて取得できません。
*/
}
↑のforeach内で取得する方法を教えてください。
ちなみに、$xml->Hoges->Countでは正常に取得できます。
どうかよろしくお願いします。
141nobodyさん:2008/07/15(火) 19:35:37 ID:???
foreach($xml->Hoges as $key => $tmp){
echo $tmp->Count;
}
142nobodyさん:2008/07/16(水) 01:29:04 ID:yQh99k9k
掲示板作ってるんですが最近英語表記のみ url大量に含まれた書き込みが大量に送り込まれ処理に困っております。
POSTで受け取っている$_POST['text']に日本語が含まれていないものを除外、urlが2つ以上含まれているものを除外したいのですが
どのようにしたらよいのでしょうか?

あと似たような問題は他にもいくらでも出てくると思うので、SPAM書き込み対策
掲示板作成の参考になるようなHPとかあるようでしたら教えてください。

よろしくお願いいたします。
143nobodyさん:2008/07/16(水) 01:37:08 ID:???
ひとつはjavascriptで制御だな。
javascriptでこの文字が入っていたら除くとか
検索すれbないいよ。
もうひとつはapacheのところで、どこからきているか
を解析してそいつらはみられないようにするんだ。
144nobodyさん:2008/07/16(水) 01:51:52 ID:???
>>142 BBQ
145nobodyさん:2008/07/16(水) 08:03:30 ID:???
<?php
$baseball = array('鈴木'=>16, '松井'=>55, '清原'=>5);
foreach ($baseball as $key => $val){
print ($key." : ".$val."<br />");
}
?>


これの
$key の後ろの . って何のために必要なんでしょうか?
146nobodyさん:2008/07/16(水) 09:49:58 ID:???
文字連結のため。
147nobodyさん:2008/07/16(水) 12:25:39 ID:???
連結をしないとエラーになってしまいますが、なぜエラーになるのかがわかりません。
連結をしなければいけないときとしなくてもいいときがわからないというか?
148nobodyさん:2008/07/16(水) 13:00:16 ID:???
>>147
お前はいったい何がしたいんだ?

>>145のソースでは当該箇所はどう見ても文字列を連結しようとしている
わけだから、連結演算子(.)は省けないだろう。

どうしても連結したくないなら
print $key;
print " : ";
print $val;
print "<br />";
とでもしておけ。

普通なら
print "{$key} : {$val}<br />";
で終わりだがな。
149nobodyさん:2008/07/16(水) 13:02:18 ID:???
>>148

なるほど。
意味がわかったような気がします。
ありがとうございました。
150nobodyさん:2008/07/16(水) 13:20:58 ID:JWV92MXF
. で連結するより、変数を{ }で囲った方が処理的負荷が少ないの?
たしか、 .で連結するより ,で連結した方が、処理的に早いって聞いた

処理速度 { } > , > .

これであってるかな?
151nobodyさん:2008/07/16(水) 13:23:05 ID:???
高速化は、デカい所からやれ!!
最適化は、脳味噌に適用しろ!!

http://d.hatena.ne.jp/gegegen/20080524/1211622711より
152nobodyさん:2008/07/16(水) 13:39:24 ID:???
PHPの質問とはちょっと違うと思いますが、

例えば、a8等のアフィリエイトの場合、広告主がサンクスページ(購入完了画面) に申し込み確定タグを
imgタグで仕込みます。

流れ的には、

サイトオーナー番号の付いた a8 のタグをクリックし、クッキーを発行
http://aaaa.com/in.php?s=001

広告主サイト
http://bbbb.com/

商品購入完了画面で、imgタグにより a8 へ通知
<img src="http://aaaa.com/check.php">

という流れだと思うのですが、この時、最初に発行されたクッキーは a8 の名前で作成されるのですが、
これを商品購入完了画面の imgタグで、a8に通知した時、クッキーはa8へ渡るのでしょうか?

上記のような流れのものをPHPで作って試してみましたが、ドメインが違うためクッキーは受け取れませんでした。
もちろん、同ドメインの場合では正常に受け取れます。

サイトが違っても、imgによる呼び出し先が、発行元と同じなため、受け取れるんじゃないかと思ったのですが…
何か特別な事をしているのか、私の勘違いなのか、お知恵を貸しください。

よろしくお願いいたします。
153nobodyさん:2008/07/16(水) 13:45:17 ID:???
>>150


ttp://www.phpbench.com/
echo vs. print のところを参照
154nobodyさん:2008/07/16(水) 13:51:19 ID:???
>>151 嘘だよ
155nobodyさん:2008/07/16(水) 20:17:18 ID:???
何が?
156nobodyさん:2008/07/17(木) 09:33:28 ID:???
echo ereg_replace("[a-z]|[0-9]","",$message);

これでアルファベットと記号を消そうと思うんですが、
' とか
" とか
[ とか
も消したいときはどんな風に表記したらいいんでしょうか。
157nobodyさん:2008/07/17(木) 15:54:00 ID:???
>>156
例えばこんな感じ?

$message = preg_replace('/[0-9A-Za-z@!"#$%&,_=\|\{\}\[\]\(\)\x27\x2f\x3f\x5c\x60:;\.\*\+\-]/','',$message);
echo $message;
158nobodyさん:2008/07/17(木) 16:03:43 ID:???
>>156
>>157は個別に書いたけど、単純に数字〜英記号を一括削除するなら

$message = preg_replace('/[\x21-\x7e]/','',$message);
echo $message;

の方が簡単。
詳しくはPerl正規表現とそのエスケープ文字を調べること。

ereg系正規表現は日本語が混じると誤動作するし、mb_ereg系もイマイチ不安定で
パフォーマンスも低いので、文字コードに拘らないのであればperl互換正規表現
を使う方が何かと便利だと思うよ。
159nobodyさん:2008/07/18(金) 02:29:59 ID:???
>>157
>>158

ご丁寧にありがとうございます。疑問が全て解けました。
160nobodyさん:2008/07/20(日) 00:29:05 ID:???
perl の正規表現はいろいろ調べてみましたがあんまり良いウェブサイトが見つかりませんでした。今度、本を探してみます。

ところで、

$old = array("a","b","c");
$new = array("<strong>a</strong>","。<strong>b</strong>","<strong>c</strong>");

$wrdst = str_replace($old,$new,$wrdbr);

こんな感じで置換しているんですが、これを
「最初の10個だけ置換」
したいんですが、良い方法がないでしょうか。
161nobodyさん:2008/07/20(日) 06:45:16 ID:???
preg_replace('/[a-c]/', '<strong>\\0</strong>', $str, 10)
162nobodyさん:2008/07/20(日) 11:38:30 ID:???
>161

ありがとうございます!
163nobodyさん:2008/07/22(火) 19:28:46 ID:???
配列の中身を

5の倍数の場合だけ<h1>を入れて返すにはどうしたらいいんでしょうか。

ifで5で割り切れるときだけどかいろいろ考えてみたんですが、いまいちうまくできません。
164nobodyさん:2008/07/22(火) 19:54:43 ID:???
>>163 5の倍数の時だけあほになる方法は知ってるんだけどなあ…
165nobodyさん:2008/07/22(火) 20:00:33 ID:???
答えが0か5の時はってことね
166nobodyさん:2008/07/22(火) 20:04:12 ID:???
>>163
>ifで5で割り切れるときだけどかいろいろ考えてみたんですが
いやそれでok
167nobodyさん:2008/07/22(火) 20:21:02 ID:???
% を知らない予感
168nobodyさん:2008/07/22(火) 20:34:06 ID:???
mod を知らない予感
169nobodyさん:2008/07/23(水) 02:23:01 ID:???
% は知ってまましたがmodは知らなかったっす。今から調べてみるっす!
170nobodyさん:2008/07/31(木) 13:54:43 ID:F87Ghxji
文字コードのことで質問があるのですが
基本的にSJISで作ったフォームからはSJISで
EUCで作ったフォームからはEUCで文字コードが
送られてきますよね。だけど送り手が意図的
に文字コードを変えて送ってきたりブラウザ
が勝手に他の文字コードで送ってしまう場合が
あるようなのですがその場合文字コードを
適切にスクリプト内部で使用したい文字コードに
変換する方法てどんなものが考えられるでしょうか。
またみなさんはどうやってますか?
171nobodyさん:2008/07/31(木) 15:43:39 ID:???
>>170 mb_convert_encoding
172nobodyさん:2008/07/31(木) 18:02:30 ID:???
iteteki ni okutte kuru you na yatsu ha mushi

諢丞峙逧?縺ォ騾√▲縺ヲ縺上k繧医≧縺ェ螂エ縺ッ辟。隕悶☆繧翫c濶ッ縺?縺倥c繧薙Χ縺√?シ縺仇ww
173nobodyさん:2008/08/01(金) 01:13:57 ID:/2mMDjbG
レッツPHP! ttp://php.s3.to/bbs/bbs7.php  の「写メール掲示板」を使っているのですが、
借りているサーバーの関係でphp4からphp5にバージョンアップしたら、
写真をパソコンで表示させるページ(mailbbs.php)でエラーが出てしまい、閲覧できなくなりました。

簡単に付け足す記述があれば、是非教えていただけないでしょうか?
よろしくお願いします。 m(_ _)m
174nobodyさん:2008/08/01(金) 01:15:02 ID:???
そんなのはない
175nobodyさん:2008/08/01(金) 02:46:29 ID:???
>>173
まずはその問題を作成者に問い合わせろ
または、エラーを自分で読んで解決しろ
176nobodyさん:2008/08/01(金) 02:51:47 ID:3wWMq3LY
とある就職支援のPHP講座について調べていたのですが、
Web申込フォーム、管理画面(データベース連携、検索など)を作成可能なレベルを目指す
という文章に対して
(つд⊂)ゴシゴシ
  _, ._
(;゚ Д゚)
とレスが返されていました。
これはどういうことなのでしょうか?
基本的なレベルだということですか?
177nobodyさん:2008/08/01(金) 03:01:39 ID:cc3Gba10
まあ基本といえば基本ですな
ヌルポ
178nobodyさん:2008/08/01(金) 03:04:56 ID:???
>>176
すごい基本
できても自慢できないぐらい基本

そのレスの意図なんざ知ったことではないが
179nobodyさん:2008/08/01(金) 03:11:47 ID:???
>>177
>>178
なるほど。
2週間の講座なので、基本なのはまあしょうがないですね。
どうもありがとうございました。
180nobodyさん:2008/08/02(土) 17:48:44 ID:qYvqcpCs
レンタルサーバーにPHPで組んだ自作画像UPローダー
を設置しようと思ってるのですが、画像をUPロードする
時に画像に関する情報(画像の説明、名前など)
をログファイルに同時に書き込む仕様になっているんです。
とりあえずテストでは問題なく動いてるのですが
もしスクリプトがなんらかの理由で途中で止まってしまったり
した場合、画像だけUPロードされてしまって
ログファイルには書き込みされない(または逆も考えられる)
ことになってしまいますよね。
こういう事態に陥らないためにはどうしたらいいでしょうか?
181nobodyさん:2008/08/02(土) 18:09:58 ID:???
両方オッケーだなと判断したら保存&書き込む
182nobodyさん:2008/08/02(土) 18:16:17 ID:QOTyBDTF
そんなこと考えないで、プログラム書いて
不具合がでるかどうか確かめろ。
まずはそっちだな
183nobodyさん:2008/08/02(土) 18:41:09 ID:qYvqcpCs
>>181
>>182
ご返事ありがとうございます。
とりあえず不都合はまだないのですが
タイムアウト(レンタルサーバーだと30秒)
の問題もあるので結構悩んでます;;
184nobodyさん:2008/08/03(日) 01:05:38 ID:a0x+ZsCK
PHPの練習用にxamppをダウンロードしたんですが
どれで練習して どこで実行したらいいんでしょうか?
ttp://phpspot.net/php/php_topics.htmlを見てるんですが
すでに実行にいってしまっていて
よろしくお願いします
185nobodyさん:2008/08/03(日) 01:13:59 ID:???
186nobodyさん:2008/08/03(日) 01:25:55 ID:tLdg0T4F
mkdirやunlinkなんかのファイルシステム関数で
渡すパスは自動でエスケープされるようだけど
これは実際どういう文字がエスケープされるんでしょうか?
escapeshellcmdと同じ?マニュアルに特に書いてないで分かりません。
187nobodyさん:2008/08/03(日) 01:44:15 ID:???
エスケープされるって何を根拠に?
188184:2008/08/03(日) 01:52:39 ID:a0x+ZsCK
183さん
サンクス
そのurl通りやってみたんですが
表示されませんでした
原因で考えられるのは
ttp://phpspot.net/php/pgXAMPP%82%CC%8BN%93%AE%81E%92%E2%8E%7E.html
にあるように起動後に黒背景のウィンドウが表示されないからかと思うのですが
XAMPPコントロールパネルアプリケーションでは起動 開始ボタンが押されてます
どうすれば実効されますでしょうか?
189184:2008/08/03(日) 02:02:51 ID:a0x+ZsCK
追記
XAMPPコントロールパネルアプリケーションはver2.5
あとはPHP editorだけダウンロードしてます
他に足らないものはないでしょうか?
ttp://de-lab.com/article/eclipse/を見るとPDTもインストールしなければならないようですが
190nobodyさん:2008/08/03(日) 02:07:06 ID:???
PDTなんていらない
191184:2008/08/03(日) 02:09:54 ID:a0x+ZsCK
>>190
そうですか…
では>>188に書いてあるように実行できなかったんでしょうか?
違うサイトを見てしまうと挫折してしまう気がして
よろしくお願いします
192nobodyさん:2008/08/03(日) 04:57:56 ID:???
そもそも、XAMPP(ry

単純に一つ一つインストールしたほうが早くて確実だと思うけど。
193nobodyさん:2008/08/03(日) 05:28:24 ID:???
ほんとXAMPPは弊害招きまくりだな
194nobodyさん:2008/08/03(日) 07:55:45 ID:T3jYftlq
静岡の有名なよしのりお爺さんみたいに、IDかえまくり二十四時間打ちまくり
195nobodyさん:2008/08/03(日) 10:31:52 ID:9C4HZHI8
ubuntu使うとLAMPインストール楽だよ
196nobodyさん:2008/08/03(日) 18:50:36 ID:RMhtfFUN
XAMPPは使いたくない
197nobodyさん:2008/08/03(日) 19:00:15 ID:???
宗教上の理由で
198nobodyさん:2008/08/03(日) 19:52:51 ID:???
死んだじぃちゃんの遺言で
199nobodyさん:2008/08/04(月) 02:38:05 ID:LmctVFYq
ダサさ加減で
200nobodyさん:2008/08/06(水) 23:42:16 ID:???
PHP5でGDを使ってEXIFが入っているjpegをリサイズするときにEXIFを保ったままにする方法はありますか?
201nobodyさん:2008/08/07(木) 01:15:21 ID:ASRrNjKq
すいません。ちょっと教えてください。
スレ違いかもしれませんが、PHPの呼び出しをしたいので、こちらで質問させていただきます。

サーバーのcronでサーバー内のPHPを毎分実行する時は、
*/1 * * * * /usr/local/bin/php /home/サーバー会社名/public_html/ドメイン名/△△.php
なのですが、
同じように毎分他サーバーのPHPファイルを指定する時はの記述を教えてください。
よろしくお願いします。
202nobodyさん:2008/08/07(木) 02:08:13 ID:???
無理
203nobodyさん:2008/08/07(木) 02:51:36 ID:GqYvn9Ij
質問です

php5を使って、XMLの内容を並び替える方法を教えてください。
204nobodyさん:2008/08/07(木) 02:52:26 ID:???
http://jp.php.net/manual/ja/refs.xml.php
お好きなのをどうぞ
205nobodyさん:2008/08/07(木) 08:01:58 ID:???
>>201
HTTP経由で他サーバーのPHPスクリプトを呼び出すPHPスクリプトをcronする
206201:2008/08/07(木) 12:39:10 ID:???
レスありがとうございます。

PHPスクリプトをcronすることにしました。
ありがとうございました。
207nobodyさん:2008/08/07(木) 15:24:18 ID:???
普通にcronでwgetとか
208nobodyさん:2008/08/21(木) 15:50:39 ID:???
初心者なんですけど
独習PHP山田 祥寛
まずこれやればいいですか?
自分のwebサーバーでphp使ったサイトとか作れるようになりたいです
209nobodyさん:2008/08/21(木) 15:52:50 ID:???
まずマニュアルに目を通す
210nobodyさん:2008/08/21(木) 17:20:22 ID:???
>>209
なんかマニュアル難しそうです
211nobodyさん:2008/08/21(木) 17:26:28 ID:???
じゃ諦める
212nobodyさん:2008/08/21(木) 17:45:50 ID:???
入門系のサイトに目を通してみたらどうか
検索すりゃ役に立つサイトから立たないサイトまでわんさか出る

マニュアルも早いうちから目を通せ
本やサイトは主観で書いてある記事だから誤解もある

213nobodyさん:2008/08/21(木) 18:25:36 ID:CIze4FXP
MySQLのデータベースからデータを取り出そうとしてます
データベースはUTF8で作成しています
select文を実行する前に、
$sql = "SET NAMES utf8";
mysql_query($sql);
を実行してデータを取り出しましたが、日本語文字は『utf8』なのですが、
半角英数字は全部『ASCII』になっています

なぜでしょうか?
214nobodyさん:2008/08/21(木) 18:47:35 ID:???
ASCII だから
215nobodyさん:2008/08/21(木) 20:58:15 ID:???
>>212
ttp://www.standpower.com/index.html
とかでいいですか?
216nobodyさん:2008/08/21(木) 21:32:52 ID:???
>>215
そんな感じ
文法や基本的な命令語を覚えれば後は使いたい関数やクラスを都度調べればいい
使う機会の多いものは自然に身についていくから
一通りのことが出来るようになった後に効率や最適化を考えればいい

あくまで趣味の一環として習得する場合だけどな

>>213
ASCIIしかないなら保存形式が何であれASCII
utf8と判断する材料がないからな
217nobodyさん:2008/08/21(木) 23:55:32 ID:2yWxB/YG
PHPってばかが使う言語だろ?
218nobodyさん:2008/08/22(金) 00:09:08 ID:???
釣られちゃダメだ釣られちゃダメだ釣られちゃダメだ!
219nobodyさん:2008/08/22(金) 00:10:17 ID:???
>>218
もう手遅れだよ・・・・
220nobodyさん:2008/08/22(金) 09:40:04 ID:???
ちなみにphpの本買ったけど書いてることが意味不明すぎてもう読むのやめたよww

そこらへんから完成品見つけてきてそれ改造してる方がよほど身につくと思う
221nobodyさん:2008/08/22(金) 10:04:01 ID:???
おれも買った本はリファレンスくらいだな
ごちゃごちゃ解説読むの面倒だから辞書のように使ってた
それでもバージョン変われば役に立たんから直ぐにマニュアル見ることになるっと

完成品やサンプルソースを読んで動きを理解できるようになればいいな
パターンを覚えていけば応用が利いてくる
そのうち別パターンを自分で書けるようなるんじゃね?
222213:2008/08/25(月) 20:42:58 ID:???
>>214
>>216
ご返答ありがとうございます。
phpファイルはUTF8で保存して、metaタグでもUTF8を指定しています。
そういうことでは無いんでしょうか?
223nobodyさん:2008/08/25(月) 21:35:52 ID:???
>>222
違う
phpのscript_encodingとかmeta(HTMLタグかよ)は関係ない
asciiはあくまでascii

224nobodyさん:2008/08/26(火) 03:06:03 ID:???
>>222
大雑把かつ乱暴に言うと
半角英数と一部の記号はどのエンコード方法だろうと内部での表現方法が同じ
だから半角英数だけだと区別のつけようがないしつける必要もない
UTFとかeucとかは、日本語とかはいってくるときだけ
225nobodyさん:2008/08/28(木) 02:17:41 ID:???
xamppでwebサーバー作るならphp使うのが一番簡単ですかね?
pealもつかえるようですが
226nobodyさん:2008/08/28(木) 02:33:08 ID:???
何を持って簡単としてるのか分からん
227nobodyさん:2008/08/28(木) 06:20:10 ID:???
余計にインストールとかしないですむという意味で
228nobodyさん:2008/08/28(木) 06:38:59 ID:???
xamppは開発用で、そのためにセキュリティゆるゆるだから
まともに公開しようと思うと一から一づつ入れるより設定面倒だよ

設定に詳しくない限り止めておけ
229nobodyさん:2008/08/28(木) 08:53:39 ID:???
入手する手段、パッケージの違い、適切なコンフィグ、文字コード等の環境依存要素の調整、など
全部すっとばしても構わないと思うならxamppで良いかと。
230nobodyさん:2008/08/28(木) 17:51:11 ID:???
条件を言えばそのPHPを探してきてもらえる
スレがあったら誘導お願いします

231nobodyさん:2008/08/28(木) 19:41:11 ID:???
自分で探せアホ
232nobodyさん:2008/08/28(木) 22:54:08 ID:???
>>229
サーバの構築関連は、どのようにして知識を得るのがいいんですかね。
やっぱり書籍ですか?
233nobodyさん:2008/08/28(木) 23:12:59 ID:???
ネットは断片的になりがちなので本がいいよね。
で、仮想マシンや引退したボロPCあたりで環境作っていじり倒す
234nobodyさん:2008/08/28(木) 23:18:21 ID:???
本なんて著者によって偏るし古いし訂正も効かないしノウハウもTipsも無いぞ。
それでも良ければご自由に。
235nobodyさん:2008/08/28(木) 23:28:54 ID:???
>>234
じゃぁ、どんな風に勉強していけばいいですか?

>>233が言っているようにネットだと情報がかなり断片的で、
しかも、本と同じでネットで情報公開している人によって偏ってたり、訂正もされないまま放置されていたりするわけなんだけど。

236nobodyさん:2008/08/29(金) 01:13:34 ID:???
糞ブログでたまにある詳しくはこちらとか言って別のアドレス貼り付けるだけのやる気のない馬鹿は死んでしまえ。
237nobodyさん:2008/08/29(金) 01:14:32 ID:???
ブログだけは世の中から消滅して欲しい
238nobodyさん:2008/08/29(金) 01:15:48 ID:???
検索の邪魔なだけだ。中途半端なことばかりしやがって。
239nobodyさん:2008/08/29(金) 01:33:52 ID:???
それは君の検索能力が低いだけだ
ttp://help.goo.ne.jp/help/article/822/#08
240nobodyさん:2008/08/29(金) 11:55:19 ID:???
>>235
確かにネットも本と同じで書き手次第だが
本と違うのは書き手の数
より多くの情報を知ることで信頼出来る情報や誤解を判断出来る
(本では数読むには金がががががが)

それに基本はオープンソースなのだから、公式のドキュメントもネットにある、
ある程度の認識が身についたら、公式を押さえることを忘れるな

そして糞ブログ滅べ(特に半端な日記系)
241nobodyさん:2008/08/29(金) 15:09:59 ID:???
昨日VistaにApache2.2とPHP5をいれ、
DocumentRootにphpinfo関数が書かれたindex.phpファイルを置き
PHPの情報をブラウザで表示させるところまで成功しました。

次にPOSTの勉強のために以下のform.htmlファイルをつくり
<html><head>
<title>テキスト送信のテスト</title>
<META http-equiv="Content-Type" content="text/html;
charset=Shift_JIS"></head>
<body bgcolor="#FFFFFF" text="#000000">
<font size="4">テキスト送信のテスト</font>
<form name="form1" method="post" action="view.php">
名前:<br>
<input type="text" name="onamae"><br>
<input type="submit" value="送信">
</form>
</body>
</html>

以下の内容のview.phpと一緒にDocumetRootにつっこんで
<html><head>
<title>PHPによるテキスト送信・受信・表示</title></head>
<body>
<?php
print $_POST["onamae"];
?>
</body>
</html>
ブラウザでhttp://localhost/form.htmlを表示させ名前を入力し送信ボタンを押したのですが
IEの"WEBページが見つかりません"のHTTP404エラーが出ます。
ネットで調べて色々php.ini、httpd.confの設定を書き換えてやっているのですが解決しません。。
どこの設定を直せばいいのでしょうか。お助けください。
242nobodyさん:2008/08/29(金) 15:24:11 ID:???
>>241
ttp://localhost/view.php
直接呼び出して見てはどうだろう

404エラーってことはファイルがないってことだから設置場所が間違っているか
formのaction指定が正しくないかのどっちかになると思う
243nobodyさん:2008/08/29(金) 15:44:07 ID:???
>>242
直接view.php呼び出しても404エラーが出ます。

設置場所はDocumentRootに指定してあるC:\Apache2.2\htdocsの中に
form.htmlとview.php二つつっこんでます。

action指定については間違ってないと思うのですが。。
244nobodyさん:2008/08/29(金) 16:04:48 ID:???
>>242
htmlとphpが同じ場所にあって、htmlしか呼び出せないってのは変
(header関数でどこかに飛ばしてない限り)

htmlとphpを削除して、ブラウザで両方404になるか見てから、もう一度設置してみて
245nobodyさん:2008/08/29(金) 16:10:56 ID:???
view.php.html
view.php.txt

大丈夫そうなんだけど、こういう事例も多いからいちおう。
246242:2008/08/29(金) 16:21:02 ID:???
245さんの言うとおりview.php.txtになってました^^;
phpファイルに変更したらちゃんと呼び出せました。

どうも皆さんすいません。
247nobodyさん:2008/08/29(金) 16:55:09 ID:???
これはひどい
248nobodyさん:2008/08/30(土) 01:23:15 ID:xhTnmRsd
内容:
ランダムテキストを使い「random.php」に例えば10個のリンク先を設定し、
ページの上中下で <?php require "random.php"; ?>で呼び出して使いたいんですが
ページの広告全てが同じものが表示されてしまいます。

ランダムテキストをcgiで作り、SHTMLファイルで呼び出してた時には
すべてきちんと違う広告がランダムに表示されてました・・。
1っのrandom.phpできちんとページ内の広告がバラバラに出るにはどうすればいいでしょうか?

249248:2008/08/30(土) 01:23:35 ID:???
ちなみにrandom.phpは検索で拾ったソースです。


<?php
// hitには相対確率を入れる。完全にランダムにするなら全部"1"にする
// rtxtには、テキストを入れる。改行はしないようにする
// テキストを増やしたりする場合は、"[ ]"の数字が0から順になるようにする
$hit[0] = 1; $rtxt[0] = '<a href="...">1</a>';
$hit[1] = 1; $rtxt[1] = '<a href="...">2</a>';
$hit[2] = 1; $rtxt[2] = ''<a href="...">3</a>';

$length = count($hit) - 1;
for($i=0; $i<=$length; $i++) {
$m += $hit[$i];
}
srand( (double)microtime()*1000000 );
$n = round(rand(1,$m) );
for($i=0; $i<=$length; $i++) {
$x = $y;
$y += $hit[$i];
if($x<$n && $n<=$y) $ad = $rtxt[$i];
}
print("$ad");
?>

よろしくお願いします。
250nobodyさん:2008/08/30(土) 01:53:03 ID:???
やってみたけどランダムで出るよ一応
251nobodyさん:2008/08/30(土) 03:04:20 ID:???
>>249
別の方法として
簡単にやりたければshuffleで配列($rtxt)をシャッフルしてarray_shiftで配列の先頭を取り出せばいい
array_shiftで取ると配列は1つ減るから2回目、3回目で重複することはない(同セッション内)
252250:2008/08/30(土) 04:09:13 ID:???
もしかして
(double)microtime()*1000000
が同じ値をシードに与えてんじゃないの?
253235:2008/08/31(日) 18:33:17 ID:???
遅レスすみません。

>>240
レスありがとうございます。

ネット上は断片化された情報が多くて、取捨選択が難しい上に、
あっちの情報とそっちの情報での差異が出る理由が明確に分からなくて悩ましいです。

それを調べるってことが、公式ドキュメントを読めっていうということなんですかね。

技術情報を読める程度には英語勉強しろってところですね。

板違いですんませんでした。
254nobodyさん:2008/09/12(金) 15:34:40 ID:???
SQLから取り出したデータをテーブルに表示させる際にhtmlタグを無効にしたいのですが、どうしたら良いでしょうか。
今のままだと例えば<b>文字</b>で登録されているデータは太字で表示されてしまいます。
SQLはpostgresです。
現在のコード↓

$passmd5 = md5('$pass');
$sql = htmlspecialchars("SELECT * FROM table1 INNER JOIN table2 ON table1.id=teble2.id WHERE
table1.id='$id' AND table1.pwd='$passmd5';");
$rs = pg_query($conn, $sql);

$rows = pg_num_rows($rs);
if($rows==0){
print("IDかパスワードが正しくありません。<br />");
print('<a href="#" onclick="history.back(); return false;">戻る</a>');
exit;
}

print("<table border=\"1\">");
print("<tr><td>ID</td><td>パスワード</td><td>項目1</td><td>項目2</td><td>項目3</td></tr>");
while($row = pg_fetch_array($rs)) {
print("<tr>");
print("<td>".$row["id"]."</td>");
print("<td>".$row["pwd"]."</td>");
print("<td>".$row["koumoku1"]."</td>");
print("<td>".$row["koumoku2"]."</td>");
print("<td>".$row["koumoku3"]."</td>");
print("</tr>");
}
print("</table>");
255nobodyさん:2008/09/12(金) 15:39:24 ID:???
htmlspecialchars
256nobodyさん:2008/09/12(金) 16:01:58 ID:???
>>255
htmlspecialcharsを使うんだろうなとは思うんですけれど、何処につけたら良いんでしょうか。
257nobodyさん:2008/09/12(金) 16:12:31 ID:???
print〜〜htmlspecialchars($row["koumoku1"].)〜〜
だな

出力の直前にやるのがいい
それ以前は加工する可能性があるからな
258254:2008/09/12(金) 16:18:13 ID:???
で〜き〜た〜!!!!
本当にありがとうございました!!
259nobodyさん:2008/09/14(日) 09:44:04 ID:B7I6GMpn
プログラムじゃない質問で恐縮なのですが、質問させていただきます。

phpを勉強するのに何をしたら「俺すげぇ進化したぁ」と感じたかを教えてください。
260nobodyさん:2008/09/14(日) 09:52:22 ID:???
楽して身に付けようなんて甘い考えが通用しないことを実感したときかな
261nobodyさん:2008/09/14(日) 12:14:00 ID:???
PHPとか言語は関係ないが、再帰的アルゴリズムがバシッとはまると、俺すげえって思うw
262nobodyさん:2008/09/14(日) 13:35:42 ID:???
フレームワークを作った時かな
車輪の〜って言われるだろうが、利用するかはともかく仕組みを考えて実装することに意味がある
と、言いつつ愛用してるが・・・
263nobodyさん:2008/09/14(日) 21:23:06 ID:jIYlcJD1
phpでもなんでもそうだけど、本の書いてあること
が理解できるようになったとき。
あとショッピングカートとかブログとかその辺
のアプリができたとき。
264nobodyさん:2008/09/14(日) 22:46:57 ID:B7I6GMpn
>>260,261,262,263
観念的で曖昧な質問に答えてくださってありがとうございます。

ちょっと(いや、かなり)質問の仕方が悪かったかもしれません。
「コレを頑張ったら結果をより早く導出できるようになった」という体験を伺ったのです。
「頭打ち状態からブレイクスルーした」という体験はありませんでしょうか?


>>262さんのレスを参考に「フレームワーク 車輪の」でググってみました。
「車輪の再発明」ということですね。
自分でもそういうことをしてしまっている可能性があるので参考になりました。
ありがとうございます。
265nobodyさん:2008/09/14(日) 22:54:51 ID:???
その段階だと・・・ひたすら作ってひたすら無駄な労力にorzするのが一番さ
266nobodyさん:2008/09/14(日) 23:41:45 ID:???
イヒ体験ってことか

メール送信でPHPが標準でsendmailしか使わんことに気付いた時
大量に送信するにはオーバーヘッドがウザいからSMTP送信をしたいのに出来ない・・・
仕方なくpopenで実装って時にSMTPっつうプロトコルの仕組みを知ってて良かった〜ってことはあった
267nobodyさん:2008/09/15(月) 00:02:57 ID:???
しかし、みんな頑張り過ぎw
268nobodyさん:2008/09/15(月) 00:03:46 ID:???
誤爆、失礼><
269nobodyさん:2008/09/15(月) 22:32:29 ID:???
効率の良いプログラミングをしようと思ったらLL言語使いだろうと
中の仕組みを知っていたほうが良いのは当然だな。
ある程度理解していればプロトコルの詳細はRFC斜め読みでなんとかなる。
270nobodyさん:2008/09/17(水) 12:48:50 ID:JTQWTwl/
理解したつもりの関数とか1日で忘れてしまう

substrとか   これなんだっけ ってなる
271nobodyさん:2008/09/17(水) 12:52:42 ID:???
それはヤバイな
272nobodyさん:2008/09/17(水) 12:57:46 ID:???
学校の勉強はノートに書いて覚えていくけど
プログラミングの勉強となると紙のノートじゃなくPCに依存して勉強したくなるよね
でもメモソフトと紙のノートには雲泥の差の自由度があるから勉強のためのメモとしてはあまり利用出来ないよね
273nobodyさん:2008/09/17(水) 12:59:19 ID:???
プログラミングの勉強ってどんなことしてんの
274nobodyさん:2008/09/17(水) 16:13:37 ID:???
プログラミングの勉強ってひたすらソース書いてナンボっしょ
275Noone:2008/09/17(水) 16:59:26 ID:???
276nobodyさん:2008/09/18(木) 00:02:52 ID:X0thX7wZ
あげ
277nobodyさん:2008/09/18(木) 07:48:56 ID:eOfu22hG
レンタルサーバでPHPの勉強中です。
ファイルのアップロードをしているんですが、php.iniやhttpd.confが直接いじれなくて
.htaccessに

php_value post_max_size 100M
php_value upload_max_filesize 100M
php_value memory_limit 100M

と書いてそれぞれの値を変更しています。
問題は、これらの値がページをリロードする度にサーバのデフォルト値である
post_max_size 32M
upload_max_filesize 32M
memory_limit 90M
になったり、
post_max_size 100M
upload_max_filesize 100M
memory_limit 100M
になったりすることです。

こういった現象を経験された方いらっしゃいませんか?

各値の確認は、
ini_get()関数で確認しています。
278nobodyさん:2008/09/18(木) 08:58:15 ID:???
共用サーバーはリソースも共用です。
279nobodyさん:2008/09/18(木) 09:48:54 ID:eOfu22hG
>>278
レンタルサーバが、リソースが不足している場合.htaccessが有効にならないような設定がされているということでしょうか?
280nobodyさん:2008/09/18(木) 09:51:27 ID:???
リソースが共有されてるのはいいが関係はないな
プロセスが別なのにPARDIRのディレクティブが上書きされるなんて聞いたことがない
281nobodyさん:2008/09/18(木) 10:42:43 ID:???
if(!isset($_GET['aaa']) || !isset($_GET['bbb']))

これの真ん中の||とissetの前の!はどういう意味?
282nobodyさん:2008/09/18(木) 10:50:24 ID:???
|| は OR と同じ、ちなみに && は AND と同じ「かつ」「または」ってヤツだな

! は反転を意味する。
issetは「初期化されていればtrue」で調べたいことは「定義されていない場合」だからfalseとなるところを!で反転して評価してるんだな
283nobodyさん:2008/09/18(木) 10:50:49 ID:???
>>281
マニュアルをどうぞ
284nobodyさん:2008/09/18(木) 10:54:39 ID:???
なるほど。

!は反転するということなんですね。
285nobodyさん:2008/09/18(木) 12:44:53 ID:???
反転ではなく否定な
286nobodyさん:2008/09/18(木) 13:27:00 ID:???
if(!isset($_GET['aaa'])) {

// 値がセットされてなければecho
echo '';
}

こういうことですよね?
287nobodyさん:2008/09/18(木) 13:37:33 ID:???
もうちょっと基礎から学習したほうがいいと思うよ
288nobodyさん:2008/09/18(木) 13:50:01 ID:???
! の解釈はそれで合ってるけど(まぬあるの「論理演算子」のところを読もう)

> // 値がセットされてなければ
empty() と isset() の説明や比較例を見ると良いです。
?aaa=&bbb=hoge というクエリが飛んできた場合、isset($_GET['aaa'])==TRUE。

言われてるように急がずにゆっくり取り組めばいいと思うよ。
289nobodyさん:2008/09/18(木) 13:51:32 ID:???
> isset($_GET['aaa'])==TRUE
isset($_GET['aaa'])がTRUEだと言いたいんだろうがその説明の仕方はだめだw
290nobodyさん:2008/09/18(木) 14:20:02 ID:???
あっ、まずかったですか。
言いたかったことはその通りなので、「isset($_GET['aaa']) は TRUE を返す」に訂正します。
291nobodyさん:2008/09/18(木) 14:34:48 ID:???
age
292nobodyさん:2008/09/18(木) 14:42:09 ID:eOfu22hG
>>280
レンタルサーバの会社に問い合わせたところ詳しくは教えてもらえませんでしたが
>>277で書いたような負荷がかかることはことはしないでくれとのことでした。

根本的な解決はできませんでしたが、こういった現象もあるってことで・・・

しかし、今度はどうやって高負荷時は.htaccessを無視するようなことができるのか
そっちに興味がわいてきました。
Apacheの設定にそういうことができるようなオプションがあるのかな?
293nobodyさん:2008/09/18(木) 14:46:31 ID:???
単に違う設定の鯖をロードバランスしてるだけとか
294nobodyさん:2008/09/18(木) 14:56:27 ID:???
すいません...

基礎を勉強したいと思います
295nobodyさん:2008/09/18(木) 15:14:50 ID:???
珍しく伸びてるな
296nobodyさん:2008/09/18(木) 15:15:16 ID:???
そりゃあ鯖のリミッタを外したら怒られるにきまっているだろ
297nobodyさん:2008/09/18(木) 21:33:48 ID:???
>>292
だから、>>278って書いたでしょ。

興味を持つのは良い事だけど、
実験したければ、自鯖立ててやってね。
298nobodyさん:2008/09/19(金) 03:16:00 ID:???
こんにちわ。
サーバー側が php4 → php5 にしますよ
と言ってきました。

バグってどれくらい出るものでしょうか。
移行された人いらっしゃいますか?
299nobodyさん:2008/09/19(金) 05:25:52 ID:???
バグっていうか対応度合いの問題だろ
そんなんアプリによってまちまちとしか言えん
ていうか手元で移行検証くらいしようよ
300nobodyさん:2008/09/21(日) 15:55:59 ID:G8wZRX1E
すいません、知っている方がいたら教えてください。
strip_tags()を使用してコメントタグだけを残したい場合はどうしたらよいでしょうか?
$html = strip_tags($html, "<!---->");
という書き方だとコメントタグも削除されてしまいます。
301nobodyさん:2008/09/21(日) 16:35:13 ID:???
質問というかアドバイスをください。
プログラミング経験は無いわけではなくC,C++でマルコフ連鎖モンテカルロ法
の実験などを大学の研究でしたりもしているのですが、最近なんとなく
PHPのようなウェブアプリを簡単に作れる言語に興味があります。

が何を作ったらいいかわかりません。
自作で、実用レベルまで比較的に簡単に作れるもの、
というとどういうものがあるでしょうか。お願いいたします。
302nobodyさん:2008/09/21(日) 16:36:57 ID:???
掲示板でも作ってみたら?
まぁ何にするにせよ実用性とは程遠いだろうが気にするな
303nobodyさん:2008/09/21(日) 17:51:38 ID:???
>>301
何かのウェブアプリを作りたいからphp学びたいんじゃないの?
せめて作りたいものの目標くらい無いとモチベーション続かないと思うんだけど。
なんか目的と手段が逆になってるような気がする。
304nobodyさん:2008/09/21(日) 17:53:03 ID:???
>>301
有能な君にはphpbb並の国産高機能BBSをぜひ作ってほしい
305nobodyさん:2008/09/21(日) 18:30:23 ID:???
>>301
隠れマルコフモデルを応用して、
形態素解析でインターネット上の情報サンプル集積でもやってみてくれ
306nobodyさん:2008/09/21(日) 18:30:48 ID:???
>>300
マニュアルに書いてあるぞ、無理ってな
strip_tagsの前後でHTMLコメントの置き換えて逃げるしかないだろうな
307nobodyさん:2008/09/21(日) 18:31:56 ID:???
誤字った
誤:strip_tagsの前後でHTMLコメントの置き換えて逃げるしかないだろうな
正:strip_tagsの前後でHTMLコメントを置き換えて逃げるしかないだろうな
308nobodyさん:2008/09/21(日) 20:19:14 ID:uUB1weY6
すみません、ほんとに基本の質問だと思いますが
.htmlファイルの中に
<?php
include('file.php?pass=123');
?>
としましたが、includeが実行されません
拡張子は常に.phpでなければいけないんでしょうか?前に試した出来たような気がしたんですが、、
また、上記のようなインクルードファイルに引数をつけた場合、
file.phpの中で$_GET['pass']としてを解釈することは出来るでしょうか?
どなたかご回答お願いします
309nobodyさん:2008/09/21(日) 20:28:27 ID:???
無理
310nobodyさん:2008/09/21(日) 20:29:10 ID:???
>>308
俺の経験では出来ない。

file.phpの中に関数f_fileを書いて以下の様にすればいい。

<?php
include('file.php'); f_file('123');
?>
311308:2008/09/21(日) 20:49:34 ID:uUB1weY6
>>309-310
ありがとうございました
phpは .htmlの拡張子のファイルでは動かないということでいいでしょうか?

また、二つ目の質問に関しては
http://okwave.jp/qa4336105.htmlという解決法を見つけました
>>310さんの答えと合わせて考えたいと思います
312nobodyさん:2008/09/21(日) 21:12:27 ID:???
>>311
できる
addtypeでググってみ
313300:2008/09/21(日) 22:14:17 ID:G8wZRX1E
>>306
ありがとうございます。
自分の持ってるPHP辞典には記載されてなかったでわかりませんでした。
なんとも中途半端な仕様ですね。
314nobodyさん:2008/09/21(日) 22:33:44 ID:aDAFCUyF
しつもーん。
ttp://jp.php.net/manual/ja/functions.arguments.php
> 注意: PHP 5以降、デフォルトで値はリファレンス渡しとなります。

の、主語というか目的語というか、ナニのデフォルトが参照渡しになるんでしょか。

function alter($str){
$str = $str . '!';
}
$nya = 'nya';
alter($nya);
echo $nya;

は PHP 5.2.0-8+etch9~bpo31+1 (cli) では $strを 変更せずに nya が表示されました。
315nobodyさん:2008/09/21(日) 23:03:33 ID:???
それは日本語版スタッフの訳が悪いと思う。
原文読むといいかと。
http://jp.php.net/manual/en/functions.arguments.php
316nobodyさん:2008/09/21(日) 23:22:56 ID:???
引数がデフォルトでリファレンスよ
やってみれば分かるが&付けなくても参照元の値も変わるぜ

余談だが
PHP4では 「&$arg=null」なんてデフォルト引数が使えないんだが、PHP5から問題なく通る
呼び出し時に引数指定したかどうかでスイッチしてんだろうなぁ
317nobodyさん:2008/09/21(日) 23:29:51 ID:???
>>314では&無しでは変わってなくないか?
318nobodyさん:2008/09/22(月) 01:05:35 ID:???
PHPで逆IP制限ってできる・・・?
変数$aに1が入ってる時だけ変数$bに入ってるIP以外からのアクセスがあった場合にifコマンド使って、
他の内容を表示するの。
319nobodyさん:2008/09/22(月) 01:09:02 ID:???
IP見て比較すれば普通にできるんでない?
320318:2008/09/22(月) 01:10:00 ID:???
if ( !strcmp ( $ip_address, $list_ip ) )
これ使っていけるかな・・・・・・?
321318:2008/09/22(月) 01:10:58 ID:???
>>319 それなぜか思いつかなかった。トンクス。
322318:2008/09/22(月) 02:51:53 ID:???
txtファイルから文字列読み込んだときに改行まで読み込まれて比較ができない。
どうすればよいですか?
323nobodyさん:2008/09/22(月) 03:00:08 ID:???
改行文字を除いてから比較すれば?
324318:2008/09/22(月) 03:15:17 ID:???
>>323どうもうまくいかなかった.........

<?php
$ip = $_SERVER['REMOTE_ADDR'];
$str = "$ip";
$len = strlen($str);

$handle = fopen('ip.txt','r');
$contents = fread( $handle, $len );
fclose( $handle );
echo $contents."<br />\n";

if($ip==$contents){
echo "成功";
}
else{
echo "失敗";
}
?>

ipアドレスの文字数分引っ張り出して比較することで回避できた。
325nobodyさん:2008/09/22(月) 03:21:01 ID:???
ip.txtに入ってるIPの方が今アクセスしてる人のIPより長かったらどうすんの?
326318:2008/09/22(月) 03:24:26 ID:???
>>325 したら絶対IP違うからエラーでていいんでない?
327318:2008/09/22(月) 03:27:42 ID:???
一時的にip.txtの中に入ってる一番最初のIPの人以外見せたくないものを作るんだ。
処理が終われば解除されるようなかんじで。

328nobodyさん:2008/09/22(月) 03:39:53 ID:???
212.134.32.14

212.134.32.143
329nobodyさん:2008/09/22(月) 06:54:54 ID:???
>>317
変わってないな
330nobodyさん:2008/09/22(月) 12:43:54 ID:???
PerlのNet-CIDRを移植したら?
331nobodyさん:2008/09/22(月) 15:10:26 ID:EKIEGJ69
phpでカート作成のHP教えて
332nobodyさん:2008/09/22(月) 15:12:32 ID:???
333nobodyさん:2008/09/22(月) 15:19:02 ID:EKIEGJ69
ありがとう><;
334nobodyさん:2008/09/22(月) 16:42:16 ID:???
ワラタ
335nobodyさん:2008/09/22(月) 16:44:51 ID:???
>>331
ショッピングカートの基本はセッションを上手く扱うことだと思う
具体的なカート作成のサイトはなくてもセッションに関する記事は多いから、そこから学べば良いかと
どうせ学習目的とかでしょ?
336nobodyさん:2008/09/23(火) 01:10:46 ID:KzC+qHTk
>>312
ありがとうございます! 助かりました!
337nobodyさん:2008/09/23(火) 12:55:10 ID:BK/ZFWc8
ちょっとまてよ、>>331はPHPを使ってカートを作るHPというのを教えて欲しいんじゃないか?
338nobodyさん:2008/09/23(火) 12:59:43 ID:???
さあ?
339nobodyさん:2008/09/23(火) 13:06:07 ID:???
>>331-333の流れでネタのようにしか思えん
340nobodyさん:2008/09/23(火) 13:08:38 ID:???
>>318は日本語の勉強から始めないと意図が伝わりにくいと思うが
まず何が目的で特定IP以外からのアクセスを制限したいかが不透明

内容からするに何らかの処理をしている期間は別の接続者を拒否したいって意味のようだが
その処理ってのが何度もリクエストを受けて完了するもだとしたら
---
アクセスがある

閲覧者IPのデータを確認する─(IP記録なし)→閲覧者IPを記録し結果表示
↓<(IP記録がある)
IP比較─(一致)→結果表示
└(不一致)→拒否
---
こんな感じでコード書けばいいだろ
記録IPをいつ削除するかは知らんけど、この処理書くどこで詰まってるの?

もし、一回のリクエストの結果表示までにすべて処理が終わってしまうようなものだったら
ファイルロックとかの方法でも調べれれ。IPを比較する意味ない

あとどうでもいいけど改行の削除は置換を使えよ
341nobodyさん:2008/09/23(火) 13:10:56 ID:???
<?php
echo(">>331\n");
echo("このサイトを見れ\n");
echo("http://www.nintendo.co.jp/ds/amcj/");
?>

つまりこういうことだな
342nobodyさん:2008/09/23(火) 14:16:43 ID:???
echoで括弧を付けるのはダサい
343nobodyさん:2008/09/23(火) 14:20:41 ID:???
echoはカッコ付けなくてもエェ子やで
344nobodyさん:2008/09/23(火) 18:25:40 ID:???
PHPなんて久しぶりに書いたから忘れてたわw
えーこと聞いた
345nobodyさん:2008/09/23(火) 19:38:04 ID:???
fopenを使ってURLを開くとき
複数のURLに対して並列に処理を行いたいんだけど
どういう風にやればいいですかね?
最悪参考になりそうなサイト教えてください。
346nobodyさん:2008/09/23(火) 19:52:08 ID:???
fopenはブロックするから並列処理には向かない
347nobodyさん:2008/09/23(火) 20:59:24 ID:???
>>346
ブロック?とはどういうことでしょうか?
並列処理に向いているfopenに代わる関数を
教えていただけるとありがたいです。
348nobodyさん:2008/09/23(火) 21:01:16 ID:???
そんなのない
349nobodyさん:2008/09/23(火) 21:05:07 ID:???
じゃあfopenでがんばるとして
並列処理を行うにはどうすればよいでしょうか?

というかPHPでそんなことするなってことでしょうか?
350nobodyさん:2008/09/23(火) 21:18:43 ID:???
>>345
HTTPDのプロセスを複数起動
351nobodyさん:2008/09/23(火) 21:31:31 ID:???
>>345 ちなみにPHPではマルチスレッドはできない。
プロセスで何とかする。
352nobodyさん:2008/09/23(火) 22:13:13 ID:???
なるほどプロセスを複数起動ですか
とりあえずその方向でググったりしてなんとかしてみます
ありがとうございました
353nobodyさん:2008/09/24(水) 23:43:55 ID:???
$a=1;
$b=9;
$c=3;

「bが一番大きいです。」
と表示させたいのですが、maxだと数値しか返ってこないし・・・
教えていただけると幸いです。
354nobodyさん:2008/09/25(木) 00:11:02 ID:???
>>353
変数名を取得することは出来ないから値の管理方法を変えよう
出来ないなら諦めるしかないと思う

例: 連想配列
$var = array(
 'a' => 1,
 'b' => 9,
 'c' => 3,
);
355nobodyさん:2008/09/25(木) 00:19:45 ID:???
ありがとうございます!
356nobodyさん:2008/09/25(木) 00:20:07 ID:???
いいてことよ
357nobodyさん:2008/09/25(木) 05:09:05 ID:???
ちょっと疑問に思ったんだけど、
連想配列の場合、
$var = array(
 'a' => 1,
 'b' => 9,
 'c' => 3,
 'd' => 9,
);

この場合、どうなるんだろ?
358nobodyさん:2008/09/25(木) 05:29:20 ID:???
何がどうなるんだろなのかわからないけどこういうこと?

$var = array('a'=>1, 'b'=>9, 'c'=>3, 'd'=>9);
$keys = array_keys($var, max($var));
var_dump($keys);
359nobodyさん:2008/09/25(木) 06:08:13 ID:???
>>358
この出力結果ってb dってなるのかな?
360nobodyさん:2008/09/25(木) 06:21:43 ID:???
お前は何を言ってるんだ
361テスト:2008/09/25(木) 23:34:41 ID:???
てす
362:2008/09/25(木) 23:39:24 ID:???

てすと
363nobodyさん:2008/09/27(土) 20:36:51 ID:Zle5Z5JO
return文と返り値がよく分からないんですが
PHPのマニュアルを見てもさっぱりです
どなたかreturn文が詳しく書いてあるサイト知っていたら教えてください
364nobodyさん:2008/09/27(土) 20:53:26 ID:???
>>363
returnについてなんてマニュアル以上のことが書いてあるサイトはないと思うぞ
何が分からなくて、何が知りたいんだ?言ってくれれば答えるが
365nobodyさん:2008/09/27(土) 21:09:22 ID:???
function hoge() {
366nobodyさん:2008/09/27(土) 21:15:49 ID:???
$a = 'a';
367nobodyさん:2008/09/27(土) 21:18:59 ID:???
return $a;
368nobodyさん:2008/09/27(土) 21:20:42 ID:???
}
369nobodyさん:2008/09/27(土) 21:27:34 ID:???
$huga = hoge();
370nobodyさん:2008/09/27(土) 21:31:06 ID:???
この場合、$hugaには 「ああ゛っでるっ…!!たまみるくでるっ!! でっでるうっブリジットのこくまろミルクぅ」 が入ります
371nobodyさん:2008/09/28(日) 21:34:07 ID:+UcDtbz0
PHPの動作確認のページが
Not Found
The requested URL /phpinfo.php was not found on this server.
Apache/2.0.63 (Win32) PHP/5.2.6 Server at localhost Port 80
と出てしまいます。どなたか教えていただけませんか?
372nobodyさん:2008/09/28(日) 21:37:11 ID:???
マルチ乙
373nobodyさん:2008/09/28(日) 22:52:10 ID:???
>>371
「/phpinfo.phpが無い」って書いてあるじゃないか。
これ以上何を教えろというのか
374nobodyさん:2008/09/29(月) 20:16:12 ID:???
マンモス本2冊買った。1回一通り読んだけど、インストールからわけわからん。
なにをDLしたらいいのかさっぱりぜよ・・・。
375nobodyさん:2008/09/29(月) 20:39:55 ID:???
それはプログラミング以外に問題がありそうだが・・・
376nobodyさん:2008/09/29(月) 22:54:33 ID:ex4B3ZuI
PHPの確認動作で、phpinfo.php.txtとアドレスに表示されたまま、
画面には<? phpinfo(); ?>
と出てしまいます。
明らかに間違いですが、何がおかしいと思いますか?
どなたか教えてください。
377nobodyさん:2008/09/29(月) 23:01:53 ID:???
誰か、華麗に答えてやってくれ。華麗にだぞ?
378nobodyさん:2008/09/29(月) 23:39:32 ID:???
>>376
マルチ乙(どう?華麗でしょ
379nobodyさん:2008/09/30(火) 00:43:56 ID:???
380nobodyさん:2008/09/30(火) 16:45:48 ID:???
>>376
拡張子txtがPHPのファイルとして定義されていないから。
381nobodyさん:2008/10/01(水) 05:38:30 ID:ggjV1Mvy
getMessage()について質問させてください

ttp://www.php-labo.net/tutorial/class/pear.html
でgetMessage()が定義されてないのにエラー表示のときに表示するとありますが
どうしてなのでしょうか?
よろしくお願いします
382nobodyさん:2008/10/01(水) 06:04:37 ID:???
require_once 'DB.php';
してるから
383nobodyさん:2008/10/01(水) 09:00:47 ID:12eBxrbJ
http://www.php.net/manual/ja/language.operators.comparison.php
この辺のことだと思うのですが、質問させてください。

$a == $bのところで、日本語の文字を使うには、
$a == "日本語"のようにすると思うんですけど、
これは、「日本語」に等しいということですよね。

たとえば「日本」を含む文字列の条件を指定したいとき、
どうしたらいいでしょうか? 
条件の分岐で、「日本語」も「日本人」も「日本古来」もその他も
一括して指定したい、という感じなのですが。よろしくお願いします。
的をはずしていたらごめんなさい。
384nobodyさん:2008/10/01(水) 09:22:18 ID:???
mb_ereg_match
385nobodyさん:2008/10/01(水) 10:43:40 ID:???
できました! ありがとうございます。

もうひとつ合わせて質問なのですが、
完全に一致するものを、$a == "アメリカ"として
部分的に一致するのを、mb_ereg_match("[日本]",$a)として、
それぞれ処理をしようとしています。
else ifでつなげたほうがいいのですか? 
別のifとして分けたほうがいいですか?
それとも、どっちでもいいですか?
386nobodyさん:2008/10/01(水) 11:56:07 ID:???
>>385
分けるかどうかはやりたいことによって違うからなんともいえないけど、
今回の場合は分けなくていいでしょ。
分けちゃうと一回アメリカと完全一致したものをもう一回日本が含まれてるか
判定することになるから余計な処理になる。
387nobodyさん:2008/10/01(水) 12:12:38 ID:???
なるほどー! 
では、どんどんつなげていくことにしますね。
よく判る説明で、助かりました。ありがとうございます!
388nobodyさん:2008/10/01(水) 12:54:11 ID:???
>>387
注意
ヒント
ある文字列が他の文字列内に含まれているかどうかを調べるためだけに preg_match() を使うのは避けた方が良いでしょう。 strpos() か strstr() 関数を 使う方が速くなります。
http://jp.php.net/manual/ja/function.preg-match.php
389nobodyさん:2008/10/01(水) 13:20:15 ID:???
すみません、参照先を見たけど、書き方がよくわかりませんでした。

$aに入る文字列は数十文字くらいの短いもので、それを見ています。
早さはそんなに変わらないと思うので、このままで大丈夫ですよね?
390nobodyさん:2008/10/01(水) 22:32:30 ID:HCEY5R1b
質問させて頂きます。
基礎からのPHPorやさしいPHPを買おうか迷ってるのですが、
基礎からのPHPはアプリが動作しないと聞きました。
自分は、アプリの有無よりも文法やクラス(?)、データベースの基礎を学びたい
と思っているのですが、そのような場合はアプリの動作は気にしなくてもよいでしょうか?
その他の面(参考書としての面)では良いと聞くので。

書籍スレでの質問はナンセンスだと感じたのでこちらでさせて頂きました。
ご教授願います。
391nobodyさん:2008/10/01(水) 22:49:30 ID:???
動作しないわけないだろ
392nobodyさん:2008/10/01(水) 22:56:32 ID:???
マジレスすると(ry
393nobodyさん:2008/10/01(水) 23:58:01 ID:???
オライリーの初めてのPHP+mysqlがいいと思います。
もしくは実践マスターか。
基礎からのPHPorやさしいPHPは意味がないと思います。
特に基礎からのPHPはアプリが動作しませんでした。
びっくりです。
これは捨てました。
アプリを改造していくといろいろスキルがあがってくるので、
ただ本見てもおもしろくないと思いますし。
アプリが動くやつがいいと思います。
では
394nobodyさん:2008/10/02(木) 10:20:57 ID:Qa3+G5H3
あるphpで、別のphpを呼び出すのに、こうやって書いています。
<?php include('ini.php'); ?>

この、ini.phpを、別のサーバにおいて呼び出したいのですが、
<?php include('http://別のサーバ/ディレクトリ名/ini.php'); ?>
みたいにやっても、うまくいきません。

どこでつまづいていて、どうすればいいのか、教えてください。
395nobodyさん:2008/10/02(木) 10:40:39 ID:???
> どこでつまづいていて
基礎的な理解からつまづいてる

http://...をinclude = webサーバ経由でinclude
= ini.phpの「実行結果」をinclude

ini.phpの「内容」をincludeしたいなら、ftp経由にするとか、
ini.phpをincludeしたい内容の文字列を返すものにするとか。
396nobodyさん:2008/10/02(木) 10:59:48 ID:Qa3+G5H3
ありがとうございます。もうちょっと勉強してみます。
397nobodyさん:2008/10/02(木) 18:21:25 ID:???
うまくいかないといってもパースエラーが出るのか空文字が返ってくるのか接続できないとWarningが返ってくるのか
によって全く違う。
こういうのが「うまくいかない」しか書かない心理って何なの?
398nobodyさん:2008/10/02(木) 18:25:19 ID:???
考えるのすら面倒なんでしょ
399nobodyさん:2008/10/02(木) 20:57:18 ID:JC9hPbTs
>>393
ありがとうございます。オライリーですか、参考にしてみます。
にしても、やさしいPHPのレビューってないですね。
あと基礎PHPとかはもう古いのかな‥
400nobodyさん:2008/10/02(木) 21:31:32 ID:PvYZxYkH
変数のスコープについての質問です。
mona.php
<?php
$a = 1;
include("giko.php");
include("fusa.php");
?>
giko.php
<?php
$b = 2+$a;
?>
ってあったときに$aがincludeされたファイル内でも利用だというのはわかったのですが
giko.phpの$bはmona.phpやfusa.phpで見れるのでしょうか?
ユーザー定義の関数の予定はないです。
401nobodyさん:2008/10/02(木) 21:41:47 ID:???
100回includeのページを読め
402nobodyさん:2008/10/02(木) 21:55:19 ID:PvYZxYkH
>>401
スコープの方を必死に検索かけてました
includeの方で調べればよかったんですね
ありがとうございます
403nobodyさん:2008/10/06(月) 07:28:33 ID:eMKnyKHT
PHPでpearのパッケージを利用したいのですが
インストールの仕方が分かりません
ttp://www.php.net/manual/ja/install.phpには拡張モジュールしかないので
よく分かりませんでした
ttp://pear.php.net/manual/ja/installation.getting.php
に書いてあるように コマンドプロンプトを使えばいいのですが
コマンドプロンプトの使い方が分からないので
使い方を教えてください よろしくお願いします
404nobodyさん:2008/10/06(月) 07:48:42 ID:???
>PEAR インストールのアップデートを行うには、 http://pear.php.net/go-pear をブラウザで表示してその出力をローカルファイル
> go-pear.php に保存します。そして次のコマンドを Windows のコマンドプロンプトで実行してください。
405403:2008/10/06(月) 07:56:08 ID:eMKnyKHT
レスありがとうです
多分その上の行らへんでつまずいていると思います

>PHP をダウンロードしインストールが完了したら、
>バッチファイルを実行します。 というのはダブルクリックだけでいいんでしょうか?
するとコマンドプロンプトが出てくるだけですが


>インストールしたフォルダへのパスを
>PATH 環境変数に追加します。 手動で追加する
> (スタート > コントロールパネル > システム > 環境変数)
>以上で、Windows のコマンドプロンプトから pear コマンドを使い PEAR パッケージマネージャを実行できるようになります。

pealパッケージとは PHPをインストールした時点で使用できるわけではないと思うので
多分ここでつまずいてます
よろしくおねがいします
406nobodyさん:2008/10/06(月) 08:05:35 ID:???
バッチファイルの方はやらなくていいよ
go-pearの方保存して実行すればおk
407403:2008/10/06(月) 08:13:05 ID:eMKnyKHT
ありがとうございます
確認させてください
go-pear.phpというファイルを作ってそこに
http://pear.php.net/go-pearのソースをコピペ
そのあと保存先はC:\phpで
コマンドプロンプトで php go-pear.php
を実行するんですよね?

実行すると『内部コマンドや外部コマンド バッチファイルなどと認識されませんでした』
と表示されます
C:\PHP\PHP-pear.phpを実行しても
エディタが起動するだけでした

よろしくお願いします
408nobodyさん:2008/10/06(月) 08:15:52 ID:???
phpの実行ファイルがある場所に移動してから実行すべし
409nobodyさん:2008/10/06(月) 08:19:25 ID:???
> 実行すると『内部コマンドや外部コマンド バッチファイルなどと認識されませんでした』

C:\Documents and Settings\username>
で実行してるので php.exe が見つからないとかそういうオチなのかな。
410403:2008/10/06(月) 08:38:03 ID:eMKnyKHT
>>408-409
その通りです。。。
もう少しコマンドプロンプトの使い方勉強してきます

今から学校なので ありがとうございました
411nobodyさん:2008/10/07(火) 10:08:44 ID:rx4j8OHY
PDT + xDebugはここで大丈夫かなぁ?
どっちもインスコ、php.iniを書き換えるがうまくいかない。

下のように、extensionだと、phpinfo()にxDebugの項目が現れるけど、
extension=php_xdebug-2.0.3-5.2.5.dll

下のようにzend_extension_tsの指定ではうまくいかない。
[xdebug]
zend_extension_ts = c:\php\ext\php_xdebug-2.0.3-5.2.5.dll

DebugBuildはnoで、ThreadSaftyはenabledだから、後者の書き方の筈なのだが。

で、まぁ前者で行くとして、問題は、[xdebug]の中に書いた設定が全然反映されない...orz
xdebug.remote_enable=true
とかやっても、phpinfo()で見ると、offになってる。
他の設定も同じ。

なので、eclipseでブレークポイントで止まってくれない...orz

誰かお助けを〜
412nobodyさん:2008/10/07(火) 12:08:43 ID:???
zend_extension_tsじゃないとダメよん
413nobodyさん:2008/10/07(火) 12:35:01 ID:rx4j8OHY
>> 412
どうもありがとうございます〜。
414nobodyさん:2008/10/07(火) 13:15:45 ID:2lCZsXeT
PHPではサーブレットやmod_*、あるいはrailsなどのWebアプリのように
URIにコントローラやアクションを含めるような設計ってできるんでしょうか。
PHPのインスコ状況によるのかもしれませんが、どうも情報見つかりません。
415nobodyさん:2008/10/07(火) 13:23:31 ID:???
コントローラーからビューに変数を渡したいのですが、
コントローラーで$this->set('test', 10);と書くと
exception 'Zend_Controller_Action_Exception' with message 'Method "set" does not exist and was not trapped in __call()' 〜
とエラーがでてしまいます。
setを使うのに宣言か何かが必要かと思い、調べたのですが何処を見てもsetを使えばできるとしか書いていません。
コントローラーで$test;や$test=3;はエラーが出なく、エラー文を見てもsetに原因がある気がするのですが、何が原因なのでしょうか?
416nobodyさん:2008/10/07(火) 13:41:47 ID:???
>>415
フレームワークのこと知らないので適当だけど、
メッセージを見るとsetが未定義で、call(多分ビルトインの)で
トラップ(多分、未定義のメソッドが呼ばれたときに適当なメソッドを割り当てる)もできないと言ってる。
多分$thisはControllerクラスのことだと思うので(多分ばっかですんまそ)

要するにControllerクラスにsetが定義されてないんじゃないかと思います。
クラス定義やメソッド一覧するメソッドがあると思うので、確認してみては?

ちなみに今気づいたんですが、フレームワークを使ってると>>414の質問の答えはYesでしょうか?
417nobodyさん:2008/10/07(火) 14:12:15 ID:???
>>414
「?name=value」が嫌ならmod_rewrite(Apache)で出来る

>>415
コントローラにsetがないってことじゃないか?
$thisじゃなくてビューのオブジェクトのsetを呼べばいいような気がする
ZendFWは使ったことないが、普通はそうだと思うぞ
418nobodyさん:2008/10/07(火) 14:28:36 ID:???
>>415
もしかしてキャメルケースのアクションで引っかかってない?
419415:2008/10/07(火) 14:44:42 ID:???
>>415
ご指摘どおり、thisはコントローラーでsetがありませんでしたので、
中身のないsetを作ってみたところエラーは出なくなりましたが、変数の受け渡しはうまくいきませんでした(空なので当たり前ですね)
これでエラーそのもの原因は分かったので次は変数が受け渡せるように頑張ります。

>>417
確かにコントローラーに無いのでthisだと自分で処理を書くか、何処かからコピーしてこないといけないようです。
何処かからコピーしてくるんならそれを使えよって話なので、まずビューからそれらしいのがないか探して見ます。

>>418
キャメルケースが何なのか分からないのでぐぐってみましたが、命名規則(camelCaps?)の事でしょうか。
とりあえず命名規則はチェックしましたが大丈夫でした。
420nobodyさん:2008/10/07(火) 14:48:06 ID:???
すまん先走ってた。俺が自分修正してるZFの不具合かと思った。
メソッド書いてないからメソッド無いと言われたっていう話ですか。(´Д`;)
421416:2008/10/07(火) 15:26:57 ID:???
>>415
今、どんなかなと思って近所でZendの本(緑のやつ)見てきました。
それで思ったんですが、set(value,value)って
Controllerクラスじゃなくレジスタクラス(?)のメソッドじゃないかな?
コントローラで
require "Zend::Registry" <-これ正確じゃないです。これ的な名前。
regist = new Zend::Registry(); #レジスタオブジェクト
regist.set('test', 10);
じゃないかと思います。
ただ、これはアプリ全体で共有したい変数を記憶しておくクラスということなので
このメソッドで即ビューに値が渡るかは分かりません。
Controllerクラスには$this->setBody(value)的なメソッド群がある模様。

しかし、フレームワークでの制作をコピペ等でこなすのは逆にけっこうな大冒険なのでは・・・
422416:2008/10/07(火) 15:32:59 ID:???
>>417
どもです。それ自分もやったことあります(CGIでw)
Apacheモジュールとして動作してるなら他といっしょかなと思ったのですが
経験者の方が耳にしたことないってことは、
少なくとも基本機能ではないってことですもんね。
参考になりました!
423414:2008/10/07(火) 15:34:14 ID:???
↑間違えた。414です。
424403:2008/10/09(木) 04:27:43 ID:???
あれからやってみたのですが
>>408-409さんの言ったとおりに
C:\>php\go-pear.phpを実行してみたのですが
go-pear.phpのエディタが出てきただけでした

それで完了されているとは思えないのですが
どこが間違っているのでしょうか?
よろしくお願いします
425403:2008/10/09(木) 04:52:41 ID:Sz+W15yD
追記
自分が持っている本ではgo-pear.batをコマンドプロンプトで実行すると
いくつかの質問が出てきて
最後にPHP.iniにパスを通す動作が出てくるようなのですが
それらしき質問もでません

よろしくお願いします
426nobodyさん:2008/10/09(木) 05:13:45 ID:???
ドキュメントルートにアップしてブラウザからアクセスしてみ
phpが動いてるか確認してな
427403:2008/10/09(木) 05:21:50 ID:Sz+W15yD
>>426
レスありがとうございます
ドキュメントルートにアップして とはどういうことでしょうか?
ttp://always-pg.com/glossary/kana04_ta/document_root.htmlで調べたら
/で区切っているディレクトリのことだと思うのですが

PHPは動作してます
さっきまで簡単なソースをapacheでやっていました
428nobodyさん:2008/10/09(木) 05:25:50 ID:???
429nobodyさん:2008/10/09(木) 05:25:57 ID:???
だめだこりゃ
先に基礎的な知識を身に付けてからのほうがいいと思うよ
430403:2008/10/09(木) 05:30:32 ID:Sz+W15yD
>>428さん
そういう意味だったんですか
表示されました
go-pear.phpをapacheの中に入れたら

>>429さん
そのことは十分理解しております
ここで聞いてたときも何度も言われました
そのため基礎的な本を買ってこの様です
頑張りたいと思うのでよろしくお願いします
431403:2008/10/09(木) 05:42:21 ID:Sz+W15yD
>>426さん
>>430のようにやったら出来ましたが
このあとどうすればいいのでしょうか?
432403:2008/10/10(金) 15:39:02 ID:6TTacjje
どなたかよろしくお願いします
php.iniを見てもパスが通っている気配がないです
コマンドプロンプトを使用してもエディタしか起動しない…
433nobodyさん:2008/10/10(金) 16:16:49 ID:???
どこまでやって何が分からないん?
ブラウザでgo-pear.phpにアクセス出来たならその画面から操作するわけだが?
434403:2008/10/10(金) 17:16:06 ID:/lY+1YLG
>>433さん
おお そんなことだったんですか
今やってみました
ですが最後のページのhttp://index.php/
が開けれないんですが
pearが導入されたことを確認する方法ってありますか?

またphp.iniにパスが通ってないようなのですが
勝手に書き込まれるわけではないのでしょうか?

よろしくお願いします
435nobodyさん:2008/10/10(金) 19:00:50 ID:???
> http://index.php/
そりゃムリだろ

最初にgo-pear.phpにアクセスした際に環境設定するじゃん
そこにインストールされる
パスが通ってるかどうかはphp.ini次第だから、そんなのあとあと
まずはファイルが配置されたかを確認

436403:2008/10/10(金) 21:45:20 ID:/lY+1YLG
>>435さん
レスサンクス
PHPの中のpearというフォルダにはたくさんファイルが入っていました
さらにその中のpearというフォルダにも入っていました
インストールは完了したっぽいです
これで最後にphp.iniにinclude_path=".;C:\php\pear"と最後に書いたら完了でしょうか?
437nobodyさん:2008/10/10(金) 22:04:35 ID:???
>頑張りたいと思うのでよろしくお願いします
どの辺が頑張ってんだ。
438nobodyさん:2008/10/10(金) 22:40:00 ID:???
画伯まだやってんのかw
439nobodyさん:2008/10/11(土) 07:38:32 ID:???
この調子じゃ、この先も質問連発だね。
440403:2008/10/11(土) 07:52:03 ID:IbH29Qlb
>>437-439
とりあえず環境設定でいつもつまずくので
環境設定だけ完了したいんでよろしくおねがいします
441nobodyさん:2008/10/11(土) 08:05:52 ID:???
頑張りたいと思ってんだろ?
頑張れ。
442403:2008/10/11(土) 10:04:59 ID:IbH29Qlb
試しにindex.phpをしてみたら こんなのが出ました

Notice: Use of undefined constant PEAR_CONFIG_SYSCONFDIR - assumed 'PEAR_CONFIG_SYSCONFDIR' in C:\Program Files\Apache Group\Apache2\htdocs\PEAR\pearfrontendweb.php on line 72

Warning: Can not find config file, please specify the $pear_user_config variable in /index.php

Error: the template directory (C:\php5\pear\data\PEAR_Frontend_Web\data\templates) is not a directory, or not readable. Make sure the 'data_dir' of your config file (C:\php5\pear\data) points to the correct location !


これはインストールされてないってことでしょうか?
443nobodyさん:2008/10/11(土) 12:01:25 ID:???
通知: 未定義の一定の_PEAR_CONFIG SYSCONFDIR--Cで'PEAR_CONFIG_SYSCONFDIR'を仮定することの使用: 線72の上の\Program Files\アパッチGroup\Apache2\htdocs\PEAR\pearfrontendweb.php

警告: コンフィグがファイルであることを見つけることができないで、/index.phpの$洋梨_ユーザ_コンフィ
グ変数を指定してください。

誤り: テンプレートディレクトリ(C: \php5\洋梨\データ\PEAR_Frontend_ウェブ\データ\テンプレート)は、ディレクトリ、または読み込み可能です。 あなたのコンフィグファイル(C: \php5\洋梨\データ)の'データ_dir'が正しい位置を示すのを確実にしてください!

という意味だよ
444nobodyさん:2008/10/11(土) 14:23:21 ID:8EU/X1Q4
教えてください。

print(mb_strwidth("※",'UTF-8'));

これををUTF-8でテキストとして保存して実行すると答えが1とでます。
なんとか正しく判定させて2と出させたいのですが、どうすればいいのでしょうか。
ちなみにSJISやEUCで試してもやはり1でした。
445nobodyさん:2008/10/11(土) 14:39:07 ID:???
正しくの根拠は?
446nobodyさん:2008/10/11(土) 20:36:15 ID:mQFhChia
MagpieRSSでrssを取得したくて、
http://www.vipper.org/vip951655.txt.html
のコードを動かしてみたんですが、

Parse error: syntax error, unexpected T_VARIABLE, expecting ';' in /virtual/boon/public_html/2ch/rss.php on line 28

が帰ってきます。。
よかったら、原因を教えて下さい。。
447nobodyさん:2008/10/11(土) 20:44:39 ID:???
>>446
26: for ($i=0;$i
// 27:
// 28: $rss = fetch_rss($rssurl[$i]);

CGI設置について質問【Part3】
http://pc11.2ch.net/test/read.cgi/php/1176143582/
448nobodyさん:2008/10/12(日) 09:51:36 ID:???
ある文字列から
<h1>と</h1>
で囲まれた部分だけを抽出して配列に格納したいのですが、どのような方法があるでしょうか。
449nobodyさん:2008/10/12(日) 10:03:24 ID:???
postしてprintしただけなのに
ある日突然
"の前に\が入るようになってしまいました。これはなぜなのでしょうか?
450nobodyさん:2008/10/12(日) 10:58:55 ID:???
>>448
正規表現
>>449
magic_quote
451403:2008/10/12(日) 16:56:29 ID:5ipLjJfb
>>443さん
レスサンクスです
翻訳サイトで僕も翻訳してましたw

Error: the template directory (C:\php5\pear\data\PEAR_Frontend_Web\data\templates) is not a directory, or not readable. Make sure the 'data_dir' of your config file (C:\php5\pear\data) points to the correct location !
という部分なのですが
C:\php5\pear\data\PEAR_Frontend_Web\data\templatesというファイルを作っても動きませんでした
これはパスを通せという注意だと思うのですが
なんのデータに何をすればいいのでしょうか?
452nobodyさん:2008/10/12(日) 17:34:56 ID:???
Error: the template directory (C:\php5\pear\data\PEAR_Frontend_Web\data\templates) is not a directory, or not readable. Make sure the 'data_dir' of your config file (C:\php5\pear\data) points to the correct location !
ってことだよ
453403:2008/10/12(日) 17:36:26 ID:5ipLjJfb
>>452
よく分かりません
454nobodyさん:2008/10/12(日) 17:37:51 ID:???
>>450

magic_quote の設定をどう変更しても¥が出てしまいます。
455nobodyさん:2008/10/12(日) 17:54:24 ID:???
>>453
訳せよ
456nobodyさん:2008/10/12(日) 18:11:17 ID:???
>>454
どう変更したの?
457nobodyさん:2008/10/12(日) 18:43:59 ID:???
>>456

onにしたりoffにしたりして試してみました。
458nobodyさん:2008/10/12(日) 19:10:31 ID:???
apache再起動すれ
459nobodyさん:2008/10/12(日) 21:45:13 ID:???
>>454
ゆとり的な回答もしておくね。
つ[stripslashes]
460nobodyさん:2008/10/12(日) 22:42:57 ID:B6zhuvJO
apache再起動か。
なんでできないんだろうなと思った。
こういうところまで教えないといけないのか。
461403:2008/10/13(月) 03:01:56 ID:5FVzcFud
ttp://www.s-memo.net/blog/2006/12/pear.php
を見て途中までインストールしたのですが
>試しにPEAR::HTTP_Downloadをインストールしてみましょう。
というとこでコマンドプロンプトを使ってダウンロードしようとしたら
最後の行で
No valid packages found
install failed
と出ました
これはC:\php\pearをコマンドプロンプトで実行したら
Usage: pear [options] command [command-options]
Type "pear help options" to list all options.
Type "pear help " to get the help for the specified command.
Commands:
という部分は出こなかったことと関係しているのでしょうか?

上のサイトにも書いてあったのですが
pear.batというファイルが出てきたらインストールできたということ
と書いてあったのでインストールは出来ていると思います

なんにせよ インストールは完了したことを確認できました
みなさんありがとうございます
462nobodyさん:2008/10/13(月) 04:03:24 ID:???
>>458
>>460
apache再起動でもやっぱり¥が入ってしまいます。
463nobodyさん:2008/10/13(月) 05:33:07 ID:???
http://www.pachiweb.com/futaba.txt
これはとある画像掲示板の画像削除時のスクリプトなんですが
これは1行ずつ削除該当ナンバーか照らしあわしつつ$lineに格納していって
該当ナンバーならその行は空白にすると言うスクリプトでいいのでしょうか?
fputs($fp, implode('', $line));
この部分のimplodeは要素間に改行を入れた後、
書き込みということですか?
464nobodyさん:2008/10/13(月) 07:49:18 ID:???
$lineに格納したあと再度ループして比較してる。
そのimplodeは配列だった$lineを区切り文字無しで全部くっつけて一つの文字列にしてる
ちょっと前時代的な手法だね。

http://www.pachiweb.com/site-material/profile.gif
・・・ゴクリ
465nobodyさん:2008/10/13(月) 09:31:48 ID:5FVzcFud
apacheを利用しているんですが
localhostでPHPの状態を見れるようにしたのですが
Notice: Use of undefined constant PEAR_CONFIG_SYSCONFDIR - assumed 'PEAR_CONFIG_SYSCONFDIR' in C:\Program Files\Apache Group\Apache2\htdocs\PEAR\pearfrontendweb.php on line 72

Warning: Can not find config file, please specify the $pear_user_config variable in /index.php

Error: the template directory (C:\php5\pear\data\PEAR_Frontend_Web\data\templates) is not a directory, or not readable. Make sure the 'data_dir' of your config file (C:\php5\pear\data) points to the correct location !

と出てきました
pearfrontendweb.phpの問題の行には
// find other config file location
$default_config_dirs = array(
substr(dirname(__FILE__), 0, strrpos(dirname(__FILE__), DIRECTORY_SEPARATOR)), // strip eg PEAR from .../example/PEAR(/pearfrontendweb.php)
dirname($_SERVER['SCRIPT_FILENAME']),
PEAR_CONFIG_SYSCONFDIR,
と出てきました
これはpearをダウンロードした場所が悪かったのでしょうか?
この場合はC:\Program Files\Apache Group\Apache2\htdocs\pearにダウンロードしなければならなかったのでしょうか?

あと気になったのがC:\php5\pear\data\PEAR_Frontend_Web\data\templatesという部分です
php5\とありますがphp5はありません
PHPという名前に変えたので これが原因でしょうか?
466463:2008/10/13(月) 09:38:47 ID:???
か、解説ありがとうございます、
人の癖がついたスクリプトをいじるのはほんと大変ですね。
ほんとに改造できるか心配になってきました。
プロフィールとかは気にしないで下さいw

それですごい基本的な事で申し訳ないんですが
$log = fopen('access.log','w');
fopen関数のファイルの内容をクリアする(w)などのモードの場合、
ログ内容をこの例だと$logに格納した後ログ消去するのでしょうか?
467nobodyさん:2008/10/13(月) 11:18:50 ID:???
>>465
自分でテンプレートディレクトリ設定すりゃええんちゃうん?
468465:2008/10/13(月) 12:18:31 ID:5FVzcFud
テンプレートディレクトリってのはtempletsというディレクトリをどう設定したらいいのですか?
469nobodyさん:2008/10/13(月) 12:20:11 ID:???
知るかよ何のスクリプト使ってるかも書いてないのに
470465:2008/10/13(月) 12:55:01 ID:5FVzcFud
>>469
すいません
スクリプト自体がどれか分からないんですが
エディタならPHPエディタです
すいません 用語をよく知らないので
471nobodyさん:2008/10/13(月) 13:01:37 ID:???
じゃ調べろよ・・・
472nobodyさん:2008/10/13(月) 13:03:59 ID:???
もうPEARのエラーメッセージはおなかいっぱい
冷静になって環境見直せよ、画伯
473465:2008/10/13(月) 13:20:54 ID:5FVzcFud
ttp://kaden.yahoo.co.jp/dict/?type=detail&id=1323
で調べてきたんですけど
コンパイラが何か分からないんです
変換という意味が分からなくて
apacheはサーバ代わりだし
474nobodyさん:2008/10/13(月) 13:28:42 ID:???
画伯って何?
475nobodyさん:2008/10/13(月) 13:41:35 ID:CGfh2V74
>>901
ディレクトリについて少し質問
C:\php\pear\DBだった場合 (DBはフォルダ)
C:\php\pearでもいいんでしょうか?
476nobodyさん:2008/10/13(月) 13:43:52 ID:CGfh2V74
書くとこ間違えました
申し訳ないです
477463:2008/10/13(月) 19:28:39 ID:???
俺と間違えられてた?
478nobodyさん:2008/10/14(火) 00:30:55 ID:z+viMTEc
PHP4てまだ使ってる人いるんでしょうか
479KYOO ◆1C9DnWzrKw :2008/10/14(火) 00:34:16 ID:IZm37X9Z
http://daveri.site90.net/
掲示板ってやつをつくってみたんですけど、
暇だったら見てみてください。
480nobodyさん:2008/10/14(火) 00:44:52 ID:???
>>478
サポートは終了しても現行システムを移行させるまでは使うしかない
新たに始めるならPHP5だろう

dev版PHP6を見てると・・・また互換性のないUPがたんまり・・・
481nobodyさん:2008/10/14(火) 04:11:06 ID:???
>>480
メジャーバージョン違いはもう別言語と思ったほうがいいよな。マイナーアップでさえry
482465:2008/10/14(火) 08:40:33 ID:OazE8u18
どなたか>>467をphp触って一ヶ月の俺に分かりやすく詳しく教えて下さい
483nobodyさん:2008/10/14(火) 09:46:19 ID:???
>>482
PEAR_Frontend_Webの設定でテンプレートパスを正しく変更する
これでFA
484nobodyさん:2008/10/14(火) 09:54:18 ID:???
FAかな…。

>>442と同じことを>>465で訊いてしまう感覚とか、
C:\php\pear(>>436等) or C:\php5\pear のどっちに PEAR を入れたのか本人もよくわかってないとか、
目先の対症療法では解決しない根深いものを感じるよ。
485nobodyさん:2008/10/14(火) 10:01:00 ID:???
意識の低さが問題を深くしているんですね、この1ヶ月は無駄だったと、わかります
486nobodyさん:2008/10/14(火) 10:15:59 ID:???
487nobodyさん:2008/10/14(火) 12:30:14 ID:PhS+pU3S
超初心者的な質問ですいません

phpを使ったwebサイト作成の勉強をしているのですが

C:\Users\ユーザー名\Documents\サンプルサイトの中でwebサイトを作っているのですが
C:\xamppの中にあるhtdocs内にあるphpを読み込もうとしても上手くいきません。
phpの初心者なんで概念自体があやふやなので変な質問でしたらごめんなさい<(._.)>
488nobodyさん:2008/10/14(火) 13:06:00 ID:???
apache 動かしてるのにドキュメントルートの外でサイト作らなくてもいいと思うのよ。
489nobodyさん:2008/10/14(火) 18:05:42 ID:???
Cドライブ開くの面倒ならショートカット作ればいいしな
490nobodyさん:2008/10/14(火) 18:49:32 ID:???
初心者はxamppやめれ
491nobodyさん:2008/10/15(水) 15:36:31 ID:jArJnvnC
平分のIDとmd5で暗号化したパスワードをtxtファイルにして
それを.htaccess下のフォルダに入れました。

メインのPHPでそのファイルを読み取り認証
その後、ID.datファイルを外部から読込んで
IDごとに違うページを表示させているのですが

セキュリティ的に問題などあるでしょうか?

補足
ID.datも.htaccess下に入れてあります。
ちょっとした顧客の納期表示に使おうと思っています。
492nobodyさん:2008/10/15(水) 15:40:03 ID:???
htaccess下って何だよ
493nobodyさん:2008/10/15(水) 15:42:31 ID:jArJnvnC
>>492
すいません
.htaccess .htpasswordファイルを置いてアクセス制限かけたフォルダです。


494nobodyさん:2008/10/15(水) 15:43:47 ID:???
>>492
「.htaccessでアクセス制限しているディレクトリ配下」くらい予測しろ

>>491
.htaccessでdeny from allしてるなら直リン出来ないからまぁ安全じゃないか?
出来ればルート外に置くのがベストだが
495nobodyさん:2008/10/15(水) 15:56:52 ID:jArJnvnC
わかりづらい文章で申し訳ありません

>>494
ありがとうございました。
ルート内にあったのでルート外に置くようにしてみます。
496nobodyさん:2008/10/15(水) 17:58:29 ID:9ioAzBde
PEARってセーフモードの鯖にはインストールできないんですか?
497nobodyさん:2008/10/15(水) 20:04:57 ID:???
インストールはできる。
使えるかどうかはともかく。
498nobodyさん:2008/10/16(木) 00:04:07 ID:???
>>490
理由は?
499nobodyさん:2008/10/16(木) 08:26:41 ID:???
>>498
質問に答える側が使っていないから。
500nobodyさん:2008/10/16(木) 10:28:23 ID:???
>>499
いやそれなりに使うだろ
開発でFTPとかNFSが面倒な時
開発用、テスト用の鯖作るの面倒な時もか
501nobodyさん:2008/10/16(木) 17:46:31 ID:???
うん、そんなものをWebProgのWの字も知らない初心者が使うってのがそもそもおかしいだろ、な?
502nobodyさん:2008/10/16(木) 18:09:17 ID:???
それもそうか
じゃぁ普通にレン鯖か
しかしレン鯖だとセーフモードやらパーミッションやら意識することが多いよな
・・・そうかそれも勉強か!
503nobodyさん:2008/10/16(木) 18:21:05 ID:???
ApacheとPHPとMySQLをインストールすればいいと思うよ。
504nobodyさん:2008/10/16(木) 20:03:13 ID:???
んだんだ
505nobodyさん:2008/10/17(金) 13:22:48 ID:???
phpinfo()などではき出される全項目の意味を説明してあるサイトなどを、ご存じな方
教えて頂けませんでしょうか。
506nobodyさん:2008/10/17(金) 14:04:27 ID:???
個別に調べればいいんでないの?
コアの部分はPHPまぬある必見
PECLの分まで纏めたサイトなんてある意味マゾだ
507nobodyさん:2008/10/18(土) 00:42:37 ID:VyIaaBn5
496です。

>>497
有難うございます。
只今、PHPと共にモバイルサイト構築を勉強中で、
Net_UserAgent_Mobileがどんな具合なのか使ってみたかったんですが
自分の力では無料サーバのセーフモード下にPEARを
インストールすることが出来ませんでした…orz

・無料サーバ
・php5.25
・セーフモード下
では、やはり不可能なのでしょうか。
どなたかご教授頂ければ幸いです。
508nobodyさん:2008/10/18(土) 01:19:10 ID:???
PEARをインストール・・・
ぶっちゃけ依存PEARも含めてアップロードしてパスを通せば使える
(共有ライブラリに依存しないなら)
インストーラでなければならないわけじゃない(依存が面倒なだけ)
509nobodyさん:2008/10/19(日) 13:57:02 ID:???
サーバでPHP実行中に、クライアントのブラウザを閉じた若しくは別ページに移動した等の場合、
サーバ側の処理はどうなりますか?
510nobodyさん:2008/10/19(日) 13:59:27 ID:???
511nobodyさん:2008/10/20(月) 11:13:17 ID:???
あの〜、すみません。
メール送信フォームのフォーム入力の所についてなんですけど
間違ってたら警告出して
間違ってなければ確認画面に飛ばすように書きたいんですけど
飛ばすと入力情報が消えてしまいます。
if (isset($_POST['oshibotan'])){
if (isset($_POST['namae']=="")){
echo "名前書いて<br>";
}
}else{
   $url = "kakunin.php";
   header("Location:$url");
}
}
なんとなく「そりゃ飛ばないわな」って思うんですが
わからない〜( p_q)
512nobodyさん:2008/10/20(月) 11:48:59 ID:???
>>511
つセッション
513511:2008/10/20(月) 14:03:24 ID:???
ああ・・その前にフォー文がわからなくなった・・・・
上の通り書いてもエラー(「名前書いて」)が出ない・・すぐに飛んでしまう( p_q)
514nobodyさん:2008/10/20(月) 14:22:25 ID:???
まずissetの使い方が違う
issetはその変数がセットされているかどうか
その中に==とか入れてる時点で間違ってる

次にecho "名前書いて<br>"; と飛ばす処理は同階層なので
今の書き方だとどちらかしか発生しない

あとLocationの使い方がその書き方でも飛ばしてくれるブラウザは多いが
書き方は間違っている
正しくはhttpとかスキーマからはじめないとだめ
515nobodyさん:2008/10/20(月) 14:24:12 ID:???
あ、すまん

次にecho "名前書いて<br>"; と飛ばす処理は同階層なので
今の書き方だとどちらかしか発生しない

これ忘れて1個}が多いので読み間違った
まぁどちらにせよどちらかしか発生しないが・・・
516nobodyさん:2008/10/20(月) 14:24:16 ID:???
nullの時と同じ扱いだから別に間違っちゃいない思う
517nobodyさん:2008/10/20(月) 14:30:59 ID:???
>>516
どう見ても間違いだろうが

if ($_POST['namae']==""){

これなら使っているWebアプリ等は多々あるが

if (isset($_POST['namae']=="")){

これはまず無い
というかこういう書き方出来るのかと思って
さっき試したらParse error出たし
518nobodyさん:2008/10/20(月) 14:45:13 ID:???
ああそもそも括弧付いてなかったのね
519511:2008/10/20(月) 18:00:40 ID:???
>>514>>516
あんがと!!

自分で色々やってたらなんか出来た。
「なんか出来た」だからちゃんとわかってないかも
明日もまた質問するかもしれないけど
ありがとね!

issetはstrlenにしたよ。
よくわかってないのに見よう見まねで使ってる。
たぶんまだバグだらけ。
520nobodyさん:2008/10/20(月) 18:48:20 ID:???
strlen($_POST['namae']=="") にしたのかな。
521nobodyさん:2008/10/21(火) 09:15:38 ID:???
質問させてください。
webサイトの作成に役立てようと、phpを勉強しはじめました。
入門書を一通り読んだのですが、webサイトにどう役立てるかわかりません。
テンプレート的なものをイメージしていました。
次に具体的に何を学べばよいのでしょうか?
522nobodyさん:2008/10/21(火) 10:23:27 ID:???
phpをちゃんと理解してから次行ってくれ
523511:2008/10/21(火) 11:17:14 ID:???
>>520
うん、そうしました。
524nobodyさん:2008/10/21(火) 11:46:03 ID:???
なぜに strlen($_POST['namae']=="") w
525nobodyさん:2008/10/21(火) 13:43:59 ID:5M3hbzoP
やるなら
if (isset($_POST['namae']) && strlen($_POST['namae']) == 0) {
    echo "名前書いて<br>";
}

かな・・・
526nobodyさん:2008/10/21(火) 14:36:34 ID:???
テキストファイルを書き換えたくてスクリプトを作ったのですが
windows上では動作するのにレンタルスペースで動かすと
ファイル削除、コピー、書き込みができません。どうしてですか?
527nobodyさん:2008/10/21(火) 14:43:57 ID:???
windowsのレンタルスペースじゃないからじゃない?
528nobodyさん:2008/10/21(火) 15:10:40 ID:???
質問させてください。
人生に役立てようと、女心を勉強しはじめました。
入門書を一通り読んだのですが、人生にどう役立てるかわかりません。
テンプレート的なものをイメージしていました。
次に具体的に何を学べばよいのでしょうか?
529nobodyさん:2008/10/21(火) 15:31:51 ID:???
>>528
2点
530nobodyさん:2008/10/21(火) 16:12:30 ID:???
>>528
つまらん。
531nobodyさん:2008/10/21(火) 16:50:07 ID:FLMyajbO
>>528
つまらなすぎ
532511:2008/10/21(火) 17:39:59 ID:???
ちょっとPHPとはあまり関係ないんだけど
原因わかる人教えて
テーブルタグ使ってて
<table>
<tr><td>ユーザID</td><td><input type="text" name="userid" maxlength="10" size=20></td>
<tr><td>パスワード</td><td><input type="password" name="pswd" maxlength="10" size=20></td></tr>
</table>
ってやってるんだけど
フォームの長さがサイズ指定しても変わってしまう。
input typeをpasswordにしてから。
これは直せないのかなぁ?
533nobodyさん:2008/10/21(火) 17:45:31 ID:???
>>532
CSSで縦横指定してやるとよろし
534nobodyさん:2008/10/21(火) 19:04:47 ID:???
なんでそこだけダブルクオーテーションがないんだ
コピペPGの悪例だな
535nobodyさん:2008/10/21(火) 19:42:03 ID:???
よくみりゃ<tr>も閉じてないな
536nobodyさん:2008/10/21(火) 20:02:57 ID:???
>>535
よくみろ<tr>は閉じてある
537nobodyさん:2008/10/21(火) 20:05:18 ID:???
>>536
よくみろ
538nobodyさん:2008/10/21(火) 20:26:31 ID:???
よくみた<tr>は閉じてない
539nobodyさん:2008/10/21(火) 21:43:31 ID:???
・SQLインジェクションという言葉を知らない
・コメント欄を読まない
・問題の詳細についてググりすらしない
・未知の脆弱性に対して敏感でない
・精神的に幼稚である
540nobodyさん:2008/10/21(火) 21:56:30 ID:???
php入門系/phpリファレンス系のサイトでサイト内コンテンツを一括ダウンロードできるようにしてある
サイトはどこかにないですかね?

社内LAN環境で鯖を立ててphpを動かそうと思っていますが
NETにつなげないため調べ物ができず困っています…

サイトダウンローダー等も試してみたのですが
CGIに対応しているダウンローダーが無くうまく落とせませんでした
541nobodyさん:2008/10/21(火) 21:59:56 ID:???
>>540
本でも買え
542nobodyさん:2008/10/21(火) 22:02:37 ID:???
>>540
少しは調べたのかな?
http://docs.php.gr.jp/
543nobodyさん:2008/10/22(水) 08:23:23 ID:P24H2Ub2
>>539
一通りの攻撃の手法と防御法は覚えたけど未知の脆弱性に対してどうすればいいか正直わからない。

この機会に教えてください。
544511:2008/10/22(水) 09:39:01 ID:???
""ってつけるのとつけないのはどっちがいいんでしょうか?
コピペではないのですが、つけたりつけなかったりです。
CSS、今から調べてみます。
調べるのが遅いんですよね・・・効率悪い探し方をしているのかも。
545nobodyさん:2008/10/22(水) 09:49:17 ID:???
>>544
とりあえず、つけておいた方がいい
546511:2008/10/22(水) 09:55:50 ID:???
わかりました。
547511:2008/10/22(水) 13:49:18 ID:???
DBからID、PWを取り出して認証するログインスクリプトなんですが
認証実行(ログインボタンを押した時)した際
DBからID、PWを全て取り出して
1つ1つ合っているかどうか検証するのですよね。
if($user==(DBから取り出したID) && $pswd==(DBから取り出したPW)){
    $url = "index.php";
    header("Location:$url");
    }else{
        echo "ちがうがな!";
    }
}
こんな感じですよね?
この(DBから取り出した・・)の部分にどう書けばいいのかわからなくて・・
いっぱいあるわけですよね
複数のID&PWを1つにまとめて出して確認する方法が良くわからない
548nobodyさん:2008/10/22(水) 14:01:45 ID:???
>>547
どんだけ無駄な
DBならSQLのWHEREでIDとパスワードを照合しろよ
結果の行数が1か0かで判断出来るじゃん
549nobodyさん:2008/10/22(水) 14:05:08 ID:???
先輩が最初そうやってるのを見た
意外と陥りやすい罠かもしれない
550nobodyさん:2008/10/22(水) 14:25:22 ID:???
まじかよ・・・
DBを使ってる理由を問いたいくらいだ
551547:2008/10/22(水) 14:27:34 ID:???
なるほど、WHEREで照合ですか・・・
だいぶググってみましたが
よくわからないです。
入門サイト見ながらやってるんですが

>>548,549
のっけから間違っちゃってるってことでしょうか?
552nobodyさん:2008/10/22(水) 14:29:57 ID:???
DBとPHPの入門書を各々一冊ちゃんと読んでからのほうがいいと思うよ
553547:2008/10/22(水) 14:40:12 ID:???
先輩にも「そういう質問が来るとは思わなかった」と言われました。
先輩2人は参考書も買わずに半日かからずに出来たそうです。
僕は2日かかってます。
自分でも何故こんなに理解力が無いのかと思うと嫌になります。
今日は帰りに入門書を買って帰ります。
ありがとうございました。
554nobodyさん:2008/10/22(水) 14:55:22 ID:???
>>553
認証部分なんて30分もかからん、多分その先輩もそうだろう
理解力ではなくて基礎が足りん
PHPの文法やアルゴリズム、DBの基礎とSQL構文、知っておくべきことを知らないから時間がかかる
知った後は早いもんだ
555nobodyさん:2008/10/22(水) 15:18:05 ID:???
DBに生パスワード置いとくなよ
絶対やるなよ

「パスワードをハッシュ化(暗号化)保存することを法律で義務化するくらいのことが必要だと思う」
ttp://neta.ywcafe.net/000910.html
556553:2008/10/22(水) 15:44:06 ID:???
ログインが出来ればハッシュ化してやり直すつもりですが
とりあえずログインをやろうと思って
DBに追加したIDとPWをちゃんと読み込めるかどうか試そうと思って。
それでずっとつまづいてます。
自分でもすぐ出来ると思ったんですが・・・
今日中に終わらせると言ったもんだから今日中に終わらせないと
557nobodyさん:2008/10/22(水) 15:57:40 ID:???
そしてSQLインジェクション可能なのをまた1つ生み出すと・・・

558553:2008/10/22(水) 16:03:03 ID:???
if ($_SERVER["REQUEST_METHOD"]=="POST"){
$user = $_POST['userid'];
$pswd = $_POST['pswd'];
if($user==$row['name'] && $pswd==$row['pass']){
$url = "index.php";
header("Location:$url");
}else{
echo $error;
}
この$row['name']ってところは配列ですよね。
ここに配列の中身全部出せばいいんじゃないかと思ってます。
「やさしいPHP」という本を見てるんですが、詳しくは載ってなくて
559nobodyさん:2008/10/22(水) 16:03:06 ID:???
というかDBの用意はできてるの?
mysql_connect()とかで接続できてるの?
SQLの構文は知ってるの?
君がどこまで理解してるのかが全然わからないw

AUTHとか使って簡単に済ませちゃえば?
560553:2008/10/22(水) 16:21:52 ID:???
DBにはアクセスできてます。
構文はスコシしか知らないと思います。
追加や一覧表示、削除は出来ました。
561nobodyさん:2008/10/22(水) 16:56:11 ID:???
>>560
>>558で$rowを事前に用意しようとするのが間違い

postのuseridとpswdでDBに対してSQL発行(SELECT文)して存在するかチェック
>>555の点を注意するならハッシュ化したpswdで比較)
で、結果に応じて表示を行う

な?単純なものならこれだけだ
562553:2008/10/22(水) 17:27:48 ID:???
>>561
ありがとう、わかったようなわからないような
でもなんとなく・・・いや、とりあえずもう少し頑張ってみる。
またきます。
563nobodyさん:2008/10/22(水) 18:23:44 ID:???
564562:2008/10/22(水) 19:58:59 ID:???
AmazonでMySQLとPHPの参考書
人気高いやつを注文したっす
金曜日には届きますけど、それまで教えて貰いたいです。
あの・・・もしよければソースそのまま
どこかのアップローダにアップするので
訂正もしくは、ここは訂正すべき、という部分を指摘してもらえないでしょうか?
565nobodyさん:2008/10/22(水) 20:23:07 ID:???
>>511を見る限り、DBとの連携に手を出すにはまだ早い気がする。
566nobodyさん:2008/10/22(水) 20:27:00 ID:???
この程度でも手出せるのがPHP
567nobodyさん:2008/10/22(水) 21:01:02 ID:???
>>564
表面だけ取り繕っても大抵上手くいかないからやめとけ
568nobodyさん:2008/10/22(水) 21:46:42 ID:Qg6SK/1U
初心者です。
<?php echo"<〜>" ?>
<?php if(〜) {
echo"<iframe src〜 />"; } ?>

と、あって、3行目のecho(iframe)が表示される時1行目の
<?php ?>を丸ごと消去したいのですが、どうしたらいいですか?
569nobodyさん:2008/10/22(水) 21:54:58 ID:???
elseに書くか変数に入れりゃよかろ
570564:2008/10/23(木) 04:51:02 ID:???
http://amezolog2.hp.infoseek.co.jp/source/up1633.zip
一応これのlogin.phpなんですけど〜〜(;;;;;;
8行目から23行目にかけてのとこなんすけどぉ〜
ここにDBから呼び出したIDとPWを書いて認証したいんですけど
DBの書き方がわからへん・・・。
571nobodyさん:2008/10/23(木) 05:04:50 ID:???
572nobodyさん:2008/10/23(木) 08:47:21 ID:???
そこ取り繕っても後が続かないんじゃないかな。
その後、たぶんセッション引き回すんだろうし。
573nobodyさん:2008/10/23(木) 08:56:53 ID:???
>>570

$sql = "SELECT * FROM user_pwd WHERE user ='$user'and pass = '$pswd'";
$res = mysql_query($sql,$conn);

$resになにが入ってるか理解できてないと思う
$resにはDBのuser_pwdテーブルのuser列が$userで更にpass列が$pswdのオブジェクトが入ってる
言い換えると
$userと$pswdが一致してるレコードがあれば$resに格納
つまり君の言う認証はSQL文を発行した時点で完了してる

>>561さんが言ってるんだけどねw
574nobodyさん:2008/10/23(木) 09:05:17 ID:???
>>573
とりあえず間違ってる
575nobodyさん:2008/10/23(木) 09:20:09 ID:???
>>573
おまいも理解してねぇのか
結果セットはレコードそのものじゃねぇ、発行結果のオブジェクトだ

あとこの場合のSELECTはCOUNTで行数数えるだけでいい
で、結果セットからnum_rowsして1か0かで判断
576570:2008/10/23(木) 09:37:43 ID:???
どうも。
今からやります。
できるかなあ。
577570:2008/10/23(木) 10:23:21 ID:???
ひとつずつ取得すればいいと言われたのですが
$kekka="SELECT pass FROM user_pwd WHERE user=".$userid;

if ($_SERVER["REQUEST_METHOD"]=="POST"){
if($kekka=$pswd){
echo "Okie.";
}
elseif($kekka!=$pswd){
echo "bad.";
}
else{
echo "noID.";
}
}
こうですか・・??
578nobodyさん:2008/10/23(木) 10:37:20 ID:???
>>577
ダァァーー理解してねぇ
$kekkaにはSQL文が入るのに、なぜ$pswdと比較出来る!

動作だけならこう

$uid // POSTからとったユーザIDとする
$passwd // POSTからとったパスワードとする

$sql = "SELECT COUNT(*) FROM tablename WHERE userid='$uid' AND passwd='$passwd'"
$res = mysql_query($sql);
list($nums) = mysql_fetch_assoc($res);

if ($nums == 0){
//NG
}else{
//OK
}
579nobodyさん:2008/10/23(木) 10:37:55 ID:???
データベースどこ行ったんだよ。
580nobodyさん:2008/10/23(木) 10:46:08 ID:???
>>578
そんな危ないスクリプト教えんなよ
581577:2008/10/23(木) 10:49:49 ID:???
$userid = $_POST['userid'];
$pswd = $_POST['pswd'];
$sql = "SELECT COUNT(*) FROM user_pwd WHERE user='$user' AND pass='$pswd'";
$res = mysql_query($sql);
list($nums) = mysql_fetch_assoc($res);
if ($_SERVER["REQUEST_METHOD"]=="POST"){
if($nums==0){
echo "bad";
}else{
echo "okie";
}
}
こうですか?
出来ないよーーーーーーーーーーーーーーーーーーーーわからない
焦る 軽いノイローゼ状態だー
582nobodyさん:2008/10/23(木) 10:51:35 ID:???
>>570を見た.結論からいうと>>552
何も分かってないのに偶然うまく動くとかえって自分の首を絞めるよ.

>>570のコードも addtest.php って本人が書いたわけじゃなくて
職場の既存コードのコピペじゃないの?
SQLインジェクション脆弱性あるよ.

>>578 $uid と $passwd をエスケープしないのは初心者にとって有害な例示だと思うよ.
583nobodyさん:2008/10/23(木) 10:52:51 ID:???
@接続する。
ASQL文を作る。
ユーザーリクエストを含めるときはインジェクション対策のために専用エスケープを忘れずに。
B発行する。
C結果セットを受けとる。
Dループさせるなり取り出すなりして表示。
E接続を切る。
584570:2008/10/23(木) 10:55:53 ID:???
職場のではないですが、解説サイトのを少し見よう見まねしてます。
といってもSQL構文のところだけです。
他はナントナクはわかって書いてます。

「とりあえず動かしてミロ」とのことなので
セキュリティの事は後に言われると思います。
585nobodyさん:2008/10/23(木) 10:56:30 ID:???
>>579
そこからなのか・・・
>>580
そんなこと言ったら「担当替えろ」で終わりだ
そもそもモデル化してないのにゴチャゴチャやったら>>581みたいなことになる
まずは最低限の動作、そこから拡張しかないのだ、この場合

>>581
DBのオープンすらやってないってことでFA?
そのスクリプトには事前処理とかないわけ?
mysql_connectはどこかで使ってるか?(認証処理より前の段階で)

586nobodyさん:2008/10/23(木) 10:57:06 ID:???
それと認証して一致するユーザーは1人だろうから

if($nums==1){
//OK
}else{
//NG
}

のほうがいいような。
587nobodyさん:2008/10/23(木) 10:58:17 ID:???
先輩のチェックが入るんだから、
まずは動くところまで持っていくしかないな
そこから先輩もツッコミや指導を予定してるんだろうし
588nobodyさん:2008/10/23(木) 11:11:28 ID:???
>>585
モデル化とか関係ないし
とりあえずの動作も必要だが
それ以上にSQLインジェクションの事を考えさせる事の方が重要
589581:2008/10/23(木) 11:13:20 ID:???
みなさんのレスをコメント化して見ながらやってるので
ソースもだいぶごちゃごちゃしてました。まとめますと今こんな事書いてます。
http://amezolog.hp.infoseek.co.jp/source/up8378.zip
590nobodyさん:2008/10/23(木) 11:15:11 ID:???
>>588
考えさせる・対策させる大切さは重々わかっとるが、
さすがに手順を踏まないと>>570がハゲないか?
591nobodyさん:2008/10/23(木) 11:20:45 ID:???
>>589
見た

WHEREのところで「user=」ってなってるけど、
user_pwdテーブルはIDとpassフィールドなんだよな?
じゃぁ「ID=」にしないと
592nobodyさん:2008/10/23(木) 11:28:25 ID:???
4行目から10行目までは認証処理だから、
11行目のifの中に入れたほうがいい
理由は、今のままじゃ毎回SQL発行しちゃうから
593589:2008/10/23(木) 11:52:15 ID:???
今先輩が来て「こうすんだよ」と言って
ささっと解決しました。情けない。
たぶん「あらら、出来てないのね」と思われたと思います。
>>591
そう訂正されました。はい。

>>592
その通りでした。
そう訂正されました。

みなさん、ありがとうございます。
だけど、まだまだわかってないなぁ。
次はMD5化して登録と、ログインです。
これは出来そうな気がする・・・。
594589:2008/10/23(木) 13:06:38 ID:???
if ($_SERVER["REQUEST_METHOD"]=="POST"){
$userid = $_POST['userid'];
$pswd = $_POST['pswd'];
$pswd2= md5($pswd);
$host = "localhost";
$conn = mysql_connect($host, "root", "");
$db_selected = mysql_select_db('webauth', $conn);
$sql = "SELECT * FROM user_pwd WHERE name='".$userid."' AND pass='".$pswd2."'";
$res = mysql_query($sql);
if(mysql_fetch_assoc($res)){
$url = "index.php";
header("Location:$url");
}else{
echo "エラー";
}
}
一応のせときます。
結局こうしました。
595nobodyさん:2008/10/23(木) 14:23:32 ID:???
お前な、まずココで聞く前に先輩に聞けよ。
2chで聞いてるなんてバレたら首にされかねんぞ。
596594:2008/10/23(木) 15:03:26 ID:???
それもそうですね・・・確かに。
家だけにしときます。
忠告ありがとうございます。
597nobodyさん:2008/10/23(木) 15:56:27 ID:vhIkvqq/
でもさ。こんなのも教えられない先輩は間違いなく無能。
ここで聞くのもわるくない。
客先行く前にきちんと疑問点は解消しておけ。
出て行って大変だよ。
598nobodyさん:2008/10/23(木) 16:18:43 ID:???
それは違くね。
「とりあえず自力でやってみろ、教えるのはそれからだ」ってことじゃない?
何でもほいほい教えちゃうのはよくない。
599nobodyさん:2008/10/23(木) 16:59:24 ID:???
俺が先輩でも多分最初は突き放すな。検索すりゃ少なくとも動くもの作れるし、
作れないってことは検索力が欠けてるってことがわかるし。
ま、2chとか掲示板で聞いてたらぶん殴るがw
600nobodyさん:2008/10/23(木) 17:05:54 ID:???
まったく基礎が無いように見えるが、
どうしてそんな職に就いたかねぇ・・・
601nobodyさん:2008/10/23(木) 18:07:36 ID:???
>>600
そんなもんさ
俺の下についてる連中もやる気だけある素人だし
その方が変なクセとか勘違いとか腐ったプライドとかなくていいがの
602nobodyさん:2008/10/23(木) 19:27:42 ID:vhIkvqq/
がんばってほしいな
603nobodyさん:2008/10/23(木) 20:17:53 ID:???
それは同意だが頑張り方が間違ってる気もするけどな
都合が悪い意見は無視とかいい性格してるし
604nobodyさん:2008/10/23(木) 21:19:01 ID:???
mysqlのインストールがうまくいかない・・・
verは5.0.5なんですけど、インストールが終わって設定もやって、最後のチェックで、必ず一番下の
Apply security settingsでエラーになります

大学の研究でPHPはじめたのですが、環境そろえる段階でこけています。
どなたかお力をお貸しください
605nobodyさん:2008/10/23(木) 21:21:20 ID:???
インストールされてね?プログラムからチェックしてみ
それとなんでわざわざ古いの使うのか
606nobodyさん:2008/10/23(木) 21:53:51 ID:LaxpC4NS
先輩方おねがいしマス。


掲示板 / 問い合わせフォーム / UPロダ / ショッピングカート


PHPを独学で↑を0から作成できるレベルになりましたが、実際の
PHPプログラマとして就職するには、次に何を作れたら良いでしょう?

どれ位のレベルになれば、PHPプログラマとして雇ってもらえますか?

ちなみに今は、本屋のバイト(23歳)です。
607nobodyさん:2008/10/23(木) 21:55:09 ID:???
作った奴見せてみ
608nobodyさん:2008/10/23(木) 21:58:25 ID:???
自動車メーカーに就職するのに、自動車が作れる必要はないと思います。
本当の勉強は就職してから始まるので、いまは面接のレベルを上げた方がいいと思います。
609nobodyさん:2008/10/23(木) 22:00:36 ID:???
面接のレベルだけ上げても薄っぺらい人間ができあがるだけだと思うが
610nobodyさん:2008/10/23(木) 22:08:27 ID:???
>>605
一度アンインスコしてから入れなおしましたが、必ず上記の項目でエラーが出ます
原因わからず・・・

verですが、研究室で使用しているのがこれなんで、使えとのことです
611606:2008/10/23(木) 22:10:01 ID:LaxpC4NS
知り合いに頼まれて問い合わせフォームを1万円でつくりました。

feiz−design.コム/inquiry.ピエチピ
612nobodyさん:2008/10/23(木) 22:11:35 ID:???
>>606
ん、十分じゃね。本屋のバイトなら対人もある程度大丈夫だろうし。
技術的な部分は就職してからでいいし。自信もってGo。
613nobodyさん:2008/10/23(木) 22:23:55 ID:???
>>611 見たけど、漏れなら雇わないかな。。

valueの値をクォーテーションで囲ってないのと、
メールアドレスバレバレ。。
614nobodyさん:2008/10/23(木) 22:26:31 ID:???
これで30歳超えならアウトだが23歳なら全然おk
615nobodyさん:2008/10/23(木) 22:33:52 ID:???
でもお金もらってんだぜ?
616nobodyさん:2008/10/23(木) 22:36:04 ID:???
>>611
というか、ここに自分のつくったページの URL を掲載する時点で……
617nobodyさん:2008/10/23(木) 22:39:31 ID:???
これで16歳女子高生ならおkだけど、23歳だと厳しいかも。
バカ専門学校出ててもこんなふうには作らない。

でも、こういうことは独学じゃわからないことだから、
まず就職した方がいいよ。2ちゃんでぐだぐだ言い合ってるより。
618606:2008/10/23(木) 22:39:41 ID:LaxpC4NS
>>613
『htmlspecialchars』でやれば上手くでしょうか・・・
『’』なしてもテスト送信できたのでスルーしてしまいました(汗


そんで、私はどーすれば・・・
今後の目標なんかを・・・
619nobodyさん:2008/10/23(木) 22:42:19 ID:???
まぁ ここでいうのもなんだがPHP以外の事を勉強するのが一番だと思う
620nobodyさん:2008/10/23(木) 22:50:22 ID:???
>>618
よし次はMVCで掲示板だ
621nobodyさん:2008/10/23(木) 23:10:49 ID:???
俺22だけどなんか凄い安心した
622nobodyさん:2008/10/23(木) 23:13:29 ID:???
>>621 自分より下を見て安心してどうする
623nobodyさん:2008/10/23(木) 23:15:38 ID:???
>>618
まず人生を2chに委ねるのをやめる
624606さんへ:2008/10/24(金) 00:15:22 ID:wH/GxTYw
phpで作るのはもういいから。十分とはいわないけど。
基本はわかっていそう。
次はそうだな。サーバー立てて自分でUPしてみて。
もちろんここにさらす必要はないから。
でその作った掲示板とショッピングカートをのせる。
後HTML+CSSの練習かな?
feiz−design.コム/inquiry.ピエチピ
って自分で全部は作っていないんでしょう?



625nobodyさん:2008/10/24(金) 00:27:34 ID:???
画伯に慰められるならもうおしまいだ
626nobodyさん:2008/10/24(金) 01:01:51 ID:wH/GxTYw
すいません。
俺の責任でつね
627nobodyさん:2008/10/24(金) 01:31:05 ID:???
PHP である文字列が正当な書式にのっとったメールアドレスかどうか判定するような関数はありますか?
628nobodyさん:2008/10/24(金) 03:32:30 ID:???
>>627
無い
正規表現でチェックするのが一般的
629nobodyさん:2008/10/24(金) 03:46:06 ID:???
>>628
やっぱりそうなのですね。ありがとうございました。
630nobodyさん:2008/10/24(金) 04:26:04 ID:???
だが厳密に判定しようとするとえらいことになる。
うちでは@数えるだけ。
631nobodyさん:2008/10/24(金) 05:00:30 ID:???
>>630
そうですね。ごく簡単に判定することにします。
CPAN の Email::Valid や Mail::CheckUser みたいなものが提供されているかと期待したのですが。
632nobodyさん:2008/10/24(金) 05:03:30 ID:???
>>631
それなら移植すれば良いのではー・・・
633nobodyさん:2008/10/24(金) 05:07:25 ID:???
>>632
そんな実力あったらいいですけどねーっw
634nobodyさん:2008/10/24(金) 05:21:44 ID:???
中見て置き換えるだけじゃん
635nobodyさん:2008/10/24(金) 05:25:14 ID:???
じゃあお前がやれと
636nobodyさん:2008/10/24(金) 05:27:02 ID:???
なんでだよwどんな必要性がw
637nobodyさん:2008/10/24(金) 08:50:51 ID:???
そういうライブラリがあるかと思ったって話じゃないのか
移植すれば?とかアホかと
638nobodyさん:2008/10/24(金) 09:16:03 ID:???
ライブラリならZFとかPEARとかに多分あるだろ
639nobodyさん:2008/10/24(金) 12:48:51 ID:???
function f($text, $num)
{
if (mb_strlen($text) > $num) {
$after = mb_substr($text, 0, num);
return $after.'<略>';
} else {
return $text;
}
}

という,文字列が一定以上の長さならそこで切って、
語を付加する関数を作ろうとしたのですがうまくいきません
なぜなのか分かる方いらっしゃいませんか?
640nobodyさん:2008/10/24(金) 12:51:59 ID:???
num
641nobodyさん:2008/10/24(金) 13:03:57 ID:???
>>639
そんなもん作るな・・・
http://jp.php.net/mb_strimwidth
642nobodyさん:2008/10/24(金) 17:48:45 ID:45nbMWSd
$url = "http://localhost/test.xml";
$xml = simplexml_load_file($url);
var_dump($xml);

↑この結果が↓このようになります。
objet(SimpleXMLElement)#1 (2) { ["社員番号"]=> string(5) "00001" ["氏名"]=> string(7) "ABC DEF" }

社員番号を表示したいのですが
echo($xml->社員番号);
とやっても表示されませんでした。
XMLの要素名が日本語なのが問題なのでしょうか?


643nobodyさん:2008/10/24(金) 20:15:35 ID:???
>>641
さ、さすがphp・・・
どうもありがとうございました
644nobodyさん:2008/10/24(金) 21:18:49 ID:???
>>643
MVC的にはビュー側で対応したほうがいいかも
>>642
出たよ
645nobodyさん:2008/10/25(土) 03:08:02 ID:???
>>642
どうせソースの文字コードとXMLの文字コードが違うとかいうオチだろ
646nobodyさん:2008/10/25(土) 09:29:46 ID:hQkPyR+6
社員番号の要素をIDにして
$xml->IDだと表示されたので
要素名が日本語だとまずいのかなと思ったです。
647nobodyさん:2008/10/25(土) 13:24:59 ID:???
そうか
648nobodyさん:2008/10/26(日) 18:47:14 ID:???
http://www.gyao.jp/tag/?keyword_id=2518

のようなgyaoのURL(tag/?keyword_id=****)からHTMLソースを取得する方法はないでしょうか
fsockopenを使うような気がしたのですがうまく取得できません

PHP4.43
649nobodyさん:2008/10/26(日) 19:34:59 ID:???
fopenじゃだめなのか?
650nobodyさん:2008/10/26(日) 20:31:06 ID:???
fopenで他鯖にアクセスできたっけ?
651nobodyさん:2008/10/26(日) 21:48:04 ID:???
できなかったっけ?
652nobodyさん:2008/10/27(月) 01:44:12 ID:???
httpラッパーが有効なら出来るよ
レン鯖では無効にしてる場合も多いけど
653nobodyさん:2008/10/27(月) 11:28:17 ID:???
file_get_contentsじゃだめなの?
654nobodyさん:2008/10/27(月) 11:33:39 ID:???
file_get_contentsで他鯖にアクセスできたっけ?
655nobodyさん:2008/10/27(月) 11:40:20 ID:???
できなかったっけ?
656nobodyさん:2008/10/27(月) 12:15:24 ID:???
httpラッパーが有効なら出来るよ
レン鯖では無効にしてる場合も多いけど
657648:2008/10/27(月) 13:18:28 ID:???
$fp = @fopen("http***********", "r");
でできるようです
Anhttpdでローカルテストしてたんですが、実はAnhttpdだと上のような外部fopenが強制終了されてしまうというオチでした
file_get_contentsも同じく
さーてこまった
658nobodyさん:2008/10/27(月) 13:52:47 ID:???
できるんならいいじゃん
659nobodyさん:2008/10/27(月) 14:05:00 ID:???
anhttpd使わなきゃいいから困らない
660nobodyさん:2008/10/27(月) 14:05:47 ID:???
自分で「AnHTTPd を捨てれば解決しそうです」って書いてるんだから
困ってるように見えない。

ところでよその鯖から取って来るときってあんまりファイルポインタの操作に
用事はないような。たいてい file_get_contents() な感じの用事じゃないのかな。
661587:2008/10/27(月) 15:48:44 ID:???
アパッチ2.2.10入れたもののサードパーティ製のphp4apache2.dllないとPHP4が動かない仕様らしくしかもそのサードパーティサイトが死んでて何もできなそうです
PHP5入れてみます

やりたいことは他鯖からとってきたHTMLデータから特定の部分を抽出して、置換して整形してから表示したいっていう感じです
662nobodyさん:2008/10/27(月) 15:51:25 ID:???
今更PHP4使うこともない、最初からPHP5でGO
663nobodyさん:2008/10/27(月) 15:53:47 ID:???
レンタ鯖かなんかが4なんだろ
664nobodyさん:2008/10/27(月) 16:00:00 ID:???
そこはPHP4対応箇所と5対応箇所を確認すれば問題なさそう
Zend1互換モード使えばクラス関係以外はPHP4として動作するしな

あとHTMLを改変する場合コピーライト注意な、公開してると無断転記となる場合も・・・
665nobodyさん:2008/10/27(月) 16:42:05 ID:???
php4にapache2.2になにが問題あるのかと思ったら難解だなこりゃ。
30分粘ったが投げた。
666nobodyさん:2008/10/27(月) 18:20:29 ID:???
PHP5にて、以下のような何十行かの文字列が入った配列から>>を探しだし、
マッチしたらマッチしたのが後から何番目の配列か知りたいのですが何か良い方法はないでしょうか?
>>はかならず配列の後から数えて数番目という位置にあり、前から順にマッチさせていくとすごく時間がかかってしまいます。

aaa
bbb
ccc
ddd
eee
ff>>f
ggg
667nobodyさん:2008/10/27(月) 20:16:21 ID:???
>>666 配列の要素数を求めて、for で後ろから検索する。
668nobodyさん:2008/10/27(月) 20:20:31 ID:???
str_replaceで全部まとめて変換すりゃいいんじゃないの?
669666:2008/10/27(月) 21:42:44 ID:???
>>667
できました。ありがとです。
670nobodyさん:2008/10/29(水) 17:11:52 ID:???
035
0430

みたいな数桁の数字の、頭のゼロを一律に削除する方法はないでしょうか
671nobodyさん:2008/10/29(水) 18:23:27 ID:???
(int)でキャストしてしまえ
672nobodyさん:2008/10/29(水) 19:09:05 ID:???
673nobodyさん:2008/10/29(水) 19:15:52 ID:???
PHPの入門書を読んでいて次のプログラムの「&」の意味がわかりません。
$mdb = &MDB2::factory($DSN);
どなたか教えてください。
674nobodyさん:2008/10/29(水) 19:18:20 ID:???
参照返しでぐぐれ
675nobodyさん:2008/10/29(水) 19:22:28 ID:???
>>674
ありがとうございました。
676nobodyさん:2008/10/30(木) 00:40:27 ID:???
>>670
str_replace("^0+","",$str)
677nobodyさん:2008/10/30(木) 02:43:57 ID:???
>>676
str_replaceで正規表現ですか、そうですか
678nobodyさん:2008/10/30(木) 02:50:00 ID:???
ereg_replaceですよねもちろん
679nobodyさん:2008/10/30(木) 03:01:55 ID:???
pregの方が良い
大抵はpregの方が速い

と言うか>>671のが一番速そうに思う
速さうんぬんの処理内容じゃないが・・・
680nobodyさん:2008/10/30(木) 07:18:03 ID:???
んじゃ俺も
>>670
035 += 0
681nobodyさん:2008/10/30(木) 10:03:00 ID:???
"^0+"
この正規表現の場合は多分eregの方が早い
682nobodyさん:2008/10/30(木) 10:44:09 ID:???
sendmailの使い方が分からない…
大学の研究でPHP使うことになったんだが、俺プログラムなんてシタコトナイシ…
この機能はPHPとアパッチ入れただけでは動かんとですか?
なにがなんやら…
出来ましたら詳しく解説しているサイト、もしくは書籍を紹介してもらえると助かります
683nobodyさん:2008/10/30(木) 10:57:04 ID:???
暇だからテストしてみた

preg match   :0.0012149810791016
ereg match   :0.0011699199676514
preg replace :0.0017139911651611
ereg replace :0.0032238960266113
ltrim            :0.00061607360839844
cast            :0.00018191337585449
+=0             :3.2901763916016E-05

684nobodyさん:2008/10/30(木) 11:04:19 ID:???
桁を合わせてくれw
685nobodyさん:2008/10/30(木) 11:28:13 ID:???
(誰も指摘してないが、>>670は8進数だったりして)
686nobodyさん:2008/10/30(木) 16:17:42 ID:???
>>683

で、どれが早いの?
687nobodyさん:2008/10/30(木) 16:48:27 ID:???
見た感じキャストじゃね?
PHPコアでも当たり前のように自動キャストしてるから、実装が最適化されてて速いのかな
688nobodyさん:2008/10/30(木) 18:51:35 ID:???
>>687
どっからどう見ても+=0じゃねーかw
689nobodyさん:2008/10/30(木) 18:58:05 ID:???
684 名前:nobodyさん[sage] 投稿日:2008/10/30(木) 11:04:19 ID:???
桁を合わせてくれw

686 名前:nobodyさん[sage] 投稿日:2008/10/30(木) 16:17:42 ID:???
>>683

で、どれが早いの?

687 名前:nobodyさん[sage] 投稿日:2008/10/30(木) 16:48:27 ID:???
見た感じキャストじゃね?
PHPコアでも当たり前のように自動キャストしてるから、実装が最適化されてて速いのかな
690nobodyさん:2008/10/30(木) 23:03:26 ID:???
php.iniのsmtpの設定をサービスプロバイダのSMTPに書き換えているのに
Failed to connect to mailserver at "localhost" port 25, verify your "SMTP" and "smtp_port" setting in php.ini or use ini_set() in

このエラーが出るのっておかしいですよね?PHPのインストールがまずいのでしょうか?
691nobodyさん:2008/10/30(木) 23:05:01 ID:???
違うphp.ini読んでるんじゃね
692nobodyさん:2008/10/31(金) 02:57:43 ID:???
あとはサーバを再起動してないとか(モジュール版
693nobodyさん:2008/10/31(金) 10:12:49 ID:???
>>689
やばすぎww
694nobodyさん:2008/10/31(金) 11:05:03 ID:???
なんで684がだめなんだ
695nobodyさん:2008/10/31(金) 13:02:12 ID:???
683のは1000回まわした時のデータ

1回の時はこんなんになった
正直な話どれを使おうが気にするレベルでも無い

preg match      :1.0013580322266E-05
ereg match      :1.7166137695312E-05
preg replace    :6.9141387939453E-06
ereg replace    :1.4781951904297E-05
ltrim               :4.0531158447266E-06
cast               :3.0994415283203E-06
+=0                :3.0994415283203E-06
696nobodyさん:2008/10/31(金) 13:38:06 ID:???
じゃあ気にせずこんな処理してみた。

$v = '0430';

$num = 0;
$a = array_reverse(str_split($v));
for($i=0;isset($a[$i]);$i++)$num+=is_numeric($a[$i])?pow(10,$i)*$a[$i]:0;

echo $num;
697nobodyさん:2008/10/31(金) 20:27:56 ID:???
PHPで1日一回、毎日同じ時刻に処理をするってできるんでしょうか?
具体的には、1日一回、データベースにあるデータを取り出してメールを送信したいんですが……
698nobodyさん:2008/10/31(金) 20:41:57 ID:???
くだ質スレのテンプレに載ってる
699nobodyさん:2008/10/31(金) 21:24:23 ID:???
>>697 こう書くのが定石

for ( ;; ) {
if ( date( 'His' ) == '000000' ) mail( ... );
}
700nobodyさん:2008/10/31(金) 21:34:36 ID:???
こらこら
701nobodyさん:2008/11/01(土) 00:07:09 ID:???
複数行の変数内に現れる>と<の間に挟まれた文字列内にある"だけを全角に変える方法はないでしょうか
配列展開してからのforでの処理でもかまいません

例)
たちつ>てとなに"ぬね<のはひふへほ

たちつ>てとなに”ぬねのはひ<ふへほ

PHP5.25
702nobodyさん:2008/11/01(土) 00:19:59 ID:???
素直にDOM使えw
703nobodyさん:2008/11/01(土) 12:16:03 ID:???
PHPでリダイレクトする際にRefererを指定する方法はありますか?
704nobodyさん:2008/11/01(土) 12:38:29 ID:???
705nobodyさん:2008/11/01(土) 13:20:17 ID:???
>>701
preg_replace('/(?<=>)(.*?)(?=<)/se', 'preg_replace("/\\"/", "”", "$1")', $str);

>>703
任意に指定するのは不可能。
Location の代わりに Refresh でジャンプさせれば、ブラウザによっては Referer が空になる。
706703:2008/11/01(土) 14:09:59 ID:???
>>705
回答くださり、ありがとうございます。
確認ですが、サイトBから以下のようにサイトCへリダイレクトした場合、
サイトCから見たリンク元はサイトBになるということですよね?

サイトA→サイトB→サイトC
707701:2008/11/01(土) 14:46:02 ID:???
>>705
ありがとうございます。うまくいきました。
神を見ました。来世までに解読できるようがんばります。
708705:2008/11/01(土) 18:38:19 ID:???
>>706
リダイレクトしても普通はリンクを踏んだページが Referer になる。
サイト B で Location を出した場合 → サイト C から見たリンク元はサイト A
サイト B で Refresh を出した場合 → 送信されない

サイト C から見たリンク元をサイト B にしたければ JavaScript を使うか、
もう一度リンクを踏んでもらうしかないと思う。
709nobodyさん:2008/11/02(日) 09:59:21 ID:???
>>705
>preg_replace('/(?<=>)(.*?)(?=<)/se', 'preg_replace("/\\"/", "”", "$1")', $str)
当方もHTMLタグ内以外の"を全角かなんかに置換したくてこれ応用したいんですけど自分の場合、
$str = <a href=http://aaa.html>宇宙"人</a><a href=http://aaa.html>未来"人</a><a href=http://aaa.html>超能力"者</a>;
みたく連続で並んでいるデータに対して置換を行いたいんです。
>>705のままだとふたつめ以降の<a>タグの"が全部全角に置き換わっちゃうので試行錯誤してみたんですがうまくいきませんでした。
解決のすべはあるでしょうか?PHP 5.26です。
710nobodyさん:2008/11/02(日) 12:30:59 ID:???
>>709
正規表現でぐぐれ
711705:2008/11/02(日) 16:38:15 ID:???
>>709
タグの間には <> が出てこないから、単純にこれでいいかも。
アサーション使わずに > < 込みで二番目の置換に渡しても結果は同じになるし、
二番目の置換は正規表現使わない方が高速だわ。

preg_replace('/>[^<>]*</se', 'str_replace("\\"", "”", "$0")', $str);
712nobodyさん:2008/11/02(日) 17:50:57 ID:tL8xHBO4
すごいね
俺昔タグ内のname=""の中にさらに"があるアホデータの置換断念したことあるわ
713nobodyさん:2008/11/02(日) 18:29:46 ID:6l/MEBbz
翔泳社の「独習PHP」読んでるんだけど
代数演算子の記述が変な気がする。

前置加算→ $i++
後置加算→ ++$i
前置減算→ $i--
後置減算→ --$i

前置と後置が逆になってるような・・・
714nobodyさん:2008/11/02(日) 18:32:13 ID:???
記述が間違ってることに気付くことこそがその本の狙いなんだよ
715nobodyさん:2008/11/02(日) 22:29:09 ID:???
そだうったのか!!!1!
716nobodyさん:2008/11/03(月) 02:43:21 ID:q5+iesG+
PHP5以降でセッションデータをデータベースに入れて管理したいのですが、どのようにするのが王道なのでしょうか??
PEARのHTTP_Session と PEAR_DB を使う方法でしょうか??
他にセオリー的なものがあれば教えて頂けると幸いです。
717nobodyさん:2008/11/03(月) 03:08:13 ID:???
つマニュアル
718nobodyさん:2008/11/03(月) 17:55:37 ID:???
関数多過ぎだろPHP どんだけぇ〜
719nobodyさん:2008/11/03(月) 17:58:50 ID:???
低能乙
720nobodyさん:2008/11/03(月) 23:52:41 ID:???
>>716
ここは素直に session_set_save_handler でいいんじゃない?
session_start を使った既存のコードを変更したくない場合はおすすめ。

マニュアルでは全く触れてないけど、書くときはロックに気を付けろ。
本来はセッションに限ったことじゃないんだけど、セッションはフレーム
ページとかで読み書きのタイミングが重なりやすいので、特に同時接続を
意識して書かないと再現しにくいバグに悩まされる。
721nobodyさん:2008/11/04(火) 05:44:06 ID:???
>>716 自分でcookie発行して管理してもいいと思われ
722nobodyさん:2008/11/05(水) 21:07:53 ID:5ZwaVGRj
name="upfile" を name="upfile[]" にしただけでWarning: htmlspecialchars() expects parameteが出たんだけど
解決方法を教えて下さい
723nobodyさん:2008/11/05(水) 21:12:38 ID:???
配列のそれぞれの要素に対してエンティティ化するように変える
724nobodyさん:2008/11/05(水) 22:36:27 ID:vFTAkKc1
Apacheのhttp.confで設定したSetEnvの値をPHPで取得するときの方法を教えてください
apache_getenvはブラウザ経由で取れるのはわかったんですが、
コンソールで取得できないものでしょうか?
725nobodyさん:2008/11/05(水) 22:37:11 ID:???
コンソールって?
726nobodyさん:2008/11/05(水) 22:57:21 ID:???
>>723
配列って何?ってレベル
エンティティ化ってレベル
727nobodyさん:2008/11/05(水) 23:03:04 ID:???
配列も知らんのか そりゃもう無理だ
728nobodyさん:2008/11/05(水) 23:15:41 ID:???
プチ
729724:2008/11/05(水) 23:30:40 ID:???
>>725
Linuxなどのシェルで、

% php hoge.php

とか実行したときに取得できないのかな、と。
730nobodyさん:2008/11/05(水) 23:32:08 ID:???
それにApacheがどう関係してんの?
731724:2008/11/05(水) 23:38:38 ID:???
Apacheのサブプロセスの環境変数はブラウザからアクセスしないとapache_getenv()が実行できないらしくて。

シェルから実行したときにApacheの環境変数を取得したいということです。
732nobodyさん:2008/11/06(木) 00:27:55 ID:???
>>731
apache経由してないのにどうやって取得するんだよ
733nobodyさん:2008/11/06(木) 00:41:43 ID:???
724「だからそれを聞いてるんだろう!!」
734nobodyさん:2008/11/06(木) 00:55:35 ID:???
>>724 80番ポート経由で
735nobodyさん:2008/11/06(木) 00:58:22 ID:???
>>731
% su - apache
% env
736nobodyさん:2008/11/06(木) 06:28:31 ID:???
>>731
file(httpd.conf)
737nobodyさん:2008/11/06(木) 07:26:41 ID:???
cliとmod_phpの区別がついてないんだろうなぁ・・・
738nobodyさん:2008/11/06(木) 12:35:47 ID:xueniZPL
$tinko=50;
$unko=30;
if($unko=30 && $tinko=50) {
$tunko=100;}
else { $youko=1;}

$tinko=50 && $unko=30 ? $tunko=100:$youko=1;
739nobodyさん:2008/11/06(木) 12:51:43 ID:???
>>724
telnet でも使っとけ
740nobodyさん:2008/11/08(土) 10:54:06 ID:???
フォームを使わずにファイルをアップデートする方法はありますか?
どのあたりの勉強をすればよいか、キーワードだけでも教えてもらえませんか?
741nobodyさん:2008/11/08(土) 11:00:40 ID:???
意味がわからんのだが・・・。
リンククリックだけでローカルのファイルをアップロードさせるっつー話なら無理。
742nobodyさん:2008/11/08(土) 11:10:06 ID:???
http://php.birdlab.com/freephpscript007.html
ここのスクリプトが使いたくて、書いてある通りにやってみたら
display(1); ?>  … display(2); ?>  … display(3); ?>  … 設定ファイルがうまく書けていたら
このような結果になりました。

phpの埋め込みで失敗しているのか、私本人がよくわかってないのか、
鯖がCentos5 で Mysql のコードはutf8 だからmb_encodingとか
やってeucにしなきゃいけないのか、もう気絶しそうです。
743nobodyさん:2008/11/08(土) 11:47:24 ID:???
>ここのスクリプトが使いたくて、書いてある通りにやってみたら
>display(1); ?>  … display(2); ?>  … display(3); ?>  … 設定ファイルがうまく書けていたら
>このような結果になりました。
何を言っているのか良く分からん
744nobodyさん:2008/11/08(土) 12:04:25 ID:???
>>743
配布サイトの説明文の通りにやってみた結果です。
745nobodyさん:2008/11/08(土) 13:12:13 ID:???
いや日本語が良く分かりません。自分で読んでみてください
746nobodyさん:2008/11/08(土) 13:48:52 ID:???
> 設定ファイルがうまく書けていたら
これも結果の一部って、写す範囲広すぎだろう。ここは説明だぞ。

> <? $vote->display(1); ?>
こんな風に書かれてるんだから、自分が short open tag を通す設定にしてるかどうかぐらい
把握してから気絶してほしい。
747nobodyさん:2008/11/08(土) 14:50:43 ID:???
まさか説明文までプログラムに書いてたのかw
んでもってshort_open_tagが有効にされてないせいで全文表示されてたとw
748nobodyさん:2008/11/08(土) 18:49:51 ID:???
だからタイトルどおり、実にくだらんですゃ
749nobodyさん:2008/11/08(土) 20:32:38 ID:f7jJ+9vB
-> って何ですか?
750nobodyさん:2008/11/08(土) 20:34:01 ID:???
htmlコメントのなれの果て
751nobodyさん:2008/11/08(土) 21:59:22 ID:???
一週間くらいかけて色んなCGIとかの勉強してみたけどいざ設置するとわからないことばかりだお
ttp://pbs.darkgray.net/のPbsChatっていうのを設置してみたはいいんだけど携帯三キャリア対応のはずなのに何故か入室できない(名前を書く欄がない)
PCからは普通に入れるんだけど・・・
ちなみに使ってるサーバーはwww4.atpages.jp
サンプルのほうも名前欄が出なくて入室できない・・・
サイトの方にはその辺詳しく書かれてないからよくわからないんだお・・・
誰か助けてくれ・・・
752nobodyさん:2008/11/08(土) 22:20:11 ID:???
マニュアルには

1-4-2. 携帯対応
携帯用のページを用意するには、option/ディレクトリ内のkt.php,ktchat.php,ktin.php,ktout.php,ktset.phpをindex.phpと同じ場所にアップロードします。
携帯用のトップページはkt.phpとなります。
携帯用の設定はktset.phpで行います。

ってあるけどこのあたりはちゃんとやってるのか?
753nobodyさん:2008/11/08(土) 22:40:37 ID:???
一応
携帯用のページを用意するには、option/ディレクトリ内のkt.php,ktchat.php,ktin.php,ktout.php,ktset.phpをindex.phpと同じ場所にアップロードします。
↑確実にやった
携帯用のトップページはkt.phpとなります。
↑よくわからない
携帯用の設定はktset.phpで行います。
↑設定画面を開いたら以下記述のとこだけ書き換えるみたいだったけどなにを書けばいいかわかんなかったお・・・

## 設定項目 ここから↓ -------------------------------------------- #

## チャットルームからの戻り先URL(絶対パスまたは相対パスで指定)
$BURL = "./kt.php";

## 戻り先URLへのリンク文字列
$BMES = "戻る";

## ROM表示行数
$ROMSL = 5;

## 設定項目 ここまで↑ -------------------------------------------- #


754nobodyさん:2008/11/08(土) 22:49:17 ID:???
とりあえずふざけた語尾をやめてくれ
755nobodyさん:2008/11/08(土) 22:53:51 ID:???
ごめん(;ω;)
756nobodyさん:2008/11/08(土) 23:09:08 ID:???
>携帯用のトップページはkt.phpとなります。

がわからん時点でもうダメなんじゃないのか。
要するに携帯でアクセスするときはこっちじゃないとダメってことだろ。
757nobodyさん:2008/11/08(土) 23:10:12 ID:???
>>753
滅茶苦茶詳しく書いてあるじゃねーかw
php以前に日本語の勉強しろよwwww
758nobodyさん:2008/11/08(土) 23:28:35 ID:???
え、そうなの?でもkt.phpのほうにアクセスしても携帯用に表示されないんだが・・・
トップページを二つ作らなきゃ駄目なのか?
759740:2008/11/08(土) 23:30:32 ID:???
>>741
わかりにくくてすみません。
ブラウザ経由ではなく、サーバでPHPプログラムを実行しただけで、
他サーバの画像を落としたいのです。
現在、cronで自動実行したプログラムでRSSを取得していて、
そのなかの画像ファイルをローカルに保存したいです。
760nobodyさん:2008/11/08(土) 23:31:19 ID:???
file_get_contents(URL)
761nobodyさん:2008/11/08(土) 23:32:14 ID:???
ちなみにkt.phpにアクセスすると以下みたいに表示される

Warning: include(set.php) [function.include]: failed to open stream: No such file or directory in /usr/local/www/htdocs/naritya/public_html/pbschat25/kt.php on line 11

Warning: include() [function.include]: Failed opening 'set.php' for inclusion (include_path='.:/usr/local/lib/php') in /usr/local/www/htdocs/naritya/public_html/pbschat25/kt.php on line 11

762nobodyさん:2008/11/08(土) 23:33:16 ID:???
ファイルがないよ
763nobodyさん:2008/11/08(土) 23:39:40 ID:???
というか>>761はとんでもないことをやらかしたって自覚はあるのだろうかw
764nobodyさん:2008/11/08(土) 23:47:14 ID:???
どうでもいいがfusianasanは名前欄に入力してくれ
765EM119-72-40-107.pool.e-mobile.ne.jp:2008/11/08(土) 23:52:45 ID:???
アッー!!!
ウラルでとるがな・・・まぁいいや
ファイルってなんぞ?
766740:2008/11/08(土) 23:53:08 ID:???
>>760
回答ありがとうございます。
色々調べて実装してみます!
767nobodyさん:2008/11/09(日) 00:15:50 ID:???
>>765
kt.phpの11行目がエラー吐いてるから見てみろよ
768nobodyさん:2008/11/09(日) 00:55:43 ID:???
>>765
お前本当にphp勉強してたのか? 基本が全然ダメっぽいが。

で、「set.phpが開けねーぞボケ」ってエラーなんだがset.phpはどこに置いたのさ。
パッケージ見る限りちゃんと入ってるから正常にアップロードできてりゃ問題ないはずなんだが。
769nobodyさん:2008/11/09(日) 12:58:05 ID:???
設置スレに行くべきお客さんが間違ってここに来ただけのような。
770nobodyさん:2008/11/09(日) 14:39:19 ID:???
勉強したって言っておけば誘導されなくて済むと思ったんだろう
771nobodyさん:2008/11/09(日) 14:44:33 ID:???
ラーメンを食いたいのに間違って吉兆に行ったようなもんか
772nobodyさん:2008/11/09(日) 15:17:02 ID:???
残りもん食わされんぞ、それw
773765:2008/11/09(日) 17:25:53 ID:???
いやいや、設置に関しては出来てんだよ。ただ携帯からアクセスすると変になるんだよ。
質問の仕方が悪かったかもしれん。すまん。
このチャットを携帯からも使用出来るようにしたいんだが、どうすればいいのだろうか・・・というのが聞きたかっただけで。
違うスレで質問した方がいいなら移動します
774nobodyさん:2008/11/09(日) 17:32:27 ID:???
質問させてください。
SQLiteを使っていて、UNIQUEなフィールド"hoge"からある値のレコードを抽出しています。

$db = sqlite_open("hogehoge.sqlite");
$command = "SELECT * FROM articles WHERE hoge = 'ある値'";
$query = sqlite_query($db,$command);

この時、ある値のレコードが存在する場合の処理と存在しない場合の処理を分けたいのですが、
どのように条件文を設定すればよいでしょうか?

if($query){
}else{
}

で分けようとしたのですが、うまくいきませんでした・・・
775nobodyさん:2008/11/09(日) 17:36:48 ID:???
>>773
だから設置がちゃんとできてりゃ>>761なんてエラー出さねーんだって。
なにを根拠にちゃんとできてるなんて言い張るんだお前は。
もういいや、とりあえずphpの話じゃなくなってるから↓行ってこい。

CGI設置について質問【Part3】
http://pc11.2ch.net/test/read.cgi/php/1176143582/
776nobodyさん:2008/11/09(日) 17:50:15 ID:???
>>774
$queryの中身を見てみるといい
777774:2008/11/09(日) 17:57:16 ID:???
>>776
なんだかよくわからないんです、
常にNULLみたいで・・・
sqlite_fetch_allをした後に判断するしかないということでしょうか?
778nobodyさん:2008/11/09(日) 18:04:45 ID:???
どうでもいい指摘だけどそこで$queryって変数名はおかしい
$resultとかにしてよ$rowsとかにしてください
779nobodyさん:2008/11/09(日) 18:07:22 ID:???
commandかぁ。懐かしい感じだ。

常にnullって値入れてないんじゃないのかw
780778:2008/11/09(日) 18:10:22 ID:???
ああ
$queryに結果が入ってるのかと思ってた
じゃあ$stmtとかかなあ
781774:2008/11/09(日) 18:39:25 ID:???
ごめんなさい。
動作確認したつもりだったんですが、ソースにバグがありました。
修正後にechoで中身を見てみたところ、
中身があるときには、
Resource id #148
ないときには何も表示されませんでした。

これは先ほどの
if($query){
}else{
}
で処理がわけられるということでしょうか?
782nobodyさん:2008/11/09(日) 18:44:23 ID:???
is_null($query)でいいんじゃね?
783774:2008/11/09(日) 19:11:21 ID:???
なんだか混乱していて申し訳ないです。
中身があるときもないときも
Resource id #148
のようなものが入っているみたいです。
その後のsqlite_fetch_allをした後なら空の配列ができるようですが、
空の配列かどうかを調べる関数はありますでしょうか?
784774:2008/11/09(日) 19:16:48 ID:???
自己レスすみません。
empty関数を使って場合わけできました。
結局、sqlite_fetch_allを行った後の返り値で行いました。
みなさんありがとうございました。
785nobodyさん:2008/11/09(日) 19:35:24 ID:???
empty使うくらいなら変数そのままでいいだろw
786774:2008/11/09(日) 19:53:29 ID:???
>>785
そうだったんですか・・・
アホですみません
787nobodyさん:2008/11/09(日) 20:00:29 ID:???
あとわざわざfetchしなくてもsqlite_queryの結果でいいじゃん
788774:2008/11/09(日) 20:05:13 ID:???
>>787
ごめんなさい
781では中身がないときは何も表示されないと書いたのですが、
基本的にはResource idとかいうのが入っていたみたいです。
空に見えたのはなにかのソースバグだったのかもしれません。
789nobodyさん:2008/11/09(日) 21:23:22 ID:???
すみません。
↓テキストボックスにキーワードを入力して、ボタンを押すとURLに飛ぶといったプログラムを
作っているのですが、、、
<?
if($val == "1")header("LOCATION:http://blogsearch.google.com/blogsearch?hl=ja&ie=UTF-8&q=$txt&btnG=ブログ検索&lr=lang_ja");
if($val == "2")header("LOCATION:http://groups.google.co.jp/");
if($val == "3")header("LOCATION:http://blogsearch.google.com/");
if($val == "4")header("LOCATION:http://jp.youtube.com/");
?>

<form action=link.php method=POST>
<input type=text name=txt>
<input type=radio name=val value=1>ブログ
<input type=radio name=val value=2>グループ
<input type=radio name=val value=3>書籍
<input type=radio name=val value=4>YouTube
<input type=submit value=送信>
</form>

http://blogsearch.google.com/blogsearch?hl=ja&ie=UTF-8&q=$txt&btnG=ブログ検索&lr=lang_ja
↑$txtと書いてますが、ここにキーワードが入るわけですが、文字化けしちゃうんです><
誰か助けて><
790nobodyさん:2008/11/09(日) 21:28:08 ID:???
なんでJavaScriptじゃなくてわざわざPHPでやってるのかは置いといて
敬語使ってても「><」が入ると舐め腐ってるようにしか見えないのも置いといて

文字のエンコード確認しろ茄子
791nobodyさん:2008/11/09(日) 21:32:58 ID:???
>>790
全然なめてなんかないんですが、
文字のエンコードですか??アップするファイルはSHIFT-JISです。
サーバはxrea使ってるのでわかりません。
792nobodyさん:2008/11/09(日) 21:33:27 ID:???
&ie=UTF-8
これは何を意味してんの?
793789:2008/11/09(日) 21:38:23 ID:???
>>792
あそっか!
$txt=mb_convert_encoding($txt, "UTF-8", "auto");
を付け加えたら治りましたwありがとうございます
794nobodyさん:2008/11/09(日) 21:38:30 ID:???
>>790
>敬語使ってても「><」が入ると舐め腐ってるようにしか見えないのも

同意します><
795789:2008/11/09(日) 22:01:55 ID:???
やっぱ何かうまくいってないみたいなのでjavascriptにします
796nobodyさん:2008/11/10(月) 01:14:00 ID:???
Web制作板から流れてきました。

Windows Vista Ultimate でXAMPPを使用を試みています。
Apacheが起動できておりません。
(以下のようになってしまいます)

E:\xampp>apache_start.bat
Diese Eingabeforderung nicht waehrend des Running beenden
Bitte erst bei einem gewollten Shutdown schliessen
Please close this command only for Shutdown
Apache 2 is starting ...
(OS 10048)通常、各ソケット アドレスに対してプロトコル、ネットワーク アドレス、ま
たはポートのどれか 1 つのみを使用できます。 : make_sock: could not bind to addr
ess 0.0.0.0:443
no listening sockets available, shutting down
Unable to open logs

Apache konnte nicht gestartet werden
Apache could not be started
続行するには何かキーを押してください . . .

port443が使用されているということは分かったのですが、
何のソフトが使用しているのか判断ができません。
どうしたらポートを使っているソフトが分かりますでしょうか?
797nobodyさん:2008/11/10(月) 01:16:54 ID:???
初心者がxamppはやめなさい
798nobodyさん:2008/11/10(月) 01:23:35 ID:???
>>797
助言ありがとうございます。
了解しました。

使用しない方がいい理由を教えていただけますか?
想像しているのは

・初期構築のスキルが付かない
・Windows上に構築するよりLinux上の方が楽

等ですが正しいでしょうか?
799nobodyさん:2008/11/10(月) 01:25:18 ID:???
443ってのはSSLだろうな
既にwww鯖が入ってる とかでは?
800nobodyさん:2008/11/10(月) 01:32:25 ID:???
>>798さん

>port443が使用されているということは分かったのですが、
>何のソフトが使用しているのか判断ができません。
>どうしたらポートを使っているソフトが分かりますでしょうか?

「セキュリティが強化されたwindowsファイアウォール」を見て一歩前進です。

Secure Socket トンネリング プロトコル (SSTP 受信)

が受信でport443を使用している模様です。
801nobodyさん:2008/11/10(月) 02:09:47 ID:???
jpg画像をリサイズしたいのですが、
以下のように実装したら色がかなり落ちてしまいました。


$img = file_get_contents("他サイトのURL");
$im = imagecreatefromstring($img);

$outputResourse = fopen("保存先パス","w");
flock($outputResourse,LOCK_EX);
fwrite($outputResourse,$img);
list($width , $height) = getimagesize(保存先パス);

$dstImage = imagecreate(100,100);
imagecopyresampled($dstImage, $im, 0, 0, 0, 0, 100, 100, $width, $height);

fclose($outputResourse);

$outputResourse = fopen("保存先パス2","w");
flock($outputResourse,LOCK_EX);
imagejpeg($dstImage,"保存先パス2");


調べてみるとimagecopyresampled関数にはパレットイメージの制限(255+1色)による問題というのがあることが分かったのですが、
そのせいなのでしょうか?
だとすればどのように対処したらよいかアドバイスをいただけませんか?
802nobodyさん:2008/11/10(月) 02:12:20 ID:???
803716:2008/11/11(火) 23:05:59 ID:pJUkayYB
>>720
>>721
レスありがとうございます。御礼遅れてすいません。
参考にさせて頂きますm(_ _)m
共用サーバ使ってるとセッションデータはデフォルトのままだと漏れることがあると聞いたんで独自に書いてDBで管理しようかと思っているんですが・・けっこう大変そうですね。
しかし共用サーバでなければデフォルトのままでもいいのかなとも思うんですがどうなんでしょう。DB管理にするとI/Oが増えるんじゃないかとも思うんですが。
804nobodyさん:2008/11/11(火) 23:24:31 ID:???
>>803
DBで管理した事あるけど
DB鯖次第かな・・・

I/Oはreadに1回updateに1回あとsession破棄とGCの時に1回ずつだから
それ程気にする必要もなかったと思う
805nobodyさん:2008/11/12(水) 00:47:38 ID:???
>>803
そのサーバの設定にもよるけど、
セッションファイルは apache ユーザで 600 で作られるから、
一般ユーザは apache なんかに su できないから、まあ安全。

どれくらい安全かというと、セッションIDを推測されるのと同じくらい。

負荷はサイトのアクセス数による。1時間に1万アクセスくらいならなんでもかまわない。
806716:2008/11/12(水) 11:17:06 ID:oEcWCu5N
>>804
>>805
おお。レスありがとうございます。非常に参考になります。

>セッションファイルは apache ユーザで 600 で作られるから、
http://www.ibm.com/developerworks/jp/opensource/library/os-php-secure-apps/
この記事の「セッションを保護する」の欄で、
共有サーバーではセッション・ファイルを読み取るスクリプトを攻撃者が作成し、値を取得することができてしまう。
みたいなことが書いてあります。
この記事、色々と記述に問題があるようなのですが、このセッションの問題は本当にあるんじゃないかなーと。オーナーapacheでパーミッション600ならやられそうな気がしますが、どうでしょう。

>I/Oはreadに1回updateに1回あとsession破棄とGCの時に1回ずつだから
それ程気にする必要もなかったと思う
>負荷はサイトのアクセス数による。1時間に1万アクセスくらいならなんでもかまわない。

ウェブ製作会社でバイトしてるんですが、DBの負荷で一番高いのがセッションのテーブルのようなのです。
やはりPV増えるに連れてボトルネックとなりそうですね・・
807nobodyさん:2008/11/12(水) 13:18:13 ID:???
>>716
攻撃するにもファイル名を総当たりしなきゃいけないので、
それは外部からのセッションIDの総当たりとあんまり変わらないと思われ。
逆にセッションファイル内を読まれても安全に作っておくべき。
パスワードを平文で保存しないとか。

$_SESSION['passwd'] = 'passwod'; // ×
$_SESSION['passwd'] = md5( 'passwod' ); // ○

セッション管理なんてインデックス張ってればDB処理でもいちばん軽い部類の処理だから、
その設計が悪いと思われ。
808nobodyさん:2008/11/12(水) 14:02:54 ID:???
単なる認証だけでセッションにパスワード入れるのはマジキチがやることだけどな
809nobodyさん:2008/11/12(水) 14:06:36 ID:???
セッションにパスワード入れる必要なんてあんの?
810nobodyさん:2008/11/12(水) 14:18:19 ID:oEcWCu5N
レスありがとうございます。

>攻撃するにもファイル名を総当たりしなきゃいけないので、
む、そうなんですか。
攻撃者が作るスクリプトってJavaScript??って思ったんですがどういうスクリプトなんでしょう。
JavaScriptはあまり分からないですし、何かサーバ側のファイルの一覧を取得できてしまうようなスクリプトが作れるのかなと思ってました。
でもよくよく考えたら、そんなことできたらセッション以外の点でも大問題ですね汗
811nobodyさん:2008/11/12(水) 14:29:42 ID:???
>>810
セッションファイルの安全性というのは文字列の複雑さだけで保たれてます。例えば、

http://exsample.com/?PHPSESSID=1234

だと駄目だけど、

http://exsample.com/?PHPSESSID=99bcf96055818a3b68faa0f348740e84

ならまあ許容できるよね。ぐらい。んで、セッションファイルも

drwxrwx--- 2 root apache 131072 2008-11-12 14:26 .
-rw------- 1 apache apache 53 2008-11-09 01:28 sess_vptubrcd9dr9bjc7o0lbunep56

なんて保存されているので、root か apache ユーザに su できなければ、
セッションファイルのファイル名もわからないのです。
なので総当たりするしかないのですが、その総当たりするスクリプトのことだと思います。
812nobodyさん:2008/11/12(水) 15:08:08 ID:???
open_base_dirが設定されていないサーバで
sessionファイルが全て同一ディレクトリに保存されている場合
phpからアクセス可能なんじゃないの?

ini_get等で保存ディレクトリ取得

ディレクトリ内スキャン

ファイルを読み取り

全てPHPで組めばアクセスできると思うが・・・
813nobodyさん:2008/11/12(水) 15:37:32 ID:???
あ、SESSIONIDとファイル名は関連があるからな
814nobodyさん:2008/11/12(水) 22:36:42 ID:???
超初心者スレならばまずはPHPとはなんぞやと言う事を説明せよ。
そして俺を一人前のPHPerに育て上げるのだ。
わかったな?
〇〇嫁!は禁止。
キチガイ等と言うやつは負け組
↓では開始
815nobodyさん:2008/11/12(水) 22:45:09 ID:???
ググレカス
816nobodyさん:2008/11/12(水) 22:50:58 ID:???
ググレカレーも禁止
817nobodyさん:2008/11/12(水) 22:57:12 ID:???
>>814 まずはお前が「一人前のPHPer」とはなんぞやを説明してからだ
818nobodyさん:2008/11/12(水) 23:12:17 ID:???
>>817
PHPもしらんのに答えられるはずもなかろう。
愚かもの
819nobodyさん:2008/11/13(木) 08:15:49 ID:???
質問

mbstring.encoding_translation = On
になってる PHP 環境があります。

php.ini も .htaccess も変更出来ない場合
他に Off にする方法はありますか。
820nobodyさん:2008/11/13(木) 08:18:54 ID:???
自分で明示的にencodingを指定すれば?
821nobodyさん:2008/11/13(木) 09:21:03 ID:???
超初心者なのでわかりません > <
822nobodyさん:2008/11/13(木) 09:25:26 ID:???
mbstring.internal_encoding を指定しても POST データは translation されちゃいますよね。
受け取ったデータをまた変換し直してやるしかないのかな。
823nobodyさん:2008/11/13(木) 11:32:40 ID:???
質問させてください。

unixtojd関数を使用したかったので、--enable-calenderをつけてphpを再インストールし
phpinfoで--enable-calenderが表示されていることを確認したのですが
いまだCall to undefined function: unixtojd()とエラーが表示されたままになってしまいます。
この関数を利用するのに、別に必要なものがあるのでしょうか?

環境はcentos5.0、apache2.0、PHP4.4.8で、会社のローカル開発用サーバで運用しています。
824nobodyさん:2008/11/13(木) 19:04:30 ID:lI0vnur7
ピーエイチパーって流行ってるの?
825nobodyさん:2008/11/13(木) 21:47:24 ID:+wSFnCZL
Apache2.2 + mod_fcgid + php-cgi5.2.6で大きなファイルをアップロードできません。

下記に書いたコードを上記環境で動かすと10KB-20KB程度のファイルは正常に
アップロードできるのですが、それ以上となるとエラーとなってしまいます。
php.iniのアップロードサイズなどは問題ないようなのですが。

原因がわかりません。
なんででしょう?


<html>
<head></head>
<body><?php
$uploaddir = '/tmp/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);
echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}
echo 'Here is some more debugging info:';
print_r($_FILES);
print "</pre>";
?>
<form enctype="multipart/form-data" action="<?php print($_SERVER['PHP_SELF']); ?>" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
Send this file: <input name="userfile" type="file" />
<input type="submit" value="Send File" />
</form>
</body>
</html>
826nobodyさん:2008/11/13(木) 21:59:17 ID:???
>>825 エラーログを見たまへ
827nobodyさん:2008/11/13(木) 22:06:05 ID:Z/0actP/
お願いします
登録してある複数のメアドに一斉にその内容の
メールするフォームのCGIを紹介してください
できればメアド登録もWEB上で行いたいのですが
828nobodyさん:2008/11/13(木) 22:32:45 ID:???
>>827
スレ違い
829nobodyさん:2008/11/14(金) 00:39:38 ID:???
つ無料メーリングリストサービス
830nobodyさん:2008/11/14(金) 12:41:20 ID:???
>>825
自分で
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
って指定してるからだろ
このvalueはbyteだPHPはこれもチェックしたはず
831nobodyさん:2008/11/14(金) 13:06:06 ID:???
>>824
 ∧_∧   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( ・∀・)< PHPの時代は終わった。今から勉強しても使えません。
 ( 建前 )  \_______________
 | | |
__(__)_)______________
 ( _)_)
 | | |
 ( 本音 )  / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
 ( 。A。)< 新参の商売敵は潰しておくか
  ∨ ̄∨   \_______________
832nobodyさん:2008/11/14(金) 15:44:43 ID:Xq4mZFEa
超ド級初心者ですが、質問させてください。
TOP画面で「こうげき」「まほう」のボタンがあり、敵のHPが100あります。
それを、こうげきした場合はランダムに「1〜10」の間で敵のHPを減らす。
まほうなら「20〜30」で減らす様にして、繰り返す。
敵のHPがゼロになったら、結果の別画面へと言う物をPHPで制作しているのですが、
「こうげき」したら⇒HPが「1〜10」減って表示が100から引かれる処理がイマイチわかりません。
rand自体の動きはわかるのですが、それを応用して上記の様な処理の仕方がわかりません。
お願いします。
833nobodyさん:2008/11/14(金) 16:01:48 ID:???
値の保持の仕方が分かってないんだね
Cookieとかセッションを使うと良いよ
834nobodyさん:2008/11/14(金) 17:31:37 ID:Xq4mZFEa
>>833
ありがとうございます。
色々と調べて、試してみます!
835nobodyさん:2008/11/14(金) 22:45:07 ID:???
if(@is_file(THUMB_DIR.$time.'s.jpg'

この@ってどう言う意味があるんでしょ?
836nobodyさん:2008/11/14(金) 22:50:48 ID:???
自己解決しました、エラーを出ないようにするんですね。
837nobodyさん:2008/11/15(土) 04:48:34 ID:INPBoIvZ
今日apacheとphpを導入したのですが
<?php phpinfo(); ?>を行っても文字だけがlocalhostに出るだけで
phpがうまく実行されません
一通り見たのですが間違ってないような感じでした
また、index.phpでのファイルはなんともないのですが
test.phpを見ようとするとファイルのダウンロードになってしまいます


このような状況のときapacheの設定が悪いのか phpの設定が悪いのかどっちなのでしょうか?
apacheは2.0.63でphpは5.2.6です
よろしくお願いします
838nobodyさん:2008/11/15(土) 04:55:04 ID:???
AddHandlerかましてるか?
839837:2008/11/15(土) 14:23:50 ID:INPBoIvZ
>>838
レスサンクス
AddHandlerがどのような状態になっていればいいんでしょうか?
ttp://jp.php.net/manual/ja/configuration.php
を見たらaddoverride allにすればいいと書いてあったのでした結果
次はlocalhostの画面に何も写らなくなりました
PHPと認識していないのでしょうか?
840nobodyさん:2008/11/15(土) 14:44:32 ID:???
>>837
まさかその程度の知識で鯖を立ててるんじゃあるまいな?
841837:2008/11/15(土) 14:49:04 ID:INPBoIvZ
そのつもりですが
そのほかにどういう知識が必要なんですか?
まだ初めたばっかです
842nobodyさん:2008/11/15(土) 17:09:43 ID:???
基礎から勉強しろ

まさか「どうやって勉強すればいいですか?」とか聞くまいな
843nobodyさん:2008/11/15(土) 17:15:09 ID:k8oNRHMF
今勉強用に弄ってるサンプルソースに
if(!$img_tmp) {
echo $this->error("ファイルを入力してください");
echo $this->html_foot();
exit;
} elseif(($img_size/1024) > $this->max_file) {
echo $this->error("ファイルサイズが大きすぎます");
echo $this->html_foot();
exit;

error〜は自分で定義するエラーだと分かるんですが
こんなソースがあったんですけど$this->の部分がよくわかりません。
これってなんでしょうか?
844nobodyさん:2008/11/15(土) 17:17:11 ID:k8oNRHMF
日本語がおかしすぎますねorz
845nobodyさん:2008/11/15(土) 17:25:43 ID:???
そんなレスする暇があったら訂正したほうが・・
$this->っていうのはクラス内でローカルメンバを扱いたいときに遣う
846nobodyさん:2008/11/15(土) 17:50:25 ID:k8oNRHMF
>>845
クラス内でローカル変数とかをグローバル変数と区別するための決まり事ってことでOKでしょうか?
847nobodyさん:2008/11/15(土) 18:51:39 ID:???
全然違う
848nobodyさん:2008/11/15(土) 19:14:34 ID:???
ローカル変数でもグローバル変数でもない、インスタンス変数だ。
オブジェクト指向プログラミングの基礎。phpではPHP5から本格的に導入された。
現代的なプログラミングをする上での必須知識だから、早めに習得したほうがいい。
class Person{
 private $name;
 function sayName(){
  echo 'My name is ' . $this->name . "\n";
 }
 function setName($var){
  $this->name = $var;
 }
}
$a = new Person();
$b = new Person();
$a->setName('Andrew');
$b->setName('Brian');
$a->sayName(); // My name is Andrew
$b->sayName(); //My name is Brian
$a->getName()を呼ぶ時、getName()内の$thisは$aを指す。$b->getName()の時は$bを指す。
849nobodyさん:2008/11/15(土) 19:17:21 ID:???
sayName lol
850nobodyさん:2008/11/15(土) 19:33:28 ID:???
echo $a->getName();
って感じでサンプル書いたら「getName()の最後のreturnってなんですか><」とか言われる可能性があるだろダラズ。
851nobodyさん:2008/11/15(土) 21:03:33 ID:k8oNRHMF
>>848
サンプルまでつけていただいてありがとうございます。
オブジェクト指向の理解がちゃんとできてないので何となくですが、
1つのクラスから複数のインスタンスを生成した際にごっちゃにならないために・・・・??
理解力なくてすみませんorz
852nobodyさん:2008/11/15(土) 21:14:43 ID:???
じゃオブジェクト指向理解すれ
853845:2008/11/15(土) 23:46:02 ID:???
すまん
ローカルメンバとか言わないんだな・・
854nobodyさん:2008/11/16(日) 06:07:17 ID:QRvDYE1C
以下の変数$csvにはCSV形式のデータが入っており、
これを配列$csv_arrに置き換えたいと思っています。

$csv = <<EOF
2008-11-13, りんご, 10
2008-11-14, みかん, 20
2008-11-15, めろん, 30
EOF;

$csv_arr = array(
           array("2008-11-13", "りんご", "10"),
           array("2008-11-14", "みかん", "20"),
           array("2008-11-15", "めろん", "30")
           );

どうぞ宜しくお願いします。
855nobodyさん:2008/11/16(日) 06:48:23 ID:???
foreach (explode("\n", $csv) as $val) {
  $csv_arr[] = explode(",", $val);
}
856nobodyさん:2008/11/16(日) 12:30:43 ID:???
$csv_arr = array_map('explode', array_fill(0, count(file('a.csv')), ','), file('a.csv'));
857854:2008/11/16(日) 13:00:43 ID:QRvDYE1C
>>855
そのものずばりの回答ありがとうございます!


>>856
質問が言葉足らずで誤解させてしまい申し訳ないです。
今回の私の質問は、csvファイルからの読み込みではなく、
変数$csvにCSV形式の文字列が入っているという意味で
質問させていただきました。

ただ、ご回答いただいたコードは、ネットで探すサンプルよりも
ワンライナーでとても簡潔にまとめられていて参考になります。
ありがとうございます!
858nobodyさん:2008/11/16(日) 17:35:39 ID:???
>>854
$csvに入る内容にもよるが
データに,とか\r\nとか”があった場合の挙動って考えなくて良いの?
厳密なCSV定義からのパースだとしたら今出てる物では不十分

因みに厳密なCSV定義=RFC4180ね
859854:2008/11/16(日) 23:14:23 ID:QRvDYE1C
>>858
特定のWebページを取得してCSV形式で整形したものが、今回の$csvと
なるので、今回については特殊な文字列が含まれることはありません。

ご指摘された場合も想定しないと予期せぬ不具合につながりますね。
アドバイスありがとうございます。
860nobodyさん:2008/11/16(日) 23:18:21 ID:???
それは普通CSV形式とは言わない
861nobodyさん:2008/11/17(月) 09:37:37 ID:KhW4/uRq
質問があります
if(1000==(1100/1.1)){echo "ok";}
これでは判定は真にならずokと表示されません
何故ですか

ちなみに
if(1000==(900/0.9)){echo "ok";}
これだと真と判断されてokと表示されます
862nobodyさん:2008/11/17(月) 10:36:30 ID:???
863nobodyさん:2008/11/17(月) 11:01:28 ID:KhW4/uRq
>>862
ありがとう御座います
例えばリンク先の例に挙げられているfloor((0.1+0.7)*10) の場合
echo floor((0.1+0.7)*10);
とすると結果は7と表示され、
想定される結果である8とは違う事から
リンク先に書いてあるように計算精度に問題がある事が分かりますが

echo 1100/1.1;
とすると1000と表示され、想定された通りの計算結果になります
この値はあてにならないということでしょうか
864nobodyさん:2008/11/17(月) 11:22:13 ID:???
ファイルの排他制御って参照しかしない場合でも必要なんですか?
865nobodyさん:2008/11/17(月) 11:25:42 ID:???
場合による
866nobodyさん:2008/11/17(月) 12:00:46 ID:???
>>863
ならない
867nobodyさん:2008/11/17(月) 12:40:07 ID:KhW4/uRq
>>866
ありがとうございます
判定はbcdivを使う事で判定する事が出来るようになりました
868nobodyさん:2008/11/17(月) 12:48:40 ID:???
>>867
Windows以外で任意精度数学関数を使う場合は
--enable-bcmathつけてコンパイルしてある必要があるので気をつけて
869nobodyさん:2008/11/17(月) 12:57:48 ID:???
出来るようになったって言ってんだろカス
870nobodyさん:2008/11/17(月) 15:08:00 ID:???
>>863
floor((0.1+0.7)*10);
の例にしても、echo 0,1+0.7なら0.8と表示されるよ。
871nobodyさん:2008/11/17(月) 15:11:02 ID:???
そりゃ丸められてるからだろ
872nobodyさん:2008/11/17(月) 15:48:18 ID:???
そう。だから1100/1.1も1000と表示されるけど実際には丸められてる
873sage:2008/11/17(月) 16:44:22 ID:fS1MxP+5
超初心者です。
XAMPPのDBにアクセスしてるPHPを読んでてわからなかった事があるのですが、
PHPのはじめの所が「<?」や「<?php」ではなく、
「<?=」となっていて、

<?=$TEXT?>
という感じで変数を表示してたところがありました。
これはechoと何が違うのでしょうか?

これの様に左辺が無い場合はどういう動作になるのでしょうか・・・
よろしくお願いします。
874nobodyさん:2008/11/17(月) 16:54:17 ID:???
>>873

http://jp.php.net/echo

echo() には、開始タグの直後に等号を付ける短縮構文もあります。 この短縮構文は、設定オプションshort_open_tag  が有効な場合のみ使用可能です。
875nobodyさん:2008/11/17(月) 17:20:33 ID:???
>>874
ありがとうございます!
echoとの違いではなくて、echoの短縮だったんですね。
スッキリしました。
876nobodyさん:2008/11/17(月) 19:55:05 ID:G7bu0AqY

コノスレイイ。

ロムってたけど。

\(^o^)/イイ。
877nobodyさん:2008/11/17(月) 19:55:43 ID:???
マニュアルも読まないなんて
878nobodyさん:2008/11/18(火) 08:21:36 ID:???
作られたhtmlファイルが文字化けしてしまうのですがなんでなのでしょうか。

<?php
$word = '漢字';
$word = mb_convert_encoding($word, "UTF-8");
$page =$word.'.html';
$str = mb_convert_encoding($page, "UTF-8");
$fp = fopen($str,"w");

?>
879nobodyさん:2008/11/18(火) 08:31:36 ID:???
何がしたいのか意味不明
880nobodyさん:2008/11/18(火) 08:48:01 ID:???
>>879
漢字.htmlというファイルを作りたいのですが、
文字化けしてしまうんです。
881nobodyさん:2008/11/18(火) 08:50:08 ID:???
ちゃんとエンコード元を指定すべし
882nobodyさん:2008/11/18(火) 08:54:43 ID:???
>>881
$str = mb_convert_encoding($page,"UTF-8","auto");

autoでもSJISでもできないんです。
883nobodyさん:2008/11/18(火) 09:04:13 ID:???
autoは指定になってない
php.iniの設定とソースの文字コード、ブラウザの文字コードによっても変わる
detectもしつつ色々試行錯誤してみ
884nobodyさん:2008/11/18(火) 09:06:01 ID:???
>>878
何を元にhtmlファイルが文字化けてると言ってるの?
何かソフトで見た場合の事?
885nobodyさん:2008/11/18(火) 09:08:54 ID:???
>>883
<?php
$word = '漢字';
$word = mb_convert_encoding($word,"UTF-8","SJIS");
$page =$word.'.html';
$str = mb_convert_encoding($page,"UTF-8","SJIS");
echo mb_detect_encoding($str);
print '<BR>';
echo mb_detect_encoding($page);
print '<BR>';
echo mb_detect_encoding($word);
$fp = fopen($str,"w");
?>
結果は
UTF-8
UTF-8
UTF-8
なんですが。
886nobodyさん:2008/11/18(火) 09:21:39 ID:???
>>884
ファイル名が"髮区誓・ス・「髯・html"になるんです。
887nobodyさん:2008/11/18(火) 09:23:18 ID:???
>>886
何で見た時に?
888nobodyさん:2008/11/18(火) 09:26:22 ID:???
>>887
ローカルで作成しているので、自分のパソコンで見たときにです。
889nobodyさん:2008/11/18(火) 09:44:19 ID:???
ファイルの内容のエンコードとファイル名のエンコードは関係ないぞ。
環境は?OSとか
890nobodyさん:2008/11/18(火) 09:49:02 ID:???
>>888
OSの文字コードで書き出さないと化けたように見える
891nobodyさん:2008/11/18(火) 10:06:07 ID:???
どっちにしても漢字ファイル名はクライアントの環境やブラウザの仕様によって読めないケースがあるから
使わない方がいいな
892nobodyさん:2008/11/18(火) 12:40:23 ID:???
windowsの文字コードは普通jisだわな
893nobodyさん:2008/11/18(火) 12:48:09 ID:???
>>889
windowsです。
894nobodyさん:2008/11/18(火) 12:48:43 ID:???
>>892
普通はCP932(SJIS-WIN)
895nobodyさん:2008/11/18(火) 13:13:57 ID:???
ああそれで俺もファイル名の文字化けに悩んだ記憶がある
896nobodyさん:2008/11/18(火) 14:27:45 ID:VeQnY2gN
今IDとパスのログイン画面で次回からログインを省略するチェックボックス
を作ってます。チェックを入れるとsession_set_cookie_paramsを
1年に設定してるんですが一度ブラウザを閉じるとセッションも切れてしまいます・・・
下に簡単なソースを載せますので
すいませんがアドバイスよろしくお願いします。

login1.php
<?
session_set_cookie_params(365*24*3600);
session_start();
$_SESSION["name"] = "こんにちは";
echo "セット";
echo "<a href=\"login2.php\">移動</a>";
?>

login2.php
<?
session_start();
echo $_SESSION["name"];
?>
897nobodyさん:2008/11/18(火) 16:17:38 ID:???
やってみたけど俺の環境だと残ってたよ
firefox?
898896:2008/11/18(火) 16:33:43 ID:???
>>897
返答ありがとうございます。
環境はIE7、Firefoxです。
最初にlogin1.phpにアクセスし
セッションを設定して移動をクリックすると
login2.php にもセッションが引き継がれるんですが
その後ブラウザを閉じ次にlogin2.phpにダイレクトにアクセスすると
$_SESSION["name"] = "こんにちは";が表示されず
真っ白になります・・・
899nobodyさん:2008/11/18(火) 17:09:56 ID:???
自動セッション開始のディレクティブも考慮して、
クッキーの有効期限はsetcookieで設定した方がいいぜ
session_startする前に実は開始してて、有効期限の上書きが出来ないことがあるから
900nobodyさん:2008/11/18(火) 17:36:13 ID:s+xeZpDT
質問です。
変数$strをintにキャストしたいのです。
ご教授お願いします。
$str = "ST012300";
$str = (int)$str;
$num = 100;
$num += $str;
echo $num; ←ここで出力


901nobodyさん:2008/11/18(火) 17:57:13 ID:???
STのところが必ず2文字ならsubstrで切り取ってからキャストすればいいんでないの?
902nobodyさん:2008/11/18(火) 18:34:52 ID:???
>>900
適当に書いたがこんな感じか?

function toInt($string) {
$temp = "";
for ($i = 0; $i < strlen($string); $i++) {
if (preg_match("/[0-9]/", $string[$i])) {
$temp .= $string[$i];
}
}
return (int)$temp;
}
903nobodyさん:2008/11/18(火) 18:40:56 ID:???
>>902 おまえアホだろ。なんのためにpreg_matchつかってるんだよ。
904nobodyさん:2008/11/18(火) 18:53:16 ID:???
>>903
1文字ずつ分解するのが無難なやり方でないかと
preg_match_allが俺の環境じゃ使えないから使わなかっただけというのもあるけど
preg_matchだけでくり抜ける?
例に出てるST012300なら簡単だけど
o89WE342hEU44とか2バイト文字が入ってきたりすると
俺のレベルじゃ1回の正規表現で抜き取れない
905896:2008/11/18(火) 18:54:44 ID:???
>>899
session_startする前に開始している時もあるんですね。
アドバイスいただいたやり方で一度やってみます。
ありがとうございました!
906nobodyさん:2008/11/18(火) 18:54:48 ID:???
元質問者の必要なものがどれかによるだろうけど、
飛び飛びの数字くっつけて1つの数字にすることに意味があるのか?
907nobodyさん:2008/11/18(火) 18:56:46 ID:???
is_numericでいいじゃん
あと引数に配列渡された場合どうすんのとか
908nobodyさん:2008/11/18(火) 19:15:25 ID:???
>>907
is_numericでもいいけどpreg_matchでもいいじゃん
>>903の突っ込みはpreg_match使うなら1回で抜けってことではないの?
その方法が思いつかなかったから聞いてるんだけども
>あと引数に配列渡された場合どうすんのとか
それは配列用のを別に作るべきでしょ
PHPじゃオーバロードできないけど
909nobodyさん:2008/11/18(火) 19:20:22 ID:???
preg_matchで行うことに何の利点があるの?
910nobodyさん:2008/11/18(火) 19:26:49 ID:???
強力な正規表現が使える。
逆に言うと正規表現がわからないと混乱するだけ。
911nobodyさん:2008/11/18(火) 19:34:38 ID:???
>>909
普段よく使うから使っただけだよ
is_numericなんて使ったことなかったし

まぁ気になったんで
>>902で書いた関数で文字列に適当なwebサイトをfile_get_contentsしたものを使って
is_numericとpreg_matchの比較ベンチとってみたけど
is_numericのほうが早いね

速度面では特に利点はないみたいだ
ただ>>910もいってる通りうまく使える人なら1行でスッキリと1回で抜けると思う
オーダなんかは1文字ずつ比較するのとたぶん変わらないと思うけど
912nobodyさん:2008/11/18(火) 20:47:26 ID:???
$str = "ST012300";

という前提があるなら、漏れなら、

ereg( '(\d+)', $str, $regs );

echo $regs[1];

と書く。
913nobodyさん:2008/11/18(火) 20:52:15 ID:???
どういう前提だよw
文頭がアルファベットか?文字数が8文字か?数字が0〜3までか?
数値が連続してるなんて前提ねーよw
914nobodyさん:2008/11/18(火) 20:55:45 ID:???
>>900
盛り上げていただいてありがとう御座います。
参考にさせていただきます。
915nobodyさん:2008/11/18(火) 20:56:46 ID:???
お前はすっこんでろ
916nobodyさん:2008/11/18(火) 20:57:31 ID:???
最初に現れた数字列を引っ張ってくるという前提だ。
917nobodyさん:2008/11/18(火) 21:48:50 ID:/cO8JIvu
開発環境はXAMPPで作ってる初心者で質問なんですが、
PHPからDB2に接続するにはどうしたらいんですか?
MySQLからDB2に移行したいんです!何か特別な設定とかいります?

カタログ接続とかの意味がよく分からないです^^;
918nobodyさん:2008/11/18(火) 21:57:01 ID:???
初心者ならXAMPPを使うな
919nobodyさん:2008/11/18(火) 22:05:18 ID:???
>>917
それより何故DB2? MySQLの方が圧倒的に楽じゃん。
920nobodyさん:2008/11/18(火) 22:05:36 ID:???
>>917
XAMPPはDB2じゃないからあきらめてね
DB2使うならPEARかPDO使えば
921nobodyさん:2008/11/18(火) 22:32:54 ID:???
>>917 ODBC経由
922nobodyさん:2008/11/18(火) 23:49:32 ID:???
<?php
$file ='test.html';
$fp = fopen($file,"w");
$str = array('aaa\n','bbb\n');
file_put_contents($file, $str );
fclose($fp);
?>

複数行の書き込みをしたいのですが、これだとできません。
教えて下さい。
923nobodyさん:2008/11/18(火) 23:51:48 ID:???
なんでarrayなの?
924nobodyさん:2008/11/18(火) 23:54:15 ID:???
'aaa\n'と"aaa\n"は違う
925nobodyさん:2008/11/19(水) 00:04:54 ID:???
>>924
できました。ありがとうございます。
926nobodyさん:2008/11/19(水) 01:53:56 ID:???
条件分岐をさせてMySQLのデータを削除しようとしているのですが

$pass1 = $_POST["pass"];
  if($pass1=="●●"){
  $sql = "delete from object where id = $id";
  mysql_query($sql);
  echo "削除されました";
  exit;
}

●●の部分をMySQLに格納しているパスワードに
したい場合はどうすればいいのでしょうか?
MySQL側の質問になってしまうかもしれませんがお願いします。
927nobodyさん:2008/11/19(水) 02:16:00 ID:???
htmlタグをprintするときに、
"のエスケープをせずに済む方法ってありますか?
大量のhtmlタグをprintするのが大変なのでそのような関数があれば
教えていただきたいです。
928nobodyさん:2008/11/19(水) 02:22:55 ID:???
>>926
それの前にクエリ発行して格納しているパスワードを取ってくれば?
>>927
シングルクオートにすれば?
929nobodyさん:2008/11/19(水) 02:22:59 ID:???
関数じゃないけどヒアドキュメント
930nobodyさん:2008/11/19(水) 02:30:59 ID:???
>>929
ヒアドキュメントの中に変数って使えますか?
931926:2008/11/19(水) 02:32:56 ID:???
>>928
うぉぉぉぉできました!!!
すっごい単純なことだったのに完全に頭が固くなってました!
ありがとうございます!!
932nobodyさん:2008/11/19(水) 03:07:53 ID:???
>>928
>>929
アドバイスありがとうございました。
テンプレート作って置換したら簡単にできました。
933nobodyさん:2008/11/19(水) 09:43:10 ID:???
すいません
ご存じなかたがいらっしゃったら教えていただけると幸いです

自作のスクリプトをばらまこうと思ってるのですが
ファイル構成やパーミッションまわりが複雑だったりするので
インストールウィザードをつけたいと考えてます
自己解凍形式みたいに
フォルダやパーミッションや簡単な設定項目(置換)を指定すると
そのとおりに設定して展開してくれるようなスクリプトはありますでしょうか?

なければ作ろうかと思うのですが
需要ありますでしょうか?

一通り探したつもりですが見つかりませんでした

よろしくお願いします
934nobodyさん:2008/11/19(水) 10:15:16 ID:???
>>933
パーミッションってことはOSX含めたUnix系OSだよね?
RPMパッケージでも作ればいいんじゃない?
というか展開したファイルのパーミッションを変えるスクリプト1つ置くだけでいいのでは?
複雑な設定項目とかはインストール後に管理スクリプトからやればいいだけだし
そもそもサーバでそんなもの展開してインストールするようなのは自鯖か専鯖持ちぐらいでしょ
ターゲットの範囲が狭すぎてそのためにわざわざ凝った作り考えるのもあほくさいわ
935933:2008/11/19(水) 10:58:08 ID:???
>>934
レスありがとうございます

移動中の携帯からの投稿だったため情報が足りませんでした
ここでいうスクリプトはPHPのスクリプトで
ターゲットはLinux+レン鯖を考えています

処理の流れ的には
1.自己解凍PHPにWEB経由でアクセス
2.DIRパスやそのスクリプトの起動に最低限必要な定数を設定
3.指定DIRに展開
4.自分自身を削除(オプション)+そのスクリプトの設定画面へリダイレクト(あれば)

単一ファイルにまとめたかったのは
・配布しやすそう?
・WEB公開DIRに必要ないファイル(incとか)を置きたくない
 (必要ないファイルの置き場所は自由なため、公開DIRからの相対パス指定は難しい)

確かにインストールスクリプトを一個用意しておけばいい気もしますね・・・
936nobodyさん:2008/11/19(水) 13:10:11 ID:???
>>935 需要あれば作るんじゃなくて、
作ったあとに需要あれば使って下さいの方がいいと思うよ。

ぞれより自己解凍PHPってのがなんなのか気になる
937nobodyさん:2008/11/19(水) 13:22:48 ID:???
たとえば$msg=htmlspecialchars($_POST['message'],ENT_QUOTES);で、POST(message)を取得したとして、その中身がなかった場合って$msgは存在しないことになるんですかね。
if($msg)ってやったらfalseでした。
それとも$msgってなまえの変数は有っても中身がない場合はfalse?
938nobodyさん:2008/11/19(水) 13:27:45 ID:???
htmlspecialchars関数の戻り値ぐらいマニュアルに載ってない?
939933:2008/11/19(水) 14:03:57 ID:???
>>936
確かに
作ってみます

ありがとうございます

自己解凍PHPとか言ってますが
単純に自身のPHPにファイルやらディレクトリ構成を埋め込んでるだけです
アクセスすると入力域が現れて・・・てな感じです
940nobodyさん:2008/11/19(水) 14:29:26 ID:???
> 単純に自身のPHPにファイルやらディレクトリ構成を埋め込んでるだけです
> アクセスすると入力域が現れて・・・てな感じです

それが気になる。ウェブ上からインストールできるってこと?
941nobodyさん:2008/11/19(水) 14:53:34 ID:???
インストールスクリプトでないなら意味が分からん.圧縮してんの?
なんで初心者なのに用語を自作するのか
942nobodyさん:2008/11/19(水) 15:21:15 ID:???
ひらがな・カタカナ・数字・アルファベット・シフトJIS第一・第二水準漢字
以外の物を調べるにはどうしたらいいですか?
具体的にはJIS補助漢字・第三・第四水準漢字や台湾、中国語などには
エラーと表示させたいです。
943nobodyさん:2008/11/19(水) 15:29:40 ID:???
>>942
ttp://euc.jp/i18n/charcode.ja.html
どの文字コードを使うかによって変わると思うけど
こういったとこで範囲しらべて正規表現でチェックするといいかも?

ここも参考
ttp://www.phppro.jp/phptips/archives/vol9/1

944nobodyさん:2008/11/19(水) 15:57:48 ID:???
>>943
ありがとうございます。
945933:2008/11/19(水) 16:07:24 ID:???
>>940
はい、そのとおりです
適当な公開ディレクトリにファイルを一個ぽいっとおいて
アクセスしてWEB上でパスの設定などをしてsubmitすると
設定に基づいて展開したりシンボリックリンクを作ったり文字コード変えたり設定情報を書き込んだりします

>>941
申し訳ない
PHPで自己解凍みたいのできたらいいなイメージから思いついたので・・・
今動いているのは圧縮してないですが、あとでgzipをかけたいと考えています

低機能なインストールスクリプトと思ってください
最低限の設定を行ってさらに設定が必要なら(データベース作るとか)それぞれの設定WEBにリダイレクトします
既存のインストールスクリプトと違うところは
・ファイルひとつだけでOK
・複数台のサーバ配布に対応(scpばらまき)・・・予定(作成中)

結局のところ展開してアップすればええやんって気もしてきましたorz
946933:2008/11/19(水) 16:29:07 ID:???
似たようなの見つけました
ちょっと機能は違いますがコンセプトは似ているような気がします
ttp://labs.cybozu.co.jp/blog/kazuho/archives/2008/11/post_3.php
947nobodyさん:2008/11/19(水) 19:46:11 ID:???
>>933 まずは作ってみようよ
948nobodyさん:2008/11/20(木) 03:17:06 ID:???
改行がなくならないように
mb_convert_encodingを使う方法ってありますか?
949nobodyさん:2008/11/20(木) 03:17:23 ID:???
なくなんないべ
950nobodyさん:2008/11/20(木) 03:21:12 ID:???
>>949
ありがとうございます。
勘違いしていたようです。
951nobodyさん:2008/11/20(木) 04:28:16 ID:???
ファイルの最終更新時間のUNIXタイムスタンプを
取得したいのですが、
time()は引数がないのでどうしたらいいですか?
952nobodyさん:2008/11/20(木) 04:31:17 ID:???
3行目が意味不明だけど
filemtimeかstat
953nobodyさん:2008/11/20(木) 04:38:25 ID:???
>>952
ありがとうございました。
954nobodyさん:2008/11/20(木) 05:24:16 ID:???
正規表現でマッチしない行を
削除するにはどうしたらいいのでしょうか。
955nobodyさん:2008/11/20(木) 07:43:03 ID:???
マッチした行を連結すればいいだけ
956nobodyさん:2008/11/20(木) 07:54:07 ID:???
マッチさせて空白に置換すりゃいいじゃん
957nobodyさん:2008/11/20(木) 14:54:48 ID:???
$logは
sample(9)
sample(241)
sample(3234)
などの複数行のファイルでカッコ内の数字が一ケタの場合
その行を削除したいのですが、
$search="/.+\([0-9]\)/";
$log = eregi_replace($search,"",$log);
これだとできません。教えて下さい。


958nobodyさん:2008/11/20(木) 15:21:21 ID:???
preg_replace("/.*?\(\d\)\n/", "", $log)

こうかな
959nobodyさん:2008/11/20(木) 17:03:07 ID:???
>>958
できないです。
960nobodyさん:2008/11/20(木) 17:16:11 ID:???
できました。
961nobodyさん:2008/11/20(木) 17:17:34 ID:???
今後のためにもどうやったらできたのか教えてよ
962nobodyさん:2008/11/20(木) 17:24:44 ID:???
>>961
すいません。
>>958さんの方法でできました。
他のところが間違えてました。
963nobodyさん:2008/11/21(金) 04:12:35 ID:???
$logは複数行あるテキストファイル
$logArray = explode("\n",$log);

for($i=0;$i<=count($logArray);$i++)
{
$dat[$i] = substr($logArray[$i],0,10);
print $dat[$i].'<BR>';
}
結果はちゃんとprintされているんですが、
Notice: Undefined offset: 80 C:\Program Files(略) on line 24
っていうのがでるんです。
24行目は$dat[$i] = substr($logArray[$i],0,10);です
964nobodyさん:2008/11/21(金) 05:54:07 ID:???
$logArray = explode("\n",$log);



$logArray = @explode("\n",$log);
965nobodyさん:2008/11/21(金) 07:11:18 ID:???
$i<count($logArray)

ループ条件はこうちゃいますのん?
966nobodyさん:2008/11/21(金) 07:17:08 ID:???
>>963
大域(forの外)で$datは宣言されてるの?
$dat = array();
あとループ条件は>>965
ちなみにエラーが出たラインの1行前(つまり23行目)に原因がある場合があるから
付近のソースを出すのが望ましい
967nobodyさん:2008/11/21(金) 07:19:59 ID:???
$dat[$i] = substr($logArray[$i],0,10);
print $dat[$i].'<BR>';

というかfor文の外で$dat使わないなら
echo substr($logArray[$i], 0, 10);
でいいのでは?
それとも他の部分でも使ってるのかな?
968nobodyさん:2008/11/21(金) 07:31:53 ID:???
>>967
何が違う?
>>964-967
つか単に$logArray[80]が無いよって言ってるだけだろ
969nobodyさん:2008/11/21(金) 08:08:07 ID:???
>>968
やってることは違わないけど
変数に入れる必要がないってこと
他で使ってるなら別だけど
970nobodyさん:2008/11/21(金) 08:09:10 ID:???
>>969
違う前半部分について
もしかしてただの引用か
971nobodyさん:2008/11/21(金) 08:11:48 ID:???
>>969
あぁ
>をつけるべきだったね
すまぬ
972nobodyさん:2008/11/21(金) 08:12:25 ID:???
>>969じゃなくて>>970
973nobodyさん:2008/11/21(金) 09:24:31 ID:???
次スレそろそろ頼む
うち規制中だった
974nobodyさん:2008/11/21(金) 19:13:59 ID:???
>>963ですが、>>965さんの方法で解決しました。
$datは使い回すので新しい変数を作りました。

975nobodyさん:2008/11/21(金) 19:35:00 ID:???
ほうほう,それで?
976nobodyさん:2008/11/21(金) 22:09:32 ID:???
質問

ウチが使ってるレンタルサーバーが

>CGI版をラッパーを使用し
>所有者の権限にて動作させる

>一部の動作で、モジュール版と
>挙動が違う可能性があります。

っていう方式なんだが、これってどういうこと?
977nobodyさん:2008/11/21(金) 23:07:45 ID:???
978nobodyさん:2008/11/22(土) 01:09:16 ID:3EI7zmLa
先生方、質問させてください。
以前からHTMLでサイトを作っていたのですが、どうしても静的なものしかできずに
ただ見てもらうだけのサイトしか作れません。
なので、サイト訪問者にデータを追加してもらったりデータの閲覧ができたりと
もっと双方向での情報交換ができるサイトを作りたいと思ってます。
なのでPHPを勉強しようと思っているのですが、今私が目指しているところは
PHPを勉強するという道で間違ってはいないでしょうか?
そして、PHPを勉強するにあたって、わかりやすいお勧めの本やサイトがあったら教えてください。
知識としてはHTMLで見せるだけの簡単なサイトを作れる程度です。
どこから勉強すればいいのかわからないのですが、PHPに入るときに読む本、
PHPを実用的に使えるような本があったら教えてください。
お詳しい先生方、ぜひよろしくお願いいたします。
979nobodyさん:2008/11/22(土) 01:16:08 ID:???
>>978
先生でも何でもないけど、PHPマニュアルに勝る良書は無いかと。
http://www.php.net/manual/ja/
PHPは「いかに楽してウェブシステムを作るか?」っていう言語だと俺は思う。
それで良いなら選べば良いしそれが嫌なら他の言語を選ぶといいかなと。

勉強については、まずHTMLの<form>タグの概念が分かってないならそれからまず勉強。
あとは自分が作りたいと思うもの(例えば掲示板)のPHPスクリプトソースをネットから拾ってきて、
それを少し改造してみるとかね。
PHPって良い意味でも悪い意味でも適当な言語なので、多分何とかなると思う。
980nobodyさん:2008/11/22(土) 01:22:31 ID:???
PHPでもできるけどPHPだけが選択肢じゃないことに注意
目的のものを達成するPHPのフリーソフトにPukiWikiやXOOPSなんていうものがあったりする
自分で作るより手っ取り早いのはそれらをインストールして利用すること
PHPは公式マニュアルが充実しているのでそれを読むのがお勧め
http://jp.php.net/manual/ja/index.php
また入門本として
PHP4徹底攻略(通称:赤マンモス本)がpdfで無料公開されている
http://www.sra.co.jp/people/t-ishii/php_new/php4_new.html
現時点のPHPの最新版はPHP5でもうじき6が出るので
少し情報は古いがどんなものかをつかむには最適な本なので
無料ということもあるのでちょっとかじる程度に読んでみてはいかがだろうか?
981nobodyさん:2008/11/22(土) 01:57:14 ID:???
>>978
まずはxamppのインストールからだな。
インターネットの接続にルーターはかませてるよね?
982nobodyさん:2008/11/22(土) 01:58:07 ID:???
>>979
まずはphpを実行できる環境を整えるところからでしょ。
いきなりphpのマニュアルを勧めてどうするの。
983nobodyさん:2008/11/22(土) 02:03:21 ID:???
>>978
http://www.google.co.jp/trends?q=php%2Cruby%2Cperl%2Cpython

phpを選択したことは正解です。
984nobodyさん:2008/11/22(土) 02:16:26 ID:???
何言ってんだ。
いきなり実行環境を作るより
プログラミングの基礎と概念を理解する方が先だろう。
何でもかんでも手を動かしてやりゃいいってもんじゃない
985nobodyさん:2008/11/22(土) 02:20:06 ID:lJIGiW+2
大核本
986nobodyさん:2008/11/22(土) 02:28:04 ID:???
>>984
と言って自著を買わせる教授なのであった
987nobodyさん:2008/11/22(土) 02:31:54 ID:???
巷の入門本なんて、サンプル載せてさぁ打ってみましょう動いたらあなたもプログラマーです!
みたいなもんばっかだろう
988nobodyさん:2008/11/22(土) 03:24:41 ID:???
質問者はこういうことをする場合PHPを使えばいいのか?と聞いていて
PHPを使えばいい場合勉強するにあたってお勧めの本やサイトを教えてくれと聞いてるわけだ
989nobodyさん:2008/11/22(土) 03:25:53 ID:???
うん、だからどうした
990nobodyさん:2008/11/22(土) 03:54:53 ID:???
キメエっつってんだよ
991nobodyさん:2008/11/22(土) 04:04:23 ID:???
実行環境云々は余計なお世話ということだ
992nobodyさん:2008/11/22(土) 04:25:38 ID:???
要するに>>981がPG的にもコミュニケーション的にも低脳ってこtか
993nobodyさん:2008/11/22(土) 05:55:15 ID:???
揉めるなら新スレ立ててからにしろ
994nobodyさん:2008/11/22(土) 06:36:46 ID:???
くだすれPHP(超初心者用)5
http://pc11.2ch.net/test/read.cgi/php/1227303362/
995nobodyさん:2008/11/22(土) 07:04:30 ID:???
クラス内の関数に別のphpファイルをincludeして
その中に関数を入れることってできますか?

test.phpの中身が
<?php
class test{
private $_text;
function test()
 {
  $_text = 'abc';
  include 'aaa.php';
  aaa();
 }
}
?>

aaa.phpの中身が
<?php
function aaa()
{
 print $this->_text;
}
?>
996nobodyさん:2008/11/22(土) 08:46:33 ID:???
そこまで書いといて実行させない神経が理解できない
マニュアルも読まない神経が(ry
997nobodyさん:2008/11/22(土) 08:56:44 ID:???
>>996
aaa.phpの中身を
<?php
print $this->_text;
?>
にすれば実行できるので
どこかが間違っているのか、元々できないのかわからなかったんです。
998nobodyさん:2008/11/22(土) 09:01:58 ID:???
関数$aaaはオブジェクトじゃないんだから$thisはnullじゃん
999nobodyさん:2008/11/22(土) 09:31:01 ID:???
>>998
どうすればいいんですか?
1000nobodyさん:2008/11/22(土) 10:52:28 ID:???
1000
10011001
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。