【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
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"]; ?>>
にしてみたんですが、これでは駄目なんでしょうか?
0513nobodyさん
03/05/01 20:49ID:5peFU9Qehttp://.../phpinfo.php/hoge/fuga のようにしてアクセスすると
なぜか 404 Not Found が返ってきて、そもそもスクリプトが実行されません。
なお、PHP スクリプトではなく、以下のような CGI だと、404 にならず
ふつーに実行されて PATH_INFO に /hoge/fuga が格納されてます。
#!/bin/sh
echo "content-type: text/plain"
echo ""
/usr/bin/env
FreeBSD 4.6.2, Apache 2.0.45, mod_php 4.3.1
0514nobodyさん
03/05/01 20:50ID:???$submit = $_POST[submit];
0515動画直リン
03/05/01 21:10ID:YcBKOzoM0516nobodyさん
03/05/01 22:29ID:ExS9FhJwここも514と同じ理由
<input type="text" name="name" value=<? print $_COOKIE["name"]; ?>>
まあhtmlだし、元のプログラムも「ケータイ向けに極力省いた設計」と好意的に解釈しときますが。
あと
inputエレメントで、name="submit"のvalueはちゃんと"send"に変えたか?とか。
提示したソースのスペースが「全角」になってるが本当に全角のまま?だとか。
「ヘッダーの前に」とあるが、ヘッダーの書き出しは元のプログラムではやってないので、
1行目から「<?〜」と書いているか(前に空行、空白も一切入れてはいけない)?とか
小言的には、PHPの部分はも少し見やすくインデントやスペース入れた方が
バグを見つけやすいよ等。
0517nobodyさん
03/05/01 22:32ID:???0518nobodyさん
03/05/01 23:00ID:CkAdoVLUごめんなさい。
なんだかよくわからないまま、もう一度最初から打ち直したら
出来ました。
なんだったんだろう?って感じです。
アホな質問ばっかりして、ご迷惑おかけして申し訳ありませんでした。
そして、ありがとうございました!
0519bloom
03/05/01 23:10ID:YcBKOzoM0520__
03/05/01 23:10ID:???( ・∀・)/< こんなの発見したっち♪
http://www.yamazaki.90.kg/hankaku/hankaku02.html
http://yamazaki.90.kg/zenkaku/index.html
http://www.yamazaki.90.kg/hankaku/hankaku08.html
http://yamazaki.90.kg/hankaku/hankaku10.html
http://www.yamazaki.90.kg/hankaku/hankaku07.html
http://yamazaki.90.kg/hankaku/hankaku03.html
http://www.yamazaki.90.kg/hankaku/hankaku05.html
http://yamazaki.90.kg/hankaku/hankaku01.html
http://www.yamazaki.90.kg/hankaku/hankaku06.html
http://yamazaki.90.kg/hankaku/hankaku04.html
http://www.yamazaki.90.kg/hankaku/hankaku09.html
0521513
03/05/02 06:55ID:???.htaccess に AcceptPathInfo On を追加でおっけー。
0522nobodyさん
03/05/02 17:20ID:???ob_start("ob_gzhandler") で gzip圧縮転送をすると
output handler 'ob_gzhandler' cannot be used twice in Unknown on line 0
と出てくるのですが、これを解消するには設定をどうすれば良いのでしょうか?
ちなみに、レンタルしているサーバでは問題なく使えました。
0523nobodyさん
03/05/02 17:41ID:???0524nobodyさん
03/05/03 01:00ID:???既に転送にgzip圧縮が掛かってるんじゃないの
0525nobodyさん
03/05/04 15:26ID:???0526nobodyさん
03/05/04 16:21ID:3owbYBod(include_path='.:/usr/local/lib/php') in Unknown on line 0
が表示された場合、
/usr/local/lib/php をどうしろという事なのでしょうか?
0528nobodyさん
03/05/05 19:04ID:YEYtIxk2PHPでパスを指定するとディレクトリ一覧できるスクリプトを作り、
外部ネットワークからWEB経由(IUSR)で実行してみたところ
C:\まで見ることができてしまいました。
これはマシンのユーザ権限の設定の問題なのでしょうか?
#以前に勉強のために色々と触った記憶があるので。。。
どうかご教示ください。
0529nobodyさん
03/05/05 21:51ID:7oJbARiK「<」「>」はエスケープするのですか?
今、下のようにエスケープしてるんだけど、正規表現に詳しい人教えてください。
eregi("(\<title\>)(.+)(\</title\>)", $contents, $regs)
0530_
03/05/05 21:59ID:???川o・-・)ノ <先生!こんなのがありました!
http://www.japan.pinkserver.com/kaorin/hankaku/hankaku03.html
http://japan.pinkserver.com/kaorin/zenkaku/index.html
http://www.japan.pinkserver.com/kaorin/hankaku/hankaku02.html
http://japan.pinkserver.com/kaorin/hankaku/hankaku05.html
http://www.japan.pinkserver.com/kaorin/hankaku/hankaku09.html
http://japan.pinkserver.com/kaorin/hankaku/hankaku08.html
http://www.japan.pinkserver.com/kaorin/hankaku/hankaku06.html
http://japan.pinkserver.com/kaorin/hankaku/hankaku07.html
http://www.japan.pinkserver.com/kaorin/hankaku/hankaku10.html
http://japan.pinkserver.com/kaorin/hankaku/hankaku01.html
http://www.japan.pinkserver.com/kaorin/hankaku/hankaku04.html
0531nobodyさん
03/05/06 01:03ID:???これじゃアカンかな
$title = "<title>タイトル</title>";
$title_in = eregi_replace("<title>|</title>", "", $title);
改行コードやタブもパターンに含めれば万事Okay(゚∀゚)?
0532nobodyさん
03/05/06 16:16ID:5y+8LJ/Y会社命令でphp+MySQLでwebデータベースを作成しております。
現在mysql_fetch_arrayで取得したデータを表形式で表示しております。
今度は、表示されているそれぞれのデータ番号を変数にして別のphpファイルにアンカータグで
受け渡せるようにしたいのですが、クエリ文字列がうまく作成できません。
どうか、クエリ文字列を作成する際の注意点をアドバイスください。
以下が、書籍を参考に書いたコードです。<td><tr>は略してあります。
$result = mysql_query("select * from toarutbl inner join betsunotbl using(hinmeiID)
where jouken = '$A'");
echo "<h2>".$A."検索結果</h2>",
for ($i = 0; $i < mysql_num_fields($result); $i++) {
print "<td>".mysql_field_name($result,$i)."</td>";
}
print "</tr>\n";
while ($row = mysql_fetch_row($result)) {
//クエリ文字列を作成(しているつもり)
$query="";
for($i = 0; $i < count($row); $i++) {
$work = strtr($row[$i],"+","*");
$work = htmlspecialchars(urlencode($work));
$query .= "$i=$work";
if ($i <count($row) - 1) {
$query .= "&";
}
}
//データを表示
foreach ($row as $key => $value) {
if ($key == 0) {
print '<td><a href="uketoru.php'.$query.'"></a></td>';
}
以下略;
■ このスレッドは過去ログ倉庫に格納されています