【PHP】初心者コーナー 2 Released
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/03/24 03:06ID:???PHPに関するアホな質問はここでやれ。今回からMySQLも受付開始。
アホな質問であっても詳しく質問すること。
PHPが大嫌いなPerl信者もぜひご参加ください。
前スレ
http://pc2.2ch.net/test/read.cgi/php/1011550860/l50 関連>>2-10
普通の質問はこっちな、【PHP】質問スレッド Part7
http://pc2.2ch.net/test/read.cgi/php/1044478561/l50
0413nobodyさん
03/04/23 23:41ID:???0414nobodyさん
03/04/23 23:48ID:pKnrziPvない(と思う)。
つかHTMLのクォートは''とシングルクォートでは駄目なの?
文法的にはどっちでも構わないから。
折れダブルクォートの変数展開も使わないで、基本的にドットで
結合するスタイルだから、エスケープがどうとかあんまり気になんない
0416nobodyさん
03/04/24 04:51ID:vt0uN1CMデーターベースの持続的接続ってどんな状態だ?
CGI=リクエストごと
サーブレット=常駐
PHP=KEEP_ALIVE が終了したらexit?
なんでしょうか。PHP本を何冊も立ち読みしたけどわからない。
使用した感じではリクエストごとにdb切断されているように感じるのですが。
0417nobodyさん
03/04/24 04:54ID:x2ip/9xn0419nobodyさん
03/04/24 06:52ID:psTbw05HPHP + PHPLib でセッション管理しているのですが、
$sess->register()
の部分で以下の警告がでます。
Warning: Unknown(): Your script possibly relies on a session
side-effect which existed until PHP 4.2.3.
Please be advised that the session extension does not consider
global variables as a source of data, unless register_globals is
enabled. You can disable this functionality and this warning by
setting session.bug_compat_42 or session.bug_compat_warn to off,
respectively. in Unknown on line 0
session.bug_compat_warn をOff にすれば警告が抑制されるのは
わかるのですが、できれば警告がでないようにコーディングしたい
と思っています。
この警告がでないようにコーディングすることはできるのでしょうか?
0420nobodyさん
03/04/24 16:23ID:505S5lqZ何かの原因で異常終了してしまっていた場合に
RMDIRしたいのですがOSがWinでどう
異常終了のシグナルを受け取ったらいいのでしょうか?
Perlだと
SIG{'TERM'} = $SIG{'PIPE'} = $SIG{'HUP'} = "sigexit";
sub sigexit { rmdir($lockdir); exit(1); }
なやりかただとおもいますがPHPだとどうなるのですか?
0421nobodyさん
03/04/24 20:03ID:???http://www.php.net/manual/ja/features.connection-handling.php
0422nobodyさん
03/04/25 00:07ID:???で移動した先のスクリプトにデータを渡す方法はありませんか?
0423nobodyさん
03/04/25 00:19ID:n9QsKzvYLocationで指定するURIに?以降を付けて、
GETで渡すのは駄目?HTTPリダイレクションは
ブラウザの動作に依存すると思うし、
実際にやったことないんだけど。
あとはファイルやDB等に書きこんでおいて、
それを先方で読み込むとか。同じサイト下の
スクリプトならcookieという手もあるかな。
セッションを使わない=cookieは使わないという
意味かもしれぬが。
0424nobodyさん
03/04/25 01:01ID:???フォームからGET、POSTで渡すだけなら、フォーム自体のactionを変えるのもいいかも
0425422
03/04/25 01:41ID:rPJQ8b/FGETでの受け渡し成功しました
ありがとうございました
0426nobodyさん
03/04/25 13:15ID:???マンモス本見ても
clasn HogeHogeFunction () {
function printTableHeader() {}
function IsPageChangeRequested() {}
}
のようにクラスのメンバ関数が大文字で始まってたり小文字で始まってたりします。
0427nobodyさん
03/04/26 00:32ID:cOpB+yiKあの本は何人かの共著で、残念ながらサンプルコードの
コーディングの規約は必ずしも統一されたものとなっていません。
言語上の制約を受けない部分(が多い)なので、自分の中で決めるか
どこかの規約に従うとかそういう感じになります。
http://utvikler.start.no/code/php_coding_standard.html#names
というのもありますが、私は他の言語(Javaとか)で比較的多く使われる
スタイルに合わせています。メソッドの動詞部分は小文字等々。
#でもtabはスペース3文字だけどなー
0428426
03/04/26 00:59ID:hwQat90v(´▽`)アリガトです。
こういうページ見つけられずにPHPのpear/にあるPHPとCODING STANDARDSを参考にしてました。
最初に
/* vim: set expandtab tabstop=4 shiftwidth=4: */
っていうのはがあって、これってviで何かのオプションを指定すると4個スペースタブで開けてくれるんだろうか?
とか関数の
/**
* Create a new DB connection object for the specified database
* type
*
* @param string $type database type, for example "mysql"
*
* @return mixed a newly created DB object, or a DB error code on
* error
*
* access public
*/
こういう統一されたコメントとかってソース読み込んでドキュメント化してくれるツールがあるんだろうなあと、
今はわからず、とりあえず真似てかいてます。
0429nobodyさん
03/04/26 06:33ID:???フォームに書き込まれた内容とホストをログファイルに書き込む方法を教えていただけませんでしょうか?
どうか、お願い致します。
0431nobodyさん
03/04/26 14:57ID:hwQat90vPHPが実行可能になるように.htaccessファイルにAddTypeを記述して、PHPが実行されるようになりました。
そうすると以下のディレクトリ全てにこの設定が適用されてしまいます。
”そのディレクトリだけ”(以下は含まない)にするにはどうすればいいでしょうか?
0432nobodyさん
03/04/26 14:59ID:???<Files index.html>
AddType 〜
</Files>
でどうだ?
0435nobodyさん
03/04/26 15:41ID:???ファイル名をPATH付きで書いて、他の"index.html"にマッチしないようにしたら?
0436nobodyさん
03/04/26 15:43ID:???0437435
03/04/26 16:00ID:???だとしたら、下位ディレクトリ毎に.htaccess置いて上位の指定を打ち消すかかね。
0438434
03/04/26 16:00ID:???<Files /usr/local/apache/htdpocs/index.html>
AddTyoe
</Files>
これでも駄目だし、パスの部分を/index.htmlに変えてもも駄目。
<Files>を<Location>に変えてもうまくいきませんでした。
0439435
03/04/26 16:20ID:???良い解が浮かばないので、続きは「.htaccessの偉い人 Part3」でヨロ
http://pc2.2ch.net/test/read.cgi/php/1019888234/l50
0440nobodyさん
03/04/26 16:25ID:???どうもす。けど、そのスレ初心者向きじゃないので書き込み躊躇してます。
こういう方法で誤魔化そうかとも思ってます。
<frameset rows="100%,*"" frameborder="NO" border="0" framespacing="0">
<frame src="index.php">
<frame src="dummy.html">
</frameset>
0441nobodyさん
03/04/26 22:20ID:???「サーバーメンテナンス作業中です。しばらくお待ちください」
って出すことってできるのでしょうか?
0442nobodyさん
03/04/28 00:39ID:???0444キッチン排他@職場
03/04/28 00:43ID:Zm4ixUayDirectoryIndex index.php index.html
ってのは、どうでしょうか?
URLは、/止めにしないと駄目ですけど。
0445nobodyさん
03/04/28 01:56ID:???PHPに関するアホな質問はここでやれ。今回からMySQLも受付開始。
アホな質問であっても詳しく質問すること。
0446nobodyさん
03/04/28 02:19ID:Sq8FYfsYマニュアルにも書かれていないようなので。
http://www.php.net/manual/ja/function.png2wbmp.php
0447nobodyさん
03/04/28 02:28ID:???エラー処理関数を使う。
http://www.php.net/manual/ja/ref.errorfunc.php
0448動画直リン
03/04/28 02:29ID:uuOaaVb80449初心子
03/04/28 09:37ID:NNGjuzbAWhile ($row = mysql_fetch_array ($int_result)) {
$hoge[] = $row['hoge'];
$moge[] = $row['moge'];
}
↑のような感じで $フィールド名[レコード番号] にしているんですが
$data[フィールド名][レコード番号] という感じで二次元配列にしたい場合には
どうしたら良いのでしょうか?
0450nobodyさん
03/04/28 10:32ID:6M2G463Mある時間になるとPHPスクリプトを走らせたいのですが、
cronでブラウザ(mozilla等)を起動し、phpファイルを走らせようと安易に考え
下記のような感じでcrontabを書きましたが、その時間になっても実行されません。
17 * * * * mozilla http://*******.php &
(毎時間17分に******.phpを実行)
どのような方法でphpスクリプトの自動実行を行ったほうがよいのですか?
教えてください。
0451nobodyさん
03/04/28 10:48ID:???どっかで、外サバからつついてくれる無料サービス見た。
0456nobodyさん
03/04/28 15:19ID:6s4F0ZI3フォームから入力した値をphpに渡そうとすると
変数が空になってしまうのですが何か設定が悪いんでしょうか?
こんな現象ないですか?
0457nobodyさん
03/04/28 15:35ID:???0459456
03/04/28 15:49ID:6s4F0ZI3XOOPSもちゃんと動いてんだけどなあ・・・
単純にフォームからphpに値を渡すスクリプト書いただけなのに
うまくいかないんだよ。謎
0463456
03/04/28 15:59ID:6s4F0ZI3ありがとー
ソースっつってもこれのサンプルをコピペしただけなんだけど
ttp://itb-tech.itboost.co.jp/php/php_09.php
461は騙りだよ
ID出しといてよかった
0464456
03/04/28 16:02ID:6s4F0ZI30465nobodyさん
03/04/28 16:09ID:???なら、答えは>>458だね。マニャール読みましょ。
http://www.php.net/manual/ja/tutorial.forms.php
0466456
03/04/28 16:22ID:6s4F0ZI3おおお、ありがとう!おかげでどうにか動きました。
この設定、4.2.0以降はデフォルトでoffになってるのネ
前にちょっとPHP触ったとき特に意識しないで動いたから
今思えば4.1.xだったのかも。
とにかくひとつ勉強になりました。ありがとう!
0467nobodyさん
03/04/28 16:23ID:???フォームの値を受け取るスクリプトにphpinfo()を付け足すと、
値が渡ってるか・どんな変数に入ってるか分かる。
0469bloom
03/04/28 16:29ID:uuOaaVb80470nobodyさん
03/04/28 16:33ID:GydV7ttxとなっていた場合、「abc」と「123」で分けるにはどうすればよろしいですか?
0471456
03/04/28 16:39ID:???>>470
http://www.php.net/manual/ja/function.split.php
これじゃなかったっけな
0472nobodyさん
03/04/28 17:10ID:???$A = "abc,123";
list($ei,$su) = explode(",", $A);
0474nobodyさん
03/04/28 20:11ID:???0476nobodyさん
03/04/29 00:57ID:???0477nobodyさん
03/04/29 03:49ID:i4frFXuJ1つしかないようです。
FreeBSDでPHP5.0aです。よろしく。
--with-javaと--with-mysqlと--with-pgsqlと--with-glibと
は最低限、つけたいです。
あと、なんでPHPに--with-fast-cgiなんていうオプションがあるんですか?
0479nobodyさん
03/04/29 14:54ID:rtB47Uuvどこがだめぽですか?
<?php
mb_http_output("SJIS");
$s = $_GET["str"];
$s = mb_convert_encoding($s,"SJIS","auto");
echo("<HTML><HEAD><meta http-equiv=Content-Type content=\"text/html; charset=SHIFT_JIS\"><TITLE>SJIS</TITLE></HEAD>");
echo($s . "<br>");
echo("</BODY></HTML>");
?>
0480美人OL
03/04/29 14:56ID:???そのときにネットで見つけたアダルトDVDショップ以前からオナニー用にDVD
が欲しかったのですぐ注文しました、とても安くてびっくりしましたが次の日には
もう届きました私が買ったのは、オナニー、レズ、レイプです毎日オナニーしてま
す。
http://www.net-de-dvd.com/
0481479
03/04/29 15:46ID:rtB47Uuv0483nobodyさん
03/04/29 16:20ID:jJU3HZE7Win2000サーバー+IISでPHPが使える様にしたいんです。
最初はマニュアルページ
(http://www.php.net/manual/ja/)
のインストールの項を参照してたんですけど、ワケ分からないので
All About Japanの「IIS + PHP + MySQLの環境でWEB+DBプログラミング」という項
(http://allabout.co.jp/computer/database/closeup/CU20020928/index.htm)
を参照し始めました。
ですが肝心のインストール解説が「Apache+PHPの項を参考にし〜」と、省略されてしまっているのです。
具体的には
1.doc_rootを指定するパスはIISの入っているフォルダを指定すればいいのですか?
(Apache仕様の例文ではC:/Program Files/Apache Group/Apache/htdocsとなっています)
2.その他のinclude_pathやextension_dirのパスは、例文通りで問題無いでしょうか?
(回答したファイル等は、全て教科書通りの場所に置いています)
初歩的な質問ですが、どうかご教授下さい。
0484bloom
03/04/29 16:29ID:23csOg+c0485385
03/04/29 17:10ID:???1.doc_rootは「http://localhost/」とした時に表示される
コンテンツが置かれている場所。
デフォルトだと実ディレクトリで「c:\InetPub\wwwroot」とかその辺。
#つか、その参照記事文中「PHPプログラムの配置」にちらっと書いてあるな
2.include_pathとextension_dirは記事内容どおりで良いでしょう。
ただinclude_pathのPEARの置き場所は最近のPHPを使う場合だと違うかも。
#今のPEARインストーラのデフォルトインストール場所ってどこだっけ?
記事のバージョン(4.2.3になってるけど日本語関係にバグがあるので、
まずは前の4.2.2で慣れて、最終的には4.3系にしましょう)なら、そのままでOK
#Apache + PHP + MySQL編は解説がPHP4.3.1を使ったものに書き換わっているので
混同しないように
また、c:\php\includes、c:\php\pearがないなら作っておく
「include_path = ".;c:\php\includes;c:\php\pear"」と
頭に「.」を入れてカレントディレクトリも含ませる。
最近はOKかと思うけど、前はinclude_pathに限っては「\」と「/」が等価じゃなかった
#気もするんで、その辺はphp.ini-dist内のコメントを参照
0486nobodyさん
03/04/29 21:14ID:rtB47Uuvスマソ。あれこれ悩みましたがやぱり分からないです。
UTF-8でも同じようになります。鬱
0488nobodyさん
03/04/29 22:16ID:rtB47Uuvレンタル鯖なんですが、
ひょっとしてスクリプトごとの設定変更って付加ですか?
0489488
03/04/29 22:32ID:rtB47Uuvstripslashesでデキターヨ。
ありがとーーー!
0490nobodyさん
03/04/30 00:14ID:???0491nobodyさん
03/04/30 00:18ID:zAli2vhE/* $id、$passが空の場合の動作などは省略 */
for ($i=0; $i<=15; $i++) {
list($id_a,$pass_a) = explode(",", $file[$i]);
if($id == $id_a) {
if ($pass == $pass_a){
$a = 1;
break;
}
else{
$a = 2;
break;
}
}
}
if ($a == 1) { print"OK<br>"; }
elseif ($a == 2){ print"error1<br>"; }
else { print"error2<br>"; }
--
こんなスクリプトで、abc.datの内容は「aaa,bbb(改行)ccc,ddd」なんですが、実行してみると「error1」が表示されます。
「error1」が表示される原因は「$pass == $pass_a」になっていないからと思いますが、試しに最後に「print"$pass $pass_a";」と書いてみると同じです(「ddd ddd」と表示される)。
WinXP+AnHTTPD+php-4.3.1で、CGIとして実行させています。文字コードはEUC、LFです。
原因がわかりません。教えていただけませんか?
0492nobodyさん
03/04/30 00:40ID:???if ($pass == $pass_a) 違うのでelseに分岐
$aに2を代入
break(つまりfor文から脱出)
期待する動作はどういう物なの?
0493nobodyさん
03/04/30 00:47ID:???foreach($file as $value){
list($id_a,$pass_a) = explode(",",$value);
if($id == $id_a && $pass == $pass_a){ // id,pass OK
$a = 1;
}
}
$a=1 -> id,pass OK
$a=0 -> id,pass NG (元のスクリプトでは0,2の区別の必要が無い)
0494491
03/04/30 00:47ID:???最初の
$id = "ccc";$pass = "ddd";
の部分は、後で
$id = $HTTP_POST_VARS['id'];$pass = $HTTP_POST_VARS['pass'];
として、IDとPASSが一致すれば特定のメッセージを表示させる、というようなスクリプトを作りたいのです。
しかし、PASSが正しい($pass == $pass_aになっているはず)なのに、間違っていると表示されるので困っているわけです。
0495nobodyさん
03/04/30 00:48ID:???file()は改行コードも含むからchop
0496nobodyさん
03/04/30 00:58ID:zAli2vhEどうもです。
「ID」が存在しない場合とPASSが間違っている場合のエラーメッセージを分けたかったので>>491のようなスクリプトにしてみました。foreach()についてはまだ学んでいないのでマニュアルを読んでおきます。
それと、図々しいかもしれませんが、今後のためにも>>491で「$pass == $pass_a」にならない原因を教えていただけませんか?
0497nobodyさん
03/04/30 02:57ID:???教えてくれ
0498nobodyさん
03/04/30 03:00ID:???0499nobodyさん
03/04/30 03:06ID:???突っ込みどころはあると思うが
programming language と markup language
でとりあえずよしとしてくれ。
0501nobodyさん
03/04/30 05:07ID:???(1)手書き文字に似せた欧文活字の書体。儀礼的な印刷物やカタログなどに用いられる。
(2)映画・放送の台本。
「―-ライター」
(3)スクリプターによって記録されたデータ。
(4)コンピューターに対する一連の命令などを記述したもの。
タグ 1 [tag]
(1)付け札。荷符。
(2)商品の値段・種類・製造会社などを記した下げ札。タッグ。
http://dictionary.goo.ne.jp/search.php?MT=%A5%B9%A5%AF%A5%EA%A5%D7%A5%C8&kind=jn
http://dictionary.goo.ne.jp/search.php?MT=%A5%BF%A5%B0&kind=jn&mode=0&jn.x=47&jn.y=8
0502nobodyさん
03/04/30 13:11ID:???PHPに関するアホな質問はここでやれ。今回からMySQLも受付開始。
アホな質問であっても詳しく質問すること。
0503nobodyさん
03/04/30 14:46ID:hhGquZNb現在、メールの自動配信プログラムを作っています。
メールのリストをブラウザ上からアップして
そのリストのアドレスに、メールを配信するという仕組みなのですが
送信途中にブラウザを閉じても、リストのアドレスに送信し続けるという風にしたいのです。
自動実行の方法をご教授をお願いします。
環境は
OS:RedHat8.0
PHP:4.3.0
です。
0504nobodyさん
03/04/30 15:26ID:???0505503
03/04/30 17:38ID:???ttp://itb-tech.itboost.co.jp/php/php_05.php
ここを見て自己解決いたしました。
ググり方が甘かった(*´д`;)
0506483
03/04/30 17:48ID:+a0JzmArこれって僕の質問への回答ですよね?
有難うございます。早速試してみます。
0507nobodyさん
03/04/30 23:07ID:P95jhDugsetcookie()というのを使うって聞いて調べたんですが、意味がわからなかったんです。
誰か埋め込み方を教えてください。
0508nobodyさん
03/05/01 00:00ID:???ほんじゃレッツPHPさんのsetcookie()を仕込んであるの見れば。
http://jp.php.net/manual/ja/function.setcookie.php
アホな質問であっても詳しく質問すること。
0509nobodyさん
03/05/01 10:41ID:CkAdoVLUごめんなさい。
http://php.s3.to/simple/#short
こちらにあるスクリプトなんですが、かきこんだら名前をクッキー食べさせたいんです。
クッキー対応の他のを見てまねてみたんですが、
うまくできません。
0512nobodyさん
03/05/01 14:26ID:CkAdoVLUヘッダーの前に
<?
$name=$_POST[name];
$submit = $_POST[submit];
if($submit =="send"){
setcookie("name",$name,time() + 3600 * 24);
}
?>
を入れて、
フォームの名前の所を
<input type="text" name="name" value=<? print $_COOKIE["name"]; ?>>
にしてみたんですが、これでは駄目なんでしょうか?
■ このスレッドは過去ログ倉庫に格納されています