【PHP】初心者コーナー
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
02/01/21 03:21ID:???仕方ない、人気のないPHPを応援してやる。
データベース禁止 MySQL PostgreSQL はどっかいけ。
純粋にPHPプログラミングだけ。
初歩的な事ならWebProg板の誰かが素早く教える。
もちろんPerlプログラマーも手伝ってくれ。
ほんじゃ質問してみ。
>>2-9 誰か情報かいてくれ。
0588nobodyさん
03/02/18 21:59ID:???今はこんなことやってるんですけど…
$slashes = count_chars($_SERVER["PHP_SELF"], 1);
for($i = i; $i < $slashes[47]; $i++) {
$dir.= "../";
}
0589nobodyさん
03/02/18 22:16ID:oWDXj+bJ! i iノノリ)) 〉
i l l.´ヮ`ノリ <先生!こんなのがありました!
l く/_只ヽ
| ̄ ̄ ̄ ̄ ̄|
http://saitama.gasuki.com/kaorin/
0590nobodyさん
03/02/18 22:21ID:???できるよ
print_r($_REQUEST['del_no']); で出力してみそ。
出力を見たら分かると思うけど、チェックされてないものは配列に前詰めされてしまう。
>>587が無理って言ってるのはその辺の意味もあるのかもね。<form>が無いからかも知れないけど。
>>588
dirname()は使えないかな?
0595586
03/02/18 23:06ID:???0596nobodyさん
03/02/18 23:07ID:???管理人がクソ厨なブタ野郎だからいじり倒してサイトを閉鎖させちゃえ!
閉鎖できた人は「荒らし王」の称号が手に入る!さぁ!荒らせ!!!!
http://www.geocities.co.jp/Bookend/6473/
0598nobodyさん
03/02/19 00:10ID:YL/PSmd00599nobodyさん
03/02/19 02:48ID:oUZRirLtPHP初心者です。
PHP←→postgreSQLについて質問です。
odbc_connect()関数の呼び出しで
Call to undefined function: odbc_connect()
と出てしまいます.モジュールか何か足りないんでしょうか?
どのようにすれば動くようになりますか?
新しいのを入れたほうがいいのでしょうか?
よろしくお願いいたします!!
0600nobodyさん
03/02/19 03:40ID:???0601173
03/02/19 13:59ID:pmHLZySeゔ,pg_connectでした・・・
こんなんで悩んでたなんてはずかしいです・・・
ツッコミありがとうございます。
0602nobodyさん
03/02/19 18:54ID:Bw4fiDtc削除機能の付け方がわかりません。参考書にも書いてないし。。
どうすればよいか教えてください。(どの関数を追加するとか)
0605602
03/02/19 20:00ID:OPQFETdVもういいです。他で聞きます。
0606nobodyさん
03/02/19 20:40ID:???大方レス削除機能なんだろうけど、その機能のコードをまるまる他人に頼るつもりなんだろうか…
0607nobodyさん
03/02/19 20:56ID:???0608nobodyさん
03/02/19 21:03ID:Bw4fiDtcわかりました。ちょっと待ってください。
0609nobodyさん
03/02/21 00:19ID:D44CnFCNif (empty($submit))
の部分を
if (empty($_GET['submit']))
としても、その下にある<form action="">以下にある変数が
代入されないのですが....
0611nobodyさん
03/02/21 02:41ID:???インデックスがねーっつー方向でよろしいか?
あと、文字化けやらメニュー項目もおかしいんだけどまぁいいか。
だれか編者に連絡してくだちい。
0612nobodyさん
03/02/21 03:51ID:vyQB60siなったんですか?$_POST自体はPHP4.1.0だったと思うのですが。
0613nobodyさん
03/02/21 05:38ID:XED00hVU>最初はソースをShift_JISで書いていたのですが、知人にPHPのソースは
>EUC-JPで書いたほうがよいと言われ、
まずここが間違いだと思われ。
EUCでなければならない根拠はない。
>576 にも書かれてあるが内部コードは統一したほうが余計な苦労をしなくて済みます。
0614nobodyさん
03/02/21 05:51ID:XED00hVU$_POST,$_GETで受け渡しするのは正式にはphp-4.2.0からで、スーパーグローバル変数を禁止するように
なりました。
php.iniのregister-globalsが存在しているバージョンということでdefaultでOffが設定されています。
次のphp-5.0ではクラス内のグローバル変数をdefaultで禁止するようです。どういうことかというと
これまでクラス内部でvar定義されたものは
$this->class->hensu
というようにアロー演算子によってアクセス出来ていましたがこれが出来なくなります。
クラスのカプセルかを強化しようという事です。
0616nobodyさん
03/02/21 06:22ID:JDlnr9Kahttp://jsweb.muvc.net/index.html
0617614
03/02/21 07:49ID:???>クラスのカプセル化強化によってどいった利点があるのか、
>説明ぎぼんぬ。
漏れの技術的判断の限りでは、効率としての効果は無いと思われる。無駄なモジュール肥大化と
スタック処理によりスピード低下は否めないだろう。
C++やeRubyに対抗しようとする開発者の自己満足とかそういう類に属する拡張と理解している。
どうもphp開発者のエゴのような気がする。
0618614
03/02/21 08:04ID:???ああ、一応初心者用に付け加えておくが
クラスのカプセル化という意味においては必要不可欠な機能であるという事だ。
オブジェクト指向を理解している香具師は読み飛ばして頂いて結構なのだが
クラスの保持するvar変数は本来外部から操作されてはならないという要件がある。
どうしても操作したい場合にはメソッドとしてインターフェイス関数を内在させ、その仲介によって
アクセスされるものであるというものだ。プロパティも原則として同じである。
php4.3.xではこれらの実装を見送ることにしたのだが、プログラムでクラスを多用するといくら継承していても
ストレートに"->"アロー演算子でvar変数を改竄出来てしまうのである。
これは本来のクラスの目的とは大きく異なるものであり、現在のphp4.3.xのままでは
クラスとは名ばかりである。
プログラミングしている方は気が付いていると思うが現在のphpclassは只のinline関数に過ぎないのである。
具体的には以下の様な感じになる。
class sample{
public:
var $db;
private:
var $hensu1;
protect:
function sample();
}
以上、理解できるだろうか。。
0619nobodyさん
03/02/21 09:21ID:7Llp1QHv( ´_ゝ`)
0621615
03/02/21 10:33ID:???説明ありがとう、しかし理解できね。
よくやることなんだが、
class foo{
var $DB;
function foo($DSN){
$this->DB=DB::Connect($DSN);
}
function hoge($sql){
return $this->DB->getAll($sql)
}
}
って書き方は出来なくなるってことですよね。
php5になったらどゆ書き方になるのか、よければ説明してほしい。
0622nobodyさん
03/02/21 10:42ID:???getterとsetterじゃないの?
class a
{
var v;
function geta()
{
return $this->v;
}
function seta(v)
{
$this->v = v;
}
}
0624614
03/02/21 11:38ID:???>言ってる事は正しいが、真中のあたりから激しく論点がずれてるんだが。
ん、論点違ったかい?そりゃ失礼。
0625614
03/02/21 11:39ID:???>よくやることなんだが、
>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)
}
}
0626614
03/02/21 11:39ID:???>>>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 と出力される
0627615
03/02/21 12:05ID:???多謝!
だいたい理解できた(と思う)
public: とか private: なんて今まで使ったことないのだけど、
雰囲気的になんとなくぅ〜で、まぁその辺は調べるわ。
CUIな時代はCを少しやったが、GUIな時代になってC++なんかぜんぜんしらんし。
オブジェクト指向つうのに未だ正しい理解できず。PEARと格闘してま。
ほんま、ありがとな。
0629nobodyさん
03/02/21 19:20ID:???>強化と言うか誰からも触れないときめき変数じゃん。それ。
トキメキ変数?
なにそれ・・・・。
さすがの猿飛はスキトキメキトキスだっけ・・・。
0630nobodyさん
03/02/21 22:38ID:tMiGGtI4フォームに入力してそのコピーメールが投稿者のアドレスに
届くと言うものなのですが、その届いたメールアドレスが
me@localhostになってしまいます。
これを自分のメールアドレスに変えて送信する
にはどうしたら良いのでしょうか?
↓がそのサンプルです。
ttp://210.143.102.80/upload/source/d/0838.zip
0631nobodyさん
03/02/21 22:40ID:tMiGGtI40632nobodyさん
03/02/22 00:09ID:???mail()かmb_send_mail()の引数string additional_headersに、
From: [email protected]を入れる。必要によりstring additional_parameterも。
詳しくは
ttp://jp.php.net/manual/ja/function.mb-send-mail.php
0633nobodyさん
03/02/22 00:17ID:???$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);
0634630
03/02/22 00:38ID:p54zeupRやってみます!どうもありがとうございました
0635tantei
03/02/22 00:42ID:???●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
直通 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール [email protected]
グローバル探偵事務局
0636630
03/02/22 02:08ID:p54zeupRと、それは良いのですが1つ気づきました。
これって書き込んだ人にコピーメールを送るけど
肝心の自分のところにはメールが届きませんよね?
だからどういう問い合わせをされたのかわからないのですが。
その辺も解決策は無いでしょうか?
0637nobodyさん
03/02/22 08:44ID:???CCしろ
0638nobodyさん
03/02/22 08:55ID:???632で答えたのがバカらしくなる質問だな。
参考書丸写しかよ、ちったぁ自分で考えな。
ってか、ちゃんとその参考書嫁よ
【PHP】質問スレに、WebProg板らしからぬ質問が増えたので、
このスレが出来たのだが、教えてクレクレ君が許されるわけではない。
0640nobodyさん
03/02/22 11:08ID:???ふと思ったんだが、
>メールについて勉強
って具体的に何を指すの?
SMTP、POP3、IMAP、APOP、ESMTP、MIME、uuencode、BASE64、TCP、IP、SMTP Auth、POP Before SMTPなどなど深いぞ。Eメール業界。
0642630
03/02/22 11:54ID:15dKIbQj自分で考えるにも狭い範囲(参考書)の教養しかなくて・・。
632のページ見て試したのですが、送られなかったし
クレクレ君と言いますが、逆にどのようにしていいか
わからないので学ばせていただこうかと(ここしか教えてくれるところしらないし)
あと、参考書丸写しじゃないですよ。
0643nobodyさん
03/02/22 12:05ID:???>>メールについて勉強
>って具体的に何を指すの?
>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を諦めたほうが良い、それ以前の問題だから。
0644nobodyさん
03/02/22 12:24ID:???はい?
0645nobodyさん
03/02/22 12:26ID:???便利だ。今度から「Order: ラーメンと餃子届けて。あ、金は向こう持ちね。」とか書いておこう。
0646630
03/02/22 12:46ID:15dKIbQjまだ、はじめて一週間ぐらいなんで・・・。
でも、PHPはやってて楽しいし絶対、取得したいんです。
さっきも632のページを見たり、他のサイトで調べたり
テストしてみたりしたんですが、どうしても上手く行かないんです。
とりあえず、mail headerですか。。それについてまた勉強してみます。
0647nobodyさん
03/02/22 16:57ID:???>>メール業界。
>はい?
郵便局とか、バイク便の事では?
>645
>>ここに記述すればなんでも出来
>便利だ。今度から「Order: ラーメンと餃子届けて。あ、金は向こう持ちね。」とか書いておこう。
漏れなんか「hope: 新春宝くじ2億円当選キボンヌ!!」としてるが何か?
0648nobodyさん
03/02/22 16:59ID:???>とりあえず、mail headerですか。。それについてまた勉強してみます。
「また」じゃなく、今しろ、すぐにだ。
0650nobodyさん
03/02/22 17:11ID:???0652648
03/02/22 19:12ID:???そうそう、パウエルも東京に来てる事だし、今夜にでも北チョンのテポドンに核弾頭積んだのが飛んでくる
かも知れないから、今しか出来ないかもよ。
0654nobodyさん
03/02/22 19:20ID:???とりあえず、メールがどうやって送信者から受信者までたどり着くのかは知っているか?
どこを経由しているのか、経由地同士(送信者や受信者のPCも含む)はどうやってメールの受け渡しをやっているのか
そのへんは最初に理解しておいた方がいいぞ。
0657nobodyさん
03/02/24 01:23ID:???0658nobodyさん
03/02/24 11:19ID:???array_values()使って配列をファイルに出力したらなぜか
ファイルにはArrayってfputsされてるんだけどなんでなんだよ
もちろん配列にはちゃんと中身はあります
0659nobodyさん
03/02/24 11:49ID:???array_slice() を使えば。
0660658
03/02/24 12:37ID:???0663nobodyさん
03/02/24 14:58ID:hOH4eQvz<img src="randam.php?no=1">(合計10個くらいなんですが)
みたいにして違う画像が出るようにするにはどのようにしたらいいのでしょうか
0664chmod
03/02/24 19:58ID:FUX1UJsuサーバーがIISいれてて、フリーのPHPのカウンターを動かそうとしてみたところ
一緒にUPするcounter.txtの属性を変えろといわれたのですが、
FFFTPで属性変更としても変わってくれないです。
どうやればIIS上での属性の変更を解決できるのでしょうか?
よろしくおねがいします。
0666chmod
03/02/24 20:35ID:FUX1UJsuできない・・・
ファイルがひらけないとか抜かしてきやがります。
まあ、いいや。
0667nobodyさん
03/02/24 20:42ID:???0668nobodyさん
03/02/24 20:59ID:???鯖は自宅鯖?
もしも鯖を操作できるならcounter.txtを右クリックして
プロパティからアクセス許可を探してIISの実行ユーザに書込み権を与えてやれ。
0669chmod
03/02/24 21:10ID:FUX1UJsu分かりましたやってみますありがとうございます!
0670nobodyさん
03/02/24 21:32ID: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]);
}
まではわかっております。
0671nobodyさん
03/02/24 21:49ID:???という考えもあるがまぁ一応。
各要素毎に配列を用意。
添え字で行を取る。
でだarray_multisort関数を使え。
以上
0672nobodyさん
03/02/24 22:07ID:j6HjxIaRうー、よくわかんないです。
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は安鯖なのでついてないのです。
0673nobodyさん
03/02/24 22:25ID:???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);
あとはマニュアルを穴が空くまで嫁。
それができないなら言語を扱っても成長しないからやるだけ時間の無駄だと思われ。
おとなしくエクセルあたりでも使うがよろし。
0674nobodyさん
03/02/24 22:43ID:RRWzLh+fhttp://hkwr.com/
0675nobodyさん
03/02/24 23:27ID:j6HjxIaRThanx.
でもやっぱり配列に入れなくてはいけなかったので、
$name[] = $name;
$point[] = $point;
$total[] = $total;
$average[] = $average;
がないとエラーになりました。
ともかくありがとうございました。
0676673
03/02/24 23:58ID:???どうやら俺が読むべきなようだな。
吊ってくる。
0677nobodyさん
03/02/25 04:07ID:???0678nobodyさん
03/02/25 04:48ID:???それとも参照代入の事か?
前者なら諦めてください。としか言いようがない。
後者ならポインタを勉強する事をお勧めする。
ポインタを勉強すれば意味がわかるようになるだろ。
# 人が言うほどポインタは難しくない。やってみれ。
# 使いこなすとなると話は別だけど。
一応使い方
$a = "test";
$b = &$a;
$a = "asdf";
print $b;
で asdf が出てくる。
0679nobodyさん
03/02/25 08:42ID:???どういう場面で使うのですか?
コンストラクタの中でよくオブジェクトを参照代入しているコードを見ますが、
何となくはわかるのですが、何でそうしなければいけないのか、そうすると
どういうおいしさがあるのかがわかりません。
よろしくお願いします。
0681sage
03/02/25 10:07ID:lAlaOHj3配列で取得した変数をそのままDB(PostgreSQL)に入れると表示が
"Array"となっているんですが、これはちゃんと配列で登録されて
いるんでしょうか?
フォーム付のカレンダーを作っていて、1ヶ月分のフォームの内容を
配列にして1つの変数にしてそのままDBに登録ということを試して
います。
<?
........
<input type="text" name="wd_f['$i']">
...
?>
↑フォームはこんな感じです。
よろしくお願いします。
0682681
03/02/25 10:22ID:???スソマセン。
0683nobodyさん
03/02/25 13:52ID:???皆さん、PHPをテストしている環境はなんですか?Linuxですか?
自分は仕事柄Windowsを使うことがあるので
Winでテストしているのですが、やっぱり上手く動かないときがあります。
これってやっぱり"Windowsだから"なのでしょうか?
それともApacheのhttp.confの記述かphp.iniの記述が間違っているのでしょうか?
0684nobodyさん
03/02/25 14:05ID:???gdもmysqlも使ってます。
0685nobodyさん
03/02/25 15:02ID:???配列の内容そのものではなくて参照を
DBにいれてるだけみたいなのでたぶんだめ。
配列をとりだして連結して書き込むか
テーブル設計を変える。
0686681
03/02/25 15:15ID:???あーそうなんですか・・・。
なんかおかしいなと思ってたのでありがたいです。
何度もすいませんが連結ってforeach使うんですか?
連結手段に今困っています。
■ このスレッドは過去ログ倉庫に格納されています