長島も阪神のコーチになった。
仕方ない、人気のないPHPを応援してやる。
データベース禁止 MySQL PostgreSQL はどっかいけ。
純粋にPHPプログラミングだけ。
初歩的な事ならWebProg板の誰かが素早く教える。
もちろんPerlプログラマーも手伝ってくれ。
ほんじゃ質問してみ。
>>2-9 誰か情報かいてくれ。
(=^∇^)ノ”糞スレばいび〜♪・:*:・・:*:・・:*:・
PHPは 「 Perfect Hacking Process 」 の略です。
PHPでDBに絡めないような奴は
間違い無く、純粋なPHPプログラミングも駄目 (笑
初心者は、DB使った方がラクでしょ
掲示板作るにしてもDBの方がめちゃ簡単
PHPやってる奴は閉鎖的なのか? perlやっとけ(笑
9 :
名無しさん@お腹いっぱい。:02/01/21 12:23 ID:yoj+oXnk
あげっ!
おまえがな! 笑っ
PHPは"ピップ"であってますよね!
13 :
sage:02/01/21 15:57 ID:???
おまえは "ピップ" と呼ぶといいな。 おれは "ペップ" だ。(笑
ペフプと俺は読んでる。
ペフプ 言い辛くないか。普通は”ピーエッチピー”読むんだが、
これからは”ペピー”と 読むようにしなさい。
ポピーと呼ぶことにしています
DB失ったPHPなんて羽をもがれた鳥のようなものだ。
しったかがちらほらと・・・。
PHPはすぐDBもってくるから初心者はひくだろうな。
終了
echo と print は まったく同じモノなんすか?
微妙にちがうんかな・・・。
>20
微妙に同じなんでしょう?
>21
ヒヒヒ 微妙に同じかぁ ほんじゃ考えず前すすもっと。
ありがとうございました。
また質問 レスみると掲示板すらDB使わないと、うんこみたいに書いてるんですが、
DB使うまでもないものつくるんですがPHPはファイル保存に弱いとか面倒とかあるんですか?
>>23 そうでもない。
ただ、PHPはDBを利用しやすいので使ったほうが良いってくらい。
どうもどうも なるほど、ただそれだけですか。PerlからなのでDB自体なれないというか必要ないので、
ファイルで済ませらるならそれでいいんですよね。open の扱いもちょっと違いますが、
けっこういいかもです。ありがとうございました。
26 :
nobodyさん:02/06/14 02:54 ID:FC4/Kzi2
includeで呼び出したphpファイルから、
呼び出し元のページのURLを知るにはどうしたらいいでしょうか?
何故半年弱前のスレをageるかなぁ。
28 :
26:02/06/14 14:13 ID:???
Perlには初心者スレがあったのでいいかなぁとついすいません。
26の質問は普通にincludeすればそれでよかったんですね、、
サーバURLをフルパスでincludeしていました。。
ところで、この板は時間の流れが長江のように悠久ですね。
29 :
602:02/06/15 13:46 ID:wm0xi3kp
PerlとPHPとの違いなんですか?
30 :
nobodyさん:02/06/15 18:34 ID:SERZ+ITN
漢と女
31 :
nobodyさん:02/06/16 14:02 ID:wZu+S5Ry
>>28 > ところで、この板は時間の流れが長江のように悠久ですね。
( ´_ゝ`) プッ
32 :
32:02/06/16 18:36 ID:tQ04t5ya
Redhat7.2
Apache2
の環境でphp4.0(rpm)をインストールしても
phpファイルがダウンロードになっちまうんだけど、
こりゃなにがわるいんだい。
自分でも何言ってるのかわからないので詳しい人助けてくだしあ。
ちなみに、ずるぽんあぷろだのphp版を動かそうと思っています。
ただそれだけ自分の鯖でやりたいのでよろすく、、、
http://php.s3.to/
34 :
nobodyさん:02/06/16 19:12 ID:E0oiz+KW
$HTTP_SESSION_VARS['a'] = array("",$b);
って、できるんだっけ?できないんだっけ?
35 :
32:02/06/16 19:52 ID:tQ04t5ya
>>33 アパッチのhttpd.confですか?
phpに関する、記述は次の通りです。
# And for PHP 4.x, use:
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
以上のようにしています。
36 :
32:02/06/16 19:53 ID:tQ04t5ya
パーミッションもいろいろ試しました。
38 :
32:02/06/16 22:43 ID:tQ04t5ya
LoadModule php4_module libexec/libphp4.so
httpd.confに↑がなかったようです。
でもこれいれるとconfigration broken...
39 :
32:02/06/16 22:47 ID:tQ04t5ya
LoadModule php4_module /usr/local/apache/libexec/libphp4.so
こんなんでいいですかね。
どなたか、ヘルプミー!
40 :
32:02/06/16 22:57 ID:tQ04t5ya
パス指定してもconfigration brokenです。
もうダメ・・・・・・。
41 :
32:02/06/16 23:03 ID:tQ04t5ya
Cannot load /usr/lib/apache/libphp4.so into server: /usr/lib/apache/libphp4.so: undefined symbol: ap_block_alarms
/usr/local/apache2/bin/apachectl start: httpd could not be started
こんな感じのエラーがでます。
あたしを見捨てないデー、、、
42 :
:02/06/17 00:11 ID:dRmTyc5V
RPMじゃなくてコンパイルからしてみそ
コンパイルオプションやらがわからん
43 :
32:02/06/17 00:49 ID:i/e9QgT/
./configure --with-apxs2=/usr/local/apache2/apxs
こんな感じでやってみました。
で、info.phpも試したのですが、URLを開いてみるとやっぱり保存になってしまいます。
php.ini
httpd.conf
phpに関して上の二つのファイルにはどのように記述すればよいのか、、、。
いろいろ調べ回ってます。
>>32 (´-`).。oO(PHPのバージョンは?
Apache2.0だと4.2.1以外はまともに動かなかったような‥‥
個人的にはApache1.3をお勧めしておくが。)
45 :
32:02/06/17 10:21 ID:l2M4FpTi
バージョンはphp4.2.1です。
なんとか、最後にアパッチの再起動をするところまで進んだのですが、
Cannot load /usr/lib/apache/libphp4.so into server: /usr/lib/apache/libphp4.so: undefined symbol: ap_block_alarms
/usr/local/apache2/bin/apachectl start: httpd could not be started
このようなエラーがでます。
ap_block_alarms って・・・。
46 :
戊寅:02/06/17 23:25 ID:???
>>32さん
apache2のドキュメントを読まずに書いちゃいますが、
./configure に --enable-module=so とかのオプションは要らないんですか?
あと、httpd.conf は、apache_1.3.24 + php-4.2.1 ですと
LoadModule php4_module libexec/libphp4.so
になってました。参考までに・・・
47 :
32:02/06/18 17:52 ID:mgU+5QuF
[root@localhost /]# /usr/local/apache/bin/apachectl start
Syntax error on line 205 of /usr/local/apache/conf/httpd.conf:
API module structure `php4_module' in file /home/*****/apache_1.3.24/libexec/libphp4.so is garbled - perhaps this is not an Apache module DSO?
/usr/local/apache/bin/apachectl start: httpd could not be started
>>46さんレスありがとう。
しかし、上記のようなエラーがでてApacheが起動できない状態です。
./configure に --enable-module=soとしてmake/make installもしています。
あと、libphp4.soをhomeのユーザーの領域に探しにいっているようなのですが
これで問題ないのでしょうか?
apacheのインストールは
./configure --prefix=/usr/local/apache --enable-module=so
上記のように、
php4.2.1は
./configure --with-apxs=/usr/local/apache/bin/apxs --enable-mbregex
のようにインストールしています。
48 :
ちえ:02/06/18 21:21 ID:zOwUJg6s
教えてください
インターネットであちこちみてたら、ヤフーの画面に「Netzany」なるものが
組み込まれてしまってこまってます。どうすればいいの?おしえて
それとこれって やばいのかな
↑マルチ↑
↑マルチャン↑
51 :
nobodyさん:02/06/19 11:31 ID:djORznSO
32かわいそうなのでage
PHPでクライアントのブラウザにダイアログを出せるんですか?
出せるとしたらどんなコードを書けばいいんですか?
54 :
戊寅:02/06/19 14:19 ID:???
>>47 もう遅いかな? とりあえず「homeのユーザーの領域に探しにいっている」
というのがおかしいですよね。
./configure を実行したディレクトリにある(と思われる)config.layout を確認して、
prefix: /usr/local/apache
exec_prefix: $prefix
bindir: $exec_prefix/bin
sbindir: $exec_prefix/bin
libexecdir: $exec_prefix/libexec
が、思い通りのレイアウトになっているか否かを確認、
もし違っていたらmake clean; make distclean とかやって、
もう一度ビルドしてみるってのはどうでしょう?
>>52 <?php
echo "<SCRIPT type=\"text/javascript\">alert(\"回線切って首吊って氏ね!\");</SCRIPT>";
?>
>>55 何げに優しいヒトね。
特に for($i=0;$i<10000;$i++){echo〜}とかしないあたりが…
57 :
32:02/06/20 12:17 ID:iqNeqWhl
戊寅さんアリガトー。
おかげさまで動くようになりました。
でもphp版ずるぽんあぷろだちゃんと動いてくれないのです。
アップロードボタン押しても何も反応がない。。。
もうすこしがんばってみます。
>>57 register_globalの設定は?
4.2.0以降だとデフォルトの設定じゃ動かないぞ。
59 :
32:02/06/21 14:42 ID:PaTq4EAH
>>58さん、ありがとう。
register_globalをonにしたらアップロードはされていますが、次にようなエラーがでます。
Fatal error: Call to undefined function: move_uploded_file() in /usr/local/apache/htdocs/php/upload.php on line 214
インストールし直しですか・・・?
60 :
32:02/06/21 16:12 ID:PaTq4EAH
ずるぽんあぷろだ、ちゃんと動きました。
でも8Mバイトを超えるファイルがアップできないです。
php.iniも設定ちゃんとしてあるんだけど・・・。
logの方には
invalid method in request と書き出されています。
61 :
nobodyさん:02/06/24 10:31 ID:nb8sU0Ip
新しいphpではregister_globalsがoffになって
$_SESSION[var]とかでアクセスするようになりましたが、
毎回毎回$_SESSION[var]でアクセスするのと、
スクリプトの頭で$myvar = $_SESSION[var]として
$myvarを使うのとでは、やはり後者のほうが
オーバーヘッドが少ないと考えていいでしょうか?
まあオーバーヘッドといっても微々たるものでしょうけど。
62 :
love somebody:02/07/17 13:35 ID:ftI3+LzP
head.txtとかやるじゃないですか。
それでそのhead.txtの中にSSIってできませんか?
できたら、どうやるんですか?
63 :
_:02/07/18 02:07 ID:???
質問です
よろしくお願いします
クエリで # の文字を渡したいのですが
その場合 どのように記述もしくは対処すればよいのでしょうか?
例としては 背景色等 #000000 の文字を渡していきたいのです
a.php?col=#000000
のようにクエリで文字を渡し
a,phpの中で
<BODY BGCOLOR="<?echo $col; ?>">
のような使い方をしたいのです
この実行結果は $colには何も入ってない事になってしまっています
どなたかヒントをお願いします
ぐーぐる等で検索かけましたが # が入った場合の動作はなかなか見つけられませんでした
"#"を"%23"に置き換えといて(a.php?col=%23000000)、クエリを受ける側で「$col = urldecode($col);」とでもしる>63
65 :
_:02/07/18 04:26 ID:???
ありがとうございます
早速試してみます
66 :
nobodyさん:02/07/24 15:58 ID:s4xl4hs7
質問です
$host= @gethostbyaddr(getenv("REMOTE_ADDR"));
これの「@」はなにを表すのでしょうか?
68 :
.:02/07/24 16:01 ID:???
エラーを・・・
すみません、
phpのソースを閲覧・ローカルに保存する方法を誰かご存知ないでしょうか?
71 :
nobodyさん:02/08/03 13:05 ID:NLXKrSe3
72 :
親切な人:02/08/03 13:09 ID:???
74 :
nobodyさん:02/08/06 01:40 ID:abqyrA8W
PHPもファイルロックには気を使うべきですか?
ななじゅうさんと読みます
77 :
nobodyさん:02/09/24 23:45 ID:eG+qA3Bk
Linux(コバルト)使っているのですが
一年くらい稼働しているのですが、そのうち2日間だけ
/tmp/フォルダに、
phpcSCFMZ
のような、php+ランダムな文字列のファイルが
数百個できてました。サイズは0。ファイルオーナーはhttpd。
これは何なのでしょうか?
削除してもいいのでしょうか?
セッションとは別だと思います。session_ランダムな文字列で
一定期間だけ作成されていますので。
どなたか教えてください。
78 :
nobodyさん:02/09/25 13:28 ID:O6KkuGrZ
ローカルのWin+Apacheでのmkdirは問題ないんですが、
リモートのUNIX+Apacheでmkdirを行うとPermission deniedと、
んなパーミッション許可しねぇYOとエラーが帰ってきます。
ちなみにmkdir("log",0777);って感じで使ってます。
サーバ側の設定の問題でしょうか?
そのlogディレクトリを置くディレクトリのパーミッションは?
80 :
78:02/09/25 16:09 ID:O6KkuGrZ
>>79 レスありがとうございます。
logの上はもうドキュメントルートなんで755なんですが、マズいでしょうか。
ちなみに同ディレクトリで動いてる別のperlプログラムでは、
mkdirのパーミッション777が通ります。
>>78 perlはsuEXECで動いているのでは。
PHPがモジュールだったらlogの上は707か777にしないとだめれす。
82 :
81:02/09/25 16:18 ID:???
Safe modeがOnだったらPHPでmkdirしてもそのディレクトリにアクセスできなかったりする罠
83 :
nobodyさん:02/09/25 16:30 ID:9hFjKUSb
>>74 PHPもファイルロックには気を使うべきです。
84 :
78:02/09/25 16:35 ID:O6KkuGrZ
すみません、早速上のディレクトリを777にしたら通りました。
んが、実はlogの直下にまたすぐにディレクトリを作りたいんですが、
今度はこいつが通りません。
mdkir("log",0777);で通してるんですが、
実際はパーミッション755でディレクトリが出力されてます。
というかFTPで直接パーミッションを修正しても強制的に755に戻ります。
SafeModeで制限されてるだのという内容のエラーが帰ってきました。
85 :
78:02/09/25 16:41 ID:???
凡ミスでした、ディレクトリの権限がnobodyでした。
これについてのPHP中での変更は・・・もう一調べしてきます。
PHPというよりもプログラム自体の疑問なのですが、<select 〜 mutiple>で配列処理して変数$arrayを作った場合に、
この$arrayをスマートに、かつ自由なデザインで表示することって出来ますか?
<table>
<tr>
<td>
$array[0]
</td>
</tr>
<tr>
<td>
$array[1]
</td>
</tr>
</table>
みたいに、テーブルに限らず、柔軟な展開というのは、、どうすればいいのでしょうか? ご教授お願いします。
//
>>86 //<? <select 〜 mutiple>で配列処理して変数$arrayを作った場合 ?>
<table>
<tr>
<td>
<? $array[0] ?>
</td>
</tr>
<tr>
<td>
<? $array[1] ?>
</td>
</tr>
</table>
//こういうこと?
>>87 レスありがとうございますっ!
具体的なことを言うとそうなります。
連番なら何とか出来るぽいんですが、$array[0] $array[2],,,,みたいなのが出てきた場合お手上げです。
地道にif系で書き出さないといけないのかな、、、
独り言自己レス
取り出す数を求めて、それによって<tr><td>[$a]</td></tr>の数を決めるようなことをすればいいのかな‥‥
//具体的に何に使うん?
<table>
<?
for($i=0;$i<100;$i++){
print "<tr><td>";
print "$array[$i]";
print "</td></tr>";
}
?>
</table>
//これは?
<?
//配列"$array"中に一致条件"aaa"が含まれる場合、$linesに値を追記
foreach($array as $value) if(ereg("aaa", $value)) $lines.="${value}\r\n";
//値が空(一致条件が存在しなかった)の場合
if($lines=="") $lines="一致するデータが有りませんでした\r\n";
//"<pre>"要素内に出力(別に"<ul>"や"<dl>"使っても良い訳ですし)
echo "<pre>$lines</pre>\r\n";
?>
92 :
81:02/09/26 09:41 ID:???
>>78 >>82でも書きましたがsafe modeがOnならmkdirは使い物になりません。
93 :
hmk(元プロ):02/09/27 00:46 ID:QE9TB9SP
>>66 > $host= @gethostbyaddr(getenv("REMOTE_ADDR"));
@は確かエラー制御演算子という名前で、
エラーメッセージを出力させないようにするためのものだ。
上記の場合は、gethostbyaddr()がエラーを起こした場合のワーニング
を出なくする働きがあると思われ。
でいいんですよね、プロの皆さん?
94 :
hmk:02/09/27 01:08 ID:QE9TB9SP
>>88 <table>
<?php
for (reset($array); list(, $value) = each($array);) {
?>
<tr><td><?php echo $value; ?></td></tr>
<?php
}
?>
</table>
95 :
:02/09/27 04:31 ID:2RREwo6L
$str[0],str2[0]...と表示させたいのですが、
<?php
$str = array('1','2','3');
$str2 = array('10','20','30');
$num = count($str);
for($i=0;$i<$num;$i++){
$val = array($str[$i],$str2[$i]);
$val = implode(" ",$val);
echo $val;
}
?>
だと、1 102 203 30
という表示になってしまいます。
110 220 330と表示させるにはどうしたらいいでしょうか?
よろしくお願いします。
96 :
hmk:02/09/27 04:45 ID:???
>>96 <?php
$str = array('1','2','3');
$str2 = array('10','20','30');
for (reset($str), reset($str2); list($i,) = each($str);) {
echo $str[$i] . $str2[$i] . ' ';
}
?>
<?php
$str = array('1','2','3');
$str2 = array('10','20','30');
$num = count($str);
for($i=0;$i<$num;$i++){
echo $str[$i].$str2[$i].' ';
}
?>
98 :
hmk:02/09/27 15:33 ID:???
<?php
$str = array('1','2','3');
$str2 = array('10','20','30');
for (reset($str), reset($str2); list($i,) = each($str);) {
$str3[] = $str[$i] . $str2[$i];
}
echo implode(' ', $str3);
?>
<?php
$str = array('1','2','3');
$str2 = array('10','20','30');
$num = count($str);
for($i=0;$i<$num;$i++){
$val .= $str[$i].$str2[$i].' ';
}
echo"$val";
?>
100 :
hmk:02/09/27 21:57 ID:???
100geto...
>>95よ、なにが原因か分かったかね?
101 :
nobodyさん:02/09/27 22:13 ID:ShlRmfg7
102 :
101:02/09/27 22:15 ID:ShlRmfg7
なんか変な文章だ・・・
下に4.2.2あるよ。
104 :
101:02/09/28 00:19 ID:uj+xgRhi
確認不足で申し訳ない。
105 :
nobodyさん:02/10/11 01:12 ID:1pjL9YYa
質問です。
test.phpの中で$emailにデータベースから取り出したメールアドレスを
格納し、
<form method="post" action="./mail.php">
<input type="hidden" name="mail" value=$email>
・・・・</form>
というふうに、inputでアドレスをメール関数に渡しているのですが、
これだとソースにメールアドレスが表示されてしまうため、
ソースに表示されない別の渡し方があれば教えてください。
106 :
nobodyさん:02/10/11 01:26 ID:ZQEK3Po2
test.php
$_SESSION[mail]=データベースから取り出したメールアドレス
mail.php
メール関数に$_SESSION[mail]を渡す
107 :
nobodyさん:02/10/11 09:33 ID:abgKHNAE
$ip = getenv("REMOTE_ADDR");
$ipのIPを(例:211.126.27.101→211.126.27.*に)置換するには
どうやればいいのでしょう?
108 :
107:02/10/11 09:47 ID:abgKHNAE
$y = substr($myip,12,3);
$x = substr($myip,0,12);
$z = ereg_replace("[0-9]{1,3}","*", $y);
$w = $x.$z;
一応、↑でできたのですが、もっといい方法はありますか?
109 :
107:02/10/11 09:49 ID:???
訂正です。
$x = substr($ip,0,12);
$y = substr($ip,12,3);
$z = ereg_replace("[0-9]{1,3}","*", $y);
$w = $x.$z;
$ip = split('\.', getenv("REMOTE_ADDR"));
$x = "$ip[0].$ip[1].$ip[2].*";
111 :
107:02/10/11 10:07 ID:???
>>110 すごい!こんなに簡単にできるんですね
ありがとうございます!
正規表現一発で済ませろ。
$ip = ereg_replace("[[:digit:]]+$", "*", getenv("REMOTE_ADDR"));
113 :
105:02/10/11 18:19 ID:nZwz8aye
>106
返答ありがとうございます。
とりあえずsessionを使ってみたところ
test.php
<?
session_start();
$_session[email]=メールアドレス;
<form method="post" action="./mail.php">
<input type="hidden" name="mail" value=$email>
・・・・</form>
?>
ここで$_session[email]に正しいアドレスが入ってる事を確認。
mail.php
<?
session_start();
echo "$_session[email]";
?>
しかしここでは何も値が入っていませんでした。
sessionはグローバル変数だと思っていたのですが、違うのでしょうか?
使い方が誤っていたらご指摘お願いします。
114 :
bloom:02/10/11 18:21 ID:zzYfW1z9
115 :
106:02/10/11 18:40 ID:???
hellosessionfrom.php
<?php
session_start();
$_SESSION[hell]="Hello,HellWorld!\n";
$_session[heaven]="Hello,HeavenWorld!\n";
?>
<html><head><title></title></head><body>
<a href="hellosessionto.php">hellosession</a>
</body></html>
hellosessionto.php
<?php
session_start();
?>
<html><head><title></title></head><body>
<?php
echo $_SESSION[hell];
echo $_session[heaven];
?>
</body></html>
どうやれば天国にいけるでしょう。
116 :
105:02/10/11 19:44 ID:???
>106
神よ、有難うございます。
$_SESSIONは大文字でないといけないのですね。
あなたの未来に幸多からんことを…
117 :
nobodyさん:02/10/12 15:01 ID:SMl4F7k6
全くのショッシーでスマソ。
JacaScriptに慣れてる人、ちょっとJavaをかじった人が、そんなに難しく
ないCGIをやる場合、Perlでしょうか?PHPでしょうか?
>>117 JSP&Servletが良いのでは
じゃなくて、使ったことが無い言語を覚えるのが
苦痛でなければ、どっちでも良いと思う。
あとは、コーディングしてみて自分に合ってる方を
選べばいい
>>117 何でも問題ないと思うがphpスレッツウ事でPHPをおすすめしとく。
120 :
nobodyさん :02/10/13 00:40 ID:LvGYJMzQ
PHPファイルにJavaScriptは使えないですか?
どうも失敗するのですが。
出来ますた。
コードミスだったです。
お騒がせしてスミマセン
122 :
nobodyさん:02/10/13 09:03 ID:i/uPn3q6
php 4.0.6 WinXP です。
<?
session_start();
session_register("data1");
$data1 = 1;
?>
<html><body><a href="./test2.php">表示</a></body></html>
結果
Warning: open(/tmp\sess_cd8624e6e06d93e2625bddd88f204896, O_RDWR) failed: m (2) in c:\phpdev\www\phpdev4\q.php on line 2
表示
php.int設定
session.save_path = "c:\windows\temp\"
どなたか教えて下さい。
session_start();
session_register("data1");
$data1++;
echo "$data1";
なんだ、PHPにも初心者スレがあったのね。
つーわけでage.
おうよ。アホみたい質問はこっちでよろしく。
126 :
nobodyさん:02/10/22 07:43 ID:ZX80GK7s
PHPマニュアルにdisk_free_spaceの例文が載ってるんですが、使い方がわかりません。
アフォでスマソ
>>126 ディスクのパーティションの空き容量がわかる。
>>125 ホント「アホみたいな質問」ですね。
例文見て使い方が分からないなんて。(w
130 :
nobodyさん:02/10/22 11:29 ID:nuvCZH1t
超初心者な質問ですみません。
バイナリデータをファイルに書き出す方法がわかりません。
たとえば単純に「ゼロが10バイト並んだファイル」を作るために
$fp = fopen ("test.bin", "w");
for ($n = 0; n < 10; $n++) {
fwrite($fp, 0, 1);
}
fclose($fp);
としてみたら「ゼロ」ではなく「0x30」つまり「ゼロの文字コード」が
10個並んだファイルができてしまいました。
「ゼロが10バイト並んだファイル」はどうやって作ればいいのでしょうか?
どなたか教えてください。
n < 10 を $n < 10 で、0000000000できたよ。
そのtest.bin削除して、メモ帳で書いてもういっぺんやってみ。
バイナリかー。
>>130 <?php
$fp = fopen ("test.bin", "wb");
for ($n = 0; $n < 10; $n++) {
fwrite($fp, "\x00", 1);
}
fclose ($fp);
?>
134 :
nobodyさん:02/10/22 21:31 ID:n3viipFn
PerlからPHPに移ったんですが、データベースのことがよく分かりません。
データを保存する際、普通のファイルよりもデータベースファイルの方が良いのでしょうか。
またその場合データベースを扱ってみたいんですが、分かり易いサイトなど紹介してもらえないでしょうか。
よろしくお願いします。
135 :
hmk:02/10/22 21:45 ID:???
>>134 スレ違い。PHP + PostgresSQLスレあたりに逝け。
例えば
$count = 動的パラメタ...として
for($i;$i<=$count;$i++){
print '<input type=text name=count_'.$i.'>input_'.'$i.'<br>';
}
...で複数のテキストフィールドを動的に作った場合
このテキストフィールドのパラメタを全て回収するには
どすればよいでしょうか?
動的パラメタって数値なんすか?
forで回してるから$countは123・・・順の最高値なんすか?
<input type=hidden name=count value=$count>で渡して、
受けたら$count以下のを扱うとかいうのは違うすか?
つか、何がしたいのかさっぱりわかりませんずら。詳細キボンヌ
139 :
hmk:02/10/24 00:38 ID:???
>>137 私なら、配列を使います。例えば、
<?php for ($i = 1; $i <= $count; $i++) { ?>
<input type="text" name="cnt[<?php echo $i; ?>]">input_<?php echo $i; ?><br>
<?php } ?>
このようなフォームにしておけば、
<?php
for (reset($cnt); list($k, $v) = each($cnt);) {
// このようにして後で回収できます。
}
?>
138の言うようにhiddenで最大値を渡してもできる。
用途に応じて、使いやすい方法でいくのがよいでしょうかね。
140 :
137:02/10/24 10:40 ID:???
>>137-138 レスどもです。
わたしの意図するところは伝わったようですが
自分なりの常識を押し付けるような書き方になってしまいました。
反省してます。
念のため
php のversion は4.2.3
php.ini のregister_grobals=Off
そのため、フォームから渡されたパラメタは
$param_name=$HTTP_GET_VARS['param_name']
で回収する必要があります。
当初、これをfor でまわして
for($i=1;$i<=$count;$i++){
$param_name[$i]=$HTTP_GET_VARS['param_name[$i]']
}
とできると思ったのですがダメでした。
外部フォームからの変数が格納されている配列
また、その配列から要素を抜き出す方法を教えてください。
PHPはFORMのnameに配列が使えます。
<form action="<?=$_SERVER[PHP_SELF]?>">
<?php
$count = 10;
for($i = 0;$i<=$count;$i++){
print "<input type=text name=param[]>input_".$i."<br>\n";
}
print '<input type="submit"><br>'
for($i = 0;$i<=$count;$i++){
print "param".$i."=".$_GET[param][$i]."<br>\n";
}
PHPでBBSを作ろうと思い、
勉強するために本を買おうと思ってるのですがPHP3なんです。
「プロフェッショナルPHPプログラミング」という本なのですが。
しかしサーバーがPHP4なので大丈夫かな?と思い質問させていただきました。
144 :
nobodyさん:02/10/28 15:24 ID:uGqL/qit
PHPでデータをファイルに保存するとき、
普通のテキストファイルよりもデータベースファイルに保存した方がいいんでしょか。
管理し易いとか速いとか。。。
145 :
nobodyさん:02/10/28 18:42 ID:b7KIhGgz
>>144 データの出し入れはデータベースの方が圧倒的に便利です。
146 :
144:02/10/28 18:47 ID:uGqL/qit
厨な質問でスマソ
データベースファイルを扱う場合、
やっぱりMySQLとかインストールしないと無理なんですか。
当 た り 前 だ の ク ラ ッ カ ー
お そ れ 入 谷 の 鬼 子 母 神
>>146 PHPが無くてもPHPは動きますでしょうか?無理なんですか。
当 た り 前 だ の ク ラ ッ カ ー
厨な質問でスマソ
ホワイトベースを扱う場合、
やっぱりブライト艦長とかインストールしないと無理なんですか。
152 :
○:02/11/02 16:40 ID:sGSys/RS
PHPメールで受信したデータをオートで送信するのは可能ですか?
153 :
nobodyさん:02/11/02 18:08 ID:KWT88uG8
154 :
名無し募集中。。。:02/11/03 01:13 ID:dBGKbheQ
リア厨ですいません。
「if」をつかって、日ごとに違う文章を表示させたいのです。
もし「11/03」ならば「今日は11月3日なわかけだが」
もし「11/04」ならば「今日もお休みで(・∀・)イイ!!」
もし「11/05」(略
表示させる文章は自分で適当に書くだけです。
ようは、日付を使ってどうやって「if」を使えばいいかを知りたいのです。
よろしくおねがいします☆ミ
155 :
nobodyさん:02/11/03 02:18 ID:pFxZ0WjN
PHPのソースを秘密にして、配付する方法はありますか?
>>155 Zend Encoder 使えばできるよ。
ただし $2400
初心者と言うか貧乏人には無理です。
>>156 教えてくれて、ありがとう。お金持ちになりたい…。
>>155 秘密にする必要があるくらいスンゴイのが作れるなら
キミはきっと金持ちになれるよ。
>>158 別にすごいから秘密にしたいってわけじゃないよ。
2chに書き込みをするスクリプトなんだけど
いたづらで悪用されたら、こまるから、
秘密にできたらいいなって思ってん。
>>159 > 2chに書き込みをするスクリプトなんだけど
悪用以外に用途が思い浮かばない。
>>160 えー嘘やん。そんなん、もう公開してるし、どうしよう。
フリーでエンコード出来るやつがあった気がする
ただZend Encoderと違って速くはならないらしいけど
>>162 APC (ALTERNATIVE PHP CACHE) というのかな?
でもこれって実行側で環境をインストールせやなあかんみたい。
これやと逆にユーザ対象が狭まれ過ぎて、配付する意味がなくなるわ…。
それに少し古いみたいで、惜しい。
質問させていただきます〜bbsなスクリプトを作ってます。
./foo.php (メインファイル)
./subject.txt (現在存在するログファイル名が書いてある。 一行に一個。)
./dat/xxxxxxxx.dat (subject.txtに書いてあるログファイル)
subjectのarray[i]を読んで、そこに書かれてるxxxxx.datてゆーのをdatディレクトリから探して表示、
を繰り返すわけなのですが、、、、
Warning: file("./dat/1036411589.dat ") - Invalid argument in 〜
とゆーような感じでdatのあとに半角スペースが入ってしまうんです。 よって読めないと。
ereg_replace()してもダメでした・・・
配列の仕様ってヤツなのでしょうか? そして回避法はあるんでしょうか?
お願いします。
165 :
nobodyさん:02/11/05 10:20 ID:iexiejZJ
subject.txtの内容をfile()で配列にしているのなら、
もう一度、マニュアルを読んでみよう。
file()は、\nを除去しないと書いてあるよ。
よって、trim()でもつかうのがよろし。
166 :
165:02/11/05 10:24 ID:iexiejZJ
>>164 あと、subject.txtに「表示させたいログファイル名」ではなくて、
「現在存在するログファイル名」だけがかいてあるのなら
./dat/を直接readdir()した方が楽でない?
>>167 pear/PECL/APCに最新版があるヨ
pear/PECL/APC Cache機能
pear/PECL/APD Debug機能というかプロファイラ
pear/PECL/OPC Optimizer機能(今日レポジトリが出来たみたい-まだ枠組みだけだけど)
これからが楽しみ :)
>>165-166 ありがとうございます!
> 改行記号はついたままと なります。
て書いてましたね・・汗
ついでにtrim()の存在も知らなかったので大変勉強になりました〜! ありがとうございました!
170 :
164:02/11/05 17:03 ID:???
レス漏れ
readdir()ってディレクトリの見えないディレクトリで使えるかどうか分からなかったので頭に入れてなかったっす。
あとでちょっち試してみます。
171 :
nobodyさん:02/11/05 18:02 ID:WIPa8/Vj
文字列をPOSTで別のPHPスクリプトに送るとき
半角スペースや「"」などの文字が含まれているとそれ以降が消えてしまいます
addslashesを使って「\"」にエスケープしても「\\」と文字化けします
どうやってデータを渡せばよいのでしょうか?
172 :
nobodyさん:02/11/05 20:25 ID:Dn6gflHK
>>171 php.iniでmagic_quotes_gpcがonになっていると、
COOKIE,POST,GETで渡された値の中の
これらの文はは勝手にエスケープされる。
ので、
php.ini でmagic_quotes_gpc = off
にするか、
.htaccessで
php_flag magic_quotes_gpc off
にする。
あと、stripslashes() という函数もあったような;
173 :
nobodyさん:02/11/05 20:55 ID:WIPa8/Vj
>172
すみませんちょっと説明不足だったようですが
勝手にエスケープされたものをstripslashes()で取り除いても
正常に受け渡しができなくなります。
「aaa"bbb"」→POST→「aaa」
「aaa\"bbb\"」→POST→「aaa\\」
フォームからは正常にエスケープされた文字列が受信できます
環境がおかしいのでしょうか?
対策としては正常に受け渡しできる文字に置換して
受信側で元の文字に戻すということですけど・・・
PHPのVerが4.2.3の場合はバグ
175 :
nobodyさん:02/11/06 01:26 ID:EhYZ0bVt
PHPを1から始めたいのですが、何から始めればよいですか?
サーバースペースはまだ探していないので、local環境で始めてみたいです。
OSはWindows2000かLinux(Red Hat)です。
とりあえずwin2kでやってみようと思って、
phpdevやphpのインストーラ(win用)は落としてみたのですが、
使い方がいまいちわかりません。
初心者は何から始めればよいのでしょうか?
177 :
173:02/11/06 07:19 ID:yWgDH7Dp
>174
4.2.2に戻してみましたがかわりませんでした・・・
>>175 PHPは1から始めるよりも4から始めた方がいい。
179 :
173:02/11/06 17:19 ID:???
やっと自己解決
htmlspecialcharsで変換してPOSTすれば
消えずに送信できました
180 :
nobodyさん:02/11/07 11:41 ID:QEt0uw4x
PHPでPerlのHTML::Templateみたいなライブラリってないでしょうか
単純な置き換えだけでなくてIFとかLOOPとかあるような・・・
181 :
nobodyさん:02/11/07 11:59 ID:Go7yQUbZ
>>180 while (hoge) {
?>
aaaa
<?php
}
183 :
nobodyさん:02/11/08 01:14 ID:Veqht0/Q
>>175 PHPを始めたいとのことですが、やはり「なぜPHPを始めるの?」
という質問に答えられるかどうかがポイントではないでしょうか?
その答えがご自分の中にあるのであれば、それに必要な処理や道筋を
立てて、そのプロセスに必要な関数や仕組みを試行錯誤でやることです。
そうすれば、徐々に覚えることができます。
Webサイト制作初心者スレで質問したところ、こちらで聞いてみろと
促されたので質問させて下さい。↓は初心者スレからのコピペです。
現在、XHTMLで表示部分を記述しているCGIスクリプトが少ないので
自分でスクリプトを作ってみようと思っています。しかし、色々と
検索しているとPerlよりもPHPの方が動作も軽くていいようなので
PHPでスクリプトを作ろうかと思ったのですが、HTML(XHTML)以外
知らない人間がいきなりPerlではなくPHPを覚えようというのは
無謀なのでしょうか?下らない質問ですみませんが教えて下さい。
#Jsは多少知っています。
185 :
nobodyさん:02/11/09 10:59 ID:X+rmQU/4
186 :
nobodyさん:02/11/09 11:14 ID:E2/H+5gT
>>185 >何事も基礎が大事
言われて納得。確かにそうですよね。ありがとう御座います。
PHPやPerlの前に基礎の基礎をしっかり固めたいと思います。
189 :
nobodyさん:02/11/09 11:39 ID:rznkVAE5
どこで訊いて良いのか判らないので取り敢えずここに来ました。
サイトを見るのにパスワードとユーザ名を要求されるようになってしまいました。
知らないうちに会員制に移行してたらしいのです。
こうなった以上、もう見るのは不可能なんでしょうか?
会員になれば閲覧できるでせう。
191 :
nobodyさん:02/11/10 11:26 ID:QiAM6QEO
if(eregi("(サポート)", $name)){
echo '管理人の名前は使用できません。';
}
サポートと言う文字を入れると
Warning: REG_EBRACK: in C:\test.php on line 296
みたいなエラーが出るのですがなんででしょうか?
管理人やWebmasterではちゃんと表示されるんですが。
Shift_JISだと「ー」でひっかかったりするけど
193 :
191:02/11/10 12:27 ID:???
194 :
191:02/11/11 05:10 ID:???
stristr関数を使えばとりあえずOKだって事にさっき気が付きました。
195 :
nobodyさん:02/11/22 03:31 ID:klMrTIO/
質問です。例えば
SELECT CODE, NAME FROM TABLE1 ORDER BY CODE
とポスグレに流したら、100件帰ってきます。
PHP3で pg_Result($rtn, 80, name)ってすると、80番目が帰ってきますよね。
この時、ポスグレのカーソルは先頭から80回フェッチしているんですか?
perlから移行中なんですが、ちょっと疑問があります。
print と echo は、まったく同じものでしょうか?
ちょっと違うのかな?
どっちでもいい事かもしれませんが気になりまして
>>197 おい、既出みたけど答えになってないぞ。
気になるな。
だって、このスレは初心者が答えてるんだもん。
>>196 echo がいいと思う。
たぶんprintとechoの挙動が違うのは連結の時違うと思います。
201 :
nobodyさん:02/11/22 14:46 ID:2PtBJ1DA
>>196 printは関数。echoは文
echoは()がいらないので多用している。
printも()いらんでしょ?
204 :
nobodyさん:02/11/22 16:30 ID:2PtBJ1DA
205 :
bloom:02/11/22 16:30 ID:ouswKb0x
Perlから移行する人もいるし、いろいろな方法を提供しているだけでは?
Cのprintfも使って良いわけだし。
内部レベルまで考えると違うのかもしれんが
このスレタイのようにいわゆる初心者ならば
どれを使っても変わらないだろう。
>>204 echo print "test data\n";
してみ。
echo echo "test data\n";
も試してみれ。
if(!print("stdout check OK!")) die();
System.out.println("stdout check OK");
210 :
version:02/11/22 21:56 ID:+Mj4l0eA
PHP4.2.3をPHP4.2.2にバージョンダウンさせたいのですが、
どうすればよいか分かりません。
Red Hat Linux 7.2にPHP4.2.3をソースからコンパイルして
インストールしました。それで、本を買って、さぁ勉強しよう
と思ったら、その本がPHP4.2.2の本だったので、
同じバージョンにさせたいのです。
この場合ってどうすればよいのでしょうか?インストールされた
ファイルを探し出して、全部削除とかしてから4.2.2をインストール
するのですか?教えてください。
<?php
/* echo の方が早いね */
function getmicrotime(){
list($usec, $sec) = explode(" ",microtime());
return ((float)$usec + (float)$sec);
}
$str = "De man cyaan seh dat, aya.\n";
$start = getmicrotime();
echo "<span style=\"display: none\">";
$i = 0;
while ($i < 50000) {
echo $str;
$i++;
}
echo "</span>";
echo "echo: <b>". (getmicrotime() - $start) ."</b><br>\n";
$start = getmicrotime();
echo "<span style=\"display: none\">";
$i = 0;
while ($i < 50000) {
print $str;
$i++;
}
echo "</span>";
echo "print: <b>". (getmicrotime() - $start) ."</b><br>\n";
/* ローカルでテストしてね*/
?>
212 :
マニュアル嫁 君:02/11/23 00:22 ID:eY1CU9cS
どうもPerlの癖でついついPrint書いちゃいますね。
echoのほうが良さそうなのでecho使うようにします。
214 :
nobodyさん:02/11/23 16:53 ID:dkREGMIE
FORMタグを使ってPOSTメソッドで通信
PHP では入力された値は直接変数に格納されます。これはPOSTデータも
GETデータも、Cookie データも、FORMも同じです。
その変数は連想配列です。
$HTTP_POST_VARS
$HTTP_GET_VARS
$HTTP_COOKIE_VARS
何が言いたいのか。
216 :
nobodyさん:02/11/23 20:33 ID:UbdTqBEx
PHP触ったことないです。
これから触ってみようと思うのですが
個人でPHP学ぼうと思ったらWEBサーバーが必要なんでしょ?
みんなレンタルサーバーとか使ってんの?
それともインターネットのプロバイダがPHPサポートしてんですか?
スタンドアローンでうごかしてるとか・・・
>>216 初心者スレだから答えてあげると、
・apacheをインストール
・PHPをインストール
これでローカルで動かせる。
具体的な設定方法は検索すればわかるでしょう。
218 :
216:02/11/23 21:02 ID:UbdTqBEx
>>217 やっぱりそうですか
実は私もServletをスタンドアローンで動かしてる・・・
219 :
nobodyさん:02/11/23 21:03 ID:u57L3WN3
「PHPをCGIモードでインストール」ってどういう意味なんでしょうか?
>>219 そのまんまでしょ。
意味がわからないならCGIとは何かを勉強する必要がある。
mod_phpとかmod_perlも一緒に調べるとよくわかると思う。
221 :
nobodyさん:02/11/23 22:09 ID:dkREGMIE
PHPでgetメソッドを使って通信したい
初心者さんでもマニュアルすら読まない人は助けてもらえませんよ♪
phpは、HTMLに埋め込んでだいたいは使いますよね。
また、完全CGI(HTMLへの送受信をしない?)として使えますよね。
何が言いたいんだ?
普通は
HTML+php (掲示板などへの書き込み)→php鯖で処理してその結果を→HTML+phpに表示
postメソッドなどの通信
post/getで通信 →php鯖で処理してその結果を →post/get?で通信
アタマ整理してから書き込んでね♪
初心者が質問し、初心者が解答する
formを受け取るかどうかはphp.iniで設定出来るんですよね?
php.iniの設定が書いてるWebサイトキボンヌなのです
formを受け取んないのか?
ついでなのれす
グローバルレジスターくらいいじれりゃ十分やけど。。
register_glovals = On
電波が棲みついたな。
は?には(゚д゚)ハァ?を
PHPって演算子のオーバーロードとか出来る?
無くても別に困らないんだけど、気になったので・・・
元質者じゃないが、
いつのまにオーバーロードをサポートしてたんだ・・・・?
つかサンクス
>>235 & マニュアル嫁>>オレ
エセOOつかえねーと思ってたが、PHP5も楽しみだな
237 :
23:02/11/25 18:50 ID:???
>>235 オンランのソースは一通り目を通したはずなんだけどなぁ・・
結局、見つかりませんでした。
>>236 の言ってるのは、オブジェクトのオーバーロード?
どの程度がアホっぽいのでしょうか?
マニュアル以上まとも未満の質問の例を教えてください。
register_globalsはおやつに入りますか?
>>239 アホッぽさの条件
1)変数とか制御構造とか基本的なことを理解していない
2)マニュアルにズバリ書いてあることを、独特の言い回しで質問。
3)HTMLとJavaScriptとPHPの区別が付かない
>>241 それは厳しくない?
マニュアル読める力があれば、2chでわざわざ質問しなくても自己解決出来るでしょ。
このスレはこれから始める人用だと思うな。
CGIって何?
phpって何?
モジュールphpって何?
インストール時のトラブル
phpでこれをやりたいんだけど出来る?
質問させてくださひ…。
あるSJIS文字列(1バイト2バイト文字混合)を受け取った際に、数字とアルファベット以外を
1バイトずつ区切って、HTML数値エンティティ形式に変換して出力するXMLサーパントがあります。
たとえば、
私はPHPが好き(かも)です
という文字列は、
?E;???CD;PHP;??AA;?D;???AB;???A9;??E0;???C5;??B7
と返されます。
この返された文字列を元のSJISに戻したいのですが、何かスマートな方法はありますでしょうか?
245 :
244:02/11/26 22:08 ID:???
すみません、吐き出される文字列は
?x8E;?x84;?x82;?xCD;PHP;?x82;?xAA;?x8D;?x44;?x82;?xAB;?x28;?x82;?xA9;?x82;?xE0;?x29;?x82;?xC5;?x82;?xB7
でした…。
>>244 ヒント: XMLのはエンコーディングはUTF-8と決められているらしい
if($flag){
register_globals='おやつ';
}
if(register_globals=="おやつ";){
print "
,――、
/ ̄ ̄l|
■■-っ
∀`/
__/|X/\
Ё|__ | / |
| У |
ンナコターナイ
";
}
249 :
244:02/11/27 00:05 ID:???
あぁっ、もう、激しく化けちゃっててスミマセン。
>>246 ありがとうございます。一筋の光が遠くの方に見えてきました。
$str = "¥x8E¥x84";
echo $str;
の場合はちゃんと「私」と表示されるのに、&#x8E;&#x84;から
preg_replaceで置換した文字列だと表示されないのはなんででしょう…?
253 :
244:02/11/27 21:16 ID:???
>>249 ereg_replaceでもうまくいきませんでした…
$str1 = "\x8E\x84";
$str1 = mb_convert_encoding($str1, "EUC-JP", "Shift_JIS");
echo "str1= " . $str1 . "<br>\n";
$str2 = "Ž„";
$str2 = ereg_replace (";", "", $str2);
$str2 = ereg_replace ("(&#)", "\\", $str2);
$str2 = mb_convert_encoding($str2, "EUC-JP", "Shift_JIS");
echo "str2= " . $str2 . "<br>\n";
とした場合、出力結果(EUC-JPのhtml)は
str1= 私
str2= \x8E\x84
となります。どこがおかしいのでしょうか…サッパリわかりません。・゚・(ノД`)・゚・。
254 :
nobodyさん:02/11/27 22:31 ID:wgGugnNo
$str2 = preg_replace('/?x/','%',$str2);
$str2 = urldecode($str2);
255 :
nobodyさん:02/11/27 22:32 ID:wgGugnNo
↑?=&#
256 :
244:02/11/27 23:22 ID:???
>>255 アドバイスありがとうございます。実は
$str2 = preg_replace ("/&#x([0-9a-fA-F]{2});/", "%$1", $str2);
$str2 = urldecode($str2);
とかでも試していて、正しく表示されることは確認しています。
これが一番スマートなカンジでしょうか?
ところで、
>>253の$str1はナゼそのままで正しく表示されるのでしょう?
そーゆーもの?
257 :
nobodyさん:02/11/27 23:57 ID:iBP1PmSK
このスレの住人では対応出来ない!!
"\x84\x8E"は2バイトです。'\x84\x8E'だと8バイトです。
そんなもんです。
for(10){echo="10回";}
単に10回まわしたいのですがどうしたらいいですか?
eqが無いと聞いたんですが、文字列を比較したい場合はどうすれば…
非常に困ってます。
一度ぐらいマニュアルに目を通しても罰は当たらんと思うのだが。
今見に行ってきました。
pdf版しか無いと思い込んでたので敬遠してしまっていてw;
感謝。
>>259 <?php
for($i=1;$i<11;$i++) echo $i."回目のループですが何か?<br>\n";
?>
perlをPHPに直すときの弊害はやはり
global変数なんですが、どっちのやり方がいいでしょう?
Perlにおいて
sub a{
$x=1;
&b;
}
sub b{ x++; }
266 :
nobodyさん:02/12/07 00:00 ID:ahw/ygQO
PHPにおいて
1、
function a(){
$x=1;
b($x);
}
function b($x) { x++;}
2,
function a(){
global $x;
$x=1;
b();
}
function b(){
global $x;
$x++;
}
267 :
nobodyさん:02/12/07 00:01 ID:ahw/ygQO
xの前の$が抜けてるところがありました…
それとも上の2案以外にもっと(・∀・)イイ!やり方があるでしょうか?
268 :
nobodyさん:02/12/07 00:02 ID:ahw/ygQO
言い忘れてましたが因みに
b()内で$xの値は画面に出力する予定です。
print $x;って。
>>264 $i = 0;
while (i < 10);
echo $i;
echo"gigi";
271 :
nobodyさん:02/12/07 16:18 ID:7eULV5Qv
2chの書き込み時のようにポートつついてプロクシ制限するときは
どうやってコードを書けばよいですか?
>>268 perlでも
sub a {
my $x = 1;
&b( $x );
}
sub b {
my $x = shift;
%x++;
}
って俺はやるけど。
>>271 Socketを使う。
使い方は perldoc Socket を参照されたし。
274 :
273:02/12/08 10:51 ID:???
ってココPHPスレかw。
>>271 socket_connect で $_SERVER["REMOTE_ADDR"] のチェックしたいポートに
接続できるか試してみれ。
接続できたらエラー返せばいい。
>>274 ありがとうございます。
やってみます。
socket_connectは、コン パイルやり直さないとだめみたいでした。
fsockopenでやってみます。
>>265 クラス使えば?
$this->x って感じで関数内で扱えるし。
とクラス化を推進してみるテスト
278 :
nobodyさん:02/12/09 14:44 ID:7JN9kr7j
jpgraphで日本語扱う方法ありませんか?
動作環境
FreeBSD 4.4
PHP 4.2.3
gd 2.0 or higher
279 :
nobodyさん:02/12/09 15:55 ID:W+Y68UCp
ttp://www.softinn.jp/doc/lib/index.html このページにあるライブラリの「メール受信・分解」というクラスを使いたいんですが、
使い方が全く解りません。
クラスとか、オブジェクト指向?ってのが、全く解らないんです。
この「メール受信・分解」クラスを使って、
メールを読み込むには、どのようなコードを書いたら良いんでしょうか?
もしよろしければ、サンプルコードを教えてもらえれば幸いです。
280 :
nobodyさん:02/12/12 10:24 ID:YConQHPT
メモリを節約したいと思ってます。
$_SESSION に登録する変数の内容が小さいほうが、ウェブサーバのメモリの節約になりますか。
そら$_SESSIONに限らず何でも変数のサイズが小さい方がメモリ食わんわな。
>>279 まずクラスの使い方を勉強するなり質問するなりしたほうが良いのでは?
283 :
nobodyさん:02/12/12 13:02 ID:qs26Iqx3
PHP初心者です。質問させてください。
当方、Java畑出身なのですが、
a.php→b.php
という感じで別のPHPプログラムに、オブジェクト渡しを行う事は可能でしょうか?
a.phpで使われたクラスのインスタンスをb.phpに渡したいのですが。
MVC設計が染み付いてしまって・・・。
すいませんが、教えてください。m(_)m
>>283 includeじゃだめ?
b.php内で
include "a.php";
でいけるとおもた。
286 :
283:02/12/12 16:21 ID:qs26Iqx3
>>284-285 レスありがとうございます。
こちらの思い描いてたやりかたは
index.html→a.phpに変数$valueをpost
a.php内部でclass hogeをnewして、オブジェクト$fooを生成。
$foo->setValue($value)とかして、値をセット。
a.php→b.phpに$foo(値のセットされた)を渡す。
b.phpで処理して動的にhtmlを生成
というものだったのですが。
includeを使うということは
index.html→b.php(include a.php)へpost
というイメージになるのでしょうか?
何がやりたかったかと言うと、
b.phpでヒアドキュメント形式でhtmlにより近い形で表示部のみ書いておき。
前段階のロジック処理部をa.phpで済ませ、表示要件のみをb.phpへ渡す
といった事ができないかなぁ、と思いまして。
a.phpの内部処理によって、b.phpとc.php(bと同じくview担当)のどちらに
オブジェクトを渡すかを、判断させたりできたら良いなと。
htmlソースの中に<?php〜?>を埋め込むのを極力避けてみたかったんです。
デザイナーさんから貰ったHTMLソースの先頭と末尾にチョコっとつけたし、
変数の相当する部分に、渡されたオブジェクトから値をgetする処理を
書き込むだけですめば理想かな・・・などど。
現実には、こう簡単にいかないのは重々解っておりますが、近い形が出来ないかと
思いまして、質問させていただきました。
なにぶん、PHPはまだ触れ始めたばかりなので、長文乱文、失礼しました。
>>286 if($value){include "b.php";}
else{include "c.php";}
>>286 とするとテンプレートを採用しているBBSみたいなのを実装したいって事?
つか、無理にOOPでやらなくても良いと思われ。
ちなみに漏れはテンプレートタイプのBBSを作ろうとしてるけど未だに仕様を固められない。
1. デザインファイルを別のHTMLFileとして生成し特定のキーワードを入れておく
で、そのHTMLFileをPHPに放り込んでキーワードを変数や処理に置き換えて新たに動的生成用のPHPを作る。
2. HTMLとPHPが混在している(まぁ普通そうだわな)FileでできるだけPHPを見えないようにしたものを作る。
のどっちにしようかで迷ってる。
前者のがデザイナに喜ばれるけど性に合わないし(なんか無駄な冗長っぽくて嫌)、後者はプログラム嫌いなデザイナが居ると
ヒステリーパニックが発生する。
まぁ1. だと常に動的生成するのと一端処理して静的なFileとして書き出してそれを送るって言う二通りの手段がとれる。
が、デザインを変更する際に動的は負荷がかかるし、静的はヒューマンエラーの恐れがあるしなぁ・・・
程よい中間点は無い物か。
289 :
nobodyさん:02/12/12 20:40 ID:LCTnjWgM
意識する必要はないと思うよ。漏れは30kbくらいの文字列をsessionでやりとりしてる。
百人同時にアクセスしたところでせいぜい3M。安いもんだろ。
>>289 参考サンクス。
なんつーか、Sourceを1文字2文字でも小さくすることに悦びを感じる性質なもんでして(^^;;;
それさえなけりゃ既に前者で・・・
縮小最適化まんせー!
> a.php→b.php
> という感じで別のPHPプログラムに、オブジェクト渡しを行う事は可能でしょうか?
> a.phpで使われたクラスのインスタンスをb.phpに渡したいのですが。
include を使わないなら・・
_SESSION にオブジェクトのインスタンスを格納出来るけど・・・そういう事ではなくて?
>>291 オブジェクトのセッションはれたんだ・・・
無知鬱吊ってきま。
・・・の前に先生んとこいってこよ。
293 :
nobodyさん:02/12/13 02:24 ID:g6K/HTZ1
PHPマニュアルのロゴに雪が積もったのはいつからですか?
295 :
283:02/12/13 11:42 ID:eyNFb0nZ
>>287 >>288 >>291 レスありがとうございましたー。
やはりPHP風の思想が理解できてなかったようで、みなさんのレスで目から鱗
がポロポロでした。
今まで、OOPのみの世界にいたので、どうも頭が凝り固まっていた様です。
文法や記号等は、調べれば一発なのですが、思想となると、なかなか本読んでも
理解しにくいですね・・・修行せねば。
ありがとうございました。また何かあればよろしくおねがいします。
PHPでオブジェクトを使うメリットは?
>>296 それは他の言語でのオブジェクトを使うメリットと合致すると思うがどうか。
>>297 おそらく
>>296の言いたかったことは、PHPでオブジェクトを本当に有効に
使えるだけの仕組みが存在するのか、という事ではないかと。
PHPはあくまでオブジェクトに対応した、という形で出来ているので
言語仕様からオブジェクトありき、で設計された他の言語と比べて
オブジェクトを使うメリットは必ずしも一致しない、というのが今の感想です。
だからといって、良い悪いじゃなくて、思想がそもそも違うと言う事で・・・。
漠然とした質問なのですが
PHPとPerlならどちらが将来性がありますか?
また、WEB製作・運営に有利なのでしょうか?
>>229 将来性があるのはPHPで有利なのもPHP。
でもなPerlを知ることも大事だと思うぞ。
まずしっかりPerlやってみ。それからPHPやってみ。
アホくさくて、もうPerlには戻れなくなるから。(w
Perlにハマッチャー仕方ないけどな。これでいいか?
301 :
nobodyさん:02/12/14 00:42 ID:p2nwe6Xb
test
302 :
nobodyさん:02/12/14 02:49 ID:6HjHDV03
偶然、拡張子がなくてもphpファイルが表示されることに気づきますた。
これはデフォルトの設定なのでしょうか?
またApacheの設定のおかげなのか、
PHPの設定のおかげなのか、
どっちでしょうか?
俺のおかげだ、ひれ伏せ。
>>298 そういう意味ではJSPへGoって感じですな。
漏れの場合だとDBへの接続処理等を一まとめにする等のそんなにきちんとしてない使い方しかしてなかったら
気付かなかった。
まぁOOPを活かしたいならPHPは向かないわな。
もっとも楽をするために簡易OOPを使えるのがPHPだとは思うが。
# 個人的にはOOPを活かす為のプログラムってのは主従逆転だと思ってたりするが。
>> 299
将来性についてはどっちにしろ微妙だと思われ。
現状は戦国時代だから。
しくみや言語をごっちゃにして言うなら、ASP、PHP、JSP、Perl、C等様々な選択肢がある。
正直、これが一番ってのは判らない。
で、有利不利だけど何を作り、どれくらいの規模になるかによる。
殆どどこでも動かしたいのならPerl
環境が整ってるならPHP、ASP、JSP
ひたすら速度を求めたり、なんでもしたかったらC
などいろんな条件があるからな。(条件は他にももっと沢山あるが)
なんにしろ、広範な知識をつけるために色々遊んだほうが有利になると思われ。
# 仕事の有利不利は使用言語の有利不利ではなく製作者の能力に依存する。
>>304 正しくはPHP以外が戦国時代だな。(w
>>305 Server Side Languageの戦国時代な訳だが。
>>304 OOPってのはOOAやOODを生かすためにあるものなので。
OOA・OODの否定はOO自体の否定な訳で。
書きなぐり個人作業ではまかない切れない世界から出てきた手法ですから。
道具を状況に応じて上手く使うってだけの問題かと思われ。
ソースの可読性と冗長性を計りにかけりゃ、可読性がめっぽう重いのがOOの世界。
これ以上はスレ違いにつきsage
310 :
nobodyさん:02/12/16 01:36 ID:hCx9IPwF
携帯とPCでの振り分けをしたいのですがうまくいきません。
最初
header("Location: ez.php");
exit;
↑にしたらezwebで動いてくれませんでした。
(これ自体が間違ってますか?)
そこで↓のようにしてみたのですがやっぱり上手く動きません。
<?
$visitor_host = gethostbyaddr($REMOTE_ADDR);
$visitor_refe = $HTTP_REFERER;
$visitor_host= explode( "/", $REMOTE_ADDR );
switch( $visitor_host[0] ){
case "ezweb" : $file = "ez.php"; break;
default : $file = "index.php"; break;
}
include $file;
?>
申し訳ありませんがどなたか力を貸してください…。
記念カキコ
ezwebを扱ったことないけど、暇なのでカキコ。
$REMOTE_ADDRにちゃんと値入ってる?
User-Agent使わないのは何故?
Locationは
http://で始めるのが常識。
313 :
310:02/12/16 03:12 ID:???
お返事ありがとうございます。
今FTPがつながらないのでまた報告しに来ますね。
>Locationは
http://で始めるのが常識。
そうなんですか…。
今までHTMLしか書いたことがなくてPHPが使える鯖に移って
はじめたばっかりなんです…。
というかプログラム自体がはじめてでさっぱりです。
>User-Agent使わないのは何故?
USER_AGENTは偽装できちゃうんでPCからでも見れちゃうからです。
ちなみに今はこれを使っています。
$user_agent= explode( "/", $_SERVER['HTTP_USER_AGENT']);
switch( $user_agent[0] ){
case "DoCoMo" : include("k.php"); exit;
case "L-mode" : include("k.php"); exit;
case "ASTEL" : include("k.php"); exit;
case "UP.Browser" : include("k.php"); exit;
case "PDXGW" : include("k.php"); exit;
case "J-PHONE" : include("k.php"); exit;
}
これなら問題なく動いているんですが偽装をはじきたかったので…
include("k.php")ってなってるんでLocationもファイル名だけでいいんだと思ってました。
314 :
310:02/12/16 03:15 ID:???
k.phpはテスト用ファイルでした…。
各社対応phpファイルに振り分けにしてます。
"text/x-hdml; charset=Shift_JIS hdml"
316 :
名無しさん:02/12/16 20:09 ID:eEnVcco/
すいません
マルチバイトで正規表現の.←
これって日本語一文字(2byte)を意味するのでしょうか、
それとも .. で一文字?
317 :
310:02/12/16 21:24 ID:???
319 :
yani ◆saNSktNEdQ :02/12/16 22:28 ID:8G3Bnajs
wget の FTP mirroring がLIST発酵するところでこけるもんだから、
(根助ならうまくいくもんだから)FTPサーバのほうが設定変えたのかと思って自作スクリプトを
書きはじめて、途中で一応RFCのFTPのコマンド一覧くらい見とくべえと思って
RFC読んでみたらPASVなんてコマンドがあるんで、何気無しにpassive FTPオプション
つけてwget起動したら、スカっとうまく逝ってヤンの。
ルータの設定きつくしたの忘れてたぜ。
しかし、LISTなんてコマンドをFTPサーバからのコネクションで実装しているとは. RFC恐るべし。
320 :
310:02/12/16 23:25 ID:???
>>318さん
かさねがさねありがとうございます。
プログラムは全くの初心者なので実は読んでもあんまり意味はわからなかったんですが…。
これからがんばって勉強します。
321 :
nobodyさん:02/12/17 16:01 ID:luHNSdPO
すいません、教えてください
PHPで配列の配列をつくり、ネストしたループでどんどん値を取り出す場合
どんな書き方が一般的ですか?
>>321 多次元配列?
一番安直なやり方で
$a = array(/*メンドイから略*/);
$b = array(/*同上*/);
for ($i = 0;$i <= count($a);$i++){
for ($i = 0;$i <= count($b);$i++)){
/*処理*/
}
}
で、どうよ?
323 :
322:02/12/17 20:25 ID:???
上の2行忘れてw
多次元配列として生成してねぇw
てか、i を両方で使っちゃマズイだろ(w
$hoge[$i][$j]
326 :
nobodyさん:02/12/18 21:55 ID:cw9jSdt5
PHPであるディレクトリにあるファイルの一覧を取得するのはどうしたらいいでしょうか?
リファレンスにあるglob()は
Fatal error: Call to undefined function: glob()
とのことです。
327 :
nobodyさん:02/12/18 22:05 ID:FF8U3rzW
329 :
nobodyさん:02/12/18 22:16 ID:FF8U3rzW
330 :
nobodyさん:02/12/18 22:16 ID:3yzKjqMG
332 :
nobodyさん:02/12/19 01:00 ID:XTsygYiy
ファイルのアップロード(基本的なヤツ)にアップできるファイルの制限を付けるのって
$image_type = array("image/gif","image/jpeg");
でいいんっすか?
教えてくださいませ。
$st="ギコ モナー";
echo "<FORM>";
echo "<input type=text value=".$st.">";
echo "</FORM>";
と、変数にスペースやタブが入っていると、テキストボックスでは
スペース以降が消えてギコだけになってしまいます。
スペースが入ったまま、全体を表示させる方法をお教えください。
雑談だが、自分で組んだスクリプトをphp3でも動くようにしようと思ったが大変だ。
全然動かん。大幅な改修が必要な予感。あらためてphp4の便利さがわかった。
>>333 echo "<input type=text value='".$st."'>";
>>332 jpegのMIMEタイプは数種類ある。
IEはimage/pjpegを送る。
336 :
333:02/12/19 09:33 ID:???
>>334 > echo "<input type=text value='".$st."'>";
うまくいきました。多謝です。
'と"は同じモノに解釈されると思いこんでました……。
337 :
nobodyさん:02/12/19 12:45 ID:4OgtOoSu
>>336 ちょっと見る場所が違う。
$st=' mona '; だと
value=".$st." -> value= mona
value='".$st."' -> value=' mona '
「こんなPHPってありますか?」スレはどこでしょう・・・
>>339 こんなcgiスレで「…なphp」と聞けばよい。
>>332 MIMEも拡張子も当てにならない。
画像に限ればGetImageSize()で画像種別を得る。
342 :
nobodyさん:03/01/07 00:49 ID:28f9Hhaj
age
>>338 >$st=' mona '; だと
>value=".$st." -> value= mona
ずっと気になってたんだけど、
>value=".$st."
の$stの前にある文字列連結の演算子(.)は何故必要なんですか?
無くてもまったく平気ですが・・
344 :
nobodyさん:03/01/12 17:38 ID:bYSvbPAu
ランダムバナー作りたいんですが、data.txtに書いてあるバナーURL、URL、サイト名などを
PHP内で$bnr,$url,$siteという風に認識させるにはどうすればいいんでしょうか。
http://search.net-newbie.com/php/ このあたりから必要そうな関数を探したらいかが?
仮にdata.txtが
バナーURL,URL,サイト名
バナーURL,URL,サイト名
って感じのフォーマットだったと仮定するならば
fopenでファイルを開いて
fgetsあたりで一行ごとにデータを読んで
strtokあたりで,をトークンとして文字列を分解して変数なり配列に入れる。と。
あぁ、ちゃんとファイルは閉じろよ?
>>345 フォーマットは
>>346さんが書いているような感じです。
>>346 具体的に教えてくださってどうもありがとうございます。
たとえばこんな感じでしょうか?
$fp = fopen ("./data.txt","r");
while($buffer = fgets($fp, 4096)){
list($bnr,$url,$site) = explode(",", $buffer);
}
fclose($fp);
何かおかしいところがあればご教授ください。(explodeの使い方違ってるかも…
>>347 今日び珍しいな。
キチンと自分で組んでから質問する奴は。
おじさん嬉しいぞ。
ところでそれ動かした?
まずはそれから。
>>348の言う通りfgetcsvを使うのも手だが勉強の為にfgetsを使うのも手。
350 :
344:03/01/13 02:28 ID:???
一応上記のソースで動かしてみましたが、一番最初のデータしか
入ってきてないようでした。そんなわけで
list($bnr,$url,$site) = explode(",", $buffer);
ここの$bnr,$url,$siteを配列にしてみたらうまくできました。
付け加えたソースはこれ。
srand((double)microtime()*1000000);
$num = array_rand($bnr);
echo ("$bnr[$num]\n");
そしてもうひとつ問題があって、data.txtに相互のデータを追加して、
相互だったらバナー表示という風にしたいんです。
listのところでif文を入れたいのですが、具体的にどうしたらいいか
わかりません。ご教授いただけると嬉しいです。
ぱっと思いつくのは
data.txt
内でケツにフラグをつけるってとこだがどうよ?
バナー, URI, site, flg
ってな感じに。
で、flgがあれば表示にしてなければ表示しないとか。
あー相互ってのは相互Linkの事だよね?
352 :
344:03/01/13 10:15 ID:NmVahH2Q
>>351 相互リンクのフラグはdata.txt内に入ってます。
常にバナーを表示していたいので、データを取り出すときに
相互リンクだったらデータ格納という感じにしたいのですが。
list〜のあとにバッファを開放してやればいいんでしょうか?
ifなりなんなりで判別したら?
ていうか何をしたいのかがいまいちわからん。
354 :
nobodyさん:03/01/14 15:59 ID:nziy2bwN
かなり初歩的ですいません。
PHP4.3.0をいれて、ApacheをいれてPHPの勉強をはじめました。
で、色々と初歩的なプログラムを作ってみてたんですが
どうしても、POSTができません。
Method Not Allowed となります。
googleで検索して、どこかの設定を変えないとだめだという
のは見つけたんですが、具体的にどこをどうかえていいのやら・・・
356 :
354:03/01/14 16:46 ID:nziy2bwN
すいません、window2000 Proです。
358 :
354:03/01/14 17:29 ID:nziy2bwN
>>357 ありがとうございます。
しかしそれをみても、わからない・・・
The requested method POST is not allowed for the URL ***.php3
となってます。
もうちょっと勉強します。
>>358 PHP-4.3.0なのにphp3??
*.php3→*.phpにすればなおるかも。
360 :
nobodyさん:03/01/15 05:20 ID:RBRicbNg
PHPとSSIを一緒に動かすにはどうしたらいいですか?
教えて下さい
>>360 httpd.confをちゃんと書け。以上。
362 :
nobodyさん:03/01/15 07:05 ID:RBRicbNg
調べたんですけど意味が分からないんです・・・
363 :
362:03/01/15 08:03 ID:RBRicbNg
例えば*.phpを鯖にあげて、その*.phpの中にssiを埋め込みたい
って事です
アドバイスおながいします
364 :
126:03/01/15 08:10 ID:pIr+HNI+
>>363 phpでやった方が高機能だと思うのだけれど。
367 :
nobodyさん:03/01/15 08:42 ID:4Y/f41Yb
使いたいスクリプトがperl+SSIしかないんです。PHPの知識無いので…すいません
ちょっとまて...perlかYO!!
370 :
ほげ:03/01/15 11:57 ID:UyCbGV3A
>>362 いみわからんが。とりあえず、PHPで書いたページにPerlのアクセスログをのせたいと
いう過程でよいか?
371 :
nobodyさん:03/01/15 12:34 ID:lod7zukU
文字コードについて教えて下さい。
通常、UNIX系OS+Apache+PHPモジュール+MySQLという環境での2バイト文字は、
EUC-JPで記述して、表示もEUC-JPですよね?
携帯でも見られるページがつくりたいので、表示はSJISにしたいのですが、
そのときは、どうするのが最良なのでしょうか?
PHPの記述も、MySQLに格納する文字データも全てEUC-JPに統一して、
表示の際に、表示するページをバッファしてSJISに変換するのでしょうか?
それとも、プログラム内も表示も全てSJISに統一する方法があるのでしょうか?
安価な共有レンタルサーバで運用することを前提に考えていて、
PHPのバージョンは国際化対応(4.0.4以上でしたっけ??)を前提に考えています。
よろしくご教授ねがいますm(..)mペコ
373 :
山崎渉:03/01/15 13:30 ID:???
(^^)
374 :
nobodyさん:03/01/15 16:22 ID:H6Vl99xR
>>370 そうです
何か方法はありますか?スレ違いだったらすみません
>>374 PHPからPerlのプログラムを実行すれば良いだけでは?
377 :
nobodyさん:03/01/15 17:26 ID:RBRicbNg
>>373 unico includerのPHP版を使おう。
for($i=1;$i<=3;$i++){
これで1〜3件の記事を表示させることはできたのですが
4〜10件の記事を表示させることが出来ません。
for($i=4;$i<=10;$i++){
だと1〜10件表示されてしまいます。
どうすればいいんでしょうか?
また 10〜4と逆に表示させるにはどうすればよいでしょうか?
381 :
380:03/01/16 00:58 ID:OzytJsyY
あげ忘れました… お願いします。
382 :
380:03/01/16 01:17 ID:OzytJsyY
すいません。
for($i=4;$i<=10;$i++){
だと4〜10件表示されてしまいます。
の間違いでした。
>>380 >for($i=4;$i<=10;$i++){だと1〜10件表示されてしまいます。
forブロックの中身をまともに書いているならあり得ません。
晒すべし。
後、for($i = 9;$i > 4;$i--)。
384 :
380:03/01/16 01:18 ID:???
たびたびすいません…
for($i=4;$i<=10;$i++){
だと1〜7件表示されてしまいます。
の間違いでした。
for($i=1;$i<=3;$i++){
これで1〜3件の記事を表示させることはできたのですが
4〜10件の記事を表示させることが出来ません。
for($i=4;$i<=10;$i++){
だと4〜10件表示されてしまいます。
でいいのか?
答えはお前何言ってんの?だけど。
386 :
380:03/01/16 01:22 ID:???
>>383 間抜けなことをしてる間にお返事ありがとうございます。
forブロックの中身…というのも実はよくわからないのですが
ここまででいいのかな…?
for($i=1;$i<=10;$++){
$line = fgets($fp, 8192);
if (feof($fp)){break;}
$tmpline = explode('<>',$line);
unset($log,$data);
while($key = array_shift($tmpline)){
$log[$key] = array_shift($tmpline);
}
何度訂正が入るか気になってF5してるのはオレだけじゃないはずだ
388 :
380:03/01/16 01:24 ID:???
>>385 書き間違えてる!とてんぱって さらにわけわかんないこと書きました。
ほんとすいません。
1〜7が表示されてしまうの間違いです。
389 :
380:03/01/16 01:25 ID:???
>>387 わたしは書くたびに突っ込みが入っててむちゃむちゃ動悸が早くなりました。
>>386 どこにも$iが使われてないんだけれど。
もう一度フローチャートなり何なりを書いて頭の整理をすることを激しくお勧めするけど。
俺は寝る。
391 :
380:03/01/16 01:32 ID:???
>>390 うーん全部書くとこんな感じなんですけど
これ自体がおかしいってことですかね…
<?
$logfile = 'xxx.dat';
$fp = fopen ($logfile, "r");
for($i=1;$i<=3;$i++){
$line = fgets($fp, 8192);
if (feof($fp)){break;}
$tmpline = explode('<>',$line);
unset($log,$data);
while($key = array_shift($tmpline)){
$log[$key] = array_shift($tmpline);
}
if($log[date]){
list($date[tm_mon], $date[tm_mday], $date[tm_hour], $date[tm_min]) = explode(',',$log[date]);
}else{
$date = localtime($log[Write_Time],1);
}
$log[date] = sprintf("%02d/%02d %02d:%02d", $date[tm_mon] +1, $date[tm_mday], $date[tm_hour], $date[tm_min]);
echo "$log[date]<br>\n";
echo "$log[note]<hr>\n";
}
fclose ($fp);
?>
おやすみなさい。
世に出てるfor文をいろいろまねしてみたほうがいい。
答えはこの板の住人ほぼ全員が答えられるだろうけど
それではきみはまたすぐにつまづくことになる。
マニュアル読め!ってのはややオニなので
入門書を買うことをすすめます。
3000円より無駄にハマっている時間のほうがもったいないです。
393 :
380:03/01/16 01:51 ID:???
>>392 やさしいお返事ありがとうございます。
ぶっちゃけ
ttp://www.php.net/manual/ja/ こことか見ても書いてある意味がわからないです。
PHPに触れるまで他のプログラムも触ったことがなかったし(HTMLオンリーで)
PHPは自分で全部書けるようになろうとは思ってないんです…。
自分でもわかるようになればいいなとは思うんですけど
勉強しないとできないならば1件から10件の表示でいいや…と思うようなへたれです。
ごめんなさい。
つきあってくれてどうもでした。
394 :
ほげ:03/01/16 09:42 ID:EjAVyOLA
>>362 おそくなってすまんですたぃ。
えっと。実行させるだけなら簡単
passthru ("./hoge/hoge.pl" );
でできるとおもうけど。
環境変数は渡らない。
だーかーらららん
Remote_AddrとHTTP_USER_AGENTをつけたいのであれば
putenv("REMOTE_ADDR=" . getenv("REMOTE_ADDR"));
putenv("HTTP_USER_AGENT=".getenv("HTTP_USER_AGENT"));
をつけると良いヨイ
結果。
putenv("REMOTE_ADDR=" . getenv("REMOTE_ADDR"));
putenv("HTTP_USER_AGENT=".getenv("HTTP_USER_AGENT"));
passthru ("./hoge/hoge.pl" );//相対パスで。
でいけると思う。まちがってたら。ゴメシ
>>380 for($1=4;$1<=10;$1++){echo("こんばんわ");}
for($1=1;$1<=7;$1++){echo("こんばんわ");}
は同じ動きをします
ともに7回「こんばんわ」と表示します
「始まりの値」をいくつに設定しようと「終わりの値」との差分の回数だけ繰り返し処理をします
forループの変数に"i","j"を使うのはなぜだろう。
後付けの理由かも知れないが、integerやindexの意味があるらしいよ。
個人的には、i,j,k.. や l,m,n、x,y,zも良く使うなぁ。
>>397 Fortranがi以降のアルファベットで始まる変数を整数と認識するからです。
#あれ?一文字の場合だっけ?
iがint(整数型)の宣言しなくても 整数型で初期化されてたって故事でしょ?
微妙に年末どこかのスレで話題になっていた記憶が……
401 :
nobodyさん:03/01/21 12:11 ID:4zwnocSK
すいません、初歩的な質問かと思いますがお助け下さい。
環境は RedHat7.3+Apache1.3.27+PHP4.3.0 なんですが
PHP4.2.3等で動いていたソースが警告を受けるようになってしまいました。
ソース先頭で
$name_ = $_REQUEST['name'];
として、グローバル変数をローカル変数に取得して、操作しているのですが
Notice: Undefined indexのエラーが出力されるようになってしまいました。
4.2.3で動作していたソースを4.3.0にそのまま持ってきただけなのですが・・・。
どこか設定をいじらなければいけないのでしょうか?すいませんが、よろしくお願いします。
>>401 Noticeを表示しないように設定すればいい。
>>402 あ、それで良かったんですね・・・。ありがとうございました。
404 :
nobodyさん:03/01/21 12:59 ID:PC/WMbRD
php 4.0.6 Win2000 です。
入力した text の値(value)を POST送信しないで取得する方法をご教示ください。
406 :
nobodyさん:03/01/21 14:22 ID:xJNj/yik
xmlの使い方がいまいちわかりません。
シーラカンス本見てもいまいち・・・
どうやってデータ取り出すんでしょう?
本の通りにやると多次元配列に入ってしまうのですが
私の頭では二次元くらいまでしかわかりません
おたすけ
407 :
nobodyさん:03/01/21 15:08 ID:Y93UfzJD
php 4.2.3 windows98seです。
フォームからPOST送信したデータを$_POST["name属性"]で参照できる
と書いてありましたが、どうしてもうまく参照することができないみたいです。
よければアドバイスお願いします。
>>405 マルチに回答するときは質問しても無駄。
ずばり答えを書かないと無視されるよ(藁
409 :
408:03/01/21 16:34 ID:???
×マルチに回答するときは質問しても無駄。
○マルチに回答するときは質問形で書いても無駄。
「GETを使ってください」とか書かないと。
410 :
hmk:03/01/23 00:27 ID:1086D/Be
>>407 そんな質問のしかたじゃ誰も答えられません。状況がみえてきません。
ソースなりエラーメッセージなりを晒せ。
------
[PR] w-inds慶太の○○飲みたいプログラマ hmk をよろしく
411 :
ほげ:03/01/23 10:34 ID:Vttepi7g
>407
.htaccessが使えるなら、
ほにゃららっと呪文を書いておけば、前バージョンと同じ方法で
ゲトでけるよ。
同じ方法とは・・・(略)
$value = $_POST["hoge"];
if ($value > 600){
なんちゃらかんちゃら;
}
ユーザーから入力された文字列をチェックして、
指定したサイズを越えるようなら末尾をカット
したいんですが、そういう関数を見付けられま
せんでした。どうしたら実現できますか?
415 :
nobodyさん:03/01/23 20:13 ID:bN+QNHMW
416 :
nobodyさん:03/01/25 19:54 ID:8WYgoXD5
Perlからphpに乗り換えようと思っているのですけど、
phpで圧縮通信はどのように行ってるのでしょうか?
圧縮通信?
gzip圧縮してブラウザに転送するやつのことなら、あるよ。
マニュアルでいうと「出力制御関数」のあたり。
419 :
417:03/01/25 20:44 ID:???
>>418 それのことか。
C同様、popenだね。閉じるときはpclose。
420 :
416:03/01/25 21:03 ID:???
>>418 string ob_gzhandler ( string buffer [, int mode])
でいいのでしょうか?
質問させてください。
PHPに触れてみようと思い、レッツPHP! のぁぷろだをローカルPCに設置してみました。
ソースは一切修正せずに使ってみたところ、以下の問題が起こりました。
1. サイズが表示されない。そもそもログにサイズが書き込まれていない。
2. ファイルの削除ができない。ただしログから該当行は削除される。
ソースを修正していない以上、環境の問題だと思うのですが、
まず何から当たってみるべきでしょうか?
ローカルの環境は、FreeBSD 4-stable + Apache 2.0.44 + PHP 4.2.3 です。
>>421 PHPの文法から学べ。
アップローダなんぞ10年早い。
>>422 あれまごめんなさい。
とりあえず、サイズが書き込まれないのは、該当する $upfile_size という変数に
値を入力する処理が抜けているためであるようです、多分。
# $upfile_size という変数自体、検索しても1箇所(=ログの先頭行を作るところ)にしか現れないし
削除されないのは、その前の if(file_exists(... の条件で既に引っかかっていて、
unlink のところまで処理が来ていないためのようです、多分。
ということでそもそも環境が正しいのかどうかは判らずじまいですが、
忠告通り文法学んでから自作することにします。お邪魔しました。
>>424 ありがとございます。
間違ったこと書いてしまっていたのが解ったので今のうちに修正。
> $upfile_size という変数
ソースの方で、<input type="file" name="upfile" ...
となっているので、$upfile_size でいーんですね。
で、私の環境は 4.2.3 (>4.2.0)なのでそのままではこれが使えず、
その代わりに $_FILES['upfile']['size'] を使えと。
ふーん、PHP おもろいっスね。
あげとく
427 :
nobodyさん:03/01/29 15:42 ID:M6udjUCY
すいません、質問させてください。
PHPを使ってリダイレクト処理を行うにはどのようにすれば良いのでしょうか?
JAVAでのresponse.sendRedirectのようなものがあればと思うのですが
ご存知の方、おられまいたら、なにとぞご教授下さい。
428 :
nobodyさん:03/01/29 15:59 ID:SzV4e5aw
>>427 header("Location:
http://www.php.net/"); /* ブラウザをPHP Web サイトにリダイレクトする */
exit; /* リダイレクトを行う際に以下のコードが実行されないようにする */
最近PHP始めたのですが、私の回りではみんなemacsとか秀丸エディタとかで開発してるんですけど
VBみたいなツールはないんですか?ずっとVBだったのでなんか過去に戻ったような気分なんです。
それともエディタで開発してるのはうちの会社だけですか?
>>431 エディタのカラーリング機能を使え。
あるいは eclipse か zend。
eclipse はまだ仕事にはきついぞ。
>>432 zendはわかるけどeclipsってJAVAじゃないの?
>>433 ちゃんと情報読みな。プラグインでどんな言語でも使える。
そういや昔そんな名前のミッドシップカーがあったよね。
今も手に入るのかな?
>>435 ジャントジョウホーオミナー
みたいな?
デトマソパンティラっちゅー外車のこつかい?
438 :
:03/02/01 13:02 ID:???
すいません。
初心者なので教えて下さい。
マニュアルやリファレンス関係を探したのですが、見つけられなかったのです。
SQL実行失敗で:Column count doesn't match value count at row 11と出たんですが
これって11個カラムが多すぎるという事で良いんですよね? 辞書引いて多分そうだと思ったのですが…
ちなみに言うとprimary key でtext に設定して、合計で33個あるんですが、やっぱ多すぎですか?
MySQLのエラーみたいだね。
insert into テーブル名 ( 項目名リスト ) values ( 値リスト ) としたとき、
項目名リストの数と 値リストの数が一致してないんじゃないかな。
MySQLは使ったことないんで間違ってたらスマソ
>>438 11行目(row)において、カラムの数と値の数が一致していません。
441 :
:03/02/01 14:51 ID:???
どうもご親切にありがとうございました。そういう事でしたか。
英和辞典が古いせいもあるし、知識がないので全然見当違いの事を言ってました。
442 :
nobodyさん:03/02/01 15:24 ID:h8yp1rmm
表示しているURLを取得して、
このURLは「aaaaaaaaaaa」とHTML出力、
それ以外のURLは「bbbbbbbbbbb」と出力したい。
どうすんの?
>>442 >表示しているURLを取得して、
詳しく解説。
>このURLは「aaaaaaaaaaa」とHTML出力、
>それ以外のURLは「bbbbbbbbbbb」と出力したい。
解説いらないのか・・・
>>444 めんどいからな。
if(konoURL == aruURL)
print("aaaaaaaaaaa");
else
print("bbbbbbbbbbbbb");
と好意的に解釈した。
ブラウザのアドレス欄にあるURLの取得。
例えば、URLに「hogehoge」と含まれていたら、
HTMLで「HogeHoge Homepage」とか出力したいのですよ。
含まれていなかったら「No HogeHoge Homepage」とかな。
>>447 でも、PHPが呼び出されるときのURLは間違いなく〜.phpだ。
449 :
nobodyさん:03/02/01 15:54 ID:LEn5b6Sa
450 :
の:03/02/01 18:37 ID:/eR4kJXs
>>447 ほれ
$url = $_SERVER["SERVER_NAME"].$_SERVER["REQUEST_URI"];
echo (preg_match("/hogehoge/", $url)?"":"No ")."HogeHoge Homepage";
--
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
Webサーバの機能。
ErrorDocumentで検索すれば設定の仕方は分かるよ。
2chでもおもしろいエラー画面を紹介しあってるスレがあったと思ったんだが、
ぱっと見たところ無くなったみたいだなぁ。
てか確実にスレ違いって分かるだろ(w くだ質で聞こうと思わなかったのか?
>エラーが出るようにできないでしょうか
出るようになってるっしょ、普通。
リンクを押したらイベント発生で、URLをスクリプトに渡して
URL先のファイルを読んでヘッダみて404なり403なりを
判断するとかそういうことっスか?
454 :
nobodyさん:03/02/02 06:06 ID:nv4brzgK
455 :
447:03/02/02 10:26 ID:???
>>450 あなた神!神ついでに、
「hoge」というURLが含まれていたら「aaaaaaaa」と、
「unko」と含まれていたら「bbbbbbb」と、
何も含まれていなかったら「ccccccc」と出力する場合を教えてください。
457 :
nobodyさん:03/02/07 12:25 ID:wF6GSoid
index.phpにnews.logをincludeさせて表示させています。
WWWCなど特定の条件で見ている人にはに更新日付のみ表示させたいのですがうまくいきません。
<?
if(ereg("WWWC", $HTTP_USER_AGENT )){
$lastmod = filemtime(__FILE__);
echo "最終更新日 " . gmdate("Y/m/d H:i:s (D)", $lastmod + 9*3600) . "";
exit;
}
?>
<html>〜
<?
$logfile = 'news.log';
〜
>
〜<html>
index.phpが更新されると更新日付も新しくなるのですが
news.logが更新されても更新日付は変わりません。
http://www.php.net/manual/ja/function.clearstatcache.php このキャッシュのせいなのかそれともincludeする分は反映されないのでしょうか。
>>457 なぜincludeするファイルの更新時間を取得しないの。
>>458 そうするとindex.phpだけ更新した時の更新時刻が取得できないと思うんですが…
どちらか新しい方を選ぶとかしたらいいということでしょうか。
460 :
nobodyさん:03/02/07 21:10 ID:SVsAOO1i
例えば登録型リンク集みたいなやつでいいんですが、同じ処理をする場合、
次のどれが一番サーバに負担少ないでしょうか?
1. perl単独
2. perl + データベース(MySQL)
3. PHP
4. PHP + データベース(MySQL)
>>462 お返事ありがとうございます。
ということは結局index.phpとnew.logの両方の更新日付をとるしか方法がないということでしょうか。
キャッシュは関係なくてincludeする分は反映されないということなのかなあ…
464 :
の:03/02/08 02:21 ID:cJt+BkwC
> キャッシュは関係なくてincludeする分は反映されないということなのかなあ…
ファイルになったキャッシュなんてスクリプトからは見えないよ(そんな
の無いし)。両方の参照しないとダメ。
それと時間情報だけ返したいなら、$HTTP_USER_AGENT なんて参照せずに
$_SERVER["REQUEST_METHOD"]=="HEAD" で判定する方がプロトコルに沿っ
ていて吉。
--
http://mysite.ddo.jp/
PHPを始めたいと思っているのですが、ネット上の解説を見ると皆ApacheかIISをインストールして
モジュールを設定して・・・という様な少々大げさなセッティング方法しかみつかりません。
テキストを吐き出す程度の機能でよいのですが、なにかいい方法ないですか?
>>466 Webサーバー機能が要らない、という意味だったのです。すみません。
でもphp.exe使えばいい(というかdllやiniだけじゃなくてexeファイルが存在するという事)
が分かったです。ありがとう。これでバッチリです。
Apache2.0.44とphp-4.3.0のインストールに失敗して、
どうしたらいいか路頭に迷ってたどり着いたら、
モロに
>>32 氏の事例でした。
32氏と戊寅氏にThanks.
RedHat逝ってよしいいぃぃぃ〜〜〜〜
468の追記
同じくRedHat7.2だったですが、
うちはどちらもRPM使わずソースからいきました。
会社の環境がLinuxじゃないんでRPM禁止令…
>>464 なるほど…
お返事ありがとうございました。やってみますー
PHPでsedのy/やperlのtr/みたいな処理をしたいときはどうするの?
PHPのstr_replaceみたいな処理とは違うの?
473 :
nobodyさん:03/02/10 13:48 ID:rjSp0W7T
みんな心がさもしいね
474 :
:03/02/10 14:30 ID:???
471さんが、sedのy/やperlのtr/みたいな処理だって。
PHP版トリップ計算スクリプトを教えてください。
ってはっきり言えよ。
477 :
nobodyさん:03/02/10 22:20 ID:GQ633UYY
単純なベンチマークで、ページの生成に0.2sec程かかるのって遅いですか?
for内でincludeしてるのがいけないのだろうか。
>>472 ??と思ったら、PHP4以降は置換文字列それぞれのところに配列で指定ができる!OK!
あーでも、この関数マルチバイト対応のが見当たらない。
対象となる文字によってはこれでいけるだろうけど。
>>475 トリップ生成の類のプログラムにはPHPはあまり向いてないと思う。
>>477 スピードはともかくとして、
>for内でincludeしてるのがいけないのだろうか。
は穏やかじゃないなぁ。
>>478 >トリップ生成の類のプログラムにはPHPはあまり向いてないと思う。
そのこころは?
include先の中の変数のパースってどうやったらいいものなんでしょう…。
変数の中身が決まるfor文内でincludeしないとうまくいかん。当たり前か。
配布されてるような、テンプレート用のクラスを使うほどのものでもないんですよねぇ。
最近PHP始めたのですがみなさんテキストエディタで開発してるんですか?
プロっぽい(?)開発ツールとかあるんでしょうか(高くないやつ)
>>481 完成度の高い物はあまり存在しない現状。
ちなみに俺、秀丸。
>>481 俺も秀丸。
なんかJビルダーみたいなclass管理のできるエディタってないもんかね。
PHP5を見越してさ。
webstudio(Eclipse)を使い始めたけど、クラス管理があるよ。
Visual.NETもいいって話を聞いたけど、使ったことないので分かんない。
前に調べた時は、PHPEdit、PhpIDEってのがあったけど、日本語通るかどうかちょっと不安。
でも普段は秀丸。
VisualStudio.NETでもPHP使えるの?
>>485 どんな言語用にも使える仕組みがあるみたいだけど。
秀丸とPHPの関係を激しく追求したくなったw
俺、メインが秀丸ってだけで使ってるけど。
489 :
nobodyさん:03/02/11 15:53 ID:wdU5WL5+
俺はサクラエディタとK2Editor
thk!
webstudio使って見るYp!
>>488 ていうか
使いやすいエディタ == PHPで使うエディタ
になってるようなw
ほんとはね〜秀丸+EMエディタみたいなエディタが欲しいんだ〜
いや一応表明しておこうかなと思うだけなんだが、
俺も秀丸なんだよ。。
Webstudioっていうのはちょっと見た感じではよさそうだな。
時間があったら使ってみるよ。使った人はレポよろしこ〜
>>491 スレの流れ的にwebstudio使ってる人多いと思うよ。
自分も使ってる。
実行前に文法チェックしてくれるのはまぁ助かるからね。
でも、javacみたいなちゃんとしたコンパイラがないから
あくまで簡単な文法チェックだけなんだよね。
そんなクラスないからnewできません!とかは言ってくれない。
>>492 それ考えるとJBuilderって良い子だな。
>>494 このスレで話題になったからだな。
さすが2ちゃん効果だ(藁
>>495 プログラム板のエリクソスレも大騒ぎな訳だが。
別に大騒ぎって程でも
ていうかマジで逝くりぷすのmirrorがみつからねぇ。
鬱。
どなたかmirrorのURIご存知ありませんか?
DBGのDLサイトにも繋がらないんだけど・・・
>>498 ダウンロードページ復活しないねぃ。。。
ミラーは聞いたことない。ないんじゃないかな。。。
明日にしよう。
DBGは繋がるな。逝く梨婦守はダメだね。
>>492 1週間くらい使ってみてるわけですが、
文法チェックと言ってもちょっとまだ構文解析が弱いね。
書き方によってチェックしてくれたりokになってしまったりすることがある。
ツールを信頼しすぎるのは危険ですね。
今後に期待・KANA。
>>494 ダウンロードページ復活したみたいだよ。
今落としてる途中。これからやってみよう。
わかりやすい日本語解説ページある?
echo や print で生成したフォームからは値を受け取ることは出来ないですか?
webstudio動かねえ・・・(泣
>>506 eclipseを閉じる
↓
eclipse再起動
↓
webstudioを読み込んでくれる
↓
(゚д゚)ウマー
508 :
nobodyさん:03/02/12 17:24 ID:nLK1CfSF
すいません、先輩方質問させて下さい。
フォームからの入力をCSVで保存していくものを作ったのですが
$str = $str1.",".$str2.",".$str3.",\n";
fputs($fp , $str);//ロック処理してますけど省略
$str3の内容がマルチラインのテキストフィールドから取っているため、
改行が途中で入りCSVファイルが崩れてしまいました。
マルチラインテキストフィールドから取得した値から改行を抜き取るためには
どうすれば良いのでしょうか?すいませんが、ご教授下さいm(_)m
509 :
nobodyさん:03/02/12 17:29 ID:vTGUnIYC
>>508 preg_replace("/\n/s","",$HTTP_GET_VARS["testfield1"]);
512 :
nobodyさん:03/02/12 18:19 ID:cvCvqBKN
先ほどPHPインスコしたばっかりのperl厨です。
PHPの場合どう書くのでしょうか?
--- unko.txt
123
456
うんこ
りんご
--------------
my @array=();
my $filename='unko.txt';
open (UNKO,"<$filename");
while (<UNKO>){
chomp;
push (@array,$_);
}
close (UNKO);
foreach (@array){
処理・・・
}
<?php
$array = file("unko.txt");
foreach($array as $tmp) {
$tmp = chop($tmp);
処理
}
?>
514 :
506:03/02/12 18:46 ID:???
>>507 なんか再度立ち上げたら更新マネージャーっていうのが出てきたから
チェックつけてまた再起動したらwebstudio入ったよ!ありがd。
手持ちのスクリプトを読み込んでみたけど、表示がカラフルで、これだけでもメロメロだわ。
515 :
512:03/02/12 18:58 ID:???
>>514 それどこで手に入るのですか?無料?アングラ?商用?
突然、お邪魔します。
phpをはじめたばかりの初心者ですが、
フォームリクエストの受取りができなくて困っています。
参考書に付いているサンプルプログラムも動きません。
なにか受取れない原因になるようなことがあれば御教えください。
>>519 まずはソースだす!
(ブルドッグ不可)
521 :
519:03/02/12 22:28 ID:???
<html>
<head>
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=x-euc-jp">
<title>一行テキストボックス</title>
</head>
<body>
<form method="GET" action="15-2-1.php">
<p><input type="text" name="text1" size="40"> <input type="submit"
value="送信します" name="b"></p>
<p><input type="text" name="text2" size="40" value="<? echo $text1 ?>"></p>
</form>
</body>
</html>
ソースです。
× $text1 , $text2
○ $_GET['text1'] , $_GET['text2']
は僕がかつて嵌ったところ。
まぁ予想通りのソースですね
524 :
519:03/02/12 22:43 ID:???
>>522 ありがとうございます!
フォームリクエストを取得できました。
>PHP でのフォームリクエスト取得は実に簡単である。
>name に指定した名前に $ を付けた変数として渡ってくる。
と説明しているサイトもあるのですが、
なぜ$text1では駄目だったのか、よろしければ御教えください。
>>524 GET出来たhogeとPOSTで来たhogeとcookie出来たhoge
全部$hogeになるんですわ。困るでしょ?それに気付いて仕様変更。
526 :
519:03/02/12 23:31 ID:???
>>525 納得しました。ありがとうございました。
>>524 ていうかそれ、securityhallになるから・・・
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
hallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhallhall
あーすまんすまん悪かったよ
Holeな。
間違ってることが判るなら正解を仕込む位の芸を見せろよ。
>>524 元のソースで動かしたかったら、php.ini の設定で
register_globals を On に設定すると動きます。
>>525さんの言うとおりセキュリティホール:-)になるので Off にしとくのがいいです。
動かないサンプルって、逆引き大全かな。
無理やり
extract($_GET);
extract($_POST);
extract($_COOKIE);
extract($_SESSION);
extract($_FILES);
extract($_SERVER);
>>531 へぇ、ハッシュを展開する関数なんてあるんだね。
533 :
nobodyさん:03/02/14 12:24 ID:pEDzFCHD
PHPは配列のスライスは出来ないのでしょうか?
535 :
533:03/02/14 12:34 ID:pEDzFCHD
お、はやっ。バカ丸出しな質問でした。
とりあえず、
foreach ($abc[5,6,7] as $tmp){
ではエラーでした。
で、PHP 配列 スライスでぐぐって見てもそれらしいサイトは見つかりませんでした。
何か見本を見せてください。
536 :
nobodyさん:03/02/14 13:39 ID:L0Vo5dGR
array_slice($abc, 6, 3)
Perl:あらゆる機能を構文化->楽だが非常に品雑
PHP:なるべく関数化->きれいだがちょっぴり面倒
538 :
533:03/02/14 14:01 ID:???
>>536 ありがとうございます。
何かちがうなぁと思いながら、
foreach (array($abc[5],$abc[6],$abc[7]) as $tmp){
のようなことやってました。
array_sliceで検索してたら
php.s3.to/man/
のようなサイトを発見できたので、ちょっと感動
>>537 こんなに関数があるのにびっくり。
PHPにはまってきた・・・
セッション変数について教えてください。
www.xxx.co.jp/~hoge1/
www.xxx.co.jp/~hoge2/
この二箇所に全く同じPHPプログラムを置いてるんですが、
hoge1では変数をちゃんと取得出来て問題ないんですが、
hoge2では、セットしたはずの変数がなくなてるんです。
こんな現象って起こるもんなんですか?????
session.cookie_path をちゃんと/~hoge2/ にしてあげる、とか?
関係ないかなあ??
hoge1とhoge2両方でphpinfo()して
sessionの項目を見比べる。
542 :
nobodyさん:03/02/14 23:39 ID:EY8KLa0R
今PHPで簡単な掲示板を作っているのですが、書き込みの内容から
htmlタグを取り除く定石のような物はあるのでしょうか?
>>542 $apreg_replace("/<[^>].>/"."".$a);
$a = preg_replace("/<[^>+]>/"."".$a);
失敗。
普通にstrip_tagは駄目?不完全なタグだとエラーだすから危険かも?
htmlspecialcharsで(´・ω・`)ショボーンさせるに一票。
547 :
542:03/02/15 10:48 ID:???
>>543-546 ご返答ありがとうございました。
とりあえず、htmlspecialcharsを使ってみようと思います。
548 :
nobodyさん:03/02/15 14:28 ID:ZanyH2qR
PHPの本を買って勉強しているのですが、ひとつ疑問があります。
最新版のPHP4.3を入れたのですが
これって動作不安定なのでしょうか?
と言うのも正常に動かないプログラムがありまして。
本のサンプルをコピーしてみましたが、それでも動きません。
なので、PHP対応しているサーバにアップして動作チェックしてみたら
ちゃんと動きました。バージョンは4.2.2でした。
どうなのでしょうか?
>>548 mbstring辺りでバグがあるとか小耳に挟んだことあるけど。
エラーの内容とかを書いて欲しいよね。
551 :
nobodyさん:03/02/15 15:46 ID:ZanyH2qR
>>549 549マジですか?やっぱ戻した方が良いんですかね。。
>>550 エラーと言うか例えばユーザー認識プログラムがあったとして
最初にアクセスしたらユーザー認証フォーム?みたいなのが
出るのですが、私のサーバでは出ません。
で、プロバイダのサーバでは出ます。
あと、文字が変になるときがあります。
更新ボタンを押さないと通常の日本語に戻りません。
>>551 自宅サーバで散々ふざけたこと抜かしてるanhttpd厨ですか?
553 :
nobodyさん:03/02/15 16:00 ID:qpbVFxqP
>>552 全く動かないといっているので、違う人でしょう。
てか、他板の話題を無闇に持ってこなくても・・・
本のサンプルが動かないのは日常事
556 :
nobodyさん:03/02/15 19:10 ID:ZanyH2qR
549さんの言われたとおり
バグがあるかな?と思って4.2にしたら問題なく動きました。
やっぱり、4.3ってバグが多いんですね。。。
逆。
バグが大幅に削られてしまった。
逆かな?例えば新しいバージョンのパッチとか必ず出るだろ?
OSであれ、プログラムであれ。
だから実は新しいバージョンほどパッチが無いと危険な罠。
逆だな。んで、それが問題だということだろ。
548さんのケースがどちらかは知らないが。
リリースアナウンス読むのが手っ取り早いとは思うけど、
こまかな変更に対応するのは面倒だな、、、。
>>559 けっきょくどっちかは分からないよ。総体としてバグは減ったんだろうがあたらしい問題は起きるんだから。
そのうちの一つに遭遇したからといって「多い」と感じるのはどうかと思うけど。
他に3.0特有のエラーとか起きてる人居ないのかな。理由もレポしてくれるとありがたい
561 :
nobodyさん:03/02/16 00:09 ID:ZJtTCIZO
ワケワカラン
だからさあ、どこがどう動かないのか分からないと
バグなのか何なのか分からないじゃん。
エラーメッセージとか動かない部分のソースとか
何か情報を提示してよ
社内で閉じたWEBアプリを作りたいんですが、ユーザ認証でWindowsの
ドメインコントローラーが保持しているパスワードリストを利用することは
可能でしょうか?
LogonUser
>>562 実は「どうこがどう動かないか」というのを
ちゃんと説明できる初心者っていないこと無いか?
それがわかれば自分で解決できるよ。
ただ「掲示板が動きません」とか「echoで書いたのに表示されません」
とか簡単な事しかわからないと思うよ。
漏れ自身も詳細にエラーを説明しろと言われても
なぜそのエラーが出てるのかわからないときがあるし。
566 :
nobodyさん:03/02/16 17:35 ID:sdGJ0v3u
すまんが教えてくれmOm
コマンドライン用にインストールしたphpで日本語のメール送信したいのだが
mb_send_mail()
が普通に使えない。いろいろ調べてみたんだが関数オーバーロード?しなきゃ
ならないらしい、どういう意味だろう?
>>566 よく知らんが状況から考えてオーバーロードしたところで何も解決しない予感。
568 :
nobodyさん:03/02/16 17:38 ID:sdGJ0v3u
反応してくれてありがとう。
だが、オーバーロードって何?
569 :
566:03/02/16 17:39 ID:sdGJ0v3u
とりあえず、エラー内容は「その関数は存在しない」というメッセージだった。
>>569 とりあえず、Windowsならmb系はphp.iniいじらんと使えんよ。UNIXだとコンパイルオプションだわね。
571 :
nobodyさん:03/02/16 19:53 ID:tLSm4jGJ
すみません、質問させてください。
最近PHPを触り始め、いくつかサンプルスクリプトを書いてみました。
最初はソースをShift_JISで書いていたのですが、知人にPHPのソースは
EUC-JPで書いたほうがよいと言われ、EUCで保存して実行したところ、
出力される文字コードもEUC-JPになってしまいました。
(charsetはShift_JISで設定しています)
htmlとして出力する文字やデータファイルに書き込む文字のコードは
Shift_JISにしたいのですが、このようなことは可能でしょうか?
環境は自宅サーバにWin2000+Apache1.3+PHP4.0.2です。
よろしくおねがいします。
>>571 mb_convert_encoding()
ちょっとは調べたら?
573 :
571:03/02/16 21:12 ID:tLSm4jGJ
>>572 すみません、自分では調べたつもりでいました。
mb_convert_encoding()で変数等の文字コードを変更できるのはわかっていました。
ソースをEUCで書いて、Shift_JISでブラウザに表示したい場合は
出力文字列をすべてmb_convert_encoding()で変換しなければならないということでしょうか?
たとえば、
$dat = "あいうえお";
echo $dat;
としたい場合でも、すべて
$dat = "あいうえお";
$dat = mb_convert_encoding($dat, "SJIS", "EUC-JP");
echo $dat:
としなければならないのでしょうか?
574 :
571:03/02/16 21:21 ID:???
ちなみに、
mb_http_output("Shift_JIS");
を指定しても、ブラウザにはEUCで出力されてしまいます…
>>574 内部EUC
出力SJIS
出力ハンドラmbなんたら
他。
ちゃんと設定すればいちいち変換しなくていいはず。
>>575 ここは「初心者コーナー」で
>574は自分で調べて分からないっていってるんだから
そういうただ馬鹿にしてるだけのようなレスはやめてけれ。
まあ俺には答えられないんで引っ込んでます。
>>576の言う通り色々な場所で文字コードを指定できる(変わったことするには気にしなきゃいけない)ので、
この機会に覚えておいて損は無いよ。マニュアル見れば大体わかると思う。
本だと「PHP×PostgreSQLで作る 最強Webシステム」ってのがうまく纏めてあったな。
他の部分はどうってことない内容だったが、その部分は立ち読みする価値あり(w
つーか、Shift_JISでもほとんど問題ない。
SJIS対応は次期バージョンなんだっけ?
581 :
576:03/02/17 06:57 ID:???
元文よく見たらphp4.0.2じゃんか。mb_stringまだなかったんじゃねぇの?
でも、
>>573ではmb_convert_encoding使っているから、4.2.0の間違いか?
>>579 4.3.0以降で--enable-zend-multibyteを付けているか、藤本氏の
国際化版を使っていないと、SJISでは問題が出る可能性がある。
本家から落としたPHPのchm化したDocumentが読めないのだが、どうすればよい?
>>582 日本語マニュアルだろ
確かに読めないな。「ページを表示できません」になる。
>>583 環境によるのかもしれない。
俺はMEとNTと2Kで確認したが、どれも見れず。>OS依存の可能性は低いかな
日本のサイトで公開してるやつは見れる。
586 :
nobodyさん:03/02/18 21:49 ID:+iSTKmnJ
お邪魔します。
フォームでチェックボックスを配列で受取りたいのですが、どうしたらいいのか分かりません。
どうか、御教えください。
for ($i=0; $i<$row; $i++) {
$no = mysql_result($result, $i, 0);
$name = mysql_result($result, $i, 1);
$tel = mysql_result($result, $i, 2);
print "<tr><td><input type = \"checkbox\" name = \"del_no[]\" value = \"$no\">".$no."</td><td>".$name."</td><td>".$tel."</td></tr>" ;
}
自分のいるディレクトリの階層を知る方法ってありますか?
今はこんなことやってるんですけど…
$slashes = count_chars($_SERVER["PHP_SELF"], 1);
for($i = i; $i < $slashes[47]; $i++) {
$dir.= "../";
}
589 :
nobodyさん:03/02/18 22:16 ID:oWDXj+bJ
>>586 できるよ
print_r($_REQUEST['del_no']); で出力してみそ。
出力を見たら分かると思うけど、チェックされてないものは配列に前詰めされてしまう。
>>587が無理って言ってるのはその辺の意味もあるのかもね。<form>が無いからかも知れないけど。
>>588 dirname()は使えないかな?
591 :
586:03/02/18 22:41 ID:???
>>590 仰るとおりになりました。
これなら、できそうです。ありがとうございました。
592 :
586:03/02/18 23:01 ID:???
>>590 うまくいきました。
本当にありがとうございました。
594 :
588:03/02/18 23:05 ID:???
>>590 これは!と思ったけれど…。
階層知るには、やはりcount_charsをするしかないのかな。
595 :
586:03/02/18 23:06 ID:???
ありがとうございました
>>582-585 適当に検索すればヘルプの中身が表示されるよ。
そこからトップページへたどり着ける。
激しく面倒だが。
598 :
nobodyさん:03/02/19 00:10 ID:YL/PSmd0
599 :
nobodyさん:03/02/19 02:48 ID:oUZRirLt
PHP4.0.6です。
PHP初心者です。
PHP←→postgreSQLについて質問です。
odbc_connect()関数の呼び出しで
Call to undefined function: odbc_connect()
と出てしまいます.モジュールか何か足りないんでしょうか?
どのようにすれば動くようになりますか?
新しいのを入れたほうがいいのでしょうか?
よろしくお願いいたします!!
そこ、pg_connect()ちゃうのか?
601 :
173:03/02/19 13:59 ID:pmHLZySe
>> 600
ゔ,pg_connectでした・・・
こんなんで悩んでたなんてはずかしいです・・・
ツッコミありがとうございます。
602 :
nobodyさん:03/02/19 18:54 ID:Bw4fiDtc
参考書を頼りになんとか簡単な掲示板(tecupのような)を作ったのですが
削除機能の付け方がわかりません。参考書にも書いてないし。。
どうすればよいか教えてください。(どの関数を追加するとか)
603 :
586:03/02/19 19:01 ID:???
>>602 それだけじゃ判らんてw
どっかにソースをアップしてみれ。
605 :
602:03/02/19 20:00 ID:OPQFETdV
>>605はこれから「それだけじゃ分からん」を何回言われれば気付くのでしょー(w
大方レス削除機能なんだろうけど、その機能のコードをまるまる他人に頼るつもりなんだろうか…
うーん、ネタか騙りのような気がするが・・・
608 :
nobodyさん:03/02/19 21:03 ID:Bw4fiDtc
>>603 わかりました。ちょっと待ってください。
609 :
nobodyさん:03/02/21 00:19 ID:D44CnFCN
古いバージョンのものを移植していますが、変数がうまく取り込まれません。
if (empty($submit))
の部分を
if (empty($_GET['submit']))
としても、その下にある<form action="">以下にある変数が
代入されないのですが....
>>609 $_POST['submit'] だったり?
>>597 インデックスがねーっつー方向でよろしいか?
あと、文字化けやらメニュー項目もおかしいんだけどまぁいいか。
だれか編者に連絡してくだちい。
612 :
nobodyさん:03/02/21 03:51 ID:vyQB60si
>>609に便乗して質問なのですが、いつのバージョンから$submitではなく、$_POST or $_GET["submit"]取得に
なったんですか?$_POST自体はPHP4.1.0だったと思うのですが。
613 :
nobodyさん:03/02/21 05:38 ID:XED00hVU
>571
>最初はソースをShift_JISで書いていたのですが、知人にPHPのソースは
>EUC-JPで書いたほうがよいと言われ、
まずここが間違いだと思われ。
EUCでなければならない根拠はない。
>576 にも書かれてあるが内部コードは統一したほうが余計な苦労をしなくて済みます。
614 :
nobodyさん:03/02/21 05:51 ID:XED00hVU
>612
$_POST,$_GETで受け渡しするのは正式にはphp-4.2.0からで、スーパーグローバル変数を禁止するように
なりました。
php.iniのregister-globalsが存在しているバージョンということでdefaultでOffが設定されています。
次のphp-5.0ではクラス内のグローバル変数をdefaultで禁止するようです。どういうことかというと
これまでクラス内部でvar定義されたものは
$this->class->hensu
というようにアロー演算子によってアクセス出来ていましたがこれが出来なくなります。
クラスのカプセルかを強化しようという事です。
>>614 クラスのカプセル化強化によってどいった利点があるのか、
説明ぎぼんぬ。
616 :
nobodyさん:03/02/21 06:22 ID:JDlnr9Ka
617 :
614:03/02/21 07:49 ID:???
>615
>クラスのカプセル化強化によってどいった利点があるのか、
>説明ぎぼんぬ。
漏れの技術的判断の限りでは、効率としての効果は無いと思われる。無駄なモジュール肥大化と
スタック処理によりスピード低下は否めないだろう。
C++やeRubyに対抗しようとする開発者の自己満足とかそういう類に属する拡張と理解している。
どうもphp開発者のエゴのような気がする。
618 :
614:03/02/21 08:04 ID:???
>615
ああ、一応初心者用に付け加えておくが
クラスのカプセル化という意味においては必要不可欠な機能であるという事だ。
オブジェクト指向を理解している香具師は読み飛ばして頂いて結構なのだが
クラスの保持するvar変数は本来外部から操作されてはならないという要件がある。
どうしても操作したい場合にはメソッドとしてインターフェイス関数を内在させ、その仲介によって
アクセスされるものであるというものだ。プロパティも原則として同じである。
php4.3.xではこれらの実装を見送ることにしたのだが、プログラムでクラスを多用するといくら継承していても
ストレートに"->"アロー演算子でvar変数を改竄出来てしまうのである。
これは本来のクラスの目的とは大きく異なるものであり、現在のphp4.3.xのままでは
クラスとは名ばかりである。
プログラミングしている方は気が付いていると思うが現在のphpclassは只のinline関数に過ぎないのである。
具体的には以下の様な感じになる。
class sample{
public:
var $db;
private:
var $hensu1;
protect:
function sample();
}
以上、理解できるだろうか。。
619 :
nobodyさん:03/02/21 09:21 ID:7Llp1QHv
>>618 言ってる事は正しいが、真中のあたりから激しく論点がずれてるんだが。
621 :
615:03/02/21 10:33 ID:???
>>618 説明ありがとう、しかし理解できね。
よくやることなんだが、
class foo{
var $DB;
function foo($DSN){
$this->DB=DB::Connect($DSN);
}
function hoge($sql){
return $this->DB->getAll($sql)
}
}
って書き方は出来なくなるってことですよね。
php5になったらどゆ書き方になるのか、よければ説明してほしい。
>>621 getterとsetterじゃないの?
class a
{
var v;
function geta()
{
return $this->v;
}
function seta(v)
{
$this->v = v;
}
}
623 :
615:03/02/21 10:49 ID:???
>>622 は?
>>614ではクラス内でも$this->vといったアクセスが出来なくなるとあるのだが?
624 :
614:03/02/21 11:38 ID:???
>620
>言ってる事は正しいが、真中のあたりから激しく論点がずれてるんだが。
ん、論点違ったかい?そりゃ失礼。
625 :
614:03/02/21 11:39 ID:???
>621
>よくやることなんだが、
>class foo{
> var $DB;
> function foo($DSN){
> $this->DB=DB::Connect($DSN);
> }
> function hoge($sql){
> return $this->DB->getAll($sql)
> }
>}
>って書き方は出来なくなるってことですよね。
この書き方だと問題なく出来ますね。但し基底クラス側ではpublicスコープを設けてやる必要があります。
class DB {
public:
function Connect($DSN){
}
function getAll($sql){
}
}
class foo extends DB {
var $DB;
function foo($DSN){
$this->DB=DB::Connect($DSN);
}
function hoge($sql){
return $this->DB->getAll($sql)
}
}
626 :
614:03/02/21 11:39 ID:???
>623
>
>>614ではクラス内でも$this->vといったアクセスが出来なくなるとあるのだが?
誤解を招いたようです申し訳ない、
クラス内ではもちろん同一スコープですのでアクセス可能です。
表現したかったのはクラス外からのアクセスという意味です。
class sample{
protected:
var $hensu = "hoge";
public:
function hogehoge(){
return $this->hensu;
}
}
$hoge = new sample;
echo $hoge->hensu; ・・・・・・・ エラー
echo $hoge->hogehoge(); ・・・・・・・ 正しく hoge と出力される
627 :
615:03/02/21 12:05 ID:???
>>625-626 多謝!
だいたい理解できた(と思う)
public: とか private: なんて今まで使ったことないのだけど、
雰囲気的になんとなくぅ〜で、まぁその辺は調べるわ。
CUIな時代はCを少しやったが、GUIな時代になってC++なんかぜんぜんしらんし。
オブジェクト指向つうのに未だ正しい理解できず。PEARと格闘してま。
ほんま、ありがとな。
>>623 強化と言うか誰からも触れないときめき変数じゃん。それ。
>628
>強化と言うか誰からも触れないときめき変数じゃん。それ。
トキメキ変数?
なにそれ・・・・。
さすがの猿飛はスキトキメキトキスだっけ・・・。
630 :
nobodyさん:03/02/21 22:38 ID:tMiGGtI4
631 :
nobodyさん:03/02/21 22:40 ID:tMiGGtI4
ちなみに送信テストにはradishという簡易SMTPサーバを使用しました。
>631
$mail_to = $_REQUEST[ "VALUE_MAIL" ];
$subject = "ありがとうございました。";
$body = "PHPメールフォームのご利用ありがとうございました。\n" .
"以下は、送信された内容のコピーです。\n\n";
$body .= "名前 :" . $_REQUEST[ "VALUE_NAME" ] . "\n";
$body .= "郵便番号 :" . $_REQUEST[ "VALUE_POST" ] . "\n";
$body .= "住所 :" . $_REQUEST[ "VALUE_ADDRESS" ] . "\n";
$body .= "メールアドレス:" . $_REQUEST[ "VALUE_MAIL" ] . "\n";
$body .= "趣味 :" . $_REQUEST[ "VALUE_FAVORITE" ] . "\n";
$mail_from = "From:
[email protected]";
mb_send_mail( $mail_to, $subject, $body,$mail_from);
634 :
630:03/02/22 00:38 ID:p54zeupR
★あなたのお悩み解決致します!!
●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
直通 090−8505−3086
URL
http://www.h5.dion.ne.jp/~grobal/ メール
[email protected] グローバル探偵事務局
636 :
630:03/02/22 02:08 ID:p54zeupR
632,633さんのおかげでうまいこと改造することができました。
と、それは良いのですが1つ気づきました。
これって書き込んだ人にコピーメールを送るけど
肝心の自分のところにはメールが届きませんよね?
だからどういう問い合わせをされたのかわからないのですが。
その辺も解決策は無いでしょうか?
>636
CCしろ
>>636 632で答えたのがバカらしくなる質問だな。
参考書丸写しかよ、ちったぁ自分で考えな。
ってか、ちゃんとその参考書嫁よ
【PHP】質問スレに、WebProg板らしからぬ質問が増えたので、
このスレが出来たのだが、教えてクレクレ君が許されるわけではない。
>>638 禿しく同意。
メールの処理を行いたいならメールについて勉強してみるのは常識。
自分で努力をしないクレクレクソは去れ。
>>639 ふと思ったんだが、
>メールについて勉強
って具体的に何を指すの?
SMTP、POP3、IMAP、APOP、ESMTP、MIME、uuencode、BASE64、TCP、IP、SMTP Auth、POP Before SMTPなどなど深いぞ。Eメール業界。
>>640 レイヤが無茶苦茶だな。
DNSのMXなども含めるつもりか?
642 :
630:03/02/22 11:54 ID:15dKIbQj
>>638-639 自分で考えるにも狭い範囲(参考書)の教養しかなくて・・。
632のページ見て試したのですが、送られなかったし
クレクレ君と言いますが、逆にどのようにしていいか
わからないので学ばせていただこうかと(ここしか教えてくれるところしらないし)
あと、参考書丸写しじゃないですよ。
>640
>>メールについて勉強
>って具体的に何を指すの?
>SMTP、POP3、IMAP、APOP、ESMTP、MIME、uuencode、BASE64、TCP、IP、SMTP Auth、POP Before SMTPなどなど深いぞ。Eメール業界。
君が知らないものは全部やっていいからね、誰も勉強してはいけないなどと止める人は居ないから
思う存分気の済むまで勉強してくれ。
>642
>自分で考えるにも狭い範囲(参考書)の教養しかなくて・・。
>632のページ見て試したのですが、送られなかったし
>632 さんに string additional_headersのヒントを教えてもらってるだろう。
>633で漏れが具体的な記述方まで書いてやっただろ、そしたらmail headerってものが
あってここに記述すればなんでも出来るじゃんって気が付かないか?
気が付かないのならphpを諦めたほうが良い、それ以前の問題だから。
>メール業界。
はい?
>ここに記述すればなんでも出来
便利だ。今度から「Order: ラーメンと餃子届けて。あ、金は向こう持ちね。」とか書いておこう。
646 :
630:03/02/22 12:46 ID:15dKIbQj
>>643 まだ、はじめて一週間ぐらいなんで・・・。
でも、PHPはやってて楽しいし絶対、取得したいんです。
さっきも632のページを見たり、他のサイトで調べたり
テストしてみたりしたんですが、どうしても上手く行かないんです。
とりあえず、mail headerですか。。それについてまた勉強してみます。
>644
>>メール業界。
>はい?
郵便局とか、バイク便の事では?
>645
>>ここに記述すればなんでも出来
>便利だ。今度から「Order: ラーメンと餃子届けて。あ、金は向こう持ちね。」とか書いておこう。
漏れなんか「hope: 新春宝くじ2億円当選キボンヌ!!」としてるが何か?
>646
>とりあえず、mail headerですか。。それについてまた勉強してみます。
「また」じゃなく、今しろ、すぐにだ。
思いついたときにやらないと、次にいつになるかわからない。から。
651 :
649:03/02/22 17:15 ID:???
>>650 まあ、それもそうだね。
書き方が悪かったな、気分悪させてたら申し訳ない。
652 :
648:03/02/22 19:12 ID:???
>650
そうそう、パウエルも東京に来てる事だし、今夜にでも北チョンのテポドンに核弾頭積んだのが飛んでくる
かも知れないから、今しか出来ないかもよ。
>>652 テポどんが東京狙ったら困るなあ。うち(静岡)に当たるかもしれないじゃん。
狙うのなら正確であることを祈る。
>>630 とりあえず、メールがどうやって送信者から受信者までたどり着くのかは知っているか?
どこを経由しているのか、経由地同士(送信者や受信者のPCも含む)はどうやってメールの受け渡しをやっているのか
そのへんは最初に理解しておいた方がいいぞ。
>>654 今時リレーしてメール運んだりはせんけどな。
>>655 オープンリレーでないだけで、リレーそのものは幾らでもある。
海老の唐age
PHPなんだけど、
array_values()使って配列をファイルに出力したらなぜか
ファイルにはArrayってfputsされてるんだけどなんでなんだよ
もちろん配列にはちゃんと中身はあります
そゆ関数なんだろ。
array_slice() を使えば。
660 :
658:03/02/24 12:37 ID:???
foreachでやってみることにしましタン
>>658 array_valueは返り値もarrayだから。
>>656 リレーを一切拒否したら内部から外部へ送れないもんな。
663 :
nobodyさん:03/02/24 14:58 ID:hOH4eQvz
664 :
chmod:03/02/24 19:58 ID:FUX1UJsu
超初心者ですいません、
サーバーがIISいれてて、フリーのPHPのカウンターを動かそうとしてみたところ
一緒にUPするcounter.txtの属性を変えろといわれたのですが、
FFFTPで属性変更としても変わってくれないです。
どうやればIIS上での属性の変更を解決できるのでしょうか?
よろしくおねがいします。
>>664 Windowsにはそんなもの存在しないから変えようがない。
666 :
chmod:03/02/24 20:35 ID:FUX1UJsu
ふむむ、なるほど、てことはディレクトリに置けば実行出来るはずなんですよねえ・・・
できない・・・
ファイルがひらけないとか抜かしてきやがります。
まあ、いいや。
Windowsでも、NT系ならパーミッションらしきものは存在するぞ。
IISならNT系だろ。
鯖は自宅鯖?
もしも鯖を操作できるならcounter.txtを右クリックして
プロパティからアクセス許可を探してIISの実行ユーザに書込み権を与えてやれ。
669 :
chmod:03/02/24 21:10 ID:FUX1UJsu
ほほー
分かりましたやってみますありがとうございます!
670 :
nobodyさん:03/02/24 21:32 ID:j6HjxIaR
掲示板のログみたいなデータを各要素ごとにソートするうまい方法を考えて
います。
ログ形式は、
名前<>番号<>点数<>合計点<>平均点 のような形で
具体的には、 name<>1<>10<>50<>23.5 のような行が200行位あるファイルです。
これを、番号順、点数順、合計点順、平均順にソートしたいのです。
で、調べたところ
function fcomp($x,$y){
$a = explode("<>",$x);
$b = explode("<>",$y);
if($a[1] == $b[1] ) return 0;
return ($a[1] > $b[1] ) ? 1 : -1;
}
usort ($lines,fcomp);
というファンクションがありましたが、これでは 0,1 の要素しか扱えません。
番号順、点数順、合計点順、平均順 などをページから、GETなりPOSTして
動的に結果を表示するには、どうするのが賢いでしょうか?
$lines = file($logfile);
for($i=0;$i<count($lines);$i++) {
list($name,$point,$total,$average) = explode("<>",$lines[$i]);
}
まではわかっております。
PostgreSQLあたりのDB使ったら?
という考えもあるがまぁ一応。
各要素毎に配列を用意。
添え字で行を取る。
でだarray_multisort関数を使え。
以上
672 :
nobodyさん:03/02/24 22:07 ID:j6HjxIaR
>>671 うー、よくわかんないです。
for($i=0;$i<count($lines);$i++) {
list($name,$point,$total,$average) = explode("<>",$lines[$i]);
$name[] = $name;
$point[] = $point;
$total[] = $total;
$average[] = $average;
}
array_multisort($name,$point,$total,$average);
でしょうか? マニュアル読んでもさっぱりわからない...
#DBは安鯖なのでついてないのです。
これで十分だと思われ。
for($i=0;$i<count($lines);$i++) {
list($name,$point,$total,$average) = explode("<>",$lines[$i]);
}
名前を文字列として昇順にソート。
array_multisort($name, SORT_ASC, SORT_STRING, $point, $total, $average);
あとはマニュアルを穴が空くまで嫁。
それができないなら言語を扱っても成長しないからやるだけ時間の無駄だと思われ。
おとなしくエクセルあたりでも使うがよろし。
674 :
nobodyさん:03/02/24 22:43 ID:RRWzLh+f
675 :
nobodyさん:03/02/24 23:27 ID:j6HjxIaR
>>673 Thanx.
でもやっぱり配列に入れなくてはいけなかったので、
$name[] = $name;
$point[] = $point;
$total[] = $total;
$average[] = $average;
がないとエラーになりました。
ともかくありがとうございました。
676 :
673:03/02/24 23:58 ID:???
よかったよかった。
どうやら俺が読むべきなようだな。
吊ってくる。
references の意味と使い方を教えてください 「&」がよくわからない
リファレンスってのはリファレンスマニュアルのことか?
それとも参照代入の事か?
前者なら諦めてください。としか言いようがない。
後者ならポインタを勉強する事をお勧めする。
ポインタを勉強すれば意味がわかるようになるだろ。
# 人が言うほどポインタは難しくない。やってみれ。
# 使いこなすとなると話は別だけど。
一応使い方
$a = "test";
$b = &$a;
$a = "asdf";
print $b;
で asdf が出てくる。
>>678 どういう場面で使うのですか?
コンストラクタの中でよくオブジェクトを参照代入しているコードを見ますが、
何となくはわかるのですが、何でそうしなければいけないのか、そうすると
どういうおいしさがあるのかがわかりません。
よろしくお願いします。
681 :
sage:03/02/25 10:07 ID:lAlaOHj3
質問なんですが、
配列で取得した変数をそのままDB(PostgreSQL)に入れると表示が
"Array"となっているんですが、これはちゃんと配列で登録されて
いるんでしょうか?
フォーム付のカレンダーを作っていて、1ヶ月分のフォームの内容を
配列にして1つの変数にしてそのままDBに登録ということを試して
います。
<?
........
<input type="text" name="wd_f['$i']">
...
?>
↑フォームはこんな感じです。
よろしくお願いします。
682 :
681:03/02/25 10:22 ID:???
うわぁsageるつもりが・・・。
スソマセン。
初心者なのでちょっと厨な質問します。
皆さん、PHPをテストしている環境はなんですか?Linuxですか?
自分は仕事柄Windowsを使うことがあるので
Winでテストしているのですが、やっぱり上手く動かないときがあります。
これってやっぱり"Windowsだから"なのでしょうか?
それともApacheのhttp.confの記述かphp.iniの記述が間違っているのでしょうか?
Windowsだから動かないと言うことは無い。
gdもmysqlも使ってます。
>>681 配列の内容そのものではなくて参照を
DBにいれてるだけみたいなのでたぶんだめ。
配列をとりだして連結して書き込むか
テーブル設計を変える。
686 :
681:03/02/25 15:15 ID:???
>>685 あーそうなんですか・・・。
なんかおかしいなと思ってたのでありがたいです。
何度もすいませんが連結ってforeach使うんですか?
連結手段に今困っています。
688 :
681:03/02/25 15:31 ID:???
>>687 なるほど!
とりあえず一つずつ引っこ抜いて連結してみます!サンクス!
>>679 ついこの間そこで困ってたから話すわ。
例えばインスタンスを作ってそれをセッション変数に登録すると。
で、通常なら$_SESSION["obj"]をそのまま利用すればいいんだけどこれを
$obj = $_SESSION["obj"];
なんて使い方をしたかったりする。
さて、この代入をしたあとに$objのメンバ変数の値を変更したらどうなると思う?
答えは
$objのメンバ変数の値とセッション変数に登録されている$objのメンバ変数の値が違うものになる。
それを避けるために使ったりする。
これ以上は俺じゃ説明できないや。
助けてエロい人!
コンストラクタで参照を代入するってことは、操作したいセッション変数の位置情報を覚えて
おくという意味。
あとはセッション変数をいじくりたいときは、コンストラクタで覚えておいた変数の位置情報を
元にオリジナルの変数をいじくることができる。
参照代入じゃないとセッション変数の中身のコピーを取だけなので、コンストラクタの後に残る
のはセッション変数のコピー品だけで、オリジナルの情報は何一つわからない。
もちろんコピー品をいじくってもオリジナルは変更できない。
693 :
629:03/02/26 00:43 ID:???
うひゃあ。。。すみません、トンチンカンなこと言ってました。
もう一度よく確認してから質問します。ごめんなさい。
694 :
681:03/02/26 11:27 ID:???
$wd_f = join(", " ,$wd_f);
$wd_f = join(", " ,$wd_f);
この方法で連結後、
$sql = "INSERT INTO calender(day, alph, com) VALUES('".$day."','{".$wd_s."}','{".$wd_f."}')";
という風に登録したんですが、登録はできても配列にはなっていませんでした。
これって$sql〜以降の書き方が悪いんでしょうか?
>>694 create table はどうやったの?
696 :
681:03/02/26 14:44 ID:???
>>695 まだテスト段階なので別ファイルで操作したんですが、
$sql = "CREATE TABLE calender(day varchar(50), alph varchar(1000)[], com varchar(1000)[])";
こうです。
$sql = "INSERT INTO calender(day, alph, com) VALUES('$day','{$wd_s}','{$wd_f}')";
でもいけるわけだが。
Updateで配列の所を追加するしかないんじゃね?
698 :
681:03/02/26 16:59 ID:???
>>697 自己解決ポ
1行のテキストから配列に戻すやり方で詰まってたんですが、
読み出すときにexplode使えばいけそうです。
わざわざ付き合ってくれてサンキューでした!
699 :
nobodyさん:03/02/28 16:00 ID:7M3pDi2C
file.txtってファイルから
ランダムに一行を選択し
その内容を表示させたいのですが
どうすればいいですか?
700 :
nobodyさん:03/02/28 16:37 ID:hUrHQte3
>>699 ファイルの中身を行毎に配列に突っ込んでshuffle関数とか。
srand(time());
shuffle($array);
foreach ($array as $key => $value)
{
print "\$array[$key] = $value<br>";
}
以上。PHP逆引き大全より丸写し(汗
702 :
へたれ:03/02/28 18:56 ID:Yo3HLtaK
PHPで参照できる
$PHP_AUTH_USERと$PHP_AUTH_PWって参照は出来ますが、
値の変更って出来るんでしょうか?
また、その変更は有効になるんでしょうか?
srandって必要なんですか?
>>704 srandやらないと、Shuffle関数をもう一回使ったときに同じ結果が返ってきたりする。
本当にランダムな結果を得るための儀式みたいなもん。
ランダムっぽくするためには必要。
でも、timeでsrandしても、安全な乱数にはならないから、、よく考えること。
つうか、$array_randっていうもっとイイ!のがあった;;
srandが必要なのは一緒。
$key = array_rand($array);
で中身をランダムに取得でける。
708 :
707:03/02/28 19:53 ID:???
中身じゃねーや、配列のキーが取得できるんだ。
ボケまくり。
☆★☆★第4回2ちゃんねる全板合同迷惑メール業者訪問祭り!★☆★☆
未承諾メールって受信拒否したのに何で届くんだろう? ♪なんでだろ〜
良いパートナーがそこに居るわけないのに、何でだろ? ♪なんでだろ〜
私達は本日3月1日22時そんな出会い系に「未承諾訪問」(※注)する祭りを
盛大に開催します!回を重ねて第4回2ちゃんねる全板合同訪問です!
是非とも皆様お誘い合わせの上、ご来場ください! (↓本音とタテマエ)
老若男女問いません!初心者大歓迎!一緒に彼氏・彼女をつくりましょう!!!
・訪問開始時間 3月1日午後10時00分決行予定!(途中参加大歓迎)
・総本部URL
http://jbbs.shitaraba.com/news/938/ ・なお本日の訪問2時間前くらいに第4回専用スレが総本部に立ちます。
そのスレには色々書いてあるから。よろしくね。
(※注)あくまで「訪問」です。物騒な事を書くと削除されちゃいますからね。
それから「訪問」の趣旨と無関係ですが「各種訪問道具」もあったりしますよ。
スレ汚し失礼しました。
711 :
nobodyさん:03/03/01 02:16 ID:GJMSd1Pr
PHPマニュアルっていたるところに置いてありますが
(google でたくさんひっかかる)
そのマニュアルの対象のPHPバージョンってどこを見たらわかりますか?
古いんだか新しいんだかさっぱり分からなくて。。
本家のマニュアルで検索かけるとか、
本家の配下をググればいいと思うけど。だめ?
714 :
711:03/03/01 03:47 ID:imJrxzae
>>712 ありがとうございます。
ネット上のはそれも考えたのですが、拾ってきた.chmになるともうどうしようもなくて・・・。
メジャーバージョンが同じなのにこれだけ仕様がよく変わるんだから
ちゃんとマニュアルにも明記して欲しいですよね。
715 :
704:03/03/01 08:03 ID:???
やっぱりやったほうがいいんですね。
ありがとうございました!
>>705>>706 マニュアルには4.2.0以降はいらないみたいなことが書いてあったので気になってました。
PhpDocumentorがまともに解凍できない・・・。
717 :
nobodyさん:03/03/02 17:57 ID:4bNs7IdZ
configureで --with-apache=/usr/local/apache2..と指定していますが、
configure:error: Invalid Apache directory -unable to find httpd.h under
/usr/local/apache2 となってエラーになります。
httpd.hはusr/local/apache2/include にあります。
どうしてひっかかるんでしょうか。
719 :
nobodyさん:03/03/02 21:22 ID:BwnMCY+5
PHPのxml_parse()でRDFファイルをパースしてるんだけど、
<link>
http://www.hoge.com?foo=1&amp;bar=2</link>
(&amp;は半角)をパースするとセミコロン以下の
bar=2しかとれないんだけど・・・誰かおせぇ〜て。
実際のパースはxml_set_character_data_handler()で指定した
関数内で行ってます。
まちがえて質問スレに書き込んでしまいました(マルチじゃないです!)
借りているサーバーのPHPのバージョンは4.0.6なのですが
register_globalsのon/offを調べる方法はありますか?
私の借りている会社は質問の返事が遅いのでできれば自分で調べたいのです。
今日からPHPの勉強を始めようと思って、初心者用マニュアル本を買ってきたのですが
(オンラインマニュアルは難しすぎてまだ理解できないです)最初の注意書きに
ver. 4.2以降でregister_globals = offが前提って書いてあることに気がつきました。
721 :
nobodyさん:03/03/03 02:25 ID:VHTLB/I4
>>720 <% phpinfo(); %>
↑これだけ書いた拡張子 php のファイルを作ってそのサーバにアップする。
で、IEからアクセスすると PHP等のステータスがぞろぞろ表示されるので
CTRL+Fで「register_globals」を検索。on/off どちらか書いてあるはず。
>>720 <? phpinfo(); ?>
721よ,なぜ<% %>でくくった?
さらに--enable-short-tagが有効になってなくて「<PHP」でくくらないといけない悪寒(笑)
>>720はasp_tags = Onにしているのだろう。
>>721はshort_open_tag = On
<?php phpinfo() ?>
ならどの設定でも大丈夫
4.0.6。。。
4.2対象の本だと、使えない関数を使ってそう...ガンガレ
「あ!間違えました。」と書くのは新手のマルチ商法か。
そもそもregister_globalsって、.htaccessでも設定・変更できるよな。
729 :
nobodyさん:03/03/03 10:22 ID:m36vJ9x7
730 :
の:03/03/03 16:28 ID:LfdPkmfX
>>720です。
<?php phpinfo() ?>はやったことがあったので調べてみました。onでした。
>>721,722,725さんありがとうございました。
>>726 そうなんです。どこを変えたら4.0.6でも動くようになるのか分からないと思うので、
ちょっと古めのマニュアル本を探そうかなと思ってます(´・ω・`)
サーバー借りてる会社がPHPをアップデートしてくれたらいいんですけど
他の人達が使えなくなってしまうから無理ですよね。
PHPを自分のディレクトリにインストールするのはだめでしょうか。
732 :
SMTP:03/03/03 19:02 ID:wyzh6cij
PHPのWIN版では外部SMTPでメール送信ができるみたいだけど
LINUXやらBSDやらのUNIX互換からは出来ないのか?
734 :
SMTP:03/03/03 21:24 ID:wyzh6cij
Socketかぁ、php.iniの設定で簡単にチョチョイってな
具合にはいかないもんかね。
PEARで出来そうな予感。
ので、かなり寒そうなPEARスレに質問してみる。
736 :
729:03/03/03 23:30 ID:???
>>730 ありがとうございます
おかげさまで表示できました・・・・が
トピックのリンクが相対パスになってしまうのです
もうちょっと自分で検証してみますが
何かわかりましたらよろしくお願いします。
ちょっと的外れな質問ですが
PHPやPerlを学べる学校やスクールってあるんですかね?
会社の上司が行かないか?って言うんですけど・・・。
>>737 SEとしてのプライドを持つべきです。
「そんなところに行くくらいなら本3冊買ってください。それで十分です。」
位言ってやれ。
>>738 いえ、SEじゃないんです。WEBデザイナーなわけで・・。
だからCGIとか使ったことはあるけど
基本的にはプログラムを組めないわけです。。
>>737 正直、お金の無駄だと思われ。
本を買ってきて何か適当なものを組むだけでも十分じゃ?
# 漏れはインターンシップ逝った先で10日で作らせられたYp!
# もっとも言語はASPだったが。因みに使用言語を聞かされた時は(゚д゚)ンナゲンゴキイタトキネーなんて状態だったんだが。
> もっとも言語はASP
むぅ。
プログラム畑出身なので参考にはならないけど、チャチャを。
そんなのスクールあるのかなと思ってググってみたら、数十万!?
分からないことがあるとすぐ聞けるからスクールもありなのかも。
> 「そんなところに行くくらいなら本3冊買ってください。それで十分です。」
ぐらいな気持ちが無いとなかなか身には付かないと思うけど(w
会社でPerlやPHP使いたいならちゃんとプログラマ雇えよって感じだな。
人件費浮かそうとして後で痛い目みても責任もてませんよって言ってやれ。
>>744 Webぷろぐ板で吐くセリフじゃないな。
私はプログラムが出来ません。
胸を張って言うことでもないと思われ。
以前行ってた会社ではデザイナの人もプログラマと遜色ないぐらい忙しかった
みたいなんだが、掛け持ちでやれる余裕があるかどうかってのも問題に
なってくる気がする。。
747 :
744:03/03/04 01:46 ID:???
>>745 いやいや、デザイナの人にそんな事を求める必要ないんで無いの?
って意味で書いたんだが。
ヘタに煽っても、両方に本腰入れられる状況になれなくてデカイミスさせても
可哀想だと思うんだが。
最終的に一番質のイイサービスを提供できるかどうかがWebアプリの問題でそ。
>>747 >いやいや、デザイナの人にそんな事を求める必要ないんで無いの?
人間的な幅は広がるぞ。Webデザインとボイラー技士とかなら俺も止めるが。
749 :
744:03/03/04 02:02 ID:???
人間的な幅のために経験を積ませるって意味では別にプログラマでもボイラー技師でも
止める必要は無い気もしますが。。
むしろボイラー技師の方が面白そ(ry
みなさん、色々ご意見ありがとうございます。
さっきスクール調べたのですが
PerlとPHPを2つ学べるところありませんね・・・たいていどっちかだ。
あと、自分はデザイナーですけど
プログラミングは学んでいたんです。
特にPHPはHTMLに書き込むし、結構わかりやすいので。
そういう意味ではスクールに行かせていただくのはチャンスだと思います。
が、ちゃんとしたプログラマーが1人欲しいのも事実ですし
自分は学生時代からUNIXやCやBASICの基礎を学んでいましたが
プログラミングが苦手なので全く頭に入りませんでした。
だから物凄い不安だったりします・・・。
そんな事かく間にPerlなりPHPを本を読んで実践すればと思うのだが。
どんな良い学校いっても繰り返し書かなきゃ身につかんぞ。
752 :
744:03/03/04 02:31 ID:+uHTLPA4
>/////ノノノノノ
ミム \
|ラ \ / |
|/ (・) (・)| / ̄ ̄ ̄ ̄ ̄
(6 ......>...| <
>>750両方いっぺんにかよ!
| / ̄ ̄7| \_____
\  ̄::: ̄∠
/^ ∠U>_」ニ了
まぁ、もしか簡単なイントラ向けcgiならトライするのも有りかと。
>>753 つぅか思想の時点で違うからなぁ・・・。
755 :
SMTP:03/03/04 12:13 ID:h/lVtdgr
漏れはデザイナからスクリプター(PHPやPerlでプログラマっていうのも
おこがますい。)に転身すますた。もともとデザインの才能がなかったか
ら漏れとしてはWEBで比較的なPerlから入れたのはラッキーだった。
もうデザインの仕事なんて全然してない。結局誰にも教わらなかったし
周りにそんな事をやってるヒトがいなかった。今もだけど・・・。
しかし。。。やはりオブジェクトの世界にはもう一歩踏み入れない壁が
あるのも確か。やる気があるなら基本を学校で学ぶのも一つの道かもと
思ふ。
>750
簡単に言うと
Perl:
ウェブでドライヴするためには「CGI」として駆動させるため、少なからずapcheなり
TCP/IPなり、あるいはHTTPの仕組みを理解することが必要。
一例を挙げると、フォームなりなんなりで取り込んだデータをHTTPリクエストから
取り出したり、あるいはスクリプト内部でHTMLを生成してHTTP様式を調えた上で
返したり、という部分を(ライブラリや外部モジュールがあるにせよ)スクリプト内部で
全て面倒見てやらなければならない。
PHP:
ご自分でお書きになっているようにHTML内部に書いていけるので、スクリプタと
デザイナさんの間でコラボが割とラク、DreamWeaverなどのデザインツールが使える
のは大きい。
ただし、処理が一筆書き(最初から最後まで一度舐めておしまい)なので処理の
順番をきちんと組み立てる必要がある。
フォームやDBとの連携がラク
ただし、PHP自体のバグ(4.2.3ではバグモジュール組み込むとフォームの頭4byteが
消えてしまったり)が割とあるので情報収集が欠かせない。
というかんじでしょうか。
どちらかというとスクールに通うよりは、まず一つ何か良くできたPHPのスクリプトを
探してきて、徹底的にそれを解析した方が良いと思いますよ。
例えば、の話ですが簡易掲示板のスクリプトをどこかからか見つけてきて、それを
徹底的に解析していれば、いろいろと「ここをこうしたら」的な思いつきが出てくる
でしょうから、それにもとづいてリファレンスを読みつつ手を加えていく・・・みたいな
順番が一番判りやすいのではないかと。
>756
ちなみに>756では、なにやらPerlに制約が大きいような話をしてますが、それはあくまで
CGIとしてPHPと比較した場合の話であって、ふだんのサーバ管理にはPerlにお世話に
なってます。
非常に幅広い能力と柔軟性は、わしのようなニセサーバ管理者にとっては手放せない
ほど、本当に便利に使わせてもらってるんですが、特定分野に限って特化したものと
比較すれば・・・とい宇話だとおもってくだちぃ
ちなみに、わしは鯖缶からスクリプトいじるようになりました。
PerlもPHP(+MySQL)も両方とも大変便利に使わせていただいておりますです。
758 :
SMTP:03/03/04 13:16 ID:h/lVtdgr
$test と ${'test'} が同じというのはいったいどういう事なんだ?
こういう事はエセスクリプターにはよくわからん。
PerlとPHPかぁ。うーーん。PHPは若い言語だから、バーションやら設定やら
でいろいろ違うし、まずは安定感のあるPerlの方がそれなりに洗練された本
やら説明が多いので無難なのでは・・。
759 :
nobodyさん:03/03/04 13:21 ID:sa1CIWq+
>>758 Perlだと、${'test'}はシンボリックリファレンスとして扱われる。
$test = 'hoge'; $$test = 1;
print $hoge; #これは1になる!!
761 :
の:03/03/04 23:27 ID:CT6PyLHU
>>736 おっと、タグ内のアイテムを分解してるのか。
次のように修正してみ。
@@ -68,7 +68,7 @@
$arItems[$itemCount]->xTitle = $data;
}
elseif ($curTag == $itemLinkKey) {
- $arItems[$itemCount]->xLink = $data;
+ $arItems[$itemCount]->xLink .= $data;
}
}
--
俺的ポータルサイトを作ろう
http://mysite.ddo.jp/
>>761 これ、なんか凄いな。
俺もこういうにが作りたい・・・
俺もこういうにが(・∀・)イイ!!
764 :
nobodyさん:03/03/05 14:27 ID:ynGx9XlK
PHP4のセッションでhtml内のソースに勝手に<form action...>の後に
<input type="hidden" name="PHPSESSID" value="********" />
を付けて返してくる事があるんだけど、これはなんでだ?
同じサーバで運営してるアプリで出るヤツと出ないヤツがある。
それはわかるんだけど、セッションIDはクッキーで受け渡してる
んじゃなかったけか?他のアプリではHTMLソースに勝手にhidden
でセッションIDを付け加えるなんて事なかったのになんでこれだけ・・。
>>766 cookieを受け付けないUAもいるからね。それ対策だよ。たしか。
マニュアル嫁
session変数って配列を格納することはできますけど、
配列で格納することってできるんでせうか。
$_SESSION["test[]"] = 値;
こんな風に
>>769 $test = array();
$_SESSION["test"] = $test;
状況は変数と同じ。
わかった。php.iniのsession.use_trans_sidをOnにしとくと
クッキーが使えない環境の場合勝手にhiddenを埋め込むんだ。
じゃぁ、なんで漏れのブラウザはクッキーだめなんだ??
って他のサイトではクッキーバリバリ食ってるのに???
あっ、汚してスマソ。
>>769 それは無理じゃない。
>>769 $_SESSION["test"][] = 値;
>>770 あーその方法は無理っぽいです。
A(フォーム)→B(セッション変数に格納)→A→B...C(DB登録)
って風にBに行くたびAの内容をセッション変数に入れて、
最終的にCで配列を結合して一行の文字列にしてDBに登録っていう
ややこしいことをやってるんですよー(そういう仕様で作らなくてはいけないらしいのです)。
なんで個人的には登録済みのセッション変数を検索できたら一番いいんですが。
>>771 無理ですかー。どうもです。
>>772 773書いてる間に見過ごしてました。
試してみます。
>>771 1発目は出てくるかもしれんが、2発目からは出てこなくなるだろう。
776 :
769:03/03/05 16:38 ID:???
うんこ
778 :
nobodyさん:03/03/06 00:49 ID:/MagQTVJ
そう言えば俺の作ってるアプリでセッション使ってるんだけど
時間帯によって Cookie だったり hidden(URL) 埋め込みだったりするんだけどこれなんで?
家からアクセスするとCookieになるが、会社で昼の糞重い時にアクセスするとURLにくっついてきた。
でも会社からでも4時ごろの比較的回線の空いてる時間なら Cookie・・・・。
???
前にも書いたが、漏れの場合、同じサーバ内のアプリ毎に
セッションの受け渡し方が違っちゃう。
>>779 自分で作ろう!その方が早い気がするがするニダ。それ程
難しくないぞ。
781 :
779:03/03/06 12:53 ID:???
>>780 自分で・・・ですか。
とほほさんところみたいに分かりやすくて、オフラインでじっくり読める
PHPの解説サイトあったら教えてください。
常時接続ではないのでなるべくオフでみながらやりたいので・・・
>>761 @@ -68,7 +68,7 @@の箇所でParse error
内容はよー分からんが、このスクリプトって
自分のサイトのヘッドラインを表示させる為だけのものだと思う
改造して他で使うには無理があるような気がするが・・・
>>781 つか、chm版のPHPマニュアル落としたら?
4M強あるけど。
>>784 ダイアルアップだと20分近くかかってしまう罠。
>>785 その数十倍の時間にらめっこするわけだが?
簡単なトレードoffじゃないか。
787 :
の:03/03/06 21:12 ID:wBqlWOJl
>784
DLしたchmを開いたら「ページを表示できません」言われました…
791 :
736:03/03/08 06:36 ID:???
>>761 おおっ 動きました
そうか・・・結合演算子だけでよかったのですね
難しく考えすぎておりました なんにせよわざわざありがとうございました。
<?php
$a_array = array("1:b","1:a","11:a");
sort ($a_array);
foreach ($a_array as $value){
print $value."\n";
}
?>
を実行すると、
11:a
1:a
1:b
となってしまいます。
1:a
1:b
11:a
としたいのですが、どのようにすれば良いのでしょうか。
793 :
792:03/03/08 08:40 ID:???
natsort();
でうまくいきました。
失礼しました。
>>739 デザイナーだったら、2進法とか、バブルソートとかから勉強した方がいいのでわ?
>>794 Web制作板ではデザイナーはその辺のコーダとは住む世界が違う人間だそうだ。
796 :
nobodyさん:03/03/09 18:58 ID:/LDM9G/p
会社のマシンにApacheとか入れてテストするのは危険ですか?
>>796 ローカルでやる分には全然問題ないかと。
いちよー80以外の適当なポートにして・・大丈夫だろうが、危険因子は排除
799 :
nobodyさん:03/03/09 23:47 ID:/LDM9G/p
>>797 >>798 アドバイスありがとうございます。
ところで、MySQLとPHPを使ったデータベースを作成するなら、
まずどちらを先に勉強したほうがいいでしょうか?
>>799 どっちでもいいよ、結局どっちも知らなきゃ組めないし。
>>799 結局同時進行になると思われ。
まぁ、作りながらならPHP > NySQL > PHP > MySQL
ってな感じになると思うけど。
_____
/二二ヽ
||・ω・|| <俺、失職しちゃったよ
. ノ/ / > 俺、失職しちゃったよ
ノ ̄ゝ
803 :
nobodyさん:03/03/10 13:41 ID:2kdAUSJ0
PostgreSQL 7.2.3からPostgreSQL7.3.2に変更したところ、
PHPでlo_unlinkを使用する箇所で下記のようなエラーが出ました。
[ SQL文 ]は失敗しました。
ERROR: Function lo_unlink(text) does not exist Unable to identify a function
that satisfies the given argument types You may need to add explicit typecasts
動作的に使用しなくても問題はないように思えます。
postgreSQLのバージョンアップにより、lo_unlinkは使用しなくても良くなったのでしょうか?
「環境」
Red Hat Linux 7.2
PostgreSQL7.3.2
php-4.2.3
apache_1.3.27
804 :
bloom:03/03/10 14:36 ID:3QAlitRl
805 :
nobodyさん:03/03/10 14:50 ID:ethusIs+
携帯のサイト作ってるのですが、
掲示板に行くのページに一番最後に書き込んだ人の名前と日にちが、
でるようにしたいのですがどうしたらよいでしょうか?
>>803 エラーメッセージを見る限り、引数の型が間違っているようですが。
その辺は確認しました?
807 :
607:03/03/10 21:42 ID:y6h+x0ia
>>805 掲示板がどんなヤツなのかよく解らんが、
書き込まれたデータをテキストで保存している形式なら
CGIで最後のコメントだけ抽出して表示すればいいかと。
マジレス
>>805 一番最後に書き込んだ人の名前と日にちだけを記録したファイルを作るといいよ。
requireするだけで表示できるし。
>>810 使い倒して仕様を掴む。ソースがある場合は死ぬ気で読み解く
↓
判明した仕様通りにコーディング
>>808 キャッシュ生成すんのがダサいコーディングか?
バックグラウンドがDBだろうがファイルシステムだろうが、
検索コストに比べりゃキャッシュ使うべきところだろ。
ま、名前と日にち"だけ"のキャッシュってことはありえんだろうが。
>>812 なんかphpスレ一帯に煽り耐性のない学生が出没してるな・・・
>>811 初心者なので全然わけがわからないです。
一応そこの管理人さんにソース?もらったのですがさっぱり…
816 :
815:03/03/11 11:41 ID:???
他のとこでも聞いてきます。phpで出来なさそうなので
CGIでがんばります
>>816 そのレベルだとどこ行っても一緒だとは思うけどね。
>>815 Hello world
からプログラムやり直せ。
819 :
812:03/03/11 21:33 ID:???
そうか、隠れた指摘でもあるのかと思って反応したのだが、
単なるカルシュウム不足だったのか。牛乳飲んで出直してくるよ
>813
折れの書き方が悪かった。
検索に掛かるコスト>キャッシュに掛かるコスト だから後者を選ぶべきという事が言いたかった。
ただDBMS使っててクエリキャッシュが効いて、そっちの方がコストが小という場合があるかも知れん。
>>805 $files = file($dat);
$line = $files[0];
>>820 キャッシュすれば良いんだってさ。わざわざファイル作って。
>>806 その通りでした。テーブル定義がtextのカラムをlo_unlinkしていたみたいです。
バージョンアップと共にチェックが厳しくなったんですね・・・。
823 :
nobodyさん:03/03/12 20:28 ID:Q/ug/Lhk
初心者ですいません、質問ですが、
mb_convert_encodingを使おうとするとエラーが出ます。
undefined function: mb_convert_encoding() とか言われます。
php4.3.1は使える関数じゃないのでしょうか?
使っているバージョンはphp4.3.1+IISです。データベースはMYSQLです。
どうかご教授ください、お願いします。
>823
php.ini
825 :
nobodyさん:03/03/12 21:55 ID:Q/ug/Lhk
>824
ありがとうございます。
いじってみましたがよくわからないのです・・・
php.iniのどれをいじればよいのでしょうか・・・
mbなんちゃら;
>823
php.iniの設定も必要(PHP4.2の頃から設定が変わったので注意)だけど、
その4.3.1が--enable-mbstring付きでコンパイルされてないと駄目。
(RCの頃にはデフォルトで有効だったんだけどね…次回バージョンまでに多言語関係の熟成に期待)
再makeするなら、--enable-mbstring=allとして他の言語も入れといて良いんじゃないかな。
その分大きくなるけど。
>>827 Windows用として配布されてるのはそんな心配ないよ。
php.ini だけ。
少しPHPから外れちゃうかもしれないんですけど、
登録してもらうときにとりあえず登録してもらって表示するときにいらない要素を排除するのと、
登録の際に評価して削るのはどっちが素敵ですかねぇ〜?
DBの容量も考えたら後者なのかもしれないんですが、少し迷ってみたり。
831 :
829:03/03/13 11:43 ID:5jM1K4IS
832 :
829:03/03/13 11:44 ID:???
ageてもうた・・・ハドゥカティ〜
逝ってきます・・・
>>831 DB使うなら後者でも良いと思いますけど。どうせマーシャル処理が入るんだし。
テキストファイルの時はそのままPOSTメッセージを保存したりもしますけど。
834 :
829:03/03/13 12:22 ID:???
>>833 自分も後者がいいような気がしてきました。
とりあえずそっちでやってみます〜ありがとうございました!
>828
おぉう、IIS(=Windows)って書いてありましたな。確かに
(; ´∀`)?
揚
838 :
nobodyさん:03/03/14 03:30 ID:bKVRIfIQ
CSVファイルを使っているページで、検索を行う場合、
どのような処理が理想なのでしょうか。
preg_grepで配列に入れて、該当した順番に吐き出したのですが、
マッチする場合とマッチしない場合が出てしまいます。
840 :
839:03/03/14 14:58 ID:???
PHP 4.0.4以降、preg_grep()により返された結果は、
入力配列のキーを使用して添字が設定されます。
を見落としてました恥
Perlだとflockでロックして解除しなかったら
ファイル閉じたときに自動的に解除されるけどphpも同じでしょうか
>>841 直接システムコールを叩いてるだけなら一緒じゃないの?
どっちにしろ激しく非推奨。
843 :
sage:03/03/16 23:41 ID:MfieTvGJ
PHPもPostgreSQLも初心者ですparse errorが続出でデバックにかなりの時間
掛かっています、200行こえるとかなりきついっす
あきらめて一晩たってよく見れば } の付け忘れとかどうしたらこういうケアレスミスをふせげるでしょうか、まじ情けないです。
ちゃんと集中する。
parse errorを取ることはデバッグといわない罠
度々再々とチェックする。
847 :
nobodyさん:03/03/17 00:24 ID:WZEdmRHq
>>843 844はもっともな答えだが、PHPはスクリプト言語なので、
ケアレスミス程度なら体が覚えるまでerror→訂正ぐらいの
気軽さで勉強しても構わないよ。
昔、パンチテープ(工作機の制御用にまだ使ってた(笑))の時は
そりゃあ、机上デバッグに力入れたもんだが…
ちょっと聞きたいんですが
Warning: pg_query() query failed: ERROR: parser: parse error at or near "1" in /home/hoge/public_html/hoge.php on line 83
これって2つのエラーメッセージですよね
Warning: pg_query() query failed
これはpg_queryって関数が無いってことでいいのかな?
parse error at or near "1" in ?
or near "1"っこれがちょっとわからないんですが、教えてけれ。
>>848 んにゃ、pg_query()に渡したsqlが間違っている。
>>843 そんなもの防ぐ必要がない。
parseエラーなんか、出たら修正すればいい。
メッセージちゃんと読めばすぐ見つけれるようになる。
エラーメッセージ嫁!
エラーメッセージを無駄な情報だと思ってる奴は正直プログラマに向いてない。
まあ、parse errorに関しては
色分けしてくれるエディタ使うとか
マメにphp -lでエラーチェックするとか
予防は出来るけどそれ以上は無理だね。
ま、書いてる本人のミスなわけだし。
自分もついさっき
$db->query("SELECT * FROM hoge WHERE user = '111');
と最後の"を書き忘れ、かなり長時間悩んじゃったよ(苦笑
>>851 2chを無駄な情報だと思ってない漏れは、プログラマに向いてますか?
854 :
nobodyさん:03/03/17 16:52 ID:eIaELJZp
imap_openを使いたいのですがundefined…というエラーが出てきます。
どうすれば使えるようになるのでしょうか。。
つぅかコンパイルエラーごときで質問しに来てんじゃねぇよぼけ。
エラーを出すような人は正直プログラマに向いていない。
858 :
854:03/03/17 17:04 ID:eIaELJZp
環境はWin2kでPHP4.3.1とApache1.3.27です。
859 :
854:03/03/17 17:09 ID:eIaELJZp
外部ファイルから引っ張る時、
<?php
function test(){
?>
aiueo
<?php
}
?>
というのと、
<?php
function test(){
print <<<END
aiueo
END;
}
?>
どっちが便利?
すまん。だめじゃなかった。でも上はきらい。
>>861 外部ファイルを引っ張るとき...? ってのが意味不明だが、
秀丸を使っていると、上は色分けをしてくれるのでいいが、
中に変数をそのまま埋め込みできる下を多用してます。
秀丸いいね
おでは先週くらいから、Emacsにphp-mod.el組みこんで
使ってるんだが、おでがへぼいんでEmacsのパフォーマンスを
引き出せないので悲しい、Emacs使いこなせたらなんでもできそう
な気になりまふでも秀丸のLinux板がでたらそっち使うが
まぁ絶対にありえないだろうけど。
>>861 ていうかロジックとビューの分離くらいしろよ。と。
質問します
2チャンネルで字下げするのどうしたらできまふか?
おいらも861みたいになちゃうんだよね。
めんどいな。
ランダムな8桁の英数字(大文字小文字も使いたい)をPHPで発生させたいんだが
どちたらできるの?
マニュアルよんだら数字の乱数の作り方は出てたが英文字はないのでないのかい?
情報キボンヌ
s/ / /g
>>869 >英文字はないのでないのかい?
ちょうどASCIIのaやAに当たる文字コードを加算するだけで事足りると思うんだが。
もしくはrandomした数字をMD5にでも渡すとか。
>>871 MD5だと[0-9a-f]だよ。
俺はsubstr(crypt(uniqid("")),-8)とかやっている。
uniqidに限らず他を使う場合もあるけどな。
サンクス
マニュアルみたら
$better_token = md5(uniqid(rand(),1));
こんな例がでてまふた、でもこれじゃあ32文字も出るんだ罠
そんなにいらんのだが、最初の8文字とかでもいいのだが
パラミィータ設定してスマートに8文字だせんかの?
マニュアルには prefix を空とした場合、返される文字列の長さは、 13文字となりますと書いてあったがどうしたら8文字にできまふか?
自分で切れば?てか、切って当然。
やっぱこれっすか
s/ / /g
切まふ
文字数を渡して好きなように切れる関数でも作れば?
細かい機能は自分で関数を作れば解決。
>>875 文字数で切るだけならsubstrでいいでそ。
>>876 substrすら知らずに偉そうに煽ってる?
いやいや、$better_token = md5(uniqid(rand(),1))とsubstrをくっつけて、
好きな文字数且つランダムなのが取得できるのを作ったら?
ってつもりだったのだけど…。
873が既存の関数だけでなんとかしようとしてるのが、プログラミングを楽しみ切って
ないようにみえたから。
880 :
nobodyさん:03/03/18 03:12 ID:4yQWEX54
>>880 でもエクリプスの最新版は英語ができないときつい罠。
まあ秀丸より便利だしね。
もうもどれね。
ところでuniqid命令で生成される乱数に英数(大文字、小文字)以外の
文字もでてきちゃうね(^^;)
.とか/とか\とか困ったな、アルファベットの大文字小文字と数字だけ
だせないものなの?
↑のものですが、ごめんなさい
"\"マークはでないみたいですね、でもやっぱり"."と"/"は出やがるぜ
MacOSX10.2.4でphp4.1.2です。
自鯖にレッツphpのぁぷろだを入れて使ってるんですが、10MB以上のファイルをupload出来ないです。
post_max_sizeもupload_max_filesizeも30MBとかにしてるんですけど。
他に設定しないといけないところがあるのでしょうか。
Scriptの実行時間の制限は?
>>882 range
array_merge
srand
array_rand
>885
max_execution_timeですかね。
30なんですけど、ローカルでuploadしても10MB以下だと出来るのに、10MB超えるとだめだから、時間ってのは違うっぽいんですよねぇ。
Apacheの方でも制限なかったか?>サイズ
うろ覚えだけど。
あーあとPHPでも複数制限があったような気がする。
ログになにか出てないかい?
あとmemory_limitも見たいところだね。
memory_limitは設定してもphpinfoでは表示されてないです。
Apacheの設定ってのも関係あるかも知れませんね。
調べてみます。
レスありがとうございました。
>891
外野からだが参考になった。
LimitRequestBody ディレクティブは、指定されたコンテキスト (サーバ全体、ディレクトリ、ファイル、ロケーション) 内において HTTP リクエストメッセージボディの許容されるサイズに制限をかけることができます。
893 :
891:03/03/19 01:09 ID:???
MLのスプール読んでたら同様の指摘が…もはや本家ではFAQだそうな。
なんかシンクロニティ
894 :
初心者:03/03/20 00:35 ID:???
あのさ、$_POST['hogehoge']の中身を抹殺するのってどうやるのかな?
<form method=post action='index.php'>
<input type=text name='hogehoge'>
</form>
ってやって index.php が表示されたときに
ブラウザの再描画ボタン押したらもう一度$_POST['hogehoge']送信
されちまうじゃん。
普通こういうのってどうやって処理してる?
895 :
初心者:03/03/20 00:36 ID:???
age
897 :
初心者:03/03/20 00:48 ID:???
>896
refresh関数なんかないけど・・・
もしかして unset($_POST['hogehoge'] ) をいってますか?
やってみて下さい、無駄ですから。
header('Refresh: 1, URL');
899 :
初心者:03/03/20 01:09 ID:???
>898
ぅぉ!出来た!!
さんくすでしたmOm
何気に邪道な気もしないでもないが。
phpってこういった機能は実装しないのかなぁ
>>901 HTTPのレスポンスヘッダを全て関数に実装するのもどうかと思うが(w
>902
違う違う、一度与えた$_変数の有効期間を設けるとかそういう類の
関数って意味。
sessionと併用したスコープなんてのがあれば実現出来そうな気が
するんだけどなぁ。。
タブと ;; 区切りの文字列をlist()にぶち込みたいのですが、
;; のほうが二文字だからか、上手く機能してくれません。。
いったいどうすればいいんでしょうか?
マニュアル見る限り出来そうなのはわかるんですが・・
>>904 何を試してみたか書いたほうがいいよ。
preg_split使ってみた。
$array = preg_split("/::|\t/",$str);
ん、split('(\t|;;)',$str);でいいんでつね・・(´Д⊂ヽ
文字列分割系の関数いっぱいあってようわからん、、(´Д⊂ヽ
板汚し失礼しました
>>905 あう、時間差ごめんなさい汗
explode()とsplit()で頑張ってたんですが、
preg_split()のマニュアルページ見てるとgoodな例文あったのでそれで何とかなりました・・ありがとうございますっ
908 :
nobodyさん:03/03/20 14:11 ID:usTHLNmu
//----------------
// time()
//----------------
$t = time();
$timestamp = mktime('','','',date("j", $t),date("n", $t),date("Y", $t));
$yy = date("Y", $timestamp);
$mm = sprintf("%02d",date("j", $timestamp));
$dd = sprintf("%02d",date("n", $timestamp));
print "time = $yy/$mm/$dd";
と
//----------------
// getdate()
//----------------
$nowtime = getdate();
$year = $nowtime["year"];
$mon = sprintf("%02d",$nowtime["mon"]);
$mday = sprintf("%02d",$nowtime["mday"]);
print "gettime = $year/$mon/$mday";
実行すると
time = 2004/03/08
gettime = 2003/03/20
なんでtime()の方は違うんだ?
909 :
nobodyさん:03/03/20 14:52 ID:HiyOtoa6
910 :
の:03/03/20 15:06 ID:VfWWllNI
912 :
nobodyさん:03/03/20 15:59 ID:ZLETgyRF
PHPプログラムを配布するんですが
ソースコードを改造出来ない様にする方法は無いですか?
Zendエンコーダは高くて・・。
914 :
911:03/03/20 17:06 ID:???
>>913 違いますよ。
容量大きくて面倒でしょうが、
解凍できてる方、報告お願いします。
>>910 ですか・・・逝ってきます。サンクスです。
質問さしてね
HTMLでアンカーってあるよね、同じページのなかでジャンプ
するやつ、PHPでこの命令はないの?
(゚Д゚)ハァ?
920 :
910:03/03/20 19:24 ID:???
>>919 ありがとうございます。
不可解ですが、Winzipで試したら解凍できました。
Winzipと日本のzip形式とでは仕様が異なるんでしょうかね?
日本のzip形式ってなんだよ・・・_| ̄|○
/ ヽ
/ プラーン ヽ プラーン
∧ /∧ ∧ヽ∧
( ⌒ ヽ ( ⌒ ヽ 俺のはカンコック式zipだった。。
∪ ノ ミ 彡 ∪ ノ
ヽ_),) し'l_ノ
カンコック式zipにワラタ。
>>921 zip7だっけか?日本人が開発した、
「unzip32.dllでエラーを起こすちょっと小さいzipファイル」
を生成するプログラムを書いたバカがいる。
phpinfo()で mbstringが有効になってる?
たまたまうちのphp@windowsも4.3.0だけどmbstringが有効になってなかったよ。
php.iniのextensionの部分をチェックすべし。
EUC-JPユーザ云々の設定は、その後の話だね。
>>925 Windowsだったら、php.iniでphp_mbstring.dllを
dynamic loadしてないんじゃないの?
extensionsディレクトリに入ってるから
(入ってなければ適切でないパッケージをダウンロードしてる)
extension_dirをきちんと設定してやって、Dynamic Extensionsの項の
該当するDLLのコメントを外す。
もし上が原因だったら、きちんとphp.iniのコメント記述を
読んでないからなので、英語だからと敬遠せずに一度ちゃんと読みなハレ。
928 :
927:03/03/22 04:55 ID:???
とはいうものの、php.iniのコメントだけだと自動DLのやり方は判るものの、
DLが必要ということは判りづらいかな。
929 :
925:03/03/22 06:39 ID:???
>926-927
thanxです。
php_mbstring.dllの項目を見つけたのですが、
まだ、ちょこちょこ修正が必要なようですね。
今日はもう眠いので明日また取りかかろうと思います。
ありがとうございました。
930 :
925:03/03/22 15:32 ID:???
extension_dir = "C:\php\extensions\"
の個所を指定していなかったのが原因のようです。
mbstringに限らず拡張モジュールで検索したところ見つけることが出来ました。
Dynamic Extensionsの項は全く見ていなかったので、本当に助かりました。
たぶん、まだ設定が必要だと思いますので色々調べてから利用しようと思います。
ありがとうございました。
931 :
nobodyさん:03/03/22 19:02 ID:UE3IynkO
setcookie("***");
とすると、*** という名前のクッキーが削除されるのは
どの本を見ても書いてありますが、
新しくクッキーを書きこむと、書き込んだものとは別の意図していないクッキーの値が
消えるので、ひょっとしてはと思いお尋ねします。
クッキーって個数制限はありますか?
ただ、制限があったとしても400個くらいだったと記憶しており、
私が使用している数はせいぜい50個くらいです。
どなたかご存知の方、どうぞよろしくお願いします。
50個も使うか....普通...
>931
減らせよ。正直迷惑。
クラスについて聞きたいのですが、
クラスメンバは全てpublicなのでしょうか。
C++みたいにprivateやpublicは指定できないのですか。
newで作ったインスタンスのスコープはどのくらいなのでしょうか。
delete演算子とかないですよねぇ。
マニュアル見ても詳しくかいてなかったのでよろしくおながいしまう。
>>935 ええ、できないです。
関数内じゃない?ifブロックとかだと生きてるし。
937 :
nobodyさん:03/03/22 21:13 ID:UE3IynkO
931 です。
書き込むクッキーなのですが、
***[01][1]
***[01][2]
***[01][3]
***[02][1]
***[02][2]
***[02][3]
のような形で多次元配列(連想配列の配列)に入れています。
これってクッキーにそのまま書けますかね?
・PHPに多次元配列がある事
・クッキーに配列を書き込める事
それぞれはしばしば解説してあるのを見かけるのですが、
多次元配列がクッキーにそのまま書き込めるのかわかりませんでしたので。
ひょっとしたらそのせいかとも思いまして。
setcookie("***[01][1]","$value",time()+36000);
のような形で書き込んでいます。
どうぞよろしくお願いします。
>935
そのあたりはPHP5以降に期待やね…。
939 :
bloom:03/03/22 21:18 ID:d1IUlECS
941 :
935:03/03/22 21:49 ID:???
942 :
nobodyさん:03/03/22 21:50 ID:vD6RRe1J
perlのmyにあたるものは何ですか?
そんなものはないです
>>942 そもそもスコープが関数内に限定されるので必要なしです。
変数のスコープはそれ以上狭くならないの?
946 :
nobodyさん:03/03/22 22:06 ID:UE3IynkO
>>940 やはり無理ですか。
だとすると、多次元配列で扱った方がスマートに処理できるデータをクッキーで扱う場合、
みなさんはどうやって処理されてますか?
例えば
$tmp[01][1] = '111';
$tmp[02][2] = '222';
というような値を扱う場合、
デリミタを定めて、一旦下のような形にしてから書きこむしかないのでしょうか?
$tmp = '01#1#111###02#2#222';
だとするとまた後でsplit するしかないですよね・・・
>>946 と、言うかcookieなんて不安定なストレージに多量のデータを書き込んだりしない。みたいな。
948 :
nobodyさん:03/03/22 22:18 ID:UE3IynkO
>>947 なるほど、だとしたらやはりセッションですか?
例えば大きな買い物カゴのシステムを作る場合のデータは
どこに保存するのが望ましいでしょうか?
950 :
nobodyさん:03/03/22 22:21 ID:UE3IynkO
>>949 なるほど、例えばperl でユーザ側の挙動を記録する際は
どうすればいいですか? 仕方なくクッキーですか?
何故にセッションとクッキーを別に考えますかね?
クッキーもセッション管理の一つの手段でしょうに…。
>>952 セッションを識別するためのな。
セッションで保存し続けるデータを丸入れするもんでは断じてないだろう。
>>953 それは規模によるね。丸入れで十分な場合もあるし。
まあ例に挙がってる大きな買い物カゴでクッキーに丸入れは無謀以外の何者でもないが。
ポストされたSJISのデータをファイルに保存するとソの文字に\\ていうのがつくんだけど
どうやって回避するのでしょうか?
956 :
955:03/03/22 23:26 ID:???
悩むのめんどくさそうなのできっぱりEUC_JPで行く事にしました。
>>931 ちょっと遅レスだけど、知らん人のために・・・・
> クッキーって個数制限はありますか?
(引用)
http://e-words.jp/w/Cookie.html 1つのCookieには4096バイトのデータを記録でき、最大で300のCookieを保存できる。1台のサーバが同じコンピュータに対して発行できるCookieの数は20個に制限されている。
958 :
nobodyさん:03/03/23 01:23 ID:BBpu4hLb
959 :
初心者:03/03/23 01:25 ID:???
リモート情報取得で$_SERVER["REMOTE_ADDR"]使うと
xxx.xxx.xxx.xxx 形式でしか取得できないんだけど
bbb.aaa.hogehoge.co,jp形式で取得できる方法ってどうやるのだろ。。
age
961 :
初心者:03/03/23 01:54 ID:???
っつーか、$_SERVER["REMOTE_HOST"]
が効かんのは何故だ。。
HostnameLookupsはOnにしてるのだが。。
>>958 ブラウザを閉じても、ってことはcookie使うのを前提にしているとして、
1. cookieが消えないように設定
2. セッション情報がサーバから消えないように設定
1.は session_set_cookie_params()かな。またはphp.iniのsession.cookie_lifetime。
2.は php.iniのsession.gc_probability、session.gc_maxlifetimeを弄ると良さげ。
または、session_set_save_handler()を使って消えないようにするとか。
>>959 gethostbyaddr($_SERVER["REMOTE_ADDR"])
963 :
962:03/03/23 02:21 ID:???
と思ったけど、HostnameLookups onならgethostbyaddrしても出てきそうにないな・・
964 :
959:03/03/23 02:29 ID:???
>962
>963
あんがとmOm
965 :
nobodyさん:03/03/23 09:11 ID:gFyfJ3h7
phpでime.nu経由のリファラーを弾きたいのですが
記述方法を教えて下さい。
>>965 PHPのマニュアル一回でも読めばそれくらい出来るだろ?
一覧表示してみると$_SERVERと$_ENVが同じにみえるのですが、実際はどう違うのでしょうか。
968 :
nobodyさん:03/03/23 12:00 ID:fA4gH2xG
グローバル変数とローカル変数の違いを
だれかおしえてください。
例を挙げてもらえると助かる
>>968 どこからでもアクセス可能。
所属するスコープ内だけで有効。
>>968 <?php
$グローバル
function(){$ローカル}
?>
971 :
968:03/03/23 13:40 ID:fA4gH2xG
>>968 お返事どもでつ。
例をあげてくだつぁぃ。
カウンタとか掲示板で。
>>972 <?php
$global
function hoge() {
global $global;
$local;
}
972 名前:nobodyさん 投稿日:2003/03/23(日) 13:48 ID:???
>>970 その$グローバルは違うだろ!
アホがいます。
975 :
965:03/03/23 16:20 ID:gFyfJ3h7
>>966 分からないです…せめてヒントだけでも教えて下さい。。
>>966 マニュアルだけでは足りん。
TCP/IPの常識HTTPの常識CGIの常識論理的思考力発想力気力体力
何より大切な自分で問題を解決するための手段を考える問題解決力。
>>975 966じゃないが、
ヒント
if,ime.nu,Location
はい、完成。
978 :
965:03/03/23 17:51 ID:???
>>977 うわぁありがとうございます。検索したら出来ました。感謝。
>>978 ためしに検索してみたらJavaScriptの方法が目立つけど、
まさかJavaScriptで代用したなんてことはないよね・・・(笑)
んじゃ998が999の質問の回答を含めた掲示板を作る。
Flash板みたいなことを・・(*´∀`)
実験的に
Apache PHP PostgreSQLで、セッション変数使ってDB上のIDとpasswordを
認証してからメンバーページにログインできるような会員制のサイトを
作ってみたんだけど、あとSSL使ってネット上に平文が流れないように
IDとpasswordを暗号化したくらいでセキュリティーが保てれるんでしょうか?
>>984 とりあえずパスワードを伝送経路で盗聴される危険性は少なくなったと。
後はサーバ側のパスワードの管理とバカユーザがモニタにパスワードを張らないように見張ることとか。
>985
マジレスサンクス
>バカユーザがモニタにパスワードを張らないように見張ることとか。
これはある程度防ぎようがないっすね、パスワードを他人に漏らす
ってことですよね、漏らした人間が不利益をこうむらない限りしかたないっすね。