【PHP】下らねぇ質問はここに書き込みやがれ 53
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2007/08/25(土) 22:11:08ID:???PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 52
http://pc11.2ch.net/test/read.cgi/php/1186794483/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで
0611nobodyさん
2007/09/02(日) 23:18:10ID:pKjcWHTrなんでろだにあげなかったの?バカなの?
0612nobodyさん
2007/09/02(日) 23:38:24ID:O0vZytK1UPしました。
よろしくお願いします。
0614nobodyさん
2007/09/02(日) 23:40:52ID:???セットアップというか
Smarty.class.phpをincludeする
$smarty = new smarty;
$smarty->template_dir = "./templates/";
$smarty->template_c = "./templates_c/";
みたいに宣言する
./templates/ 内にテンプレートファイルを作成する。
./templates_c/ のパーミッションを707や777にする
PHPファイルで
$smarty->display("template.html");
のようにテンプレートを指定して表示する。
0615nobodyさん
2007/09/02(日) 23:40:55ID:pKjcWHTr本作ったトコにでも聞け
自分で作れないうちは会社で運用なんてすんな
0616nobodyさん
2007/09/02(日) 23:43:46ID:???とりあえずショートタグ「<?」は推奨されないからやめとけ。
最近のPHPのデフォルトじゃ動作しない可能性がある。
正しくは「<?php」と書く。
0617nobodyさん
2007/09/02(日) 23:48:36ID:???ちなみにこれ、最初に表示されるページはどれ?
あと ktouroku.php はPHPコードを含んでないようだけど、これも表示されないの?
0618nobodyさん
2007/09/03(月) 00:10:05ID:???> とりあえずショートタグ「<?」は推奨されないからやめとけ。
それよく聞くんだけど、この前理由を探したんだけど
よくわからなかった。なんで?
あとショートタグは<?=とは違うんだよね?
こっちは使っていいの? 単純に変数の内容を表示するだけなら
タイプ数が減っていいんだけど。
0619nobodyさん
2007/09/03(月) 00:17:29ID:KucjbbQWこれは表示されます。
それ以降が表示されません。
<?phpって
<?でいいのかな?
0620nobodyさん
2007/09/03(月) 00:17:43ID:???「<?=」もショートタグの1種。これは「<?php echo 」の省略形。
ショートタグはPHPしか使わない環境であればそれほど困らないけど、
XMLなどの他にも「<?***」形式の特殊タグを使うシステムが混在すると
「<?」だけでPHPと認識することはできなくなるので、将来性・拡張性に欠ける。
特に昨今はXMLとの混在環境も増えてきているので推奨されないというわけ。
その辺をきちんと意識して設計できる上位の人間なら好きにすれば、ってとこだが
分かってもいないのにその環境に慣れてしまうのは教育上よろしくないかと。
0621nobodyさん
2007/09/03(月) 00:25:41ID:???ktouroku2.phpを呼び出すと何も表示されない、ってこと?
ちなみにURL直打ちでktouroku2.phpを呼び出しても真っ白?
require('./include/init.inc');
の行を
//require('./include/init.inc');
とコメントアウトしてみたらどーなる?
ところで凄い気になるんだが、
<meta http-equiv=content-type content="text/html;charset=euc-jp">
とEUC-JP指定してるようだがソースはSJISで書かれてるよな。
これは本当はどっちにしたいんだ?
0622nobodyさん
2007/09/03(月) 00:36:02ID:KucjbbQWやってみました。
ktouroku2.phpが表示されました。
でも登録画面のktouroku3.phpはだめでした。
EUCでやりたいです。
このソースの書き方ではだめなの?
0623nobodyさん
2007/09/03(月) 00:38:21ID:???あー。やっぱり人間(コンピュータも?)の混乱が理由なのね。
もっと重大な、セキュリティ上の問題があるのかと思っていた。
<?=もやっぱり使っちゃだめなのだろうか?
php以外でこれ使うやつある?
まあ、phpだとわかりにくいが理由なら
その理由には納得するから、大きなプロジェクトでは
<?=も使わないけどね。
ただ、セキュリティ上の問題がないのなら、
個人的な小さなツールやテスト的になら使うけど。
0624nobodyさん
2007/09/03(月) 00:39:08ID:KucjbbQWアウトしたら表示されました。
どうしたらいいのでしょうか?
0625nobodyさん
2007/09/03(月) 00:40:12ID:???つまりini.incの実行で失敗してるわけだ。
こいつの内容は
$con = pg_connect("dbname=touroku");
とDBに接続してるだけなんだが、ちゃんとDBは用意されてるのか?
まずDBのアクセスだけの実験プログラムを作って
テストしてみた方がいい。
このプログラムだと接続失敗時はエラー表示がされるはずだが
それすら出てこないとなるとタイムアウトを起こしてる可能性が高い。
接続先のDBサーバー自体が正常動作してない可能性もありうる。
>EUC
だったらまずEUCのテキストが書けるまともなテキストエディタを用意すれ。
0626nobodyさん
2007/09/03(月) 00:42:52ID:???人間は別に混乱しない。コンピュータが混乱するので使えない。
「<?=」は他に無いというか、これも「<?」までの時点でPHPかどうかを判定できないと
PHPに処理を回せないので結局使えない。
セキュリティ的な問題はないと思うので、ちゃんと理解して使う分には問題ないかと。
0627nobodyさん
2007/09/03(月) 00:47:21ID:???0628nobodyさん
2007/09/03(月) 00:50:43ID:???余計な単語が混じらずほとんど変数埋め込み気分で使えて見やすいし。
0629nobodyさん
2007/09/03(月) 00:51:01ID:???使わない。<?=を使う時点でロジックとデザインを分離されていな糞プログラマーだから。
まぁ、趣味でやるなら別にいいけど。
0630nobodyさん
2007/09/03(月) 00:54:50ID:???<?php if() 〜 ?> とかならともかく、<?=変数?> だけならテンプレのパラメータ埋め込みと一緒だぞ。
それをロジックが分離されてないと思うのは単なる脊髄反射思考だろう。
0631nobodyさん
2007/09/03(月) 00:56:55ID:kOE1ZsUiサーバーはxamppを使っています。
mysqlを使わずにindex.php , archive.php , post.phpの3つで
フォーム入力、提出(post.php)すると、自動的にfilesにタイトル.txtを作って保存
(index.php)では提出した記事を表示とpost.phpへのリンクと(archive.php)へのリンク。
archive.phpへのリンクはindexの画面で、記事ごとのリンクになっている。
これは可能なんでしょうか?
ついでにphpの簡単なブログのコードがあるサイト知っていたら教えてもらえませんか?
よろしくお願いします。
0634nobodyさん
2007/09/03(月) 01:06:39ID:KucjbbQW$con =pg_connect("dbname=test2");
if(!$con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
で成功と出ているんだけど実際はtest2です。
後どこ見ればいいのでしょうか?
DBもちゃんと作ってあるんですが、
0635nobodyさん
2007/09/03(月) 01:08:01ID:KucjbbQW0636nobodyさん
2007/09/03(月) 01:09:53ID:???tourokuってDBは作ってあるの?
<?php
$con =pg_connect("dbname=touroku");
if(!$con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
を動かすと接続成功って出るの?
0637nobodyさん
2007/09/03(月) 01:14:48ID:KucjbbQW後プログラムのinit.incに名前とパスワードを入れたら
ほかのものも一気に表示はされるようになりましたが、
うけわたしてDB登録ができません。
0638nobodyさん
2007/09/03(月) 01:17:42ID:???> 「<?=」は他に無いというか、これも「<?」までの時点でPHPかどうかを判定できないと
「<?」までの時点でPHPかどうかを判定する方法なんてあるのかよ?w
0639nobodyさん
2007/09/03(月) 01:18:47ID:KucjbbQWktouroku3.php
はrequireをコメントアウトしないとでてこない。
ほかはでてきます。
0641nobodyさん
2007/09/03(月) 01:20:35ID:???DBのGRANT設定を間違ってるとかいう落ちじゃないだろうな。
ktouroku3.phpの
<a href=./kensaku.php>戻る</a><br>
下記のとおりに登録しました。<br><br>
の下辺りに
<?php echo pg_last_error($con); ?>
って1行入れたら何かエラーメッセージが出てこないか?
0642nobodyさん
2007/09/03(月) 01:23:03ID:???requireをコメントアウトしてちゃDBへの登録は絶対できないだろ…。
ktouroku2.phpの
require('./include/init.inc');
の行を
$con = pg_connect("dbname=touroku");
と差し替えたらどうなる?
0644nobodyさん
2007/09/03(月) 01:27:15ID:KucjbbQWこれの意味がわからんくて。
教えてください。
nobodyとかよくわからないんです。
grant allon kaiin_id to nobodyの意味がわかりません。
入れてないのですが.....
これの説明がなかったんです。
これが原因でしょうか?
0646nobodyさん
2007/09/03(月) 01:32:40ID:KucjbbQWなんにも表示されなかった。
0647nobodyさん
2007/09/03(月) 01:33:19ID:KucjbbQW0649nobodyさん
2007/09/03(月) 01:48:59ID:KucjbbQWでも表示されません。
なんででしょうか?
0650nobodyさん
2007/09/03(月) 01:57:20ID:???まあ自分しか触らない奴だからいいか。
0651nobodyさん
2007/09/03(月) 01:58:50ID:???<html>
<?php
$con = pg_connect("dbname=touroku");
var_dump($con);
$sql = "insert into kaiin_table (kaiin_id,company,name,address,tel,email,password) values('1', '2', '3', '4', '5', '6', '7')";
$res = pg_query($con, $sql);
var_dump($res);
echo pg_last_error($con);
$sql = "select * from kaiin_table";
$res = pg_query($con, $sql);
echo pg_num_rows($res);
?>
これ実行したらどんな内容が表示される?(pg_connectのとこはパスとか直せよ)
0652nobodyさん
2007/09/03(月) 02:15:13ID:KucjbbQWです。
0653nobodyさん
2007/09/03(月) 02:24:44ID:???DBの接続からして失敗してる。
<?php
$con =pg_connect("dbname=touroku");
if($con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
これで接続成功って出るんじゃなかったのか?
あーもー、最初からやり直し!
<html>
<?php
ini_set('display_errors', 1);
error_reporting(E_ALL);
$con = pg_connect("dbname=touroku");
var_dump($con);
echo pg_last_error($con);
?>
これで何かエラーメッセージは出てこないか?
0654nobodyさん
2007/09/03(月) 02:33:33ID:KucjbbQW0655nobodyさん
2007/09/03(月) 02:35:15ID:???0656nobodyさん
2007/09/03(月) 02:59:45ID:???0657nobodyさん
2007/09/03(月) 03:04:33ID:???pg_connectのパラメータ内容を改めて再考すれ。
っつーか、コマンドラインのクライアントからは接続できてんの?これ。
0658nobodyさん
2007/09/03(月) 03:17:51ID:KucjbbQW接続できてない。
でもDB
<?php
$con =pg_connect("dbname=touroku");
if($con){
print "DB接続成功"
}else{
print "DB失敗"
}
?>
はOKと出る。
なぜだ?
0659nobodyさん
2007/09/03(月) 03:20:58ID:???0660nobodyさん
2007/09/03(月) 03:23:32ID:???var_dumpの結果の方を信用するのが吉。
0661nobodyさん
2007/09/03(月) 03:30:18ID:KucjbbQW$con =pg_connect("dbname=touroku");
if(!$con){
print "DB失敗"
}else{
print "DB成功"
}
?>
を動かすと接続成功って出る
0662nobodyさん
2007/09/03(月) 03:47:03ID:Fj5tywcDこれは放っておいても、有効期限が過ぎれば勝手に消えるものなのでしょうか?
0664nobodyさん
2007/09/03(月) 04:42:03ID:KucjbbQWエラーになった。
DBの根本的にだめなのかもしれないな。
でもまずDBを作る前にモジコードをEUCにして
テーブルを作るinsertで入力していくのだが
invalid byte sequence for encoding "EUC_JP": 0xe988
というエラーが出ます。
0665nobodyさん
2007/09/03(月) 04:53:17ID:???\xe9\x88 == '驤' // SJIS
DBの根本的にだめなのかもしれないことより
自分が何してるか根本的にわかってないことのだめなのかもしれないね。
// 何語なんだ?
0666nobodyさん
2007/09/03(月) 05:37:34ID:KucjbbQWなんだが、それをeucに直してDBを入れていく様式
にしている。
根本的に間違っているのか、どう勉強していけばいいのだろうか?
eucとshiftjisの区別がわからないんだ。
0667nobodyさん
2007/09/03(月) 05:51:43ID:KucjbbQWこうするんだよ。とかあれぜひお願いします。
たぶん全部わかっていないと思うんですが、
ぜひご教授をお願いします。
0669nobodyさん
2007/09/03(月) 06:13:11ID:???だいぶそれてるし
0670nobodyさん
2007/09/03(月) 06:26:48ID:KucjbbQW今から寝ようとおもうので、ここが違うよとか
あれば至急直すので、わかった人コメントください。
0671nobodyさん
2007/09/03(月) 06:45:45ID:KucjbbQW俺のはUTF8でうまく入力できないんだが....
0672nobodyさん
2007/09/03(月) 07:05:20ID:KucjbbQW俺のはUTF8なんだが、
それを無理やり変換してEUCで入力しようとすると、
invalid byte sequence for encoding "EUC_JP"
のエラーがでます。
0673nobodyさん
2007/09/03(月) 07:23:58ID:KucjbbQW方ありがとうございます。
また、意見くれた方もなんとかしたい一身でお礼の言葉
も忘れてしまいました。
立て方等ミスがありましたが、もう少しだけ教えてください。
よろしくお願いします。
0674nobodyさん
2007/09/03(月) 11:44:43ID:???環境変数を使うとき
$ua = $_SERVER['HTTP_USER_AGENT'];
if(!preg_match('/hoge/',$ua))
というように一度$uaなどに代入して使っている場合が多いですが
そのまま
if(!preg_match('/hoge/',$_SERVER['HTTP_USER_AGENT']))
としない理由があるのでしょうか?
0675nobodyさん
2007/09/03(月) 11:46:04ID:ipYR2CKm0676nobodyさん
2007/09/03(月) 11:50:07ID:???多分メンテナンスとかのためじゃないかな。
たとえば、$uaに任意の値を入れてテストしたいときとか、
手間が多少違う
これはスタイルの問題だから、気にくわなければ従わなければいいだけ。
0677nobodyさん
2007/09/03(月) 11:52:17ID:???分かりやすい変数名を
タイピングの減少
くらいか?
特にこうしなければならないってわけじゃないがやると少し幸せになれるかもしれないおまじない
>>675
比較演算子
0678nobodyさん
2007/09/03(月) 12:59:28ID:ipYR2CKm>比較演算子
これって英語にすると?
0679nobodyさん
2007/09/03(月) 13:00:54ID:ipYR2CKm0680nobodyさん
2007/09/03(月) 14:24:38ID:???PHPマニュアルで比較演算子のページを英語にしたら
Comparison Operators
だったよ
PHP5.2.4が出てた
0681nobodyさん
2007/09/03(月) 14:36:42ID:???javascriptを入れるとエラーになります。どうすればいいですか
0682681
2007/09/03(月) 14:53:02ID:???0686nobodyさん
2007/09/03(月) 15:07:30ID:9rbjiygjメールを送り、特定のアドレスに送られたメールをhoge.phpに渡し処理させるというのを
してみたいのですが、Sendmailの設定をどのようにすれば良いのでしょうか?
Sendmailは「/usr/sbin/sendmail」のパスで通っていて使えるようです。
他に何か調べるようなことはありますでしょうか。
0687686
2007/09/03(月) 15:10:03ID:9rbjiygj.forwardが使えないといけないと聞いたのですが、これが使えるかどうか調べる方法はありますか?
0688nobodyさん
2007/09/03(月) 15:27:27ID:5z4DsU1G何か良いライブラリのようなものはありますでしょうか?
同梱したいので、ライセンスフリーのもの(大体そうなのかな?)がいいんですが・・・。
0689nobodyさん
2007/09/03(月) 16:09:28ID:???エラー文にはなんて書いてあるの?
おそらくそれで全て解決するんでない?
>>687
メール受信時の転送先をコマンド実行のPHP書けばOK
.forwardは鯖缶にきくのが一番早い
0690nobodyさん
2007/09/03(月) 16:11:26ID:9rbjiygj使い方は.htaccessと同じような感じでいいのですね
有難うございます
0692nobodyさん
2007/09/03(月) 16:25:27ID:???PHPのページをブラウザ(IE6/火狐)で開くときに、まれに30秒〜60秒待たされます。
サーバの設定が悪いのでしょうか。ご存知の方、お願いします。
-環境-
PHP 5.2.3 ソースからコンパイル
Apache 2.0.54
Oracle xe client 10.2.0.1
OS Debian sarge
設定 ほぼ初期値
0693nobodyさん
2007/09/03(月) 16:30:17ID:???0694nobodyさん
2007/09/03(月) 16:31:17ID:3A8ZdpHH0695nobodyさん
2007/09/03(月) 16:32:15ID:???ttp://sourceforge.jp/projects/mbemulator/
こいつはGPLなのでライセンスフリーじゃないけど。
0696nobodyさん
2007/09/03(月) 16:54:06ID:???while (!@mkdir(DE_LOCKFILE))
mkdirが成功するまでループするという意味らしいことは分かるのですが
@は何ですか。どういう意味があるんですか?
php @ で検索しても要領を得ないので教えてください
0698696
2007/09/03(月) 17:03:28ID:???マニュアルに書いてました
0700nobodyさん
2007/09/03(月) 17:13:26ID:???0701nobodyさん
2007/09/03(月) 17:27:07ID:???0702nobodyさん
2007/09/03(月) 17:43:59ID:???0703nobodyさん
2007/09/03(月) 17:52:32ID:???HTTP_Download あたりで
FTPサーバのデータを
直接ブラウザからダウンロードできるようにできないでしょうか。
現在は、
ftp_get で一旦サーバにダウンロードしてから
それをHTTP_Download で指定してダウンロードしてます。
ファイルを一旦サーバに落として、
ではなく、あくまでPHPはデータを
左(FTPサーバ)から右(ブラウザ)へ受け流す、
という感じでいきたいのです。
0705nobodyさん
2007/09/03(月) 17:54:51ID:???0706nobodyさん
2007/09/03(月) 17:55:43ID:7Ly2K7mTHTTP_Download あたりで
FTPサーバのデータを
直接ブラウザからダウンロードできるようにできないでしょうか。
現在は、
ftp_get で一旦サーバにダウンロードしてから
それをHTTP_Download で指定してダウンロードしてます。
ファイルを一旦サーバに落として、
ではなく、あくまでPHPはデータを
左(FTPサーバ)から右(ブラウザ)へ受け流す、
という感じでいきたいのです。
0707nobodyさん
2007/09/03(月) 18:05:50ID:kOE1ZsUiタイトルと文の2つのフォームがあって、提出ボタンを押すと
自動的に毎回タイトル.txtを作るにはどう書いたらいいんでしょうか?
0708nobodyさん
2007/09/03(月) 18:10:02ID:???とりあえずどの程度まで出来ているのか書け
$name = "自動的に毎回タイトル.txt";
fopen($name, "w");
0709nobodyさん
2007/09/03(月) 18:10:48ID:???0710nobodyさん
2007/09/03(月) 18:20:02ID:9rbjiygj#Smartyクラス用の定義
$smarty->template_dir = "テンプレートフォルダ";
$smarty->compile_dir = "コンパイルフォルダ";
$smarty->cache_dir = "キャッシュフォルダ";
と書いてあるのですが、各フォルダが見つかりません
自分で作成するものなのでしょうか?
■ このスレッドは過去ログ倉庫に格納されています