【PHP】下らねぇ質問はここに書き込みやがれ 35
レス数が900を超えています。1000を超えると表示できなくなるよ。
0001nobodyさん
2006/12/21(木) 13:42:19ID:???まず読め→【PHP マニュアル】http://www.php.net/manual/ja/
PHPで最良の教本はこの公式マニュアル。市販の書籍は嘘が多いので鵜呑みにしない。
過去スレ、関連スレ、FAQなどは>>2-10辺り
◆前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 34
http://pc8.2ch.net/test/read.cgi/php/1165519374/
◆質問する時の注意
・ 自分のIDを表示させること。(メール欄に何も記述しないこと。空白も入力しちゃダメ)
・ サーバーのOS(Linux、Windows他)、WebサーバーとPHPの種類やバージョン等を明記すること。
・ 己の行った操作、変更などを詳しく明記すること。
・ エラーメッセージはそのまま表記すること。「エラーが出ます」だけでは回答不可。
・ 質問者として、態度をわきまえること。
・ 事前に公式マニュアル、リファレンス本くらいはちゃんと目を通しておくこと。
◆質問後の注意
・偽者防止に必ずIDを表示させること。(メール欄に何も記述しない)
・2回目以降は最初に質問した際のレス番号を名前欄に入れること。
・解決しなくても回答をもらった場合はお礼を言うこと。
(荒らし、煽りは除く。煽られたときも、無闇に反論せずスルーすること。)
◆回答者への注意
・誰にレスしているのか分からないと困るので、>>(アンカー)をつけて回答すること。
【その他諸注意】
・正規表現・PEAR・テンプレート(Smarty等)・フレームワークは各該当スレへ http://pc8.2ch.net/php/subback.html
・SQLについての質問はデータベース板(PCカテゴリ)の各スレで http://pc8.2ch.net/db/subback.html
・速さについては自分でベンチをとってここに書け(違う環境の人も調べてくれるかも)
しかし初心者が目的も定めずに速度を気にしたところでほとんど意味は無いぞ
0810804
2007/01/05(金) 15:05:50ID:UXQGeZPl0811nobodyさん
2007/01/05(金) 15:10:26ID:???どういうシステムを組んでるのか知らないけど、
MTA MDAあたりでググってメールの仕組みを理解してから改めてPHPの質問を。
0813nobodyさん
2007/01/05(金) 15:21:53ID:???0816804
2007/01/05(金) 16:03:51ID:UXQGeZPlumaskを用いて777のパーミッションの
フォルダの作成に成功しましたが
パーミッション関係を変更する
PHPでumaskを使用しないで
0777ディレクトリの作成をしている
サンプルソースとかがありましたので
これでいいのかなと思っていたりします。
>>814
SELinux=disabledにしようと思っていたら
すでにSELinux=disabledでした
0818804
2007/01/05(金) 17:02:47ID:UXQGeZPlパーミッション755の方は
553 Could not create file.
と出て失敗しますが
パーミッション777の方は
成功しました。
ちなみに755の方はFFFTPから削除できず
テラタ−ム使ってrmコマンドで消しました。
0819nobodyさん
2007/01/05(金) 17:09:00ID:???0820nobodyさん
2007/01/05(金) 17:37:07ID:???バッチで動かすとき以外問題ないと思うけど。
バッチのときも755とか775とかにするだけだし。
0821nobodyさん
2007/01/05(金) 18:36:25ID:???ftpはそのグループでもないユーザで実行してるから、777じゃないとダメなんじゃないの?
あとは、linux版だね。
0822nobodyさん
2007/01/05(金) 18:47:28ID:???いまからなら4.0のほうがいいですか?
0823789
2007/01/05(金) 18:49:50ID:wLYNe8olその後PEAR Authにて自動的にログインの機能はなさそうなので、
どうにかしたいのですが、お知恵を拝借できないでしょうか?
1.ログイン時に発行されたセッションIDとランダムな文字列をクッキーに保存。
DBにセッションIDとランダムな文字列をinsert。
2.ブラウザを閉じる
3.再びアクセスしたときに、ランダムな文字列をキーとしてセッションIDを取得
こんな事をやろうとしているのですが、そもそもログイン状態とは何をもって
言っているのか分からなくなってしまっています。
よろしくおねがいします。
0825nobodyさん
2007/01/05(金) 19:05:34ID:???このサイトのPHPでできたメッセンジャーってのがあるんですが
ただのチャットにしかみえません。
チャットをメッセンジャーと偽ってお金とってるようにしか見栄ナインですけど
このスレの専門家方からみてどうなんでしょうか?
0826nobodyさん
2007/01/05(金) 19:26:48ID:???安定してる4.0をお勧めする
>>823
なんかめんどくさいことやってるな。
クッキーだけでいいんじゃねえの
>>825
いいんじゃない?(どうでも)
0827nobodyさん
2007/01/05(金) 19:29:14ID:???あなたが何をもってログイン状態としたいかによると思います
>>825
メッセンジャーってナニ?
MSNメッセンジャーみたいなやつ?
あれって結局チャットじゃん
0829nobodyさん
2007/01/05(金) 19:30:41ID:???0830nobodyさん
2007/01/05(金) 20:15:49ID:KZl21FT91.まずは多重投稿判定をする
2.拡張子判定
3.同名ファイル判定
4.全部チェックして大丈夫ならばUPLOAD
という処理なのですが、
1と2を同時に満たしてしまった場合、
if($host == $lip && $last_time*60 > ($now-$ltime)){ //投稿間隔
require("head.txt"); //<html>~<body>までのタグファイル
echo("投稿間隔が短すぎます!最低5分開けてください。");
require("bottom.txt");//<body>~</html>までのタグファイル
}
if(!in_array($ext, $kaku)) { //拡張子判定
require("head.txt");//<html>~<body>までのタグファイル
echo"PNGorMNGorCPGファイルじゃないです";
require("bottom.txt");//</body>~</html>までのタグファイル
となり、html二つのファイルを出力してしまいます。このような場合はどのようにして一つにまとめればいいですか?
説明不足ですいません・・・
0831nobodyさん
2007/01/05(金) 20:17:16ID:???0832nobodyさん
2007/01/05(金) 20:29:41ID:???}
if(!in_array($ext, $kaku)) { //拡張子判定
↓
}
else if(!in_array($ext, $kaku)) { //拡張子判定
0833823(789)
2007/01/05(金) 21:24:27ID:wLYNe8olif (isset($_COOKIE["visited"])){
$count = $_COOKIE["visited"] + 1;
}else{
$count = 1;
}
$flag = setcookie("visited", $count);
print('<p>あなたの人生で'.$count.'回目の閲覧です</p>');
試しにこんなソースを書いたんですが、新しいブラウザで開くと
カウンタが戻ってしまいます・・・。
助けてください・・。
0834nobodyさん
2007/01/05(金) 21:30:25ID:???http://jp2.php.net/manual/ja/function.setcookie.php
> expire
(略)
> もしも設定しない場合、クッキーはセッションの最後 (つまりブラウザを閉じるとき)が有効期限となります。
0835nobodyさん
2007/01/05(金) 21:36:44ID:???結局はマニュアル読んでないだけか
0837nobodyさん
2007/01/05(金) 22:12:48ID:???アップローダーなら、3の部分は鯖側でmd5なりでリネームしたほうがいい。
あと拡張子の判定だけど、純粋に拡張子だけチェックするだけじゃ、
実は中身はzipとかexeとかの場合もあるわけで、その辺も考えた設計にしないと。
0838nobodyさん
2007/01/05(金) 22:29:08ID:???0839nobodyさん
2007/01/05(金) 22:53:43ID:/7wZXGPA0841nobodyさん
2007/01/06(土) 11:58:18ID:ytrpiRW2現在は、include("../setting.php");のようにしているのですが、
サイト内にincludeやrequireを多用しているので、たまにエラーになった時
どこを指定すれば表示されるのか悩む時があります。
0843nobodyさん
2007/01/06(土) 13:36:00ID:IU0kz2UKeval
とか。
0845nobodyさん
2007/01/06(土) 22:34:47ID:???0846841
2007/01/07(日) 02:06:47ID:???フルパス指定ってどうするのでしょうか?ドキュメントルートを
取得する方法でしょうか?
>>845
絶対パスって、require("http://localhost/setting.php")
みたいな感じですよね?自分の環境では無理でしたが、いけるのでしょうか?
0847nobodyさん
2007/01/07(日) 02:23:51ID:???絶対パス /home/username/www/hogehogeappli/setting.php
相対パス ./setting.php
Winなら
絶対パス C:\Program Files\Apache\htdocs\hogehogeappli\setting.php
相対パス .\setting.php
0848841
2007/01/07(日) 03:57:21ID:???ありがとうございます。ググったら分かりました。
以下のような感じで取得するんですね。
$path = realpath("setting.php");
require_once("$path");
ただ、思ったのですが、サイトに直接絶対パスを指定するならミスは出にくいでしょうが、
絶対パスは固定なのでサーバを移動した場合はすべて書き替える必要がありますよね?
そう言う場合、やっぱり別のファイル内に絶対パスへの記述を書く必要があるわけで、
相対パスで指定する場合とさほど変わらないのではないでしょうか?
0849nobodyさん
2007/01/07(日) 05:46:38ID:JUgRUpjpindex.html.varってなんですか?
0850nobodyさん
2007/01/07(日) 07:12:16ID:/n2+oTVO0851nobodyさん
2007/01/07(日) 11:40:42ID:MUdDhnAV良いライブラリありませんか?
PHPはXMLサポートが強いだろうと思ってたのに、
見つかるライブラリはパーサー系で、全然ライターが見つかりません!
0853nobodyさん
2007/01/07(日) 12:52:17ID:???0854nobodyさん
2007/01/07(日) 13:09:33ID:???0855nobodyさん
2007/01/07(日) 13:56:32ID:NUGiiTORを出力したいのですが、htmlタグを入れたとたんにプログラムが通らなくな
ります。(エラーも何も表示されません。)
phpファイル内でのhtmlタグの使い方が分かっていないので、少々
お聞きしてもよろしいでしょうか?
ファイルのパス:$arrValue[1] タイトル:$arrValue[2]
$common_word = array_interse($word_Unique,$arrValue);
$array_count = count($common_word);
if($array_count >= 6)
{
<html><head></head><body><a href="$arrValue[1]"
<u>$arrValue[2]</u></a></body></html>
}
0856nobodyさん
2007/01/07(日) 14:08:22ID:???特定のパスまでを定数で設定しておけばいい。
define("PATH","/home/hoge/util");
または、一つのフォルダに読み込むファイルをまとめるとか・・。
で、上のように定数で設定して。
require(PATH);
とか
require(PATH . "/db");
とか
とにかく定数をうまく使うと、サーバを変えても無問題
0857nobodyさん
2007/01/07(日) 14:13:01ID:???PEARであるはず
>>855
出力の基礎勉強した?
if($array_count >= 6)
{
<html><head></head><body><a href="$arrValue[1]"
<u>$arrValue[2]</u></a></body></html>
}
でどこで表示する命令書いてるの?
というかこれでエラーで無いのかな。
まず
print "基礎から勉強しろ";
echo "マニュアル嫁";
の意味が分かる?
0858nobodyさん
2007/01/07(日) 15:33:09ID:???0859855
2007/01/07(日) 16:19:47ID:WQemd8r2なるほど。意味が分かりました。
phpファイルの中でhtmlのタグを組み込んで使うということを
したことがなかったので、htmlと同じ要領で使っていました。。。
あと、エラーは
ini_set("display_errors","1");
error_reporting(E_ALL);
にしていますが、何も表示されませんでした。
0861nobodyさん
2007/01/07(日) 16:51:44ID:???<?php
if($array_count >= 6){ ?>
<html><head></head><body><a href="<?=$arrValue[1]?>">
<u><?=$arrValue[2]?></u></a></body></html>
<? } ?>
0863nobodyさん
2007/01/07(日) 19:59:43ID:???以下の処理で問題ありますでしょうか?
$new_level = int( ($experience / 10) + 1);
0864nobodyさん
2007/01/07(日) 20:00:32ID:3Mm5NOOOID入れるのわすれますた
0866nobodyさん
2007/01/07(日) 20:46:03ID:???0867nobodyさん
2007/01/07(日) 21:06:59ID:???if(($exp>=$今の経験値に10をたした変数){
echo"れべるあっぷですがなにか?";
}
0868nobodyさん
2007/01/07(日) 21:12:34ID:JUgRUpjp文字コードはなにで配布するべきでしょうか?
それとも何種類かの文字コードで保存したファイルを複数設置しておくべきでしょうか?
どなたかアドバイスおねがいいたします。
0869nobodyさん
2007/01/07(日) 21:13:40ID:???UTF-8 にして下さい。
改行コードは LF です。
メモ帳で見れない、という苦情に対しては TeraPad を使いなさい、とダウンロードページにでっかくかいときましょう。
0870nobodyさん
2007/01/07(日) 21:24:58ID:JUgRUpjpもしUTF-8で配布する理由を聞かれた場合、なんて説明したらいいのでしょうか?
ご伝授願います。
0871nobodyさん
2007/01/07(日) 21:29:55ID:???0872nobodyさん
2007/01/07(日) 21:33:51ID:???UTF-8を求めるような上級者は簡単に変換できるし。
0874nobodyさん
2007/01/07(日) 22:11:15ID:???0875869
2007/01/07(日) 22:32:01ID:???お好きなのをどうぞ。
・漢字と制御コードが重ならないから。
・日本語以外にも対応しているから。(世界中のほとんどの言語で使える。)
・Google が使っているから。
・時代の最先端だから。
・厨房ほいほいになるから。
>>872
Kent の CGI みたいに "表\示" なんてださいエスケープ処理をするわけですか?
迷惑なのでやめていただきたいです(><)
0876nobodyさん
2007/01/07(日) 22:42:58ID:???いつの時代のPHPだ?そんなのしなくても化けないでしょ。
それに、UTF-8に変換するのもEUCに変換するのも簡単だし。
0878nobodyさん
2007/01/07(日) 22:57:13ID:???0879nobodyさん
2007/01/07(日) 23:13:03ID:???(EUC-JP or UTF-8)とShift_JISは文字化け起こるから互換性ないよね。
0880nobodyさん
2007/01/07(日) 23:19:06ID:9nfE/S0Ksessionはどこに保存されて、いつまで有効なんですか?
0881nobodyさん
2007/01/07(日) 23:23:39ID:???php.iniに書いてあるっしょ。
Win系はC:\Windows\Temp
UNIX系は/tmp
がデフォルトだったような。
0883nobodyさん
2007/01/07(日) 23:35:37ID:???たとえばPHPのソースをEUC-JPで保存し、ブラウザへShift_JISで出力する場合は
onにするのはなぜでしょうか?
ttp://www.bnote.net/windows/windows/code.shtml
0884nobodyさん
2007/01/07(日) 23:43:23ID:???ありがとうございます。
経験値は、1ごとあがるのではなく、突然5など上がったり、下がったりもしますので、
色々むずかしゅうございます。
0885nobodyさん
2007/01/08(月) 01:37:57ID:???apache2.2.3にいれたんですけど、perlからだと動きますが
phpからだと動きません。
付属のadmin.phpもエラーで開きません。
どなたか同じ症状の方いませんか?
0886nobodyさん
2007/01/08(月) 01:59:25ID:???文字コードの変換を、出力ハンドラ(output_handler)に
設定したmb_output_handlerに任せて一括変換する(設定だから)。
別にハンドラに任せないで出力部分で逐一変換しても良いし、
コンテンツ毎で最初のところで出力バッファリングのOn/Offやハンドラの設定をしても良い。
0887nobodyさん
2007/01/08(月) 03:51:28ID:qSyZrtVb特にセッションを破棄しているコードを入れているわけではないです。
しかも、再現性がなくて1000回に1,2回程度発生します。
このような現象が発生する原因ってどのようなことが考えられますか?
PHP5で、OSはLinuxです。レンタルサーバー使用です。
宜しくお願いします。
0888nobodyさん
2007/01/08(月) 04:34:11ID:???ってことはモジュールのみってこと?
0889nobodyさん
2007/01/08(月) 04:36:15ID:???look -n -f サーバのIP -r セッションIDが記録されたファイル
でてきた結果をはれ。話はそれからだ。
0890nobodyさん
2007/01/08(月) 05:40:26ID:???look コマンドって英単語検索するやつじゃないの?
http://68user.blog27.fc2.com/blog-entry-36.html
0891nobodyさん
2007/01/08(月) 06:33:17ID:???レスありがとうございます。
それが、レンタルサーバー(xrea)で、コマンドが使える環境にないんです。
セッションファイルの書き込み処理が怪しいということでしょうか?
xrea側の問題か、自分の処理の問題か、
切り分けができないので、苦心しているところです。
0892nobodyさん
2007/01/08(月) 08:03:48ID:???0893nobodyさん
2007/01/08(月) 10:18:02ID:???という配列があったとします。これを空白のものを削除して
$array="aaa","bbb","ccc";
とするにはどうしたらいいのでしょうか?
正規表現で置き換えをしても上手くいきませんでした。
0894nobodyさん
2007/01/08(月) 10:46:30ID:???foreach($array as $line=>$value)if($value=="")unset($array[$line]);
0896nobodyさん
2007/01/08(月) 12:49:33ID:???ファイルのDL数を表示させたい場合は
DLログからそのファイルのIDを元に集計するのがいいのか
DLがある度にそのファイルのDL数カラムを+1するのがいいのか
どんな感じにしてますか?
0897nobodyさん
2007/01/08(月) 15:06:26ID:???お好きな方を。
DL数を表示させる度に集計するのと
実際にDLした時にカウント処理、表示するときは取り出すだけ。
どっちがいいかは自明な気がするが、
画面構成(ひとつのファイルのDL数?それともリスト表示)
なんかにもよるだろ。
0899nobodyさん
2007/01/08(月) 16:32:23ID:???それともテンプレート側で{$hoge{escape}とかするの?
0900nobodyさん
2007/01/08(月) 16:49:50ID:???0901nobodyさん
2007/01/08(月) 17:00:44ID:???0902nobodyさん
2007/01/08(月) 17:29:52ID:???0903nobodyさん
2007/01/08(月) 17:34:57ID:???0904nobodyさん
2007/01/08(月) 17:49:52ID:???if($page=="1"){
echo $a;
(a〜dまでの変数を表示)
echo $d;
}elseif($page=="2"){
(e〜hまでの変数を表示)
}
みたいな感じで、ifで分けてechoを書いて表示しているのですが、
もう少し効率化する方法はないでしょうか?上記だと単純ですが
ifとechoの数が増えすぎてしまいます。
0905nobodyさん
2007/01/08(月) 18:32:03ID:???$a,$b,$c,$d,
$e,$f,$g,$h,
$i,$j,$k,$l,
$m,$n,$o,$p,
$q,$r,$s,$t,
$u,$v,$x,$w,
$y,$z
);
$i=1;
foreach($hensuu as $v =>$k){
if($i <5){
echo $k;
echo "--";
}else{
echo "<br><br>";
echo $k;
echo "--";
$i=1;
}
$i++;
}
0906904
2007/01/08(月) 18:36:17ID:???ありがとうございます。1行目って変数になっていますが、
"a","b","c","d","e"みたいに表示させるんですよね?
(でないと、----と続きます)
foreachを使うんですね。勉強になりました。ありがとうございました。
0907nobodyさん
2007/01/08(月) 18:38:11ID:???0908nobodyさん
2007/01/08(月) 18:47:43ID:???レス数が900を超えています。1000を超えると表示できなくなるよ。