【PHP】下らねぇ質問はここに書き込みやがれpart20
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/04/28(金) 04:12:33ID:???ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart34【php】
http://pc8.2ch.net/test/read.cgi/php/1142903954/
【PHP】下らねぇ質問はここに書き込みやがれ Part19
http://pc8.2ch.net/test/read.cgi/php/1144513878/
過去スレは>>2-3あたり
0720nobodyさん
2006/05/19(金) 02:59:03ID:???よく嫁
>"Cookieが使えない場合"URLの末尾に自動的に付記される
それとCookieが使える場合はセッションIDはCookieに保存される
SetCookieはコッチがCookieに保存したいときに使う関数だ
マニュアルにもちゃんと書いてあっからまずマニュアル読んで来い
0721nobodyさん
2006/05/19(金) 03:59:15ID:???で紹介されていることをやりたいー
ためしにそのページにあるやつコピペして
phpで保存して鯖にうpしたら
そこで説明されてるとおりにならなかった・・・
知りたいのは・・・・
たとえば「ttp://www.japan.co.jp」があるとして
indexページから001.phpに移動したときに
「ttp://www.japan.co.jp/001.php」と表示されますよね?
これを「ttp://www.japan.co.jp/?aaa=link」 ←このような感じにしていんです
知ってるかた教えてください
0722nobodyさん
2006/05/19(金) 06:02:21ID:???そのページのドコでやってるのか分からんが
ttp://www.japan.co.jp/?aaa=link ってのはレンタルサーバじゃまず不可能
やるとしたらApacheの方でやるしかないが・・・多分そのスクリプト以外動かせないWebサーバになるぞ
ttp://www.japan.co.jp/001.php?aaa=link なら可能
どっちにしろPHPとは関係ない。
CGIの本でも読みなさい。
0723nobodyさん
2006/05/19(金) 07:40:11ID:???こういうことじゃないの?
index.php
<?php
switch ($_GET['aaa']) {
case "link":
include "001.php";
break;
case "hoge":
include "002.php";
break;
default:
header("Location: http://www.2ch.net/");
break;
}
?>
0724nobodyさん
2006/05/19(金) 08:10:56ID:???>それとCookieが使える場合はセッションIDはCookieに保存される
いや、自分もそうだと思っていたんですが、
自作スクリプトにアクセス直後(≒ログイン直後)にIEのクッキー保存フォルダを
開いてみても、該当するクッキーが見当たらないんですよ。
でもたしかにセッションによるログインはうまく行ってる・・・だから混乱してます。
0725nobodyさん
2006/05/19(金) 08:23:27ID:???ファイルが生成されるかどうか確かめて見ればいいんじゃないかな。
おいらは面倒くさがりなのでproxomitronとかのプロキシソフトを使って直接HTTPヘッダを覗いてるけど。
0726nobodyさん
2006/05/19(金) 08:39:57ID:???0729nobodyさん
2006/05/19(金) 11:28:09ID:???例)
index.php?hogehoge
index.php?you=hage
これ自体は普通にindex.phpが返るだけなのであまり気にしてなかったんですが、
少し前にミスったせいで
例)
index.php/hoge.php
index.php/?/hage
index.php/index.php/index.php
のようなリクエストが来るようになってしまいました。
前者の原因は不明なんですが、後者はミスって修正するまでの数十分の間に
クロールされてしまい、index.phpで表示するはずの画像ファイルのリクエストも
全てindex.phpに送られちょっと無視できなくなってきました。
これらのリクエストに対し404を返したいのですが、どのような方法がありますか?
apache1.3.34 php4.4.2 です
htaccessの方がいいでしょうか?
0733nobodyさん
2006/05/19(金) 12:59:46ID:b+EKMyUQ0736nobodyさん
2006/05/19(金) 13:52:56ID:b+EKMyUQありがとうございます。
0737nobodyさん
2006/05/19(金) 14:46:50ID:???$_SERVER['PATH_INFO']あたりで判定できないかな?
phpinfoを呼び出すプログラムを書いて
そのURIにいろいろくっつけて使えそうな引数探してみるといいかも。
404はheaderで飛ばせるはず。
0738nobodyさん
2006/05/19(金) 15:33:15ID:???0739nobodyさん
2006/05/19(金) 15:33:27ID:???if( ログイン判定 ){
内容表示
}
else{
echo 'ログインして下さい';
}
みたいな感じが基本?
if文の中でコンテンツがばーっと続くのがちょっと嫌な感じだったんだけど、どんな風にやるのがいいかな?
0740nobodyさん
2006/05/19(金) 15:47:07ID:???0741738
2006/05/19(金) 15:47:32ID:???・ログインできない人は同じ画面でエラーメッセージ表示
・OKな人は別ページへ飛ばす(飛ばした先でセッション確認)
<?php
if ( ログインできない人 ) { $error="ログインできません"; }
header("Location: ログイン後のページ");
?>
<html>ログインページ内容 <?= $error ?> </html>
0742nobodyさん
2006/05/19(金) 15:50:33ID:???else { header("Location: ログイン後のページ"); }
0743nobodyさん
2006/05/19(金) 16:49:30ID:???とでたんですが、
考えられる設定漏れはなんでしょうか?
0744nobodyさん
2006/05/19(金) 18:26:48ID:???0746nobodyさん
2006/05/19(金) 19:21:00ID:???>>741
ログイン画面ならそのような感じでいいんですが
私が今考えているのは、例えば投稿ページのように、ログインしていないとフォームが表示されないように
したいといったページについてです。
そういう場合はどうしていますか?
0747nobodyさん
2006/05/19(金) 19:30:50ID:???0748nobodyさん
2006/05/19(金) 19:35:07ID:???既に出ている答えで何が不満なのか良く分からんが、
俺の場合は殆どテンプレートファイルを切り替えるだけだから問題ないな。
あとは、ページ表示を関数化したら?
0749nobodyさん
2006/05/19(金) 19:37:08ID:???date関数で日を取得するのはわかるのですが、、、
0751nobodyさん
2006/05/19(金) 19:45:05ID:???$last_day = date("d", mktime(0, 0, 0, date("m") + 1, 0, date("Y")));
0752nobodyさん
2006/05/19(金) 20:05:30ID:???これってどういうときに生じるエラーなのでしょうか。
Warning: pg_query() [function.pg-query]:
Query failed: ERROR:
could not serialize access due to concurrent update in
/phpページのアドレス on line 94
ここでは
Postgresql7.4へupdateのクエリーを送っているのですが、
5人くらいが同時に何度もその問題のページへアクセスしてみると
100回に1回くらいでてきます・・・。
なお、updateするレコードはひとつなので、
取り合いになっていて、その処理がおかしいのかと考えて、
5時間くらいいろいろ試行錯誤してみましたが、
解決していません。
また、このWarning文をブラウザに表示させないようにする方法が
ありましたら教えていただきたいです。
よろしくお願いします。
0753nobodyさん
2006/05/19(金) 20:07:12ID:???0755nobodyさん
2006/05/19(金) 20:24:31ID:???それ、PHPの問題じゃないじゃん。
「could not serialize access due to concurrent update in 」でぐぐったら?
Warningを表示させたくないなら、
設定のdisplay_errorsディレクティブとか、
error_reporting関数を見てみな
0756nobodyさん
2006/05/19(金) 20:52:39ID:???preg_match( "/<title>.+<\/title>/i", $data, $matches);
$title = $matches[0];
0757nobodyさん
2006/05/19(金) 21:09:19ID:???なんかの宿題か?
0759nobodyさん
2006/05/19(金) 21:44:09ID:???preg_match('/<title>[^<>]+<\/title>/i', $data, $matches);
の方がいいんじゃないか
0760nobodyさん
2006/05/19(金) 21:47:00ID:???例えば、「2006年5月19日〜2006年5月25日までバイト」などの指定が出来る場合、
2006年5月19日〜2006年5月25日までの期間を一度に複数登録出来る必要が
あると思います。
1件ずつデータを追加するのはわかるのですが、どうやって複数の期間を
判別するのかがわかりません。配列に入れてcountで計算?とか思ったのですが、
なんか違うみたいだし・・。登録処理はforでその期間分を回すと思うのですが・・。
0762nobodyさん
2006/05/19(金) 22:10:34ID:???0763760
2006/05/19(金) 22:13:09ID:???すみません、、簡略化しました。
$main_time1= date("Ymd"); //現在の日時
$main_time2= "20060525"; //開催期間の最終日時
$main_time=$main_time2-$main_time1;
for($i=1;$i<$main_time;$i++){
$kaisai=$main_time1+$i;
echo"開催期間は"."$kaisai"."です。"."<br>\n";
}
これでとりあえず開催期間は表示されますが、20060520のような形になります。
これを2006-05-20のように表示出来ないでしょうか?
0768nobodyさん
2006/05/19(金) 22:24:09ID:???だからマニュアルを読め
substrでもstrtotimeでも好きなのを使え
あと日付差分のアルゴリスムはめんどいぞ、と忠告しておく
0769nobodyさん
2006/05/19(金) 22:33:13ID:???0771nobodyさん
2006/05/19(金) 22:41:49ID:???> あと日付差分のアルゴリスムはめんどいぞ
unix秒に変換→計算→再フォーマット
ってだけじゃないのか
0772nobodyさん
2006/05/19(金) 22:59:27ID:???1ヶ月を30日で計算するか31にするかとかのこと。
3ヶ月単位の作業があって、○月の3ヶ月後とか出すのがめんどかった。
90日後なら楽なんだが、11/29の3ヶ月後が2/28なのか2/29なのか、それとも3/1にするのかとかね。
作ること自体は簡単なんだがな。
その年の月の日数を計算する関数つくるだけだし。
0773nobodyさん
2006/05/19(金) 23:10:58ID:???0774nobodyさん
2006/05/19(金) 23:14:07ID:???$d++;
$main_time1 = mktime(0,0,0,$m,$d,$y);
echo"開催期間は".date("Y-m-d",$main_time)."です。<br>\n";
な感じ
0775nobodyさん
2006/05/19(金) 23:16:33ID:???最初の年月日を$y,$m,$d分解しておいて
$d++;
$main_time = mktime(0,0,0,$m,$d,$y);
echo"開催期間は".date("Y-m-d",$main_time)."です。<br>\n";
を最後の日($main_time2)までループする感じで
0776nobodyさん
2006/05/20(土) 00:18:10ID:???$a[] = 1;
とかをしてみたら
Fatal error: [] operator not supported for strings in *******
というようにその行がエラーだと言われるのですがこれはPHPのバグでしょうか?
PHPは5.0.4です。
0779nobodyさん
2006/05/20(土) 00:48:15ID:???PATH_INFOで判別できました。
headerがうまく動いてくれないんですが(他のスクリプトでは問題ないのに)
エラーを表示するようにしました。
助かりました。ありがとうございました。
0780nobodyさん
2006/05/20(土) 01:17:33ID:???くだ質じゃなくてPHP質問スレってどうなったの?
0782724
2006/05/20(土) 01:47:02ID:???phpinfoでsession.cookie_lifetimeを調べたところ、値は「3600」でした。
ということで期限の設定もされていると思うのですが、
もしかして調べるべきディレクティブを間違ってるでしょうか??
他には「session.cache_expire」は「60」、「session.use_cookies」は「On」です。
0784nobodyさん
2006/05/20(土) 04:00:40ID:???0785nobodyさん
2006/05/20(土) 04:20:40ID:???ワケ ワカ ラン♪
∧_∧ ∧_∧ ∧_∧
( ・∀・) ( ・∀・) ( ・∀・)
⊂ ⊂ ) ( U つ ⊂__へ つ
< < < ) ) ) (_)|
(_(_) (__)_) 彡(__)
0787784
2006/05/20(土) 05:03:45ID:???をIE5で開いても番組ファイルが残ってないのでクリックし直さなきゃなんないのです
0789724
2006/05/20(土) 05:04:48ID:???いえいえ、もちろんそんなこと思ってませんよ。
もし何か保存されてるとしたらセッションIDだけですよね。
自分では明示的にクッキーに何か保存するコードは書いてませんので。
っていうか、とにかくIEのクッキー保存フォルダに、該当ドメインのクッキーが
見当たらないんですよね。。。 他のサイト(たとえばyahooとか)のクッキーはもちろんそのフォルダにあります。
0790nobodyさん
2006/05/20(土) 06:32:41ID:???スレ違いかもしれないのですが、SQLiteってidentityって使えませんでしょうか。。
SQL文は通るのですが、値が入ってないみたいでして。。
PHPは5.1.4使ってます。
0791nobodyさん
2006/05/20(土) 07:23:44ID:???identity使えるのはSQL ServerとMS Accessだけ
SQLite含めOracleやpostgreSQL, MySQLでは使えない
0793nobodyさん
2006/05/20(土) 12:09:03ID:???なんで?
携帯サイトだから、SJISなんだけど
0794nobodyさん
2006/05/20(土) 12:11:52ID:???今までで、これは使いやすい・または優秀だと思ったWebアプリのUIは何ですか?
ちょっとPHPとは関係ない感じではありますが、(DHTMLよりかも)
デザイナーではなく、マの視点が聞きたいのもありますので。
Virtual Earth
http://local.live.com/
0796nobodyさん
2006/05/20(土) 14:40:18ID:???0798nobodyさん
2006/05/20(土) 15:13:58ID:???<head>
<title>aaa</title>
</head>
<body>
<?php
$hour = date('H');
if (3 <= $hour < 10) {
$greeting = 'おはようございます';
} else if (10 <= $hour < 18) {
$greeting = 'こんにちわ';
} else {
$greeting = 'こんばんわ';
}
echo $greeting."現在の時刻は".date('H時間')."です";
?>
</body>
</html>
Parse error: syntax error, unexpected 〜と出るんですが
何がおかしいですかね
うんこな質問だったらごめんなさい
0799nobodyさん
2006/05/20(土) 15:27:38ID:???とりあえず、この書き方がキモく感じるから、これが間違ってるんでね?
if (3 <= $hour < 10) {
0800nobodyさん
2006/05/20(土) 15:40:19ID:???0801nobodyさん
2006/05/20(土) 16:30:53ID:???ある会社が提供してるサービスを再販するために、システム開発のためのAPI提供してくれてるんですが、
その使用形式ってのが
http://その会社のアドレス/api.php?id=$id&pass=$pass&action=$action
というアドレスへシステム(php等)からアクセスするっていう方式なんです。
ここでかなり不安になったのが、
URLにID/PASSを含んでることです。
まずSSL使用しなければ危険性盛りだくさんな気がしますし、
このシステムはクライアントに対して利用してもらうことになるので
他にもなんかかなり不安です。
(たとえば、php.iniでエラー表示させる設定にしてて
何かエラーが発生したら簡単にID/PASSを漏らしちゃいそうな・・・
これの場合はその設定をoffにすればいいだけですが)
注意点とかあったら教えてください m(_ _)m
お願いします
0804nobodyさん
2006/05/20(土) 17:02:24ID:???ああああ
もしかして最後のline 7とか出てたのがそれだったんですか
>>780
お二人ともありがとうございました
0805nobodyさん
2006/05/20(土) 17:09:46ID:???例:「COUNT=1 COUNT2=2」のCOUNTの値を取り出したい場合は
$var = "COUNT=1 COUNT2=2";
preg_match_all("/COUNT=([0-9])/", $var, $match_list);
$count = $match_list[1][0];
とやってますが、この $match_listの後ろの配列っぷり([1][0])が苦手です。
もっとわかりやすい方法あったら教えてちょ
0806nobodyさん
2006/05/20(土) 17:26:52ID:???全てのページ分の数字を出すと、多すぎて邪魔になってしまいます。
そこで、「1 2 (3 表示中) 4 5」や「25 26 (27 表示中) 28 29」のように、指定した数だけ表示させたいのですが、
方法がいまいちわかりません。どのようにすれば良いでしょうか。
0807nobodyさん
2006/05/20(土) 17:59:24ID:???$var = "COUNT=1 COUNT2=2";
preg_match_all("/COUNT=([0-9])/", $var, $match_list);
これでOKなのかと小一時間?
0808nobodyさん
2006/05/20(土) 18:00:15ID:???表示中の位置(3とか27とか)はわかるんでしょ
ループの開始値は「現在の位置−2」、ループの終了値は「現在位置+2」
0810nobodyさん
2006/05/20(土) 18:12:09ID:???面倒なら一旦
$var2=explode(' ', $var);
とかやって、1つずつ分割してから
foreach ($var2 as $var3) { if (preg_match('〜
のように処理しては?
どっちが分かりやすいかは(゚�听)シラネ
0811nobodyさん
2006/05/20(土) 18:36:42ID:???0812nobodyさん
2006/05/20(土) 20:54:02ID:poPXxmgLハッシュは見つかるのですが。。
0813nobodyさん
2006/05/20(土) 21:01:18ID:???つか可逆暗号化なんて使う機会なかったし。
Blowfishなら簡単に作れるから作ってみたら?
0814812
2006/05/20(土) 21:07:32ID:???PHPが出てから結構たつ気がするのですが、ライブラリはまだPerlに比べて貧弱なんですね。。orz
けれど、mod_phpで運用されているところが多いのを考えると。。
Blowish、CPANから引っ張って来て移植してみます。ありがとうございました!
0815nobodyさん
2006/05/20(土) 21:15:06ID:???変更することを
フォーム内容を変更して
って言っていたんですが、通じなかったのですが、通常なんて言うのですか?
0816nobodyさん
2006/05/20(土) 21:59:06ID:???0818nobodyさん
2006/05/20(土) 22:05:18ID:???「フォーム内容」だと漠然としすぎて(値だけじゃなく構成から何から全部含むので)
それで通じるとこは普通無いと思う。
素直に具体的に書け。
0820nobodyさん
2006/05/20(土) 22:08:22ID:???>>815は
http://pc8.2ch.net/test/read.cgi/hp/1141064508/
で暴れまわっている、◆uuPwxrB4qc というキティちゃんなので
完全放置してください。
■ このスレッドは過去ログ倉庫に格納されています