【PHP】くだらねぇ質問はここに書き込みやがれpart9
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2005/09/03(土) 11:53:32ID:7OO4C5e5ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
0002nobodyさん
2005/09/03(土) 12:51:30ID:???0003nobodyさん
2005/09/03(土) 13:50:11ID:???作成にあたりセキュリティ面に不安があり、皆様のご意見を聞かせていただけたらと思います。
例えばユーザーが編集したページデザインが
<html><head><head><body>
名前:#namae<br>
タイトル:#title<br>
</body></html>
だったとしてこれを元に
<?php
echo '<html><head><head><body>名前:'.$namae.'<br>タイトル:'.$title.'<br></body></html>';
?>
(↑#namaeを '.$namae.' に#titleを '.$title.' に変換しただけ)
このようなincludeファイルを作って表示された場合に、シングルクウォートの入力を許可するとPHPの関数が実行可能となってしまいますが、
シングルクウォート以外を使って関数の実行は可能でしょうか?デザインの編集はフォームで行います。
ソース中の記号が読みにくいかと思いますがよろしくお願い致します。
0004nobodyさん
2005/09/03(土) 14:11:34ID:7K8wd7Ia#namaeを
<?php echo $namae; ?>に
置き換えればいいんじゃね?あとは普通のHTML。
00053
2005/09/03(土) 14:37:13ID:???ユーザーが>>2のようなデザインをフォームから投稿すると
str_replace("#namae","'.\$namae.'")
といったように書き換えて>>2のようなincludeファイルを作成します。
掲示板のPHPは記事データ($namaeや$title)を読みこんだ後で
作成された>>2のincludeファイルを読み込んでincludeされたファイルがデータを表示します
ユーザーが作成するデザインでシングルクウォートが使えると
<html><head><head><body>
名前:#namae<br>';
$fp = ("./bbs.php");
$txt = fread($fp,filesize($file));
echo $txt;
echo '
タイトル:#title<br>
</body></html>
といった感じに書かれてしまうと、自由にPHPを実行されてしまいます。
シングルクウォート以外に禁止したほうがいい文字列なんかありますでしょうか?
わかりづらい文章ですみません。
0006nobodyさん
2005/09/03(土) 19:34:03ID:???#name → $nameという処理を特定のものだけに制限すれば、あとは、HTML内のただの文字にしかならないと思うけど。
0007nobodyさん
2005/09/03(土) 20:21:17ID:???お前が「レンタルールを提供するサイトを運営している」事が驚きだね。
ついでに言っとくが、この結果はどうなると思う?
$data = "'A';print 'TEST';";
echo $data
00087
2005/09/03(土) 20:22:22ID:???0009nobodyさん
2005/09/03(土) 22:03:46ID:???よくわからんが、
$namaeにPHPコードがあると
echo $namae
でPHPコードが実行されるもんなのか?
includeファイルだからなるの?
includeだとPHPを実行しちゃうの?
じゃincludeしなければいいんだ。
ファイル読み込みとechoでinclude代用
0011nobodyさん
2005/09/03(土) 23:15:45ID:/h7Yu57rひとつのPHPファイルの中で2回以上使用するとredeclareできないというエラーが出てきます。
function hoge($data) {
function hogege($data) {
$data .= "-hogege";
return $data;
}
$data = hogege($data);
$data .= "-hoge";
return $data;
}
上記のような関数を2度以上使うとエラーがでました。
これはまずPHPファイル読み込み時にhoge()が宣言され、
内部のhogege()はhoge()が呼び出されるたびに宣言することになるからだと理解したのですが、
対処としてはhogege()をhoge()の外で宣言するしかないのでしょうか?
ある関数について宣言されていなければ宣言する、といったようなことは可能なのでしょうか?
001211
2005/09/03(土) 23:39:37ID:???0013nobodyさん
2005/09/03(土) 23:40:32ID:6exF3kawヒントだけでもキボンヌです
00143
2005/09/04(日) 00:00:45ID:???ご意見ありがとうございます。
7>>
シングルクウォートの入力は許可してないのでそのコード自体書き込めません。
ためしにシングルクウォートのチェックはずして
$data = "'A';print 'TEST';";
echo $data ;
と入れてみましたが parser errorでした。
すべてダブルクウォートにしてもHTMLで出力されるだけでした。
すみません質問の仕方かえます。
$a='かきくけこ';
echo 'あい'.$a.'うえお';
↑これだと$aが展開されると思いますが、''内でシングルクウォートを使わずに$aを展開することは技術的に可能でしょうか?
0015nobodyさん
2005/09/04(日) 00:04:02ID:???私はそのような内部関数を作ろうと思ったことは無いのですが、
本当にそれが必要なのでしょうか?
OOPの内部クラスとも違いますよね。
展開してしまえば、関数定義も、関数呼び出しも要りません。
function_exists() でテストするコストも減らすことができます。
言語で出来ることをいろいろ試すという目的なら分かるのですが。
0016nobodyさん
2005/09/04(日) 00:25:14ID:KQPE/gyzexec
shell_exec
というなんかできそうなのがあるよ
001711
2005/09/04(日) 00:27:47ID:???定義した関数の中で複数箇所で実行したい処理をその関数内でのみ関数として定義したいのです。
具体的には、フォームで受け取った値を種別にチェックする関数を作っているのですが、
(「年」「月」「日」「ユーザーID」その他DBに設定した項目にあわせてチェック)
その中で、たとえば整数かどうかのチェックを行う関数や、
SQLでIN句に使用する('data1','data2',,,)という文字列を作成する関数を作っています。
「展開してしまえば」というのは、関数で定義もせず、その都度処理を全部記述するということでしょうか?
あまり効率的でないように思えるのですが、どうなんでしょうか?
0018nobodyさん
2005/09/04(日) 00:33:18ID:KQPE/gyz{}とかは無理?
0019nobodyさん
2005/09/04(日) 00:35:02ID:???現在サーバーの設定ファイルを弄るPHPを作っているのですが、
「権限」の面で非常に困っています。
単純にApache権限では各種設定ファイルへアクセスすることは
できないわけですが、
通常どのような手段を用いるものなのでしょうか?
(PHPというよりはむしろ鯖管理の知識になるのでしょうか?)
0020nobodyさん
2005/09/04(日) 00:43:58ID:???個人的には、素直に外に出した方が良いと思います。
整数かどうか、というチェックなら頻繁に使われるでしょうし、標準の関数もありますよね。
私は、PHPで内部関数を作ること自体に(見た目的にも)違和感があります。
その関数内でしか使わないような関数であっても、外に出しています。
もちろん個人の好みなのかも知れませんが。
002111
2005/09/04(日) 01:20:25ID:???中身は整数だけど文字列になってたりするので標準の関数が使えなかったりするんですよ。
他にも多数のPHPファイルにその都度全部一連の処理を繰り返し記述するのは苦痛にしか感じないのですが
そうでない人もいるということなのかな?
まぁ、極力手抜きをしたい、ということなんですけどね。
0022nobodyさん
2005/09/04(日) 01:27:16ID:???PHPでは匿名内部クラスも実装することができないのだろうか。
メソッド内クラスも。
0024nobodyさん
2005/09/04(日) 01:30:23ID:???だったら、
function func1(){
function func2(){
}
}
とせず
ただ
function func1(){
}
function func2(){
}
と分けるだけでいいんでない?
オブジェクト指向を使えば
もっと便利なこともできるけど。
002517
2005/09/04(日) 01:36:37ID:???それだとfunction_existsを使わずに済むのですが、
そもそもfunc2を単独で利用するつもりが全くないので、
見た目的にどうもすっきりしないんですよね。
パーツにしかすぎない関数を同列に並べるのがどうも違和感があるんです。
オブジェクト指向も気になってはいるもののマニュアル等を読んでもいまいちメリットが分かりにくいので
さしあたって関数をガシガシ作って参照するようにしています。
0026nobodyさん
2005/09/04(日) 01:37:22ID:???自作関数の作り方本当にわかってる?
何か勘違いしているような気がしてならないんだけど。
>>11で示されるような
内部関数hogege($data)というのは
関数hoge($data)の中でしか使わない、
だから、内部関数として定義したい
という意味だとおもったけど。
内部クラスのように。
けど>>21をみるとやりたいことはそうじゃないみたいだね。
関数を作っているんだからその作った関数をcallするだけで
その都度同じ重複する処理を書く必要は無い筈なんだけど。
関数は一度作ったら、その関数が定義されているファイルを
include(), include_once(), require(), require_once()で呼び出すだけで
$x = hogege('何か');
のようにすぐ使えるんだけど。
毎回PHPファイルを新たに作成する対に
function hogege($data) {
$data .= "-hogege";
return $data;
}
とか無駄に書く必要は無いよ。
0027nobodyさん
2005/09/04(日) 01:38:41ID:???オブジェクト指向を理解したければ
結城浩の「Java言語で学ぶデザインパターン入門」を
読むことをおすすめするよ。超初心者向けで非常にわかりやすいよ。
0028nobodyさん
2005/09/04(日) 01:39:59ID:???require_once()を使えば、
わざわざ何度もfunction_exists()を呼び出す必要はないと思うんだけど。
require()ってわかる?
require()とrequire_once()との違いもわかる?
0029nobodyさん
2005/09/04(日) 01:41:29ID:???> >>24
> それだとfunction_existsを使わずに済むのですが、
> そもそもfunc2を単独で利用するつもりが全くないので、
> 見た目的にどうもすっきりしないんですよね。
> パーツにしかすぎない関数を同列に並べるのがどうも違和感があるんです。
それなら、もうオブジェクト指向を学ぶしかないでしょ。
そのまえに、まず関数の作り方、使い方くらいおぼえたほうがいいね。
それからrequire()の使い方も。
0030nobodyさん
2005/09/04(日) 01:47:30ID:???b.php 関数b()が定義されている
require.incの中身
<?php
require_once('a.php');
require_once('b.php');
//定義された関数を実行
a();
b();
?>
top.phpの中身
<?php
require_once('require.inc');
//定義された関数を実行
a();
b();
?>
>>11がやりたいことはこれを参考にすれば問題なく実現できるかと思われ。
0031nobodyさん
2005/09/04(日) 01:53:05ID:???どこか問題だからわかりませんでしょうか?
サーバはXREAです。
003211
2005/09/04(日) 02:11:46ID:???>>21の「多数のPHPファイルにその都度全部一連の処理を繰り返し記述」というのは
>>20をなぜか「関数を使わずその都度処理を全部書く」と誤解してしまったがゆえの発言なので、
全ファイルにて同じ関数を定義しているわけではありません。
外部にまとめて定義してあり、各ファイルにてrequire_once()でインクルードしています。
また、function_exists()については、関数を定義しているファイルにて
funtion hoge($data) {
if (!function_exists("hogege") {
function hogege($data) { ....... }
} }
としています。
この時点でrequire_onceや定義した関数の使い方に間違いがあったりするのでしょうか・・・?
>>27の本は以前いろいろ本を調べていたときにも見かけたのですが、
Javaがわからなくてもなんとかなるものなのでしょうか?
0033nobodyさん
2005/09/04(日) 02:26:36ID:gvZ6YCw+$hoge2 = $data2;
$hoge3 = $data3;
続く
こんなのをforを使って一気に書くときに連番の部分に$iとかって
変数を使ったりする訳ですが、文字列として吐き出すのではなく
この連番を含んだ変数名を、変数として実際につくるeval以外の方法はないでしょうか?
0035nobodyさん
2005/09/04(日) 02:46:21ID:???前スレに同じような話題があったような。
これ?でいいのかな?
${'hoge'.$i}
0036nobodyさん
2005/09/04(日) 02:46:32ID:???for ($i=0;$i<10;$i++) {
$hoge_str = "hoge$i";
$data_str = "data$i";
$$hoge_str = $$data_str;
}
0037nobodyさん
2005/09/04(日) 02:51:30ID:???配列やハッシュを使わずになんでわざわざスパゲティコードすれすれになりそうな
そんなことをするのだろうか不思議だ。
一体何をしたいんだい?
0038nobodyさん
2005/09/04(日) 02:54:19ID:???質問の仕方が悪いか、関数のことをわかっているようで
実はわかっていないから誤解されるんだろうが。
だからさ、hogege()はすでに外部に定義してあってrequire_once()で
hogege()関数が定義されたファイルを呼び出していて、
いつでもhogege()を呼び出せるようになっているんだろ?
なのになんでhogege()を再定義しているんだ?
一体何をやりたいんだい?
0039nobodyさん
2005/09/04(日) 03:19:50ID:???> >>27の本は以前いろいろ本を調べていたときにも見かけたのですが、
> Javaがわからなくてもなんとかなるものなのでしょうか?
お前がよほどバカじゃなきゃ、なる。
0040nobodyさん
2005/09/04(日) 07:49:16ID:mRWx0KoE要するにシングルクォートでかこまれた
echo '他人が入力';
で「他人が入力」の部分はシングルクォート以外のどんな文字列にしても
PHPのセキュリティ上問題ないかって事?
0042nobodyさん
2005/09/04(日) 08:53:16ID:MGvOYzObこんなん見っけた
やってみる気あったらケータイでお気に入り登録しとくといいよ
0043nobodyさん
2005/09/04(日) 09:23:23ID:???004511=32
2005/09/04(日) 11:17:27ID:???再定義というか、定義されていない場合にのみ宣言しているつもりなのですが、何か問題があるのでしょうか?
hogege()はhoge()の中でしか定義していません。
>>39
早速買ってみます。
0046nobodyさん
2005/09/04(日) 12:52:20ID:???CGI化してSuexec使うしか無理でしょうか?
004743
2005/09/04(日) 13:00:39ID:???すみません。死ぬほど言葉足らずでした。
WBMPに限らず、一般のビットマップ(例えば24ビット)をGDで扱うにはどうしたらいいですか?
005043
2005/09/04(日) 16:32:47ID:???なんとかGDで「操作」できるリソースの形に持っていくことはできないものでしょうか?
ImageMagickやCJPEGのような外部ツールを使ってJPEGとかPNGとかに変換してしまうと質落ち(というか少なくとも色の変化)は免れないようです。
やったことないですが、ビットマップファイルをPHPのfopenとかで直接読んで解析するのはアホですか?
005133
2005/09/04(日) 16:34:46ID:gvZ6YCw+可変変数っていまいちわからんです。
>>35-36
まさにこれです。サンクス。
>>37
mysql_fetch_arrayをループの外であとから値を取り出したいのです。
そうすればコードもすっきりするので。
0052nobodyさん
2005/09/04(日) 16:50:48ID:???0053nobodyさん
2005/09/04(日) 16:51:35ID:???0054nobodyさん
2005/09/04(日) 17:11:44ID:???0055nobodyさん
2005/09/04(日) 17:14:42ID:???0056nobodyさん
2005/09/04(日) 17:15:49ID:???0057nobodyさん
2005/09/04(日) 17:16:37ID:???0058nobodyさん
2005/09/04(日) 17:17:17ID:???0059nobodyさん
2005/09/04(日) 17:26:04ID:???0060nobodyさん
2005/09/04(日) 17:41:18ID:???POSTで受け取ったデータ(XXXXX)を元にクライアント毎に表示するページを変えたいのですが、
例:http://aaa.aaa/aaa/XXXXX/ こんな感じで
どのようにすればいいのですか?
今は、こんな感じで書いてるのですが、
<a href="http://aaa.aaa/aaa/
<?php
print $_POST['XXXXX'];
?>
/">URL</a>
リンクをクリックさせず、直にリンク先のページを表示させる(1段階作業を減らしたい)方法がありましたら
ご享受ください。お願いします。
0062nobodyさん
2005/09/04(日) 17:49:56ID:???<?php print ウンコ.php?ウンコA=>>60はヴァカ&ウンコB=>>60はアフォ
?>
(ry
0063nobodyさん
2005/09/04(日) 17:53:48ID:???$a[ '>>60aho' ]
$a['>>60aho']
どち?
0064nobodyさん
2005/09/04(日) 17:56:18ID:???0065nobodyさん
2005/09/04(日) 19:06:23ID:w7mb+cHO------------
〜PHPプログラム
?>
<HTML><HEAD>
<?php
〜PHPプログラム
------------
このような記述になってる場合、
------------
〜PHPプログラム
echo "<HTML><HEAD>";
〜PHPプログラム
------------
このようにphp呼び出しをなくしてしまった方が早くなるのでしょうか?
詳しい方がいたら教えてください。
0066nobodyさん
2005/09/04(日) 19:34:24ID:???0067nobodyさん
2005/09/04(日) 20:02:28ID:???0068nobodyさん
2005/09/04(日) 20:03:12ID:iLr51HFA一番いいんでしょうか?
0069nobodyさん
2005/09/04(日) 20:06:12ID:???( (
[0] => Array [0] => hoge
( → [1] => hage
[0] => hoge ...
) )
[1] => Array
(
[0] => hage
)
...
)
左の配列を右の配列のように変換してくれる関数ってありませんか?
一応マニュアルは読んだんですが、自分で書く前に質問しておきます;
0070nobodyさん
2005/09/04(日) 20:47:14ID:???0071nobodyさん
2005/09/04(日) 20:48:46ID:???面倒くさいから自力ではあけない。
ctrl + shift + F と押せば
オートフォーマッタが発動しPHPEclipseがツールで自動的にスペースをあけてくれるように
設定することもできたかと。
0073nobodyさん
2005/09/04(日) 21:29:28ID:???ウェブログのスクリプトを自作しているのですが、トラックバックの部分がどういう決まりになっているか分かりません。
どのようにして相手にトラックバックが知らされるのですか?どのURLに、どのような情報を送信すればよいですか?
RDFに出力する部分は完成しています。
0075nobodyさん
2005/09/04(日) 21:40:06ID:???TrackBack Technical Specification
ttp://www.sixapart.com/pronet/docs/trackback_spec
日本語だと、トラックバック仕様書 ってな感じかな。ググれば訳があるかも知れず。
0077nobodyさん
2005/09/04(日) 23:57:45ID:???0078nobodyさん
2005/09/05(月) 01:05:31ID:???MySQLに登録したユーザー名とパスワードを利用してログインし、
セッションを使ってサイト内にアクセスできるようなサイトを作っているのですが、
現在ログインしているユーザーを把握するにはどのような方法があるのでしょうか?
ログイン時にログインユーザー管理用テーブルにログイン日時・最新アクセス日時・ログアウトフラグ・ユーザー名を格納し、
各ページにアクセスするたびに最新アクセス日時を更新し、
設定したタイムアウト時間(30分くらい?)以内のユーザーをログイン中のユーザーと判定すればいいかと思ったのですが、
これだと最大30分の誤差が生じてしまいます。
極力誤差を小さくし、なおかつブラウザを開いたまま放置した場合のタイムアウト時間をできるだけ長く取るような方法はあるのでしょうか?
よろしくお願いします。
0079nobodyさん
2005/09/05(月) 01:35:15ID:???メッセージが表示されました。
Server error!
The server encountered an internal error and was unable to complete your request.
Error message:
Premature end of script headers: school_blog.cgi
If you think this is a server error, please contact the webmaster
Error 500
これはどのようなエラーなのでしょうか。
0080nobodyさん
2005/09/05(月) 01:36:27ID:???でググる。
0081nobodyさん
2005/09/05(月) 01:38:45ID:???一定時間毎に見えないサイズのiframeを更新させれば
ブラウザを閉じてしまった人間は把握できる。
開いたままの放置についてはどうしようもないけど。
008379
2005/09/05(月) 01:41:54ID:???メモ帳でCGIのデータを改造したのがいけなかったのかな・・・
ちゃんと上書き保存で保存したんですけど
008579
2005/09/05(月) 01:47:32ID:???今すぐ回線切って首吊ってきます・・・
0086nobodyさん
2005/09/05(月) 02:12:11ID:???「誤差」の意味がわからん。ブラウザを閉じてるか開いてるかを見分けたいってこと?
それだったら>>81のiframeか、もしくはユーザーに気づかれずにやるならAjaxで、短めな一定時間ごとにサーバーにリクエストを送信。
その上でブラウザ放置を見分けるのに「30分」など長めの時間を設けるのもいいし、JavaScriptでキーボードやマウスのイベント発生に関して適宜リクエスト送るっていう荒業でもよいかと。
あとはWeb製作板などの関連スレへ。
008778
2005/09/05(月) 02:25:50ID:???レスありがとうございます。
iframeを埋め込んでおくのが簡単そうなので試してみることにします。
「誤差」というのは、「ブラウザが閉じられてからログアウト判定されるまでの時間」ということです。
「開いたまま放置」はログインしていると判定して問題ないのでiframeで解決しそうです。
0089nobodyさん
2005/09/05(月) 07:19:20ID:???クライアントから送信されるcookieの有効期限を取得する方法はないでしょうか?
009189
2005/09/05(月) 09:28:45ID:???わかりましたありがとうございました
0092nobodyさん
2005/09/05(月) 11:42:15ID:???0093nobodyさん
2005/09/05(月) 11:50:53ID:???ttp://www.faqts.com/knowledge_base/view.phtml/aid/1/fid/40
0094nobodyさん
2005/09/05(月) 12:06:30ID:REUncSgbで、セッションを勉強したいのですけどわかりやすい解説サイトありますか?
(PHP公式マニュアル以外で)
0095nobodyさん
2005/09/05(月) 13:52:51ID:???0096nobodyさん
2005/09/05(月) 14:10:36ID:CxM3rFfK↑のSQLの☆の部分にGETで値を引き渡す時に#が入っていると(例:ABC#DE)、
#以降の値が送られないんですが、どうすればいいんでしょうか?
0097nobodyさん
2005/09/05(月) 14:12:03ID:???0098nobodyさん
2005/09/05(月) 14:26:10ID:???そのSQL文というより、$_GET['〜'] 自体の#DE部分が削られているんじゃないの?
<a href="〜.php?hoge=ABC#DE">link</a>とかになっている場合は、
ブラウザが #DEを削って 〜.php?hoge=ABC とするのは、正しい動作だよ。
どうしても#を入れたい場合は、#の代わりに%23を使って hoge=ABC%23DE のようにする。
0099nobodyさん
2005/09/05(月) 14:26:28ID:???0101nobodyさん
2005/09/05(月) 14:51:17ID:???$upload = ftp_put($conn_id, $destination_file, $source_file, FTP_BINARY);
の$destination_fileと$destination_fileの書き方がよくわかりません。
何度やってもサイズ0のファイルが作成されるだけでうまくいかんのです。
0102nobodyさん
2005/09/05(月) 14:54:24ID:RuKSzRaHどのようなサイトを参考にすればよいでしょうか?
ちなみに、メールフォームのような形にするのではなく、申し込みの内容をデータベースで保存したいと思っています。
なにかサンプルプログラムなどが置いてあるサイトなどはありませんでしょうか?
アンケートフォームなどを参考にしたらいいんでしょうか?
0103nobodyさん
2005/09/05(月) 15:09:40ID:???0104nobodyさん
2005/09/05(月) 15:18:55ID:???プログラミングの分野に明るければ(それなら質問しないだろうけど)ネットのリファレンスとか見れば作れるだろうけど
分からないならネットで調べていちいち質問するよりも、一通り本を読んで分からなかったところを聞いた方がいい。
その習い事の申し込みで会員だけ予約出来る、みたいな事がしたいなら
アカウントの認証とかいう内容にも触れられてる本を選ぶといい。
010599
2005/09/05(月) 15:21:19ID:???0106nobodyさん
2005/09/05(月) 15:48:04ID:???なにも規則性のない数字を一文字ずつ区切るには
どのようにすればできますか?
0107nobodyさん
2005/09/05(月) 15:57:44ID:???$a = '12316579843654654987354';
for($i=0;$i<strlen($a);$i++){
$b = substr($i,1);
$c .= "".$b." ";
}
echo $c;
初心者です。こんな感じでできませんか?
テストしてません。
preg_replaceとかでもできるかも?
プロの方より良い方法あったら教えてあげてください。
0108nobodyさん
2005/09/05(月) 16:38:29ID:???>>106
数字の入った文字列であれば、数字を数字+区切り文字に置き換えればいい。
<?
$string = '0123456789'; //置換対象文字列
echo preg_replace('/(\d)(?=\d)/', '${1},', $string); // "後に数字が続く"数字の後に,(カンマ)を挿入
?>
こんなもんでどう?
0110nobodyさん
2005/09/05(月) 16:56:31ID:???まず「区切る」の意味がわからない。
とりあえずPHP5ならstr_splitで、PHP5でないなら、
$array = array_splice(preg_split('//', $numbers), 1, -1);
で1文字ずつ取り出して配列にできるから、
あとはスペースだのコンマだの何かを挿入したいならimplode($separator, $array);で。
$numbersに数字以外が含まれる可能性もある場合に、数字だけを取り出すなら
preg_match_all('/\\d/', $numbers, $matches);
$array = $matches[0];
あとはスペースだのコンマだの(ry
0112nobodyさん
2005/09/05(月) 17:33:11ID:???具体的に言っても貰わんと、どう書いていいのか迷うよな。
せめて、入力データと期待する出力例を言ってくれれば迷わずに済むのに。
0113nobodyさん
2005/09/05(月) 17:38:58ID:???パスワードを登録する際の文字列の判定をしたいのですが、
半角英数字のみを受け付けるにはどうすればよいのでしょうか?
ctype_alnumを試したところ半角の記号でも全角ひらがなでもfalseが返ってくるので
これでいいのかとも思うのですが確信がもてません。
0116113
2005/09/05(月) 18:04:23ID:???レスありがとうございます。
「以外の有無」の判定はどうすればよいのでしょうか?
1文字ずつ分割してそれぞれチェックし、a-Z・0-9と一致しなければエラー、と考えればよいのでしょうか?
正規表現で「任意の文字以外」という条件の設定が分かりませんでした。
0117nobodyさん
2005/09/05(月) 18:21:04ID:???>>106からはどう頑張っても配列に格納なんて事は汲み取れないような・・・
>>116
[abc]っていう文字クラスでabcのいずれか、ってのは分かるべ?
んで、[^abc]でabc以外の文字って意味になる。
^[許可する文字クラス]*$ // 許可する文字が最初から最後まで続く = 許可する文字以外が存在しない
[^許可する文字クラス] // 許可する文字以外が存在する
のどっちかが一番手っ取り早いかと。
長さ0の文字列を拒否したいなら[許可する文字クラス]* の * を + に。
0118nobodyさん
2005/09/05(月) 18:29:58ID:???ヌルーされてるけど一応…
× $b = substr($i,1);
◯ $b = substr($a,$i,1);
0119113
2005/09/05(月) 18:33:01ID:???どうもありがとうございます。
^で否定できるのは知りませんでした。
ereg("[^a-z|A-Z|0-9]",$_POST["password"])
とすれば半角英数字のみに対応できているようなのですがこれで正しいでしょうか?
|で区切った場合、^が[]の全体に作用するのか|で区切られた部分のみに作用するのかいずれなのでしょうか?
0120nobodyさん
2005/09/05(月) 18:33:13ID:???あんまり好きな方法じゃないけど、
mb_convert_kana で半角に変換して元の文字列と長さを比較
違ってたらマルチバイトがあるって判定法を昔やったな。
0121nobodyさん
2005/09/05(月) 18:35:11ID:???それは | 無しで [^0-9a-zA-Z] だけでいいよ。
-を含める時は [^0-9a-zA-Z-] って最後につければよかったはず。
0122nobodyさん
2005/09/05(月) 18:41:09ID:???$a = '12316579843654654987354';
for($i=0;$i<strlen($a);$i++){
echo $a[$i]."\n";
}
0123113
2005/09/05(月) 18:48:46ID:???うまくいきました。
とりあえずマルチバイト文字があるかどうかというよりは
指定した文字のみを許可する方向で行きたいので
121の方法でやってみます。
どうもありがとうございました。
0124nobodyさん
2005/09/05(月) 18:55:02ID:???『Fatal error: Call to undefined function: form() in /var/www/html/vivid/school/pre.php on line 14』
というエラーメッセージが表示されました。
下がそのエラーが発生するプログラムです。
FORM("pl_info","./insert.php");
echo "<B>入 力 情 報</B><BR>\n";
TABLE("500","1","#AAEEFF","CELLSPACING=0");
echo "<TR>\n";TD("150","#CCEEFF","LEFT","COLSPAN=2","タイトル");TD("350","#FFFFFF","LEFT","",$title);echo "</TR>\n";
echo "<TR>\n";TD("150","#CCEEFF","LEFT","COLSPAN=2","文章");TD("350","#FFFFFF","LEFT","",$text01);echo "</TR>\n";
echo "<TR>\n";TD("150","#CCEEFF","LEFT","COLSPAN=2","画像選択");TD("350","#FFFFFF","LEFT","",$upfile);echo "</TR>\n";
echo "<TR>\n";TD("150","#CCEEFF","LEFT","COLSPAN=2","経歴");TD("350","#FFFFFF","LEFT","",$text02);echo "</TR>\n";
echo "</TABLE>\n";
echo "<BR>\n";
TABLE("500");
echo "<TR>\n";
SUBMIT("INSERT_DB","登録する");
TD("250","#FFFFFF","CENTER","",$TEXTVALUE);
HIDDEN();
HIDDENDATA_ALL();
echo "</FORM>\n";
これは14行目の
『FORM("pl_info","./insert.php");』
が間違っているというのは分かるのですが、「pl_info」が間違っているのか「insert.php」のプログラムが
間違っているのかあるいはFORMの囲み方が間違っているのかがさっぱり分かりません。
どうか回答の程よろしくお願いします。
0125nobodyさん
2005/09/05(月) 18:55:26ID:???文字クラス内では、文字クラス内の全ての文字が対等にorの関係になる。
0126nobodyさん
2005/09/05(月) 19:00:28ID:???大きすぎて口に入らんぞこれは
0127107
2005/09/05(月) 19:05:56ID:???0130nobodyさん
2005/09/05(月) 19:48:22ID:???0131nobodyさん
NGNGそんのやり方はソースが読みにくくなるので
俺だったら、JavaのPreparedStatementに相当する、
PEAR::DBのpreapare系使ってプレースホルダ?を設定して
使っちゃうな。
0133nobodyさん
NGNGそのソースコード、
可読性としてちょっとねえ。
とりあえずHTMLタグは小文字で、
関数も小文字のほうがいいんでない?
それ以前に、オブジェクト指向化して
設計を見直したほうがよさそう。
あと、テンプレート使ったほうがいいと思う。
0134nobodyさん
2005/09/05(月) 21:15:45ID:???php5でお願いします。
0135nobodyさん
2005/09/05(月) 21:43:36ID:2xvv82Xw自分の管理外のホームページに、
フォームから情報を入力して、Submitボタンを押すと
その関連情報結果が表示される・・・といったPHPが設置されています。
そこで、自分のサイトにPHPを置いて、その情報を
自分のPHPから呼び出す事は出来るんでしょうか?
そのページ(自分の管理外のホームページ)へアクセスし、
情報を表示すれば良いだけなのですが、その手間を省きたいです。
セキュリティ的にも、やれてもやってはいけない事でしょうか?
0136nobodyさん
2005/09/05(月) 21:53:56ID:???自鯖の方に判別プログラムをおいて新しい鯖からそれを呼ぶ。
値が得られた場合と得られなかった場合とで呼び出すファイルを変えれば良い。
エラー回避を忘れずに。
0137nobodyさん
2005/09/05(月) 21:57:36ID:CGyYRIw9その関連情報ってのが何かしらんけど、そのサイトにおいてあるデータベースから何か取得してるとかなら、
データベースの権限無いだろうし無理だろうな
0138nobodyさん
2005/09/05(月) 22:07:17ID:???phpじゃなくて、もっと下の層で二重化するような方向の方が自然な流れな気がする。
ちゃんとした奴はそれなりの金が必要だけど。
あと、どういうシステムを動かしてるのか知らないけど、どういう方法で二重化するにしても、
物によってはデータの同期の問題やら何やらでややこしくなるかもしれないんで気をつけて。
それより、不安定な鯖なんて鯖にあらずな気がするというか、
>>134の要件だと、別鯖が常に動いて自鯖と同じ動作してくれるという前提みたいだから、
素直に別鯖に移行して、自鯖をテスト環境にするとかした方がいいと思うんだけど……。
0139nobodyさん
2005/09/05(月) 22:12:13ID:???可能。技術的には特に問題なし。
規約とか著作権の上でNGっぽいけど。
>>134
そんな馬鹿げたな設計はやめて鯖を安定させるんだ。
0140nobodyさん
2005/09/05(月) 22:17:53ID:???自分のサイトでsubmit->そのサイトに移動して結果を表示、というだけなら
がっちりセキュリティ対策してなければ出来る可能性が高い。
しかし、セキュリティ的にもマナー、モラル的にも不味い。
自分のサイトにフレームとかでなく通常の方法で結果を埋め込みたい、というのなら
DBなりデータファイルなりへのアクセス権限が必要。
管理者がアホなら出来るかもしれないけど、可能性は低い。
下手にやるとマナーどころか法的にも不味いことになりそうな予感。
どっちの方法にしろ、人様の作ったフリーでない物を使いたければ、まずは管理者・作成者に連絡するべき。
人によってはソースツリー+データのコピーを提供とか、読み込み専用のDBアカウントを発行してくれるかも知れない。
0141134
2005/09/05(月) 22:26:41ID:???>>136
そこまでは分かるのですが、具体的にどのようにして、鯖の読み込みの可否を判定できるのかが分かりません。
>>138
別鯖(レンタル鯖)ではphpのsimplexmlなどの関数が使えないため、自鯖をメインとしています。
0142nobodyさん
2005/09/05(月) 22:27:53ID:lQwp6BJc知ってる人はよろしく
0143nobodyさん
2005/09/05(月) 22:30:50ID:???0144135
2005/09/05(月) 22:40:40ID:???技術的に可能なことだけでも知れてよかったです。
つーか、よく分からないし、倫理的に問題あるとのは
間違いないと自分でも思うので諦めます。
0145nobodyさん
2005/09/05(月) 22:57:40ID:???マルチスレッドご苦労様です。
>>144
基本的なとこだと、formパクってきて、action属性でリモートにあるこっそり使いたいphpのurlを指定してやればいいだけ。
Google検索を自サイトに置くのと技術的には一緒。
0148nobodyさん
2005/09/05(月) 23:02:42ID:???ping飛ばして見るとかどうでしょうか。
simplexmlの使えるサーバに鞍替えするか
自分のサーバを安定させるかした方がいい気がしますが。
0149134
2005/09/05(月) 23:12:19ID:???鯖の安定化も頑張ってみたいと思います。
色々とありがとうございました。
0150nobodyさん
2005/09/05(月) 23:24:07ID:???0151nobodyさん
2005/09/05(月) 23:48:59ID:???inputのデータを別のページで反映させるにはどのようにすればよいのでしょうか。
CGIは難しい上にプログラムするのに時間がかかってしまうのでなるべくPHPで作成したいのです。
もし他に効率の良い方法がございましたらぜひ教えて下さい。
どうかよろしくお願いします。
0152nobodyさん
2005/09/06(火) 00:01:23ID:???っていうかCGIって
<!-- 送信側 hoge.html -->
<form action="./hage.php" method="post>
<input id="hoge" name="hoge" type="text" value="">
<input id="submit" name="submit" type="submit" value="送信">
</form>
<!-- 受信側 hage.php -->
echo $_POST['hoge']; // submitしたformの子要素のname
0153nobodyさん
2005/09/06(火) 00:12:48ID:???なんかの拍子に消えたりとかしないですか?
0154nobodyさん
2005/09/06(火) 00:29:50ID:???foreach ($arr as $key => $val)
{
echo "キー:$key 値:$val\n";
}
このようなforeach文で、値が「beta」の時、前後の値である「alpha」、「gamma」も
表示したいのですが、どのようにして実現すればいいのでしょうか?
0155151
2005/09/06(火) 01:12:43ID:???説明が足りなくて申し訳ございません。
実はメール送信フォームの確認画面ではなくインターネット回線を通して
どこからでも文章の入力や画像データの貼り付けを行うことができる
画像掲示板のようなデータベースを作成しております。
入力フォームのphpデータは完成したのですがphpデータのinputの情報を
別のページに反映させることが出来ません。
(例えばphpデータAのinputの情報を確認画面のphpデータBに反映させ、
それで登録しても良いのであればphpデータCで登録の処理を行うといった
流れのデータを作成したいのです。)
0156nobodyさん
2005/09/06(火) 01:19:01ID:???data_a.phpで、
<form action="./data_b.php" method="post>
data_b.phpで、
<form action="./data_c.php" method="post>
ってことか?
>>152 は、メール送信フォームじゃないけど?
0157nobodyさん
2005/09/06(火) 01:24:32ID:???クライアント側のCookieが消えるとか、セッションタイムアウトとか可能性はある。
>>154
前戻りだけなら、読んだ時に前のデータを変数に格納しておけばいいけど、
前後とも表示したいならforeachよりもfor使った方が簡単。
配列の端での動作によってソース変わってくるけど、
端でも前後あわせて3つずつ表示する場合は
for($i = 1; $i < (count($arr)-1); $i++);
で無条件に $i-1, $i, $+1 を表示。
端では2つずつ表示する場合は
for($i = 0; $i < count($arr); $i++);
で、基本は上と一緒だけど、$i <= 0 の時は $-1 の部分を、 $i >= count($arr) の時は $+1 の部分を表示しないようにする。
0158151
2005/09/06(火) 01:33:00ID:???例えば「data_a.php」に
<input type="text" name="title" size="30">
というプログラムがあるとしますと、titleに入力した文字を「data_b.php」
に表示させたいのですが「data_b.php」に「data_a.php」のtitleをどうやって
反映させるのかがわからないのです。
0160nobodyさん
2005/09/06(火) 01:35:11ID:???入力フォーム->確認画面->DB登録って流れだろ?
>>152でいいじゃないか。
あとは、確認画面のformの中にhiddenで値埋め込むなり
確認画面を表示するphpで$_POSTで受け取ったデータをセッションに格納して
DB登録のphpでセッションから引っ張ってくるなり好きにすればいい。
<!-- >>152の改良版 受信側 hage.php -->
お名前 : <?=$_POST['hoge']?>
<form action="./db_insert.php" method="post">
<input id="hoge" name="hoge" type="hidden" value="<?=$_POST['hoge']?>">
<input id="submit" name="submit" type="submit" value="送信">
</form>
<!-- っていうか、入力側のphpってただのHTMLな気がするんだけど…… -->
0161nobodyさん
2005/09/06(火) 01:37:27ID:???#まずは入門書を読みませう。
0162160
2005/09/06(火) 01:38:54ID:???画像あるんだったらセッションにバイナリごと入れちゃうのが一番楽かな。
OKだったらファイルに書き込むなり、DBのBLOB型カラムに入れるなり。
0163154
2005/09/06(火) 01:46:32ID:???ありがとうございます
やはりforを使うしかないのですね
$arr = array("one"=>"alpha", "two"=>"beta", "three"=>"gamma","four"=> "five", ""=>"epsilon");
例えば上記の場合、for文では限界があると思うのですが、この場合は
どのようにして実現するのでしょうか?
0164154
2005/09/06(火) 01:47:57ID:???$arr = array("one"=>"alpha", "two"=>"beta", "three"=>"gamma","four"=> "delta", "five"=>"epsilon");
に修正です
0165157
2005/09/06(火) 01:55:32ID:???foreach使っても出来るには出来るけど、
それってforeach使う意味は?みたいな感じになる。
んで、配列のキーを配列に格納するarray_keys()という関数がある。
http://php.s3.to/man/function.array-keys.html
0167nobodyさん
2005/09/06(火) 02:16:56ID:???UA取得して、IEで閲覧時にはIE用のスタイルシート。
といった感じに、スタイルシートをブラウザごとで使い分けるために
PHPを使用しようと考えているのですが、
そういうことはPHPでできそうでしょうか?
0168nobodyさん
2005/09/06(火) 02:21:35ID:???DBに登録するときにエラーチェックしてる?
漏れ、最近べつに必要ねぇんじゃねーか?
と思い始めた。
$result = $db->query($sql);
if (MDB::isError($result)) {
die ($result->getMessage());
}
0170167
2005/09/06(火) 02:35:48ID:???レスどうもありがとうございます。
回避する方法も開発されているのですかー。
それは知りませんでした。
少し回避する方法を探してみてだめそうならPHPでやってみたいと思います。
0171nobodyさん
2005/09/06(火) 02:37:32ID:???サーバサイドでやるなら、HTML内に各ブラウザ用のCSSを埋め込むか、
各ブラウザ用のCSSを予め用意しといて、外部CSSを読み込ませる部分の記述を動的に変えるとか。
あと、サーバサイドでやらんでも、クライアントサイドで各UAのバグ・実装不足などを突付いて
CSSの特定の部分を特定の部分だけ読めないように記述するCSSハックという手法もある。
>>168
sql投げたら勝手にquery送ってdieまでやってくれるメソッドを実装しちゃえば気にしなくて済む。
0172167
2005/09/06(火) 02:42:23ID:???レスどうもありがとうございます。
クライアントサイドでやるならJSかと思ってたのですが、
CSSハックというやり方もあるんですね。
聞いたことがない言葉なので早速調べてみたいと思います。
0174151
2005/09/06(火) 11:29:55ID:???皆様のおかげでinputのテキストのデータを反映させることが出来るようになりました。
しかし同じ方法で画像データを反映させると画像のある場所が文字データとなって反映されてしまうのですが・・・
ちゃんと画像データとして反映させる方法があったら教えて下さい。
0175nobodyさん
2005/09/06(火) 11:45:39ID:???0176101
2005/09/06(火) 12:10:17ID:???ふつうにfopenでftpすればできますた。便利だなぁ。
0177nobodyさん
2005/09/06(火) 12:14:15ID:???アップしておいて確認画面でtemp内の画像を表示、登録時には
tempディレクトリから正式なディレクトリへ移動っていう方法をつかってたんだけど、
>>162のレス読んで画像ファイル自体をセッションファイルへ入れちゃうって
方法があるのを知って目から鱗なんだけど、実際にセッションファイルへ
バイナリファイルを入れるのはバイナリを一度文字列に変えなくちゃ駄目だよね?
serialize()かなんかを使うのかな?
0178nobodyさん
2005/09/06(火) 12:35:36ID:3UvZ8ZqBって機能を追加するのって、現実的ですか?
プログラムは素人なんですが、どのくらいの値段なんでしょうか?
0179nobodyさん
2005/09/06(火) 12:45:37ID:???読み込んでテーブルタグ化するだけなら簡単。
これだけだと2〜3万かな。
1万でもやる奴がいそうだが。
ブログに追加という部分が厄介で、多分可能だろうが
使っているブログシステムが何か分からないことには確答しかねる。
0180178
2005/09/06(火) 13:02:06ID:???ブログはblognです。データベースが使えないので。
0181nobodyさん
2005/09/06(火) 13:16:00ID:???blogの記事投稿画面でアップロードした画像を挿入するのと同じような感じで
csvファイルをアップロードして、記事投稿のフォームにテーブル化したcsvを挿入、ということ?
0182nobodyさん
2005/09/06(火) 13:24:16ID:5K+uGMJDhttp://cefa.sakura.ne.jp/archives/2005/05/311555.php
設置した鯖は自宅鯖で、Windowsですがgo-pear.batを実行して
Pearのインストールは成功してると思います。
上記ページのとおり設置し、test.php内に
<?php include("http://www.mydomain.com/rssv.php?u=http://manabekawori.cocolog-nifty.com/blog/index.rdf"); ?>
を埋め込み、test.phpをブラウザで開くと
Warning: main(http://www.mydomain.com/rssv.php?u=http://manabekawori.cocolog-nifty.com/blog/index.rdf): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in d:\apache\users\aaa\home\test.php on line 15
Warning: main(): Failed opening 'http://www.mydomain.comrssv.php?u=http://manabekawori.cocolog-nifty.com/blog/index.rdf' for inclusion (include_path='.;D:\php\pear') in d:\apache\users\aaa\home\test.php on line 15
というエラーが出ます。
http://www.mydomain.com/rssv.php?u=http://manabekawori.cocolog-nifty.com/blog/index.rdf を直接ブラウザで叩いたり、
test.php内を
<iframe src="http://www.mydomain.com/rssv.php?u=http://manabekawori.cocolog-nifty.com/blog/index.rdf&n=3" width="360" height="500" scrolling="no" marginheight="0" marginwidth="0" vspace="0" hspace="0" frameborder="0"></iframe>
などとした場合にはちゃんとRSSを読み込んで表示するのです。
includeできない原因として何が考えられますでしょうか?
0183nobodyさん
2005/09/06(火) 13:27:28ID:???会員サイトで、「パスワードを忘れた方はこちら」というのがあります。
よくあるのは、
登録時のメールアドレスを入力して
・パスワードが直接メルアドに届く
・パスワード再設定用のURLが届く
サイト上で秘密の質問に答えるとその場でパスワード表示
などがあると思います。
セキュリティの面と、作成の手間を考え、どの方法が手っ取り早いかアドバイスお願いします。
メールアドレス宛にパスワード送るのならめっちゃ簡単だけど、それじゃセキュリティが甘いだろうし。
パスワード再設定用のURLが届く方法というのも具体的にどういう手法を使っているのか分からない。
助けてください。
0185nobodyさん
2005/09/06(火) 13:45:44ID:???どっちもまずい
・メールアドレス(場合によって+ID)を入力->パスワード送信
他人がなりすまして送信しまくりなスパムが簡単に出来る。
共用メールアドレスなんて可能性もなきにしもあらず。
・リマインダでパスワード表示
偶然にでも画面見ちゃった第三者が、ユーザがパスワード変更するためにアクセス出来るし、
同じパスワードを複数サイトで使いまわす人がいるってのもあるし、テキストとして表示しちゃうのはまずい。
メールアドレスな方法だと、ワンタイムな変更用urlを発行してメールを送るとか。
システム側では、DBなりに変更用urlに使うランダム文字列とユーザID、発行日時(もしくは有効期限)を格納。
リマインダな方法だと、パスワードをそのまま表示でなくて、パスワード変更用のフォームを表示するとか。
0186nobodyさん
2005/09/06(火) 13:45:50ID:???メールで直接パスワードが届くのはどう思いますか?
俺個人としては「別にいいんじゃね?」って感じなんだけど、
神経質な友人は「漏洩したらどうすんの!」って言ってます。
ユーザー名は記述しないし、最初に登録したアドレスに送るわけだし、
仮にメールがバレタとしても特に問題はないような気はするんだけど。
0187185
2005/09/06(火) 13:47:23ID:???×第三者が、ユーザがパスワード変更するためにアクセス出来るし、
○第三者が、ユーザがパスワード変更する前にアクセス出来るし、
0188nobodyさん
2005/09/06(火) 13:49:51ID:???>メールアドレスな方法だと、ワンタイムな変更用urlを発行してメールを送るとか。
>システム側では、DBなりに変更用urlに使うランダム文字列とユーザID、発行日時(もしくは有効期限)を格納。
>リマインダな方法だと、パスワードをそのまま表示でなくて、パスワード変更用のフォームを表示するとか。
あー、この返かなり参考になります。
ランダム文字列を発行してユーザー情報に格納、
その文字列をフォームに入力する(もしくはURLクリックする)ことによって
パスワード変更のフォームが登場。
こんな感じでよいでしょうか。
0189nobodyさん
2005/09/06(火) 13:51:56ID:???パスワードをそのままサーバ側で記憶しているのは、セキュリティ(というかプライバシー)上望ましくない。
であるから、1、3番目は、無い。
0190nobodyさん
2005/09/06(火) 13:54:28ID:???urlencodeしてください
<?php
// test.php
$rssv = 'http://www.mydomain.com/rssv.php';
$rdf = urlencode('http://manabekawori.cocolog-nifty.com/blog/index.rdf');
include "$rssv?u=$rdf&n=3;
?>
0192nobodyさん
2005/09/06(火) 13:57:15ID:???10秒くらい関数から帰ってこない
コマンドラインでsendmailを使っても遅いわけじゃないから
なにかPHP側でやってるのか
0193190
2005/09/06(火) 13:58:10ID:???0194nobodyさん
2005/09/06(火) 13:58:33ID:???まぁ、それにしたってメールが暗号化云々というのは根本的にアレだし、ログの問題もログ消して、パスワードとっとと変更しちゃえばいい話なんだけど。
サイトで扱う情報の重要性、機密性とかサイトの規模考えつつ、適当なとこで妥協すればいいと思う。
>>188
それでもいいし、メール送信する時に
http://www.hoge.gov/password_change.php?code=変更用ワンタイムコード
みたいなurlを本文に入れてあげれば、ユーザが入力する手間もなくなる。
んで、ワンタイムコードは変更用フォームにアクセスした時点か、フォームからサブミット掛かった段階で無効にする。
有効期限を発行から数時間くらいに設定して、フォームアクセス時にワンタイムコードを無効にすれば
セキュリティ的にも割とまともな物が出来るんじゃないかなぁ。
0195nobodyさん
2005/09/06(火) 14:04:45ID:???サイトで扱う個人情報はメアドくらいなものなのですが、
個人情報保護法がなんだかんだとうるさいご時世なので、
ある程度はしっかりとしないとと思った次第です。
194さんの方法を参考にあれこれと試行錯誤してみたいと思います!
0196182
2005/09/06(火) 15:57:21ID:5K+uGMJDサンクスです。
>>190にダブルクォートを入れて試ししましたが、
Warning: main(http://www.mydomain.com/rssv.php?u=http%3A%2F%2Fmanabekawori.cocolog-nifty.com%2Fblog%2Findex.rdf&n=3): failed to open stream: HTTP request failed! HTTP/1.0 400 Bad Request in d:\apache\users\aaa\home\test.php on line 15
Warning: main(): Failed opening 'http://www.mydomain.comrssv.php?u=http%3A%2F%2Fmanabekawori.cocolog-nifty.com%2Fblog%2Findex.rdf&n=3' for inclusion (include_path='.;D:\php\pear') in d:\apache\users\aaa\home\test.php on line 15
と、エラーメッセージのURLがエンコードされただけとなりました。
ネタ元でもあるブログサイトで動いてるphpを使って
<?php include("http://www.kotono8.com/rss/rssv.php?u=http://manabekawori.cocolog-nifty.com/blog/index.rdf"); ?>
とすると上手く表示されるので、こちらの鯖の設定などがまずいのか悩んでます。
0198nobodyさん
2005/09/06(火) 16:35:25ID:???0200nobodyさん
2005/09/06(火) 16:47:53ID:???0201nobodyさん
2005/09/06(火) 16:49:51ID:???解読というか復元?
つまり、「93c92ee0505ea7c5ee8f6d92dc21114f」このハッシュから
元の文字列が何か分かりますか?と言うことでつ。
分かるとすれば、そう言う関数があるのか、
もしくはどのような方法を使ってどのくらいの時間がかかるのか知りたいのです。
0202nobodyさん
2005/09/06(火) 16:53:30ID:???こんなのがあった
http://www.vector.co.jp/soft/unix/util/se365582.html
0203nobodyさん
2005/09/06(火) 16:58:01ID:???すげぇなぁ…。んー、セキュリティ的に良いと思ったんだけどな…。
0204nobodyさん
2005/09/06(火) 17:01:12ID:???まず無理だろう
0205nobodyさん
2005/09/06(火) 17:02:35ID:???たとえば、
名前:年収:勤務地
aaaa:600:埼玉
bbbb:700:東京
cccc:550:千葉
dddd:500:神奈川
eeee:800:北海道
というデータを、年収を「600万以上」で検索しても
550万のデータも「条件90%合致」ということで表示したいのです。
検索条件に100%合致しなくても、ある程度は表示(100%から順にソートして表示)したいんですが、
どういう仕組みでそれを実現すればいいか思い浮かびません。
いい方法ありましたらご教授願います。
0206nobodyさん
2005/09/06(火) 17:08:12ID:???年収だけなら、540万円以上のデータを抽出して
600万円未満に90%合致フラグを立てれば良いだけ。
それ以外のデータは一致度の基準を立ててくれないと何ともいえない。
0208nobodyさん
2005/09/06(火) 17:12:00ID:???でいいんじゃないの?
合致度を出したければSELECTで (年収 / 条件) AS 合致度 って感じで出して表示すればいいかと。
100%以上は等しく100%と表示したければ、合致度 > 1 の場合は等しく 100 としてphp側で扱えばいい。
つか完全にSQLの話だわな
0209nobodyさん
2005/09/06(火) 17:14:33ID:???レスどうもです。
実は年収だけじゃなくて、勤務地も東京を指定しても
埼玉、神奈川といった近辺も合致させたいんです。
基準としては、年収-50万で合致率からマイナス10%、
近県ならマイナス10%といった減算方式で、80%までなら
抽出したい、といった具合です。
勤務地に関しては、名称ではなく数値で格納してあるので
埼玉:10
東京:11
神奈川:12
千葉:13
北海道:50
検索値の前後±1の地域をマイナス10%で抽出する、といった感じです。
どうやって抽出すべきか、どうやってソートしたらいいか全く見当がつきません。
よろしくお願いします。
0210nobodyさん
2005/09/06(火) 17:18:15ID:???なるほど、合致率もSQLで取得するんですね。
年収オンリーでの考え方は把握しました。どうもです。
条件が複合したときがさらに厄介です。
ヒント(っつか答え)はいただいたので、自分でも考えてみます。
0211nobodyさん
2005/09/06(火) 17:20:37ID:???ここで聞く話じゃないよ。板違い。
MySQL 総合 Part5
ttp://pc8.2ch.net/test/read.cgi/db/1121561160/
こっち。
0213nobodyさん
2005/09/06(火) 17:54:54ID:???0214nobodyさん
2005/09/06(火) 18:29:58ID:???0215nobodyさん
2005/09/06(火) 19:40:48ID:???0216nobodyさん
2005/09/06(火) 20:34:33ID:???ブルートフォースって四文字限定なら8^4でたった4096回試行するだけだよ?
そもそもどんなアルゴリズムでも4文字のハッシュが破られないなんてありえねぇよ。
でもまぁ、君のそのよりよいセキュリティを求める姿勢はすばらしい。
ぜひ強固なシステムを作ってください。
0217nobodyさん
2005/09/06(火) 20:36:51ID:???でも4文字なら破れるのはいっしょ。
0218nobodyさん
2005/09/06(火) 20:40:43ID:vNTyf3ur開発環境で悩んでて今使ってる
windows XP home にapache,php等をインストールするのがいいのか
fedoraあたりのディストリをインストールしたlinuxPCのがいいのか
置き場所の問題もさることながらlinuxPC予定機がAMD550MHzなんでつ
windowsは2.8GHzなんでちと迷ってます
開発は主にwindowsでやって、まとまってきたのをレン鯖にうpするのがいいのか
開発からlinuxのがいいのか
ご意見お待ちしてます。
0219nobodyさん
2005/09/06(火) 20:51:31ID:???それほど困ったことは無い。
メール関係だけは本鯖使ってテストするけど。
両方環境用意できるならLinux鯖の方が良いんでない?
0220nobodyさん
2005/09/06(火) 21:22:55ID:oQLGoVGc0221nobodyさん
2005/09/06(火) 21:25:28ID:???Linux環境作れるんならlinux環境の方が良いんでは?
レンサバだと制限があるから、同じ設定にしたりも出来るだろうし。
よほどシビアなもの作るんで無ければ、取りあえずWinで作っても
十分大丈夫だろうけど
0222nobodyさん
2005/09/06(火) 21:27:59ID:???「探す」つーのと「作りたい」つーのは相容れない気がするが、
ネタを探しているのなら、web制作板かwebprog板の
作ってくれスレや探してますスレあたりをウロウロしてれば見つかるかと。
0223nobodyさん
2005/09/06(火) 21:45:13ID:???情報thx
ちなみにどの位の物を作ってるのかちょっと知りたいです
>>221
linux環境は作り難い、が正確なところでして
winで作ってレン鯖にうpで問題ないならそれに越した事がないのが現状でして
0224nobodyさん
2005/09/06(火) 21:51:55ID:???そうっすよねぇ。作りたいものを探すのは難しい・・・
>>223
レンサバ借りてるんなら、レンサバにアップして動作確認するのは
駄目なんですか?
俺はいつもそうやってます。
0225nobodyさん
2005/09/06(火) 21:58:46ID:???レンサバでも専用ならいいけど、共用なら何かあった時に他の人の迷惑になる可能性も
あるんでローカルでできる動作確認はなるべくローカルでやったほうがいいよ。
どんなアプリを書くかは知らないけど、レンサバと同じOSが用意できるのなら、
それに越したことはないと思うけど。
0226219
2005/09/06(火) 22:07:57ID:???どの位のものって規模とかのことかな?
小さな企業サイトのCMSやオンラインショップとかがメインかな。
大抵そういうところは月額1万以下の共用レンサバって感じだし、
出来ることも限られるのであんまり環境を変えることなくWinで開発できる。
この規模だと複数人で開発することもないし、自分の環境だけで
完結できるってのも大きいかもしれない。
0227nobodyさん
2005/09/06(火) 22:14:31ID:???教えてください m(_ _)m
0228nobodyさん
2005/09/06(火) 22:19:22ID:???鯖構築経験がなくて、とっとと開発したいなら素直にWinでいい気がする。
スペック的には鯖にする予定のマシンがAMD(K6-3?)550MHzって話だけど、それだけあれば十分かと。
(ファイルゴリゴリ動かしたりするなら、逆にWin機より早いくらいかもしれない)
Win機の方が、鯖に上げて…って部分がなくなるから、開発は楽。
(リモートからでも、ローカルにあるような感じ編集出来る開発環境はあるけども)
鯖の勉強もしたいなら、Win機で開発しながら暇見て鯖構築していけばいい。
0230nobodyさん
2005/09/06(火) 22:48:14ID:???参考程度に、私は WindowsXP + XAMPP + PHPEclipse って環境で勉強中
手元にLinux鯖もあるけど経験が浅くて躓く事が多いから、馴れてるWin環境を選んだ。
>>228で出てるけど、自分が使い慣れてる環境で始めるのが余計な事を考えなくて済んで良いと思う。
0231nobodyさん
2005/09/06(火) 23:39:36ID:???このとき、それらを全部取り出すと無駄だし負荷も高いので、
データのアタマの一部分だけ(たとえば3KBだけ)を全レコード抜き出したいのですが、
どういうSQLを発行すればいいのでしょうか・・・。
いろいろリファレンス見ましたが、抜き出すデータサイズを指定できるSQL命令は
無いようでした。PHPにもそういう関数はありませんよね・・・??
0232nobodyさん
2005/09/06(火) 23:59:08ID:???マルチバイトが含まれているときっちりサイズは合わないが
SELECT SUBSTRING(カラム名, 1, 3072)
ではダメ?
0233nobodyさん
2005/09/07(水) 00:07:14ID:???あるので配列($word)にしたいと思っています。
この場合、ereg($word,$strings)で動作するのでしょうか?
試しているのですが動いてくれません。foreach文か何かで片っ端から
やるしか無い?
0234nobodyさん
2005/09/07(水) 00:20:16ID:???ありがとうございます!
SUBSTRINGというのは初めて知りました。
サイズは厳密に合わなくてもいいのですが、
今回のtextフィールドには日本語の文章が格納されていまして、
その場合だとどこか(最後の一文字?)で文字化けが発生するのでしょうか、、、
0235nobodyさん
2005/09/07(水) 00:32:25ID:???>検索したい対象語が多くあるので配列($word)
この日本語だと「検索を実行する対象の文字列」が複数あるように読めるのに
>ereg($word,$strings)
これを見ると、「検索条件」が複数が複数あるように読めるんだけど、どっちだ?
つか、phpマニュアルくらい読もうや
http://php.s3.to/man/function.ereg.html
bool ereg ( string pattern, string string, array [regs] )
どっちにしろ、stringってなってるから配列は無理な事はわかるだろ。
んで、検索条件が複数という事であれば、正規表現にはorに該当する表現がある。
(abc|zyx)
0236nobodyさん
2005/09/07(水) 00:51:54ID:???「検索条件」が複数あります。分かり難くてすいません。
csvのデータファイルから条件に合致する項目を抜き出すプログラムを
書いているんですが、その条件が頻繁に変わる可能性があるので、
できれば外部ファイルに、
$word = array('abc','def',・・・)といった形で持っていたかったんです。
>マニュアル
以後気を付けます。
0237nobodyさん
2005/09/07(水) 01:03:36ID:???0238nobodyさん
2005/09/07(水) 01:13:03ID:???0239nobodyさん
2005/09/07(水) 02:11:16ID:???嘘つきJava厨が発生したので貼っておきますね。
0240nobodyさん
2005/09/07(水) 02:48:42ID:???0241nobodyさん
2005/09/07(水) 02:59:28ID:???言葉は悪いけどその通りな部分も多少なり。
でも、言及してるASP厨、PHP厨とやらにオブジェクト指向を理解してない人が多いのは確かだろうけど
理解してないことが致命的になるような言語でもないしなぁ、別にいいじゃんって気も。
というか、WebProg上がりじゃないマ板の人間がそんなすげぇかって言うと
似たようなのがゴロゴロしてるような気がするけど(自分はマ板住人でWebProgも覗きに来る)。
0242nobodyさん
2005/09/07(水) 03:10:16ID:???0243nobodyさん
2005/09/07(水) 03:17:33ID:???もうWebサービスなんてやれないじゃないか!って思ってるのは漏れだけ?
100%のセキュリティなんて存在しないし、限りなくそれに近づけようとすれば莫大なコストがかかる。
それで何か情報が漏れでもしたら運営者が叩かれる。
あー、やってらんねぇ。
せっかくの革新チャンスなのに、つまらない世の中になってきたもんだ。
0244nobodyさん
2005/09/07(水) 03:24:12ID:???というか、個人情報保護法で困るようなセキュリティポリシだとそれはそれで不味い気が。
0245nobodyさん
2005/09/07(水) 03:50:55ID:???>個人情報保護法で困るようなセキュリティポリシだとそれはそれで不味い
そういうことを言ってるのではなくて。
どんな立派なポリシーを持とうが、どんなに気をつけてようが、被害に遭うときは遭う。
そうなったときの、運営者(開発者)が負わなければならない責任が大きすぎるのが問題。
それだけのリスクに見合うだけのコストを料金に上乗せできればいいが、そうもいかない。
そもそも、世間的に高セキュリティが簡単に構築できるもんだと思われてるんのが難点。
悪意ある犯罪者のせいで個人情報漏洩でもしたら、「セキュリティ対策をしてないほうが悪い」と
いうのが当たり前のような風潮になってるのが恐ろしい。
0246nobodyさん
2005/09/07(水) 07:02:55ID:???なにがあったか知らんが茶でも飲め。
0247nobodyさん
2005/09/07(水) 07:44:52ID:???画像ファイルのある位置が文字ファイルで表示されるだけで画像を表示させることが出来ません。
例えばCドライブにある『Sunset.jpg』というファイルを送信しようとしても
確認画面では『C:\Sunset.jpg』と文章で表示されるだけで画像が表示されません。
画像をうまく送信できるようにするにはどうしたらよいのでしょうか。
<!-- 送信画面 db_form.php -->
<FORM enctype="./image" name="pl_info" action="./db_pre.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./db_pre.php">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" id="upfile" name="upfile">
<INPUT type="button" name="SUBMITBUTTON" value="確認画面へ" onClick="NEXT()"><
</FORM>
<!-- 確認画面 db_pre.php -->
<?=$_POST['upfile']?>
<form name="pl_info" action="./db_insert.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./db_insert.php">
<INPUT type="submit" name="INSERT_DB" value="登録する" onClick="next()">
</form>
0248nobodyさん
2005/09/07(水) 07:54:25ID:???どこからそんな無茶苦茶なソース(HTML、PHP共に)を
引っ張ってきたのか知らないけど、
phpのマニュアルを読んでごらん。
ttp://www.php.net/manual/ja/features.file-upload.php
0249nobodyさん
2005/09/07(水) 09:50:03ID:npPFuG98FORMからの変数受け渡しについて、
#test1.php
<form action="test2.php" method="POST">
<input type="text" name="Test" size="10">
<input type="submit" value="送信">
</form>
#test2.php
<? print "Test ==> " . $Test; ?> →何も表示されない
<? print "Test ==> " . $_POST['Test']; ?> →入力された値が表示される
test2.php内で、上の$Testのように書けばOKとどこかで見たのですが、
下の$_POST['Test']としないとダメっぽいのはなぜでしょう。
勝手に上がPHP3X、下がPHP4以降用、とか考えているのですが。(今の環境は5.0.4
さらに、この$_POSTを使うとして、checkboxから1つまたは複数の値が渡される場合は、
普通に配列使って受け渡しできます?
$_POST['chk[$i]'] とかでループ、表示するのかなぁと。
初歩的なことですが、どなたかお願いします。
0250nobodyさん
2005/09/07(水) 10:18:46ID:???変数の受け取り
<? print "Test ==> " . $Test; ?> → PHP4.1以前の書式
<? print "Test ==> " . $_POST['Test']; ?> → PHP4.2以降の書式
4.2以降でも、php.iniのregister_globalsをOnに設定すれば使用可能だけど、セキュリティ面を
考慮して下記のように変更されたので、特別な理由がなければ下の書式を使用すべし。
要素の配列
HTML側はname属性に [] を付ける
<input type='checkbox' name='chk[]' value='1'>
<input type='checkbox' name='chk[]' value='2'>
PHP側は下記のような形式で受け取る
for ($i = 0; $i < count($_POST['chk']); $i++)
echo $_POST['chk'][$i]
[$i]は直接の値(0や1)でも良い。
こんなのでいい?
0251nobodyさん
2005/09/07(水) 10:30:18ID:???確認画面で
<?php var_dump($_FILES); ?>
または
<?php print_r($_FILES); ?>
をやってみな。
ついでに$_POSTもやってみたほうがよいかも。
あと、送信画面のフォームタグを
<FORM enctype="multipart/form-data" (ry
に直す。
0252249
2005/09/07(水) 10:41:32ID:npPFuG98うわぁ、完璧っす。(TдT) アリガトウ
for ($i = 0; $i < count($_POST['chk']); $i++)
echo $_POST['chk'][$i]
これで配列MAXまでループ・表示すね。
がんばります〜
0254nobodyさん
2005/09/07(水) 11:06:48ID:???Apache : 1.3.33
の環境でエラーが出ます
if(hoge){
//変数代入処理がちょこっと
header("Location:http://hoge.hoge");
break; <-何故かココでエラー
}
原因は何が考えられますか?
ヒント下さい
0255254
2005/09/07(水) 11:12:08ID:pxwqcsImFatal error: Cannot break/continue 1 level in /hoge〜
ようは駄目なのか・・・
0256nobodyさん
2005/09/07(水) 11:20:16ID:???breakで何をしたいんだ?breakってforループとかswitchの中で使うんだが。。。
単にそこで処理を抜けたいのならexitだと思う。
0257nobodyさん
2005/09/07(水) 11:36:30ID:wV2Se0T2Apache: 1.3.31
OS: Win XP
の環境で、変数つきでincludeできません。
#test.php
<?php
print $_GET['name'];
?>
#test2.php
<a href="test10.php?name=aaa">アンカーから呼び出し</a>
<?php include("test10.php?name=aaa"); ?>
とすると、アンカーから呼び出すとaaaがprintされるのですが
includeすると
Warning: main(test10.php?name=aaa): failed to open stream: No such file or directory in c:\apache\users\xxx\home\test2.php on line 10
とエラーが出ます。
原因としてなにを疑えばいいのでしょうか?
0259nobodyさん
2005/09/07(水) 11:53:42ID:???includeはそのように使用するものではありません
無理矢理やるとすると、以下のようになります
#test.php
<?php
print $name;
?>
#test2.php
<?php
$name = $_GET['name'];
include("test.php");
?>
>原因としてなにを疑えばいいのでしょうか?
includeに対する貴殿の知識不足が原因です
0260nobodyさん
2005/09/07(水) 11:57:26ID:???コンテンツが50で今後増え続けるので、更新の為にもフレームチックな格好をとりたいのですが
ttp://www.hakusi.com/up/src/up3497.jpg
こんな感じで呼び出すにはどういう風にすれば良いでしょうか。
phpにすれば良いと言われたのですが、そんな高等な技術を持ち合わせていないのでお願いします。
0263260
2005/09/07(水) 12:21:31ID:???鯖がせっかくSSI、PHPに対応しているので出来ればやってみたいんですが、触った事が無いので・・・
0264nobodyさん
2005/09/07(水) 12:34:23ID:???JavaScript使うならDreamWeaver使ったほうが楽じゃね?
ブラウザによってまだ挙動がことなることもあり
コードが煩雑になりやすいから
PHPなどのサーバサイド言語つかったほうが楽と言えば楽だけど。
0265nobodyさん
2005/09/07(水) 12:34:59ID:???俺もPHPに触ったこと何て無いぞ。
>>257
include てのは外部ファイルを読み込み時に使うモンだ。
0267260
2005/09/07(水) 12:52:01ID:???<title>テスト</title>
</head>
<body>
<table width="800"><tr>
<td>
<?php include_once("○○.txt"); ?>
</td>
</tr></table>
<table><tr>
<td width="200">
<?php include_once("menu.txt"); ?> //左メニュー用の内容タグだけのテキスト
</td>
<td width="588">
内容
</td>
</tr>
</table>
</body>
</html>
↑これで表示はされましたけど大丈夫ですか?
0268nobodyさん
2005/09/07(水) 13:15:04ID:???大丈夫っちゃ大丈夫だけど、.txt(おそらくテキストファイル?)を読み込むならreadfileで。
includeをする対象は基本的に「他のPHPファイル」。
まあ頑張ってくれい。
0269nobodyさん
2005/09/07(水) 16:16:20ID:???ページ間を移動させるための、以下の様な形のリンクを
作りたいと考えております。
<< 1 | TOP | 2 >>
移動するというか、includeするような形が望ましいとは
思っております。例えば
index.php
001.php
002.php
上記のような構成になっているとして、これから先
【***.txt】ファイルは追加することになるのですが
それを見越した上で、自動で数字の部分を読み込ませる
機能も備え付けておきたいのです。
どのような考え方で作成すれば宜しいでしょうか?
もしくは参考となるHP等はございますか?
0270nobodyさん
2005/09/07(水) 16:47:26ID:???0271nobodyさん
2005/09/07(水) 17:05:57ID:???0272nobodyさん
2005/09/07(水) 17:08:41ID:???index.php?page=n てな感じにして、
・呼び出すファイルはindex.phpのみ(page.phpとかでもおk)
・page=nでページ番号指定
・ページ番号 n、n-1、n+1 の存在チェック。file_exists関数を使う。
(00nの形式にするためにsprintf辺りを使う)
・include関数(readfileの方がいいかも?)を使って、該当テキストを出力。
・前後のページが存在すればそれぞれリンクを作成。
こんな感じでいいんじゃないかな。
デメリットとしては、
・表示の度にfile_existsとかするので若干負荷がかかる
・ページのどれかが歯抜けになっていると、えらいことになる
・一覧表を作るときに一工夫が必要
0275nobodyさん
2005/09/07(水) 17:14:09ID:???まずいくつか不明瞭な点。
・どこにそのページングリンクをつけたいのか?(index.phpかな)
・***.txtはページングに関係あるのか?(ただ同じ階層に入るだけかな)
・ページングさせるのは、[0-9]{3}.phpになるのか?(そうなんだろな)
上記の括弧内の条件として考えると、
paging.phpなどを作って、そこでページング部分だけをechoし、それをinclude(必要ならrequire)。
で、paging.phpはこんな形になるかと。
・その階層のファイルリストを引っ張り出す
・その中から^[0-9]{3}\.php$でmatchしたものだけをページングリンクの対象に
・現在の表示ページから前後のページ数などを計算してリンクとして出力
どーでしょ。
0276nobodyさん
2005/09/07(水) 17:16:06ID:???それならPATH INFOを使ってページ番号を取得
本文のデータはデータベースに格納
という仕様の方がSEO的にもサーバ負荷的に良くないか?
ページの有無はDBで判別できるし
SELECT文を工夫すれば番号に抜けがあっても前後が表示できる。
0277nobodyさん
2005/09/07(水) 17:22:47ID:???>PATH INFO使えば?
具体的にどんな感じででしょうか?あ、すみません、調べます。
>>272さん
有難うございます。とても参考になりました!
というか、そのような感じで作ってみまふ。
ちなみに・・・参考までになのですが、デメリットの
一覧表を作るときに一工夫が必要とあるのですが
例えばどういったものですか?
用途としてはFAQのようなものです。
0278nobodyさん
2005/09/07(水) 17:32:44ID:???PATH INFOは
?page=n
の部分をURLに埋め込んでしまうやりかた。
Amazonとかが採用しているね。
検索エンジンは?より後の部分を無視・軽視することが多いから
?page=nのやりかただと作ったページ全部が1ページと判断される。
それぞれの記事が別のものとして認識されるpath infoの方が
検索結果に表示されやすいといった点では優れている。
一応参考に。
http://exam.su-jine.com/path_info/path/info.html
0279nobodyさん
2005/09/07(水) 17:33:22ID:???0280nobodyさん
2005/09/07(水) 17:35:20ID:???>>272の言う、一覧表の一工夫もいらないし。
SEO考えたらPATHINFOと織り交ぜてやれば完璧かね。
DB使えるんなら>>276だろうけど。
0281nobodyさん
2005/09/07(水) 17:39:09ID:???書き込んでから、気付きました。申し訳ありません。
まったく其の通りの条件です。不明点が多く、すみません。
>>276さん
DBですか!うーん、もしかするとそれも1つの手かもしれません。
ただ、私自身の能力が追いつかないです・・・。
>>270さん
さん付け抜けててすみません。故意ではないです(゜o゜;
ん〜、272さんと275さんの考え方は同じですかね?
もしかして、私にはできない?
0282nobodyさん
2005/09/07(水) 17:43:19ID:???実行環境が許せばそれもありかと。
>>277
一覧表の表示の仕方は、次のような感じになると思うけど、
[ページ番号] [タイトル] ([必要に応じて、作成日とか他の項目])
タイトルや他の項目をどうやって取得するかの辺りに一工夫が必要。
***.txtにその情報を入れてみたり、別ファイルにしてみたり等々。
(ページが歯抜けした時の心配事じゃないです。)
0283260
2005/09/07(水) 17:56:14ID:???<?php readfile("menu.txt"); ?>
</td>
これで良いでしょうか?
サーバーUPしないと見れないんですねぇ
色々と難しい・・orz
0284nobodyさん
2005/09/07(水) 18:31:52ID:???>>272 は、page.php が ***.txt を読み込む形。txt を追加Upしていく。
>>275 は、リンクを表示するpaging.phpを、001.php 002.php 003.php 004.php...に
includeする形。php を追加Upする。
>>269をどう解釈したかの違いかと。
>>283
それでええよええよ。
0285nobodyさん
2005/09/07(水) 19:28:36ID:npPFuG98その後、$_SERVER['PHP_AUTH_USER']、$_SERVER['PHP_AUTH_PASSWD']を使用してアクセス制御しています。
現状、ログアウト=ブラウザを閉じる、でキャッシュクリアしています。
今回まともなログアウトボタンをつけたいと思っていますが可能でしょうか。
軽くsession_destroy();でいいのかと思いきや、できなかったので・・・。
PHPでBASIC認証(header()使って云々)という方法以外のやり方で何かありましたらご教授くださいませ。
要は今のままのDB認証で、それにログアウトボタンをつけ、
押すと再プロンプト経由でトップ画面に戻る、みたいな感じです。
お願いします。
0286nobodyさん
2005/09/07(水) 20:19:30ID:???入力するプログラムはこんな感じでしょうか?
<!-- 送信画面 db_form.php -->
<FORM enctype="multipart/form-data" name="pl_info" action="./db_pre.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./db_pre.php">
<input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" id="upfile" name="upfile">
<INPUT type="button" name="SUBMITBUTTON" value="確認画面へ" onClick="NEXT()"><
</FORM>
<!-- 確認画面 db_pre.php -->
<?php print_r($_FILES);?>
<?php print_r($_POST);?>
<http>
(ry
<?=$_POST['upfile']?>
<form enctype="multipart/form-data" name="pl_info" action="./db_insert.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./db_insert.php">
<INPUT type="submit" name="INSERT_DB" value="登録する" onClick="next()">
</form>
(ry
</html>
0287nobodyさん
2005/09/07(水) 20:22:52ID:???0288nobodyさん
2005/09/07(水) 20:50:33ID:???アドレスバーに
『http://(サーバーのアドレス)/pre2.php?_template_confirm=.%2Fpre2.php&MAX_FILE_SIZE=30000&upfile=C%3A%5Ctop.JPG&page=pre』
と表示され、ページには貼り付けた画像はおろか文字さえも表示されませんでした。
0289nobodyさん
2005/09/07(水) 21:05:20ID:???<form action="./db_insert.php" method="post"> (関係ない部分を略)
としているのに、
pre2.phpを呼び出していたり(db_insert.phpの筈)、
GET扱いになっていたり(method="post"の筈)、変ですね。
onClick="next()" で呼び出しているJavaScriptがおかしいんじゃないかな。
0290nobodyさん
2005/09/07(水) 21:06:28ID:???上で、db_insert.phpとしているのは、全部 db_pre.php の打ち間違い。
0291286=288
2005/09/07(水) 22:46:16ID:???すみません・・・
実は>>288を貼った後にテスト用プログラム<form2.php>と<pre2.php>を
作成していたので誤ってその時のプログラムを貼ってしまいました・・・
0292286=288
2005/09/07(水) 22:48:07ID:???<!-- 送信画面 form2.php -->
<FORM enctype="multipart/form-data" name="pl_info" action="./pre2.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./pre2.php">
<table><tr><td>画像選択</td>
<td><input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" id="upfile" name="upfile"></td>
</tr></table><BR>
<TABLE width="500">
<TR><TD width="250" bgcolor="#FFFFFF" align="CENTER">
<INPUT type="button" name="SUBMITBUTTON" value="確認画面へ" onClick="NEXT()">
<INPUT type="hidden" name="page" value="">
</TD></TR></FORM>
<!-- 確認画面 pre2.php -->
<?php print_r($_FILES);?>
<?php print_r($_POST);?>
<http>
(ry
<table><tr>
<td width="150" bgcolor="#FFFFFF" align="center"><?=$_POST['upfile']?></td>
</tr></table>
<form name="pl_info" enctype="multipart/form-data" action="./insert2.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./insert2.php">
<input id="upfile" name="upfile" type="hidden" value="<?=$_POST['upfile']?>">
<table width="500">
<tr><td width="250" bgcolor="#FFFFFF" align="CENTER">
<INPUT type="submit" name="INSERT_DB" value="登録する" onClick="next()">
</td></form>
(ry
</HTML>
0293nobodyさん
2005/09/07(水) 23:52:40ID:???データベースにURL(http://xxx.com/zzz.html:varchar)を格納しています。
そして、その列を配列に入れ<a href ="$URL['url']">〜</a>という風にして
リンクを張ろうとしましたがエラーが出ました。
どこが悪かったかと、改善策を教えていただけないでしょうか?
本当にくだらない質問ですがよろしくお願いします。
0295293
2005/09/08(木) 00:07:24ID:???早い返事ありがとうございます。
すいません、必要なことを何も書いていませんでした・・・
<?php if( ! $conn = mysql_connect( '***', '***', '***') ){
die( 'error' );}
mysql_select_db( 'party', $conn );
header('Content-Type: text/html; charset=shift_jis'); ?>
<HTML><HEAD><TITLE>test</TITLE></HEAD><BODY>
<?php
$rs = mysql_query( "select shopname,concat(locname,adr) fadr,typename,phone,pg from shop s,type t,loc l where s.typecd=t.typecd and s.loccd=l.loccd order by locname desc,typename;", $conn );
echo "<table border=3>";
echo "<tr><th>店名</th><th>住所</th><th>業種</th><th>電話番号</th></tr>";
while( $rec = mysql_fetch_array( $rs, MYSQL_ASSOC ) ){
echo "<tr>";
echo "<td>" . $rec['shopname'] . "</td>";
echo "<td>" . $rec['fadr'] . "</td>";
echo "<td>" . $rec['typename'] . "</td>";
echo "<td>" . $rec['phone'] . "</td>";
echo "<td>" . <a href="$rec['pg']">$rec['shopname']</a> . "</td>"; ←※
echo "</tr>";
}
echo "</table>";
mysql_free_result( $rs );
mysql_close($conn);
?> </BODY> </HTML>
pg(varchar)にURLを入れています。
エラーの内容ですが、Parse error: parse error, unexpected '<' in C:\phpdev5\www\test.php on line 35 と出ていました。
35行目とありますが、ここでは矢印を出している行になります。見難いソースですがよろしくおねがいします
0296nobodyさん
2005/09/08(木) 00:07:52ID:???BASIC認証にログアウトはないでしょ、サーバ側からセッションを破棄する
術はないと思うけど
一度認証が済むと、正しいユーザ名とパスワードがクライアントから送信されつづける
PHPから出力されないファイルを保護するなどの目的で、どうしてもBASIC認証が
はずせないならB認証+PHPのセッション機構でユーザーステータスを管理する2重の
認証にするしかないのでは
0297nobodyさん
2005/09/08(木) 00:10:17ID:???手本をコピペしてサーバーにアップロードしたのに全然クッキーききません…(−−;
CGIで動くタイプのPHPなのがいけないのかなぁ…
0298nobodyさん
2005/09/08(木) 00:11:31ID:???文字列は " か ' で括る
http://jp2.php.net/manual/ja/language.types.string.php
0299nobodyさん
2005/09/08(木) 00:17:49ID:???ほとんどない。9部9厘スクリプト側の問題
サーバから送信されてるヘッダーにSet-Cookieフィールドが
あるかどうか確認すればサーバの制限かどうか当りはつけられる
0300297
2005/09/08(木) 00:29:14ID:???やっぱそうですよねー
perlで書かれたフリーのCGIでは普通にクッキー発行できてるので、
サーバーのPHPの仕様かなにかかと思ったのですが…(ちなみにサーバーはさくらインターネット)
ちょっとスクリプト見直してみます。PHPて難しい…
0301295
2005/09/08(木) 00:35:43ID:???echo "<td>" . <a href="".$rec['pg']">$rec['shopname']</a> . "</td>";
コピペした奴なら↑こうすればいいんじゃないかな。
DB関連でParse errorは出ないと思う。たぶん。
0304293
2005/09/08(木) 00:59:21ID:???ありがとうございます
参照URLを見てみましたがちょっと問題解決には至らないようでした・・・すいません
>>301
ありがとうございます
ご提案いただいたものをやってみましたが無理でした・・・
0305nobodyさん
2005/09/08(木) 01:06:09ID:???他にも訂正すべき場所が・・・
>>298の言ってるように、<a href= とか、</a> とかの部分をきちんと文字列として書かなきゃいけないよ。
色々書き方があるけども、例えば次のような感じ。
echo "<td><a href=\"".$rec['pg']."\">".$rec['shopname']."</a></td>";
"〜"の部分が文字列になる。\" は文字列の中の " を表す。(文字列の区切りの"と区別するため)
いっそのこと " を使わずに ' を使えば更に簡単に書ける。
0306297
2005/09/08(木) 01:23:20ID:???setcookieは<HTML>より前に書かなきゃだめなんですねー。ググったらそんな事書いてありました。
テキストのサンプルは<BODY>の中にsetcookieが書いてありました。
テキストのくせにこんな間違いをしていいのか…
0307293
2005/09/08(木) 01:24:45ID:???おお!すごい!できました!
本当にありがとうございます!
html文をクォーテーションで囲むってのをやってなかったのが悪かったんですね・・・
えっとしつこくてすいませんが
<a href=\"".$rec['pg']."\">" の.$rec['pg'].
両端につけた.は変数を識別させるためのものですよね?
>>298
>>301
>>303
>>305
こんな時間までみなさん色々やってくださってありがとうございました。
感謝の気持ちでいっぱいです!!
0308nobodyさん
2005/09/08(木) 01:50:49ID:???まあそんなとこだろうと思ってた
HTTPの仕様上ヘッダーフィールドはコンテントボディより先に送信する必要がある
アウトプットバッファが効いてれば、コード上で、本文の出力よりも後にsetcookie()や
header()を記述することは可能
error_reportingが適切に設定されてれば、Warningが出てすぐ判るんだけどね
0309nobodyさん
2005/09/08(木) 01:52:05ID:???ドットは文字列を連結する演算子
http://www.php.net/manual/ja/language.operators.string.php
0310nobodyさん
2005/09/08(木) 01:59:02ID:???ずっとjp.php.netを参照してた。
0311nobodyさん
2005/09/08(木) 02:06:56ID:???0312nobodyさん
2005/09/08(木) 02:20:02ID:???0313(1/2)
2005/09/08(木) 02:46:31ID:???送信画面で入力したデータが確認画面で表示され、それでOKならば正式に登録完了となるのですが送信画面で画像データを設定しても
確認画面では認識されません。
以下がそのデータなのですがどこかおかしいところはないのでしょうか。
<!-- 送信画面 school.html -->
<HTML>
(中略)
<FORM enctype="multipart/form-data" name="pl_info" action="./form.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./form.php">
<table>
<tr><td>タイトル</td>
<td><input type="text" id="title" name="title" size="30"></td></tr>
<tr><td>文章</td>
<td><TEXTAREA name="text01" id="text01" cols="80" rows="10"></TEXTAREA></td></tr>
<tr><td>画像選択</td>
<td><input type="hidden" name="MAX_FILE_SIZE" value="30000" />
<input type="file" id="upfile" name="upfile"></td></tr>
<tr><td>経歴</td>
<td><TEXTAREA name="text02" id="text02" cols="80" rows="10"></TEXTAREA></td></tr>
</table>
<BR>
<TABLE width="500">
<TR>
<TD width="250" bgcolor="#FFFFFF" align="CENTER">
<INPUT type="button" name="SUBMITBUTTON" value="確認画面へ" onClick="NEXT()">
<INPUT type="hidden" name="page" value=""></TD>
</FORM>
(中略)
</HTML>
0314(2/2)
2005/09/08(木) 02:48:15ID:???<?php
$hizuke = DATE("YmdHis");
if(!is_uploaded_file($_FILES['upfile']['tmp_name'])) {
echo "ファイルを保存できませんでした!<br>\n";
echo "元の画面に戻るにはブラウザの『戻る』ボタンをクリックして下さい。";
exit;
} else {
copy($_FILES['upfile']['tmp_name'], "./image/$hizuke.jpeg");}
?>
<HTML>
(中略)
<table>
<tr><td width="360" bgcolor="#FFFFFF" align="center"><?=$_POST['title']?></td></tr>
<tr><td width="210" bgcolor="#FFFFFF" align="LEFT"><?=$_POST['text01']?></td>
<td width="150" bgcolor="#FFFFFF" align="center"><?=$_POST['upfile']?></td></tr>
<tr><td width="360" bgcolor="#FFFFFF" align="LEFT"><?=$_POST['text02']?></td></tr>
</table>
<form name="pl_info" enctype="multipart/form-data" action="./insert.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./insert.php">
<input id="title" name="title" type="hidden" value="<?=$_POST['title']?>">
<input id="text01" name="text01" type="hidden" value="<?=$_POST['text01']?>">
<input id="upfile" name="upfile" type="hidden" value="<?=$_POST['upfile']?>">
<input id="text02" name="text02" type="hidden" value="<?=$_POST['text02']?>">
<table width="500">
<tr><td width="250" bgcolor="#FFFFFF" align="CENTER">
<INPUT type="submit" name="INSERT_DB" value="登録する" onClick="next()"></td>
</form>
(中略)
</HTML>
0315nobodyさん
2005/09/08(木) 03:35:25ID:???<INPUT type="button">はフォームの内容を提出(submit)しない筈。
にも関わらず、>>288の内容と、>>313で次の画面には移動していることから、
onClick="NEXT()" で呼び出されるNEXT()の中でGET形式でsubmitされていると考えられる。
なので、
<input type="submit">を使うか(next()ではsubmitしないようにする)、
NEXT()の中で正しくsubmitすればいいんジャマイカ?
0316nobodyさん
2005/09/08(木) 04:01:04ID:???0317nobodyさん
2005/09/08(木) 08:46:53ID:xSNS150Aお礼遅くなってすいません
わかりました ありがとうございます
リファレンスマニュアル100回読み直してきますorz
0318313=314
2005/09/08(木) 08:57:28ID:???>>313の<INPUT type="button">を<input type="submit">に変更すると以下のようなエラーメッセージが表示されました。
Warning: copy(./image/20050908081609.jpeg): failed to open stream: Permission denied in /var/www/html/vivid/school/form.php on line 8
これは『copy($_FILES['upfile']['tmp_name'], "./image/$hizuke.jpeg");』の書き込みが失敗したということなのでしょうか?
0320313=314
2005/09/08(木) 11:08:25ID:???imageフォルダのパーミッションを『rwxrwxr-x』に変更すればフォルダ内にファイルがコピーされました。
失礼いたしました。
後はコピーしたファイルを読み込むだけです。
<IMG src="image/(コピーしたファイル名)">
と入力するだけなのですがどうすれば上手くいくのでしょうか?
<IMG src="image/<? "$hizuke";?>.jpeg">
で認識するとは思えませんが・・・
0321nobodyさん
2005/09/08(木) 11:12:15ID:???思える思えないは関係ない。
とりあえずやってみろ。
エラーが出たらエラーメッセージを検索しろ。
それでも分からなければ聞きに来い。
0322313=314
2005/09/08(木) 11:12:52ID:???<IMG src="image/<? $hizuke = DATE("YmdHis"); "$hizuke";?>.jpeg">
を試してみたらやっぱり駄目でした。
0323313=314
2005/09/08(木) 11:27:01ID:???$hizuke = DATE("YmdHis");
copy($_FILES['upfile']['tmp_name'], "./image/$hizuke.jpeg");
?>
で設定したファイル名を読み出すには同じように
$hizuke = DATE("YmdHis");
を設定するしかないと考えたのですが・・・
なかなか上手くいかないです
0324nobodyさん
2005/09/08(木) 11:37:38ID:???$hizuke = DATE("YmdHis"); // 変数hizukeに date関数の結果を代入
"$hizuke"; // さて、ここは何をしているのでしょう?
?>
0325nobodyさん
2005/09/08(木) 11:45:11ID:UR6jYi9e0328nobodyさん
2005/09/08(木) 13:12:00ID:???配列の要素から1個だけ削除とかって可能でしょうか?
例えば
$test[0] = "1002";
$test[1] = "9";
$test[2] = "35";
$test[3] = "87";
$test[4] = "127";
みたいな感じで$testという配列がある状態で
内容が"87"の要素だけを削除したいのです。
(実際の処理はある値を配列から探し出し、該当する物があれば消す
といった処理をしたいです)
結果的に$testの中身が
$test[0] -> "1002";
$test[1] -> "9";
$test[2] -> "35";
$test[3] -> "127";
にしたいんですけど..よろしくお願いします。
0329nobodyさん
2005/09/08(木) 13:23:21ID:???0330nobodyさん
2005/09/08(木) 13:41:29ID:???本当に間詰めないとダメか?
0331nobodyさん
2005/09/08(木) 13:50:23ID:???いくつもあるんだが、別の方法を考えてみたか?
0332328
2005/09/08(木) 15:12:09ID:???よろしければ、教えてください。
>>330
その$testをimplodeしてSQLの条件(where aaa in ($implodeした変数)として使いたいので
できれば配列をつめたいんですよねえ。
>>331
今考えてみたのが
$in_dataは目的の文字列
foreach ($test as $one) {
if($one!=$in_data) $new[]=$one;
}
$test =$new;
ってな感じです。
ただもっとスマートにできるものなのかなと今考えています。
0333nobodyさん
2005/09/08(木) 15:17:09ID:sy+tsgYDリファラーが自分のところのドメイン以外だとエラーページに飛ぶ設定です。
/public_html/lib/ ←このフォルダ。
メールからのクリックでこのフォルダにあるページに飛ばそうと思い、
/public_html/ フォルダにリダイレクト用のページを作りました。
header("Location:〜")と <meta>のリフレッシュを試しましたが
どちらもエラーページに飛んでしまいました。
リファラーが送られていないようです。
どうすればリファラー付でページに飛ぶことが出来るのでしょうか。
0334nobodyさん
2005/09/08(木) 15:22:08ID:???不可能です。
> メールからのクリックでこのフォルダにあるページに飛ばそうと思い、
これだと当然、Refererは取れません。
しかもプログラム側じゃなくて、.htaccessでReferer制限してるんですよね…。
プログラム側で制限しているのであれば、
メールでクリックされるURLに、ランダムなGET引数を仕込むなりして
メールから来たことをチェックできます。
0335nobodyさん
2005/09/08(木) 15:33:25ID:???メールクリックでRefererが取れないのは分かります。
なので、アクセス制御をかけていない/public_html/にあるファイル(例えば redirect.php)に
一度とばしてから、この redirect.php が /lib/ 内のファイルへ転送させる、と言う仕組みにしたいんです。
0336nobodyさん
2005/09/08(木) 15:42:37ID:???Location:〜も<meta>のリフレッシュも、リファラを吐かないのが仕様。
そこのURI自身にリファラ相当のものを仕込むしかないよ。
0338nobodyさん
2005/09/08(木) 16:15:28ID:???リファラ相当といったけど、セッションID仕込めばいいんだよ。
Locationでもmetaリフレッシュでもクッキーは効くから、それ使ってもいいけど。
0339333
2005/09/08(木) 16:16:46ID:???ありがとうございます。
まさしく今、セッションIDで構築し始めたところでした♪
最初からこうすれば良かったんですね。
0340313=314
2005/09/08(木) 16:30:21ID:???<IMG src="image/<?php $time = DATE("YmdHis"); echo"$time";?>.jpeg">
で画像を貼ることが出来ました!!
しかし入力した文章が文字化けを起こしたり画像が乱れたりするのですがこれはフォントの問題だと思いますので
こちらは自分で何とかしてみます。
0341nobodyさん
2005/09/08(木) 17:27:11ID:???で入力した文章を読み出そうとすると文字化けを起こします。
htmlファイルとphpファイルを違う書体で編集していることに原因があるのですが。
ただ表示する書体を変更しただけでは解決しません。
・htmlファイル・・・SHIFT−JIS
・phpファイル ・・・EUC
これを解決するにはhtmlで入力した文章をphp見ることが出来るようにするには
どうすればよいのでしょうか?
0342nobodyさん
2005/09/08(木) 17:32:03ID:sy+tsgYD$test00 = mb_convert_encoding($_POST["text00"],"SJIS","EUC-JP");
0343nobodyさん
2005/09/08(木) 18:23:19ID:YSOhy9W+(例として2chのスレを入力したら>>1と>>2のレスだけを表示するようにする みたいな)
0344nobodyさん
2005/09/08(木) 19:02:46ID:???0345nobodyさん
2005/09/08(木) 19:07:35ID:YSOhy9W+0347nobodyさん
2005/09/08(木) 20:11:34ID:YSOhy9W+それを詳しく、、、
0348nobodyさん
2005/09/08(木) 20:12:59ID:???<?
$title = mb_convert_encoding($_POST["title"],"SJIS","EUC-JP");
print($title);
?>
と入力しても文字化けを起こすどころか表示すらされないんですけど・・・
0349nobodyさん
2005/09/08(木) 20:13:44ID:???0350nobodyさん
2005/09/08(木) 20:16:29ID:???の「利用条件」を見ると、メール送信は利用者のSMTPサーバを使うらしいが、
そんなことって可能なの??
たとえばPHPでやるなら、自鯖のスクリプトから他鯖のSMTP鯖にメールを
渡す(送信処理を任せる)のはどうすればいいんだろう・・・??
socket関係?
0351nobodyさん
2005/09/08(木) 20:20:01ID:CBnc7l0PGETで送ってるとか。
0354nobodyさん
2005/09/08(木) 20:42:39ID:???一般的な処理の手順としては、
1. 入力されたURLのページからデータを取得 - ファイルシステム関数、fsockopen
2. 取得したデータの希望する場所を抜き出す - 正規表現やら文字列操作の関数
3. それを出力
つー形になるかと。
実際のソースコードがどうなるかは、相手のサイト次第。
>>348
string mb_convert_encoding ( string str, string to-encoding [, mixed from-encoding])
なので、SJISの文字列をEUC-JPに変換するなら、指定の仕方が逆だね。
0356nobodyさん
2005/09/08(木) 21:11:23ID:???こういうのとかどうよ↓
http://bytesmailer.sourceforge.jp/
0357nobodyさん
2005/09/08(木) 21:18:30ID:???いや、自分で言ってることだよ
>socket関係?
socket関数を利用してSMTPの仕様にしたがってMTAとやり取りをする。
基本はこれ。
0359nobodyさん
2005/09/08(木) 21:29:09ID:???少なくとも漏れは使ったことないね・・・
>>357
つか、相手(よその鯖)のMTAがsocket接続を受け入れてくれるもんなの?
だったら、不正中継送信とか簡単じゃね??
0360nobodyさん
2005/09/08(木) 21:35:13ID:???Webサーバとのやり取りに HTTP(HyperText Transfer Protocol)を使うように、
メール関係には、SMTP(Simple Mail Transfer Protocol)という決まり事を使うんよ。
実際にそれらを使う時には、相手サーバに接続して コマンド送信・応答受信、
次のコマンド... のようなやり取りをするので、「しゃべる」と表現する事も多い。
メール送信・中継(SMTP)は仕組み上誰に届けるかしか気にしないので、
>>350にあるような他鯖のSMTPを使うこともできる。
(spamとか成りすましが問題になってきたので、いろいろ制限されるようになったけど。)
0362nobodyさん
2005/09/08(木) 22:08:54ID:???どうせ他鯖に渡すための元のメール生成は自鯖のスクリプトでやるんだし、
結局他鯖のSMTPに渡すことで軽減される負荷とかってあるのだろうか?
0365↑
2005/09/08(木) 22:25:55ID:???0366nobodyさん
2005/09/08(木) 22:27:58ID:???だよねぇ、超迷惑だよなぁ。。。
こんなことを商売でやってて、
他社から文句言われないのだろうか?>>350の業者。
0367nobodyさん
2005/09/08(木) 22:49:32ID:???implodeするんだったら配列を詰める必要はないような気がする。
以下のように1行で配列の要素を消して配列を詰めることもできるけど、
foreach よりもスマートだとは思えない。
$test = array_values(array_filter($test, create_function('$a', 'return $a != ' . $in_data . ';')));
0368nobodyさん
2005/09/08(木) 23:02:22ID:???0369nobodyさん
2005/09/08(木) 23:06:45ID:???0370nobodyさん
2005/09/08(木) 23:25:11ID:???同じjpegの画像ファイルを読み込んでも画像がおかしくなります。
画像がおかしくならずに完全な状態で画像ファイルを読み込むにはどうすればよいでしょうか。
もしかして同じjpeg画像でも拡張子が『JPG』や『jpeg』で違うものと処理されたり
画像ファイルの大きさによっておかしくならなかったりするとか・・・
なお、画像ファイルの保存先のフォルダ(image)の属性はちゃんと777にしています。
〜〜 school.html 〜〜
<FORM enctype="multipart/form-data" name="pl_info" action="./form.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./form.php">
<input type="file" id="upfile" name="upfile">
<INPUT type="submit" name="SUBMITBUTTON" value="確認画面へ" onClick="NEXT()">
<INPUT type="hidden" name="page" value=""></TD>
</FORM>
〜〜 form.php 〜〜
<?php
$hizuke = DATE("YmdHis");
if(!is_uploaded_file($_FILES['upfile']['tmp_name'])) {
echo "ファイルを保存できませんでした!<br>\n";
echo "元の画面に戻るにはブラウザの『戻る』ボタンをクリックして下さい。";
exit;
} else {
copy($_FILES['upfile']['tmp_name'], "./image/$hizuke.jpeg");}
?>
(中略)
<IMG src="image/<?php $time = DATE("YmdHis"); echo"$time";?>.jpeg" alt="upfile">
0372370
2005/09/09(金) 00:31:31ID:???設定していません・・・
設定していたときは30000に設定していました
もしかしてこれが原因で画像がおかしくなっているとか・・・
0378nobodyさん
2005/09/09(金) 02:10:38ID:???「UPLOAD_MAX」で検索しても書かれている説明がよくわからないんです・・・
0379nobodyさん
2005/09/09(金) 02:44:39ID:???著作権とかはどうしてんの?ちょっと疑問に思ったもので。
0382nobodyさん
2005/09/09(金) 04:57:01ID:???$arr = array();
$arr[] = ($num == 0) ? "Not" : $num;
if ($num != 1) $arr[] = "s";
echo "<span>". join(" Page", $arr) ."</span>";
0383nobodyさん
2005/09/09(金) 05:02:10ID:???printf厨でもいいですか?
printf("<span>%sPage%s</span>",
($num == 0 ? "No" : $num) . " ",
$num > 1 ? "s" : "");
0384nobodyさん
2005/09/09(金) 05:27:06ID:???ふむふむ、printf関数を使うことなど思いつきもしませんでした
今回はそのまま文字列として返したいので、sprintf関数を使うことにします
本当にありがとうございました
0385nobodyさん
2005/09/09(金) 05:54:55ID:???一番楽なのは余計なことせずに "$num Page(s)" で終わらすって手もある(英語圏の香具師らもけっこうやる)。
とにかく色々ありうるので、自分の好きな方法でやればいい。
蛇足かもしれんが、Not Pagesだと「ページじゃない」って意味になってしまうよ。
0387nobodyさん
2005/09/09(金) 07:48:05ID:???copy($_FILES['upfile']['tmp_name'], "./image/$hizuke.jpeg");}
?>
(中略)
<IMG src="image/<?php $time = DATE("YmdHis"); echo"$time";?>.jpeg" alt="upfile">
(中略)の処理中に秒の数値が変わる可能性あり
そのまま$hizuke使え
0388370
2005/09/09(金) 08:45:35ID:???駄目です・・・
以下のソースを設定しても問題は解決しませんでした・・・
それどころか画像ファイルの大きさによっては認識しないものもあります。
(htmlファイルで画像サイズの設定は行なっていません)
copy($_FILES['upfile']['tmp_name'], "./image/$hizuke.jpeg");} ?>
(中略)
<IMG src="image/<?php echo"$hizuke";?>.jpeg" alt="upfile">
0389nobodyさん
2005/09/09(金) 09:11:43ID:???画像がおかしくなるって言われても、どういう状態をさしておかしいと言ってるのか分からんよ。
ttp://www.php.net/manual/ja/features.file-upload.errors.php
その次のページの「陥りやすい落とし穴」のページも必読。
0390370
2005/09/09(金) 09:29:22ID:???画像で表すとこんな感じです。
(貼付前):『http://land.issaigassai.com/cgi/upload/source3/No_2080.jpg』
(貼付後):『http://land.issaigassai.com/cgi/upload/source3/No_2081.jpg』
なぜか画像によってはおかしくならない場合もあるのです。
(おかしくならなかった例):
『http://land.issaigassai.com/cgi/upload/source3/No_2082.jpg』
『http://land.issaigassai.com/cgi/upload/source3/No_2083.jpg』
0392nobodyさん
2005/09/09(金) 09:52:08ID:???copy($_FILES['upfile']['tmp_name'], "./image/$hizuke.jpeg");
echo 'タイプ=' . $_FILES['upfile']['type'] . '<br>';
echo 'サイズ=' . $_FILES['upfile']['size'] . '<br>';
echo 'エラーコード=' . $_FILES['upfile']['error'] . '<br>';
}
を入れて正常な時と異常な時を比較してみれば?
エラーコードの値は >>389 が書いてくれているURLを参考に。
0393370
2005/09/09(金) 11:33:07ID:???『http://land.issaigassai.com/cgi/upload/source3/No_2080.jpg』の場合
タイプ=image/pjpeg
サイズ=7357
エラーコード=0
『http://land.issaigassai.com/cgi/upload/source3/No_2082.jpg』の場合
タイプ=image/pjpeg
サイズ=10538
エラーコード=0
0394370
2005/09/09(金) 11:35:48ID:???下は
『http://land.issaigassai.com/cgi/upload/source3/No_2080.jpg』
を貼り付けた結果です
http://land.issaigassai.com/cgi/upload/source3/No_2085.jpg
0396370
2005/09/09(金) 12:47:07ID:???『http://land.issaigassai.com/cgi/upload/source3/No_2080.jpg』
を貼り付けて試してみましたが駄目でした
タイプ=image/pjpeg
サイズ=7357
エラーコード=0
貼り付けた結果
http://land.issaigassai.com/cgi/upload/source3/No_2087.jpg
0397392
2005/09/09(金) 12:59:50ID:???少しでも自分でアレコレやってみようとは思わないのかな。
もう、昼休みが終わるので思いつく分だけ書いてみるけれど。。。
・先のカキコでファイルサイズを表示させたけど、元のファイルサイズと一致している?
・アップロードされたイメージファイルを直接(ブラウザ経由ではなく)開いても同じ?
・copy($_FILES['upfile']['tmp_name'], "./image/$hizuke.jpeg"); の前に
while (true); と入れるとブラウザがずっと接続中になって、一時ディレクトリに
php???.tmp とかいうファイルができるはず。
このファイルをコピーして拡張子を .jpeg に変えて直接開いても壊れてる?
・PHP4.2の頃だったか、アップロードファイルが壊れるってバグがあったように記憶しているけど
PHPのバージョンは?
0398nobodyさん
2005/09/09(金) 13:16:46ID:DEOx5IdR0399nobodyさん
2005/09/09(金) 13:24:41ID:LpJamP+rPOST body corruption in some configurations
http://bugzilla.redhat.com/bugzilla/show_bug.cgi?id=82967
>Use either the AddType *or* the original <Files *.php> section in php, just
>don't use both, as the PHP bug explains. (They are pretty much equivalent)
0400nobodyさん
2005/09/09(金) 13:49:52ID:???下記のもので4行目のifでの$newの値についてですが複数指定することは可能でしょうか?
現行「no」以外のリストを抽出するようになっていますが、
これを「no」もしくは「空白」の条件に当てはまらない場合は実行。
にしたいのです。おねがいします><
function attnew($attlist,$new,$att,$attsort=''){
$data=array();
foreach($attlist as $k => $v){
if($v[$new]!='no'){
$data[$v[$att].'_'.$k]=$v;
}
}
if($attsort==''){
ksort($data);
}
return $data;
}
0401nobodyさん
2005/09/09(金) 14:01:22ID:???難しい言い回しだな。それと「空白」の定義も曖昧なんだが、スペース1文字という意味だとすると
! ($v[$new]=='no' || $v[$new]==' ')
だから
($v[$new]!='no' && $v[$new]!=' ')
ということでいいのかな?
0402nobodyさん
2005/09/09(金) 14:06:04ID:???無事できました。
言い回しわかりづらいのに分かってもらえて嬉しいです
&&でつなげるのですね
0403nobodyさん
2005/09/09(金) 16:41:24ID:???>・先のカキコでファイルサイズを表示させたけど、元のファイルサイズと一致している?
全く一致していません
●変更前:4368 [byte] ●変更後7357 [byte]
$hizukeでは誤差が発生するのではないかと考えて$hizukeをtestに変更しても同じでした。
copy($_FILES['upfile']['tmp_name'], "./image/$hizuke.jpeg");}
↓
copy($_FILES['upfile']['tmp_name'], "./image/test.jpeg");}
<IMG src="image/<?php $time = DATE("YmdHis"); echo"$time";?>.jpeg" alt="upfile">
↓
<IMG src="image/test.jpeg" alt="upfile">
また、PHPファイルを保存しているサーバーのバージョンを調べたところ以下のような結果が出ました。
ちなみにOSは『Red Hat Linux release 8.0 (Psyche)』です
[root@ns root]# rpm -qa |grep http
httpd-2.0.40-11.9
httpd-manual-2.0.40-11.9
libghttp-1.0.9-5
httpd-devel-2.0.40-11.9
redhat-config-httpd-1.0.1-13
[root@ns root]# rpm -qa |grep php
(何も表示されず)
もしかしたらこれまでの原因はphpが入っていないからなのでしょうか?
もしそうでしたらApacheを入れなおしてPHP5を入れなければならないと考えているのですが
現状の『Red Hat Linux release 8.0 (Psyche)』でPHP5は使用できるのでしょうか?
0404nobodyさん
2005/09/09(金) 16:48:19ID:???PHPはrpmじゃなくてソースからインストールしたんじゃないの
[root@ns root]# php -v
でバージョンが表示される
>>399の件なんだがhttpd.confの設定はどうなってる
0405nobodyさん
2005/09/09(金) 16:58:04ID:???久々に行ったらNotFoundだった
ふざけんなロリポッ糞
0406nobodyさん
2005/09/09(金) 16:59:21ID:???The default httpd configuration on RH8.0 use
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288
</Files>
so is this RedHat fault? I replace above lines with
AddType application/x-httpd-php .php
and it works!!!
0407nobodyさん
2005/09/09(金) 18:33:10ID:yKtNTjvx書き換えるスクリプトを作っています。
file_get_contents関数かfile関数かどっちを使うべきでしょうか?
またfile_get_contentsで1000行を$contentに格納して
str_replaceで数行を書き換えたのを変数$content2として
fputs($fp, $content2);
としてファイルの内容を書き換えてるのですが、
この場合、数行を書き換えるためだけにわざわざ1000行、また書き込むことに
違和感を感じますし、書き換え中にファイルが破損しないか
非常に不安です。
何か良い方法はないでしょうか?
一部分だけを書き換えるような関数はないでしょうか?
どうかよろしくお願いします。
0408nobodyさん
2005/09/09(金) 18:48:49ID:???一行ずつ、変数 x に代入していく
一時ファイルに一行ずつ書き込んでいく
全部終われば一時ファイルを元のファイルにリネーム
一時ファイルが残っていれば、異常に終了した証
0409nobodyさん
2005/09/09(金) 20:12:02ID:6XNF9M7tWEB製作板より
4 名前: Name_Not_Found [sage] 投稿日: 2005/08/07(日) 00:49:48 ID:???
過去スレ名言より
〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜
PHPはcgi(Common Gateway Interface )とは違うのだが・・・・
知ったかぶり、ものすごくかっこ悪い。
PHPはサーバー上での動作の仕方が違う。
実はCGI動作のPHPもあることはあるけどものすごくマイナー。
通常、こっちを使うことはない。
まあ、エセWEBデザイナーの集まりだからしょうがないか。
〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜 〜
これをみて不安になってきた。自分が作ろうとしてるものはPHPなのかCGIなのか・・・
なにか手っ取り早い確認方法はないものだろうかと小一時間
自分はエセWEBデザイナーなのか・・・
0410nobodyさん
2005/09/09(金) 20:52:25ID:???408とは別のアプローチ
ランダムアクセスはDBに任せるか、同じような仕組みを実装すればいい
と言ってもfseek()で目的の場所へ移動する程度だけど
更新頻度によっては1000行くらい気にしなくていい場合もあると思う
>>409
echo php_sapi_name();
CGIについてはググれ
0411410
2005/09/09(金) 20:57:19ID:???一時ファイルをいきなりwで開いてflock台無しにしないようにね
0412nobodyさん
2005/09/09(金) 21:03:10ID:???0413nobodyさん
2005/09/09(金) 21:08:41ID:???ってのは良く言われてる事ですが、具体的にはどんな対策をすればよいのでしょうか?
プログラムのバグの可能性ももちろんありますが、悪意のあるイタズラが一番怖いので、まずは$_GETと$_POSTの値をチェック。
これに「;」みたいにヤバそうな文字が含まれてたらエラーフラグを立てて問答無用にたたき落とす、って感じでよいのでしょうか?
また入力画面から渡された値はhtmlspecialcharsとstripslashesで処理したあとでDBに格納することになると思いますが、htmlspecialcharsとstripslashesをどのタイミングで使うのかとか、頭が混乱してきました。
登録時:入力画面→確認画面→(修正画面)→DBに格納
修正時:修正画面→確認画面→(修正画面)→DBに格納
という感じの流れではどのタイミングで使うのがよいのでしょうか?
※register_globals = off、magic_quotes_gpcもオフという前提です。
0415nobodyさん
2005/09/09(金) 21:19:37ID:???CGIというのは特定の言語を指すわけじゃなくて、仕組みを表す言葉。
ブラウザでアクセスした時に次のような感じになるのだけど、
ブラウザ -> Webサーバ -> 外部プログラム実行 -> Webサーバ -> ブラウザ
このWebサーバと外部プログラムとのやり取りの部分がCGIと思ってよいかと。(gateway - 出入り口)
この「外部」という単語がポイントで、これが「内部、Webサーバに組み込み」だと、
モジュールと言ったりする。(module - 機能単位、パーツ、SAPIとも言う)
CGI形式の場合、外部とのやり取りが決まり事(これがCGI)を守っていれば、
外部のプログラムが何の言語で書かれていようが構わない。
PHPの場合は、
・CGI形式(CGIを使える各種Webサーバで共通)
・モジュール形式(Webサーバ内部に組み込めるように各Webサーバごとに存在)
・コマンドラインから使うためのもの
の3種類がある。
0416nobodyさん
2005/09/09(金) 21:21:25ID:???基本各DB用に用意された関数でエスケープ。こいつらはバイナリセーフ。
エラー処理せずそのまま突っ込む。
>た入力画面から渡された値はhtmlspecialcharsとstripslashesで処理したあとでDBに格納
教科書的にはHTMLのエスケープは出力直前てのが正しい。これはXSS対策で、DBの保護とは
関係ない。あとmagic_quotesならstripslashesは意味なし。
0417nobodyさん
2005/09/09(金) 21:22:28ID:???○magic_quotesオフなら
0418nobodyさん
2005/09/09(金) 21:30:49ID:???>PHPはrpmじゃなくてソースからインストールしたんじゃないの
>[root@ns root]# php -v
>でバージョンが表示される
[root@ns conf]# php -v
PHP Warning: Unknown(): Unable to load dynamic library './pgsql.so' - ./pgsql.s
o: cannot open shared object file: No such file or directory in Unknown on line
0
PHP 4.3.2 (cli) (built: Jan 14 2004 14:03:54)
Copyright (c) 1997-2003 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2003 Zend Technologies
> >>399の件なんだがhttpd.confの設定はどうなってる
え・・・え〜と何行目を見ればよいのか分からないのですが・・・
0419nobodyさん
2005/09/09(金) 21:36:19ID:6XNF9M7t出力結果は
apache2handler
でした。
一応ソース
<?echo php_sapi_name();?>
-----------------------------
それと関連してるのかわからないが
phpinfoの出力結果
Server API Apache 2.0 Handler
一応ソース
<? phpinfo() ?>
という結果はでたのだが意味がいまいち分からない
これはPHPとして動いているといえるのか
自分はCGIとしてではなくPHPとして動かしたい
0420nobodyさん
2005/09/09(金) 21:40:31ID:???stripslashesはaddslashes()の間違いじゃなくて?
つかaddslashes()、stripslashes()って使わんね
>>419
うごいてるうごいてる
0422nobodyさん
2005/09/09(金) 21:57:04ID:???ttp://jp2.php.net/manual/ja/function.php-sapi-name.php
0423nobodyさん
2005/09/09(金) 22:12:30ID:6XNF9M7tソース
<?php
$sapi_type = php_sapi_name();
if (substr($sapi_type, 0, 3) == 'cgi') {
echo "You are using CGI PHP\n";
} else {
echo "You are not using CGI PHP\n";
}
出力結果
You are not using CGI PHP
Excite訳
あなたはCGI PHPを使用していません。
PHPで動いているでFA?
0426nobodyさん
2005/09/10(土) 00:01:40ID:???その辺、あやふやなまま、現在に至ってしまった。
入力チェックしないまま平気で稼働してるプログラムがいくつもあります。
一応、defaultに落ちたら全部print_rして漏れにメールが飛ぶようにしてるんだけど、変なイタズラって、手間もかかるからなのか、運がいいのか知らんけど、全然告知メールは飛んでこないな。
入力値のチェックについては、部分的に詳しく書いてあるサイトはあっても、プログラムの流れの中でどういう対策をしたらよいか、って解りやすい例を挙げてるとこって見た事ない。
もし、しっかりまとまってるサイトがあったら漏れもしっかり勉強したいです。
0427nobodyさん
2005/09/10(土) 00:54:43ID:gX4RDOln0429nobodyさん
2005/09/10(土) 01:05:18ID:???脳が沸いてるようだから相当しっかり勉強したほうがいいよ
>>427
パスワードというのは、脳内情報は他人に盗めないという前提に
基づいてる。調べるには推論と実験しかないね。
実験したらここで報告してくれ
0430nobodyさん
2005/09/10(土) 01:20:21ID:???jpgの後ろに、文字がついてるけどどうしてですか。
ttp://www.peppynet.com/shop/shop.php?g=151&id=045056
0432nobodyさん
2005/09/10(土) 02:35:43ID:???仕組みは知らないけど、目的は呼び出された時点のUNIXTIMEを付加して
ブラウザの画像のキャッシュが無効になるようにしてる。
DBの商品リストから動的生成してると、キャッシュが邪魔になることがあるからね。
まあ常にクライアント側のキャッシュが働かないというのも、良し悪しだが。
(サイト設計上、注意すべきポイント)
0433nobodyさん
2005/09/10(土) 03:37:03ID:???PHPでは解像度を調べるような変数がないと聞きました。
それでもPHPでやりたい場合、
どのようにしたらできるかわかる方いらっしゃいませんか?
0434nobodyさん
2005/09/10(土) 03:58:31ID:???主要なブラウザはそういう情報を送ってこないので、
JavaScriptを使って値を取得して、それをサーバに送るようにするしか無いだろうね。
「JavaScript 解像度」でググれば取得の仕方が分かるから、
その情報をリンクに付け足して(動的にリンクを変化させる事になるので、この部分もJavaScriptを使う事になる)、サーバにリクエストさせる。
一回取得すればいいので、その情報をセッションに保持するなり、解像度ごとにディレクトリを切るなり、お好きなように。
0436nobodyさん
2005/09/10(土) 05:53:04ID:???処理に時間がかかる場合なら尚更便利だと思いますが、そのようなことをPHPで
実現できませんでしょうか?
0437nobodyさん
2005/09/10(土) 07:40:24ID:???0438nobodyさん
2005/09/10(土) 07:52:42ID:???Apache2の設定で出来ないこともないが...
やり方は調べて味噌。phpの出力をssiの処理に再度通しなおす。
0439nobodyさん
2005/09/10(土) 08:05:10ID:???この辺使えば出来ると思うけど
http://www.php.net/manual/ja/ref.outcontrol.php
あとWebサーバにもバッファリング機能がなかったっけ?
それのコントロールも出来ないと希望する細かい操作は無理かも。
0441nobodyさん
2005/09/10(土) 09:02:48ID:???0442nobodyさん
2005/09/10(土) 09:04:23ID:???0443nobodyさん
2005/09/10(土) 09:05:12ID:???http://jp2.php.net/manual/ja/language.operators.errorcontrol.php
0444nobodyさん
2005/09/10(土) 10:43:05ID:???0445nobodyさん
2005/09/10(土) 10:54:23ID:???0446444
2005/09/10(土) 10:57:20ID:???http://php.s3.to/man/reserved.variables.html
を見ても載っていないのですが、その情報はどこに載っている物なのでしょうか?
0447nobodyさん
2005/09/10(土) 11:01:55ID:???そのページの上の方にあるリンクで「CGI 1.1 specification」ってやつのページで、下の方に書いてある。
0448444
2005/09/10(土) 15:07:53ID:???$_SERVER['HTTP_VIA'] でやってみたのですが、
PHP Notice: Undefined index: HTTP_VIA
というエラーが出てしまいます。
0450nobodyさん
2005/09/10(土) 23:59:18ID:???リクエストヘッダの中に実際にVia:の行がない限り$_SERVERにはセットされない。
if (isset($_SERVER['HTTP_VIA'])
{
// この中だけで使ってください
}
0451名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:06:28ID:???0452名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:14:41ID:???ヒントはアドバイザリロック
0453名無しさん@そうだ選挙に行こう
2005/09/11(日) 00:15:20ID:???0454451
2005/09/11(日) 00:18:31ID:???よくわからんが、ロックを抜けれることがある、ってことか?
だが一応書いておく織れ。
0455名無しさん@そうだ選挙に行こう
2005/09/11(日) 01:04:53ID:???0456名無しさん@そうだ選挙に行こう
2005/09/11(日) 15:50:55ID:???0457名無しさん@そうだ選挙に行こう
2005/09/11(日) 15:54:29ID:???0458名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:01:23ID:???こういうチャート
http://chart.finance.livedoor.com/icon/pic/ID00540520050911106002c3S.png
0459名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:04:31ID:???0460名無しさん@そうだ選挙に行こう
2005/09/11(日) 16:08:00ID:???0461名無しさん@そうだ選挙に行こう
2005/09/11(日) 18:56:05ID:XVWHhBde関数化(?)すればいいのだろうか?と思ったのはいいが、
出来ずに疲れ果ててきたので、
助けてくださひ…
0462名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:02:31ID:???pearにそういうパッケージがあるよ。
ttp://pear.php.net/manual/ja/package.html.php
デザイン(デザイナー)との連携が面倒になるのでオイラは使ってないけども。
0463名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:21:55ID:XVWHhBdeいろんな箇所で使ってるから、
別ファイルで、セレクトボックスを作って、
使うときに呼び出そうかな…と。
多分>>461の教えてくれた中に流用できるのはあるような気はするんだけど…。
ちなみに今は、ページのヘッダー部分は、header.php
フッダー部分はfooter.phpてして、
都度、インクルードしてる。
けど、関数化にしたら、インクルードファイルは1個でよくてって事になると思ってるんだけど、
どうなんだろう??
0464名無しさん@そうだ選挙に行こう
2005/09/11(日) 19:28:41ID:???出してもらった方が話が早いんでない?
0465名無しさん@そうだ選挙に行こう
2005/09/11(日) 20:31:31ID:???selectをechoする関数作ればいいだけなんじゃ?
それじゃ不味い理由があるなら、それを出してもらわなきゃ何も言えない。
>けど、関数化にしたら、インクルードファイルは1個でよくてって事になると思ってるんだけど、
思ったら実行してみれば?
0466名無しさん@そうだ選挙に行こう
2005/09/11(日) 22:16:05ID:???HTMLで、テーブルの右に画像を載せたいのですが、
画像がテーブルの下の方に行ってしまいます。
<TABLE>ずらずら</TABLE>
<TD>画像</TD>
みたいな感じにしたら、
テーブル
次のテーブル 画像
みたいになってしまいました。
0467466
2005/09/11(日) 22:17:17ID:???ごめんなさい
0468名無しさん@そうだ選挙に行こう
2005/09/11(日) 22:18:32ID:???呼び出し
フォーム();
0469nobodyさん
2005/09/12(月) 00:07:59ID:???問1.
PHPプログラマ募集(若干名)の求人広告はどこに出すのが正解ですか?
イーマーキュリー以外で教えてください。
0470nobodyさん
2005/09/12(月) 00:18:01ID:???0471nobodyさん
2005/09/12(月) 00:21:33ID:???0472nobodyさん
2005/09/12(月) 00:26:17ID:???こっち行け
http://pc8.2ch.net/test/read.cgi/php/1111115228/
0473nobodyさん
2005/09/12(月) 01:10:58ID:+jMhSqhoheader.php、footer.php共に、
<?php
print ("<html>");
:
?>
<?php
print ("</html>");
?>
と書いて、実際は、include ("../common/header.php");とかinclude ("../common/footer.php");
ってしてたのです。
でも、この方法でやってくと、共通で使いたいものはその都度ファイル作んなきゃいけなくて、
そうするとどんどんファイルが増えて大変な事に(-_-)
なので、関数化しよう!と思ったのです。
で、あれからちょっと進歩しました。
作るセレクトボックス、どのページでも同じモノなのですが、
動的な為、Select_box($hoge);とし、
function Select_box($hoge){
print (" <select>");
:
};
として、実際呼び出しているPHPで、Select_box($hoge);としたら、出ました!!
今までも、同じようにやってたのですが、何故出来なかったのかが謎ですが…。
あと、今回の場合は引数が必要だったのですが、必要ない場合でも、functionでもいいのですか?
戻り値も要らなくても、function?
他の言語では、functionとsubを使い分けてたような気がしたのですが…
長くなって、ごめんなさい。
0474nobodyさん
2005/09/12(月) 01:19:56ID:???そういや求人関係、PHP-userに流しては?とか別のML作るとか、
そんなの求人サイトあるから別にMLに流さんでもとか、
昔そんな話がPHP-userで出てたな。
サイトだとjobmailとかか?
俺はソフト屋じゃないのでどの辺で情報見てる人が多いのかしらんが。
0476nobodyさん
2005/09/12(月) 01:33:04ID:???このことも正直に言ったうえで、顧客も満足した上でお金を出してくれてんですが、実際こういうのは現場でよくあることなの?
※楽する為にphp使ったことしかなくて、DBとか絡めたものは初めてなもんで。
0477nobodyさん
2005/09/12(月) 01:43:12ID:???0478nobodyさん
2005/09/12(月) 02:17:32ID:???4桁、2桁、2桁…に分割してからprintfって方法しかない?
0479nobodyさん
2005/09/12(月) 02:26:22ID:???元のデータのフォーマットが不明だが、適当に年月日時分秒の順だとして
sscanf($data, "%4s%2s%2s%2s%2s%2s", $yr, $mon, $day, $hr, $min, $sec);
echo "$yr/$mon/$day $hr:$min:$sec";
0480nobodyさん
2005/09/12(月) 02:56:00ID:???おおお!ありがとー。
出来ました〜。
フォーマット、%04d%02d%02d…ってしてたんだけど、
"0"が省略されちゃうみたいだったんで、%04s…にしました〜。
パディング文字の指定は、単一 引用符(')で出来るとか書いてあったんだけど、
とりあえず表示だけだし、いいかな、と。
0481nobodyさん
2005/09/12(月) 03:40:08ID:???どれ推奨?
0482nobodyさん
2005/09/12(月) 05:18:12ID:???0483nobodyさん
2005/09/12(月) 06:40:12ID:???どんな場面に使うのかよく分かりません。
具体的にどのようなことで使うのか教えてください。
0484nobodyさん
2005/09/12(月) 08:35:12ID:???きちんとした書面で納品書と検収書を交わしておくべき。
契約書で不具合対応保証期間が明記されていれば尚よし。
0486nobodyさん
2005/09/12(月) 13:54:11ID:910Lq8vb前のページに戻ったら「警告 : ページの有効期限切れ」と
言われるんですけど、これ回避するにはどうやったらいいんですか?
0487nobodyさん
2005/09/12(月) 14:07:45ID:???セッションを使った場合、ここに書いてあるような理由により、
ページのキャッシュが利用できない場合がある。
ttp://jp.php.net/manual/ja/function.session-cache-limiter.php
それぞれの指定の時の挙動は、HTTP関係のRFCを見れば分かるかと。
0488nobodyさん
2005/09/12(月) 14:42:04ID:W0v1jbPa全体の行数を取得→配列化したテキストデータを for を使って取り出す
という方法しかないのでしょうか?
先頭からの場合は、fopen()を使ってファイルポインタを下に移動すれば
最小限のメモリで動作させられるのですが。
0489nobodyさん
2005/09/12(月) 14:44:26ID:???0490nobodyさん
2005/09/12(月) 14:55:51ID:???これを出ないようにしたいのですが、phpのソースコードレベルで出来る対策を教えてください。
0491nobodyさん
2005/09/12(月) 15:04:32ID:???error_reporting()かphp.iniのログレベルの設定を適切に変更する。
一番いいのは、未定義の変数を使いそうな部分でisset()で未定義かどうかチェックして、適切な値を代入する。
0493nobodyさん
2005/09/12(月) 15:37:08ID:???少々トリッキーだがこんな方法がある
$fp = fopen("hoge.log", "r");
fseek($fp, 8000, SEEK_END); //必要な行数が取得できそうな適当な位置に移動(なくても可)
$log = array();
do{
$line = $fgets($fp);
if ($line){ //最終行の後がヌルになったりするのでその対策
$count = array_unshift($log, $line);
if ($count > 10){ //取得したい行数
array_pop($log);
}
}
}while(!feof($fp));
fclose($fp);
$logに新しい順にログが入ってる。
0494nobodyさん
2005/09/12(月) 16:06:20ID:???これなんかが参考になる。
ttp://www.din.or.jp/~ohzaki/perl.htm#File_Tail
0495nobodyさん
2005/09/12(月) 18:41:57ID:???0496nobodyさん
2005/09/12(月) 19:01:59ID:???print "<table width="600" bordercolor="#EF9C00" border="1">\n";
が、通りません。なにがいけないんでしょうか?
0497nobodyさん
2005/09/12(月) 19:09:52ID:???" の中で " を使うときは以下のように " の前に \ を付ける必要がある(エスケープ処理)。
print "<table width=\"600\" bordercolor=\"#EF9C00\" border=\"1\">\n";
または以下のように " ではなく ' で囲んでもいい。
' で囲ったときは \n は使えないんで \n だけ別途 " で囲んで連結していることに注意。
print '<table width="600" bordercolor="#EF9C00" border="1">' . "\n";
" で囲むのと ' で囲むのは意味が異なるので、PHP マニュアルを参照して勉強してね。
0498nobodyさん
2005/09/12(月) 19:12:13ID:???0500nobodyさん
2005/09/12(月) 19:16:12ID:???0501nobodyさん
2005/09/12(月) 20:03:14ID:???お手合わせ願えますか?
0502nobodyさん
2005/09/12(月) 20:14:12ID:???0503nobodyさん
2005/09/12(月) 20:33:49ID:???いいい
ううう
えええ
等のように、書いたaa.txt(↑コレは4つですが、100個と仮定して)を5つずつ取り出してtableで表示させたいんです。
$data = file("aa.txt");
echo "<table><tr>";
$i=0;
foreach ($data as $bb) {
$i = $i+5;
if($data[$i]==$bb){
echo "</tr><tr>";
}
echo "<td>$bb</td>";
}
echo "</tr></table>";
これを試したんですが、全部横一列表示されてしまいます。
どうしたら上手くいくでしょうか?
0505nobodyさん
2005/09/12(月) 21:11:12ID:???$i = $i+5;これじゃ5、10、15ってなりますね。。。
$data[$i]==$bbになるはずが無かったんですね。
ありがとうございました。
0507nobodyさん
2005/09/12(月) 21:11:56ID:???0508nobodyさん
2005/09/12(月) 21:29:57ID:???最初から$iに5を入れておいて$i = $i+5;をecho "</tr><tr>";の下に持っていったらできました!
0509nobodyさん
2005/09/12(月) 21:42:42ID:???forやwhileのほうが分かりやすくて良いと思うんだが、やはり慣れなんだろうか。
0510nobodyさん
2005/09/12(月) 21:49:35ID:???ぶっちゃけると、どっち使っても良い。
処理により使い分ければいいよ。
foreach() を使うと、楽できる場合も多々あるし、
無理に foreach() を使うようにコーディングする必要もない。
0511nobodyさん
2005/09/12(月) 22:00:22ID:???0512nobodyさん
2005/09/12(月) 23:33:07ID:???ずっと前に書いたスクリプトを見直してたら
foreach (array(0,1,2,3,4,5) as $i) {
とか書いてあった・・・orz
0513nobodyさん
2005/09/12(月) 23:42:21ID:???慣れてくればけっこう便利。
0514nobodyさん
2005/09/12(月) 23:43:04ID:???0515nobodyさん
2005/09/13(火) 00:00:17ID:???時々ビックリするくらい笑えるコード書いてたりするんだよな。
function array_add($a, $b) {
return array_push($a, $b);
}
書いたのの誰だよ!俺だorz
なんか恥ずかしい想い出みたいだよね。
0517nobodyさん
2005/09/13(火) 02:17:40ID:dzuB0cPlまぁいいんでないの、人それぞれのやり方があるのが面白いところ。
0518nobodyさん
2005/09/13(火) 03:13:24ID:???後で見た自分のコードが恥ずかしくなることってあるよなー
逆にそういうのがあるから成長してると言えるわけで。
昔自力で書いたコードとか下手で捨ててしまいたい衝動にかられるけど、
再利用できることもあるから捨てるに捨てられん・・・
0519nobodyさん
2005/09/13(火) 11:05:18ID:???最近書いたコードを見たら、たいして変わってなくて青面した。
0520nobodyさん
2005/09/13(火) 14:06:35ID:T3vnNFvNその2台のサーバ間でデータを同期するスクリプト組もうとしています。
「サーバA(主)」 と「サーバB(副)」では同じPHPスクリプトが動作していて、A上で実行されたスクリプトの
パラメータと同じ情報を、B上の同じスクリプトに投げるための方法を探しています。
HTTP POSTでAに来た要求をそのままBに渡せればいいかなと思ったのですが、PHPのスクリプト上から
HTTP POSTを発行する方法が分かりません・・・
何かいい方法は無いでしょうか。
0521nobody
2005/09/13(火) 14:27:20ID:9pR1WrHUDBは何使ってるの?
MySQLをはじめレプリケーションできるものも数多くあるけど
違うネットワークってことなので、httpで通信するってこと?
0522nobody
2005/09/13(火) 14:28:24ID:9pR1WrHUなんか文字の周りが汚くなってしまいます。
きれいに文字をかく方法ありますか?
0523nobodyさん
2005/09/13(火) 14:35:34ID:T3vnNFvNDBはMySQLです。
間にFireWallが居てポート空けてくれないらしいのでHTTPしか無い感じだったりします・・・
レプリケーションについてはちょっと調べて見ます。
0524nobodyさん
2005/09/13(火) 14:47:30ID:???どういう風に書けばいいか、わかりません。
作成した関数に文字列を渡すと、置換した結果を取得したいのです。
$aaa = kansuu($aaa);
例えば、「表示」だと「表\示」と返したいのです。
で、関数の中で
「―ソЫ�\噂浬欺圭構蚕十申曾箪貼能表暴予禄兔喀媾彌拿杤歃濬畚秉綵臀藹觸軆鐔饅鷭�x�x」
などの文字が存在したらその文字に半角の¥を付加して返したいのですが、
どのように置換処理を書けばよろしいでしょうか?
よろしくお願いします。
0527nobodyさん
2005/09/13(火) 15:43:00ID:???SQL文を作成し、変数に格納しようと思ってます。
文字列と変数をつなげるとき
1)$sql = "select * from $table where key='$key'"
2)$sql = "select * from ".$table." where key= '".$key."'"
と書くのでは、どちらが正しいんですか?
どちらも正常に動きますが、一般的に使われるのはどちらなんでしょうか?
0529nobodyさん
2005/09/13(火) 15:47:08ID:???クォートじゃなくてエスケープな
>>524はエスケープしてどうする気だ。DBにでも突っ込むならmysql_escape_string()とか使え。addslash()でもいいけど。
0530nobodyさん
2005/09/13(火) 16:01:07ID:???うまくいきません。
さわかみファンドからは首尾よく価額を取得できるのですが、SGターゲットジャパン
からはできません。
なにも表示されないのです。
//さわかみファンド 71311998
$InputFile = "http://www.quick.co.jp/qsearch.exe?F=fund%2Fall&KEY1=71311998";
//SGターゲットジャパン 58311008
$InputFile = "http://www.quick.co.jp/qsearch.exe?F=fund%2Fall&KEY1=58311008";
// ファイルを開きます。
$fp = fopen($InputFile, "r");
if ($fp == FALSE) {
echo "error";
exit();
}
while (!feof($fp)){
$s = fgets($fp);
$n = preg_match_all($Pattern, $s, $ar, PREG_SET_ORDER);
for($i = 0; $i < $n; $i++){
print $ar[$i][2] . "<br>\n";
}
}
// ファイルハンドラを閉じます
fclose($fp);
ここ数日悩んでます。どうか原因を教えてくださいませ。
0531530
2005/09/13(火) 16:12:39ID:???環境を書き忘れてました。
所謂LAMP環境です。
RedHat 9
Apache 2.0.40
MySQL 3.23.58(mbstring on)
php 4.2.2
スクリプトはeuc-jpで書いてます。
0533530
2005/09/13(火) 16:14:46ID:???$Pattern = "/(<FONT COLOR=black>)(.*)(<\/FONT>)/";
0536nobodyさん
2005/09/13(火) 16:39:23ID:???たぶん改行の問題だと思う
そのスクリプトだと<FONT COLOR=black>から</FONT>までが1行にないと駄目
0537532
2005/09/13(火) 16:47:05ID:???こう書き換えてみたら?
$s = '';
while (!feof($fp)){
$s .= fgets($fp);
}
fclose($fp);
$n = preg_match_all($Pattern, $s, $ar, PREG_SET_ORDER);
for($i = 0; $i < $n; $i++){
print $ar[$i][2] . "<br>¥n";
}
0538534
2005/09/13(火) 16:49:48ID:???WinXPでShift JIS
マッチした内容は
-----------------
24846
</FONT>
<BR>
<FONT COLOR=FF0000>+
96</FONT>
<!---->
<br>
------------------
0539nobodyさん
2005/09/13(火) 17:05:20ID:???> HTTP POSTを発行する方法が分かりません・・・
fsockopenしてfwriteで送信。
>>522
文字をでかくする。色を薄くする。フォントを変える。
JPEGならクオリティの値(imageJpegの3番目の引数)を上げるかPNGにする。
それでもダメならGDを見放せ。
0540nobodyさん
2005/09/13(火) 17:21:49ID:???fsockopenをキーワードにして探した所、まさに求めていた情報がありました。
ttp://www.stackasterisk.jp/tech/php/searchAction.do?cid=18
ありがとう
0541530
2005/09/13(火) 18:40:35ID:???>>536
たしかに改行コードが含まれています。
この場合$Patternに改行コードを書き込むと良いと思い\rや\nをためして
みましたがダメでした。
取得したhtmlの文字列から改行コードを取り去ればよいと思いますが・・・。
そんな機能を持った関数があるのでしょうか?
>>537
そのとうりに書き換えてみましたがダメでした。
0542nobodyさん
2005/09/13(火) 20:36:22ID:???ユーザー定義関数をつかって、消費税を抜いた値段を表示するスクリプトを
書いたのですが、参考書によると、これの実行結果は「100」のはずなのに
その通りにならず
「function tax($zeikomi) { $zeinuki = $zeikomi / 1.05; return $zeinuki; } print (tax (105)); ?>」
となってしまいます。
どこが間違っているのでしょうか。
<html>
<head><title></title></head>
<body>
function tax($zeikomi) {
$zeinuki = $zeikomi / 1.05;
return $zeinuki;
}
print (tax(105));
?>
</body>
</html>
文字コードはeuc-jp
改行コードはLE
PHPのバージョンは5.05です。
よろしくお願いしますm(_ _)m
0545nobodyさん
2005/09/13(火) 21:12:54ID:???0546nobodyさん
2005/09/13(火) 21:14:10ID:???0547nobodyさん
2005/09/13(火) 22:14:01ID:21KzVdLfhttp://w1.nirai.ne.jp/freeze/install.html
このページを参考にして、環境を作ったのですが、最後のlocalhost/test/phpinfo.phpにアクセスして
確認しようとすると、phpinfo.phpのダウンロード画面が出てきてしまうのですが、なんででしょうか?
初歩的な質問ですいませんが、よろしくお願いします。
0549軟式PHP
2005/09/13(火) 22:19:52ID:???そのページは見てないけど、ダウンロードになるなら
phpのMIMEタイプが設定されていない可能性があるな。
LoadModuleもやってないかも。httpd.confをもう一回見直してみたほうがいいと思う。
0550nobodyさん
2005/09/13(火) 22:36:20ID:???>>549
ありがとうございます。
Apache再起動してみましたが、直りませんでした。
httpd.confもページをみて見直してみましたが、やはり直りませんでした。
どうすれば良いでしょうか??
0551nobodyさん
2005/09/13(火) 22:45:17ID:???0552nobodyさん
2005/09/13(火) 23:03:06ID:/gXbJCT5PHPマニュアルにある方法以外にもっと詳しい情報を
知りませんか?
もし、ありましたら、教えてください。
0553548
2005/09/13(火) 23:03:34ID:???変だね。そのページを見てみたけど別にウソは書いてないし。
Apacheのインストール後の「あなたの予想に反して...」の画面が表示されているのは
確認済みなんだよね?
オマイさんが追加したLoadModule行とAddTypeの行の内容を ***そのまま、何の細工もせず*** に
晒してもらえない?
(そのページからコピペするんではなく、オマイさんのhttpd.confからコピペするんだよ)
0554nobodyさん
2005/09/13(火) 23:12:55ID:???はい、「あなたの予想に〜」の画面は出ます。
追加したのは
LoadModule php4_module c:/php/sapi/php4apache2.dll
と
AddType application/x-httpd-php .php
です。
0555nobodyさん
2005/09/13(火) 23:17:52ID:???貴方の「見直し」が間違ってる可能性が高いかな。
インストール先(インストールの構成)を変えていたり、
ダウンロードしてインストールしたApacheやPHPが説明のものと異なる
そういった場合は記述されている内容を理解した上で適用しないとならない。
その辺が出来てないんじゃないの?
これは動かないという原因ではないが、件のコンテンツの記述で間違っているところがある。
(間違っている人は他にも多くいるが)
>703行 AddDefaultCharset none ←こう書き変える
これではnoneというcharsetを指定することになる。無効にするのだからOffが正しい。
http://httpd.apache.org/docs/2.1/ja/mod/core.html#adddefaultcharset
0556nobodyさん
2005/09/13(火) 23:23:36ID:???0557nobodyさん
2005/09/13(火) 23:25:06ID:???あ、確かにApacheを説明のものと違うバージョンのものを使っていました。。。
説明の物と同じやつでやってみます。
いろいろと教えていただきありがとうございましたm(_ _)m
0558nobodyさん
2005/09/13(火) 23:29:46ID:???0559nobodyさん
2005/09/13(火) 23:43:41ID:???もうひとつだけ質問させてください。
この場合はApacheだけインストールしなおせば、phpはインストールし直さなくて
良いんですよね??
0560nobodyさん
2005/09/13(火) 23:48:49ID:???あとPHPのインストール先とインストールしたパッケージの確認。
コマンドプロンプトで「c:\php\cli\php.exe -v」(小文字のまま)
とした場合の出てくるバージョンとか教えて。
出てこなかったら
・インストール先がその解説通りでない
・インストールしたパッケージがその解説通りのものではない
>>558
メモ帳で修正したのでhttpd.conf.txtになっている。
(修正&上書きだとそんなことはないか)
0561nobodyさん
2005/09/13(火) 23:55:31ID:???下のソースをどのようにすれば良いのでしょうか?
どうかお教えください。よろしくお願いいたします。
while(list($index,$data)=each($data_all)){
if($data[0]) {
print "$index[0]:$data[0]";
}
if($data[2]) {
print "$index[2]:$data[2]";
}
if($data[9]) {
print "$index[9]:$data[9]";
}
print "<br>";
}
0562nobodyさん
2005/09/13(火) 23:55:48ID:???いや、それはPHPの話なので
>はい、「あなたの予想に〜」の画面は出ます。
らしいから、Apacheのインストールは関係ないよ。
説明どおりのバージョンでなくても貴方がインストールした
バージョンに合わせて適切に設定すれば良いだけの話しだし、
新しいバージョンの方が良いでしょ
(ドキュメントはどうしたって陳腐化してしまうものだ)
で、PHPのインストールだけどそこの解説にもあるように
「インストーラはありません」(今は公式のWindowsインストーラ版もあるが)
だから、再インストール云々にはならないよ。
Apacheやphpのデフォルト設定ファイルを変に変更して元に戻したいが
バックアップを取ってなかったとかのパターンは、再インストールして
設定ファイル取り戻す必要はあるかもしれんが。
0563nobodyさん
2005/09/13(火) 23:59:58ID:???「100行あるデータ」ってのは$data_allに入ってるのかい。
それとも$data[x]とかに入ってるのかい?
どっちにせよ if($data[0])とかの判定は怪しいけど。
0564nobodyさん
2005/09/14(水) 00:04:32ID:???100行のデータは$data_allに入っています。
怪しいソースですが全行の表示はできています。
if($data[0])は必要無いですね。。。
0565nobodyさん
2005/09/14(水) 00:12:24ID:???指定されたパスが見つかりません。と出ます。
>>562
でも、どうやれば私がインストールしているバージョンに合った設定になるか分からなくて、、、
ほんと初心者ですいません。
0566nobodyさん
2005/09/14(水) 00:42:48ID:???>指定されたパスが見つかりません。と出ます。
・phpのインストールがおかしい(解説通りでない)
・変更しているApache設定ファイル(httpd.conf)がおかしい。Apache起動時にエラーが出ていない。
の両方。
前者はhttp://www.php.net/get/php-4.3.11-Win32.zip/from/a/mirror
をダウンロードして、解説どおり解凍したフォルダをリネームして
c:\phpのディレクトリになるように設置。
後者は、コマンドプロンプトで「notepad "c:\Program Files\Apache Group\Apache2\conf\httpd.conf"」
と打って、自分がそれまで変更してた内容がちゃんと記述されてるか確認。
0567nobodyさん
2005/09/14(水) 01:01:29ID:???>while(list($index,$data)=each($data_all)){
これを
foreach(range(1,10)){
list($index,$data)=each($data_all);
にするとか
0568nobodyさん
2005/09/14(水) 03:16:11ID:???とか。あんま発想のレベルは変わらんな
どうでもいいけど、配列の要素を行と云うのは少し違和感が
0569nobodyさん
2005/09/14(水) 04:16:19ID:???>>568
レスありがとうございます。
教えていただいたものを改良して
for($i=0; $i<5; $i++) {
に置き換えて、無事動作いたしました。
本当にありがとうございました。
0570nobodyさん
2005/09/14(水) 06:01:45ID:???> for($i=0; $i<5; $i++) {
本当にそこは5なのか?いいのか…
やっぱ「行」と言った場合、コンピュータシステム的な表現では
どう解釈されるのか、一度色々調べて理解してホスィ。
0571nobodyさん
2005/09/14(水) 06:27:53ID:???どのような制御文を書けばよいのでしょう?
0574nobodyさん
2005/09/14(水) 09:48:16ID:m0wxPPXHphplibはphp5で使えますか?
0575nobodyさん
2005/09/14(水) 10:29:40ID:???0577nobodyさん
2005/09/14(水) 11:39:45ID:???0578nobodyさん
2005/09/14(水) 11:49:13ID:???0579nobodyさん
2005/09/14(水) 11:52:01ID:???実は、DBに登録されているもののうち、リンクがあったら、その部分だけ削除したいのです。
$p_string = str_replace ("<a href=\"*\">", "", $p_string);
みたいな事をしたいのですが。
よろしくお願いします。
0580nobodyさん
2005/09/14(水) 11:52:24ID:???httpd.confに文を追加する時に
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
#
# ExtendedStatus controls whether Apache will generate "full" status
最初こうなっているのですが、
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
LoadModule php4_module c:/php/sapi/php4apache2.dll
#
# ExtendedStatus controls whether Apache will generate "full" status
このように付け足すのですか?
それとも
#LoadModule vhost_alias_module modules/mod_vhost_alias.so
#LoadModule ssl_module modules/mod_ssl.so
#LoadModule php4_module c:/php/sapi/php4apache2.dll
# ExtendedStatus controls whether Apache will generate "full" status
このように付け足すのでしょうか??
0582579
2005/09/14(水) 11:58:23ID:???やはり正規表現でひとつひとつ可能性(英字、数字、時には2バイト文字)をつぶすしかないのですね。
一括で全て対象にできれば便利だと思いましたので。
ありがとうございました。
0585nobodyさん
2005/09/14(水) 12:16:51ID:???使い始めたところです。php5での参考資料が見つからなくて。
>>576
他に似たようなことをするライブラリがあるということですか?
教えていただけませんか?
0586579
2005/09/14(水) 12:18:48ID:???strip_tagsなんていう関数があるんですね。
教えていただきありがとうございます。
ただ、今回はリンクだけなので、正規表現を使わせていただきたいと思います。
0587nobodyさん
2005/09/14(水) 12:38:09ID:???#から始まる行はコメント文として無視されますので
有効にしたい行は先頭の#を削除
無効にしたい行は先頭に#を挿入
0590nobodyさん
2005/09/14(水) 14:01:12ID:???0591nobodyさん
2005/09/14(水) 14:03:51ID:???phplibのセッション管理に興味があったんですが、PDOだとできませんよね?
で、ADOdbってのを見つけたんですが、これってどうですか?
0593579
2005/09/14(水) 14:53:49ID:???とすることで、期待通りの動作をしてくれました。
どうやら私の努力不足だったようです。
ご迷惑をおかけしました。
0594nobodyさん
2005/09/14(水) 14:56:50ID:???上のプログラムを使って画像の貼り付けのプログラムを作成したのですが
画像が下のリンク先のようにおかしくなってしまいました。
(貼付前)・・・http://land.issaigassai.com/cgi/upload/source3/No_0101.jpg (12,874 バイト)
(貼付後)・・・http://land.issaigassai.com/cgi/upload/source3/No_0102.jpg (20,874 バイト)
このように貼り付けた画像がおかしく表示されるのはどういう原因で発生するものなのでしょうか。
なお、貼り付けた環境は以下の通りです。
OS:Red Hat Linux release 8.0 (Psyche)
httpd-2.0.40-11.9
PHP:4.3.2
0595nobodyさん
2005/09/14(水) 15:00:38ID:???phplibやADOdbでは、セッションに保存される情報がDBに格納できるみたいで、それを使ってみようをしているところです。
http://phplens.com/lens/adodb/docs-session.htm
標準だとサーバ上のファイルに保存されるんですよね?
0596594
2005/09/14(水) 15:03:15ID:???以下が使用したプログラムです。
〜〜index.html〜〜
<HTML><BODY bgcolor="#FFFFFF">
<DIV align="center">
<FORM enctype="multipart/form-data" name="pl_info" action="./form.php" method="post">
<INPUT TYPE="hidden" NAME="_template_confirm" VALUE="./form.php">
<table>
<tr><td>画像選択</td>
<td><input type="file" id="upfile" name="upfile"></td>
</tr></table>
<TABLE width="500">
<TR><TD width="250" bgcolor="#FFFFFF" align="CENTER">
<INPUT type="submit" name="SUBMITBUTTON" value="確認画面へ" onClick="NEXT()">
<INPUT type="hidden" name="page" value=""></TD>
</TR></TABLE></FORM>
</DIV></BODY></HTML>
〜〜form.php〜〜
http://land.issaigassai.com/cgi/upload/source3/No_0105.txt
0599nobodyさん
2005/09/14(水) 15:24:23ID:???0600nobodyさん
2005/09/14(水) 15:26:35ID:???0601nobodyさん
2005/09/14(水) 15:27:15ID:xwUqvGFVincludeいじったりしてますがいまいちよくわかりません...
簡単な方法ってあるんでしょうか。よろしくお願いいたします...
0603nobodyさん
2005/09/14(水) 15:46:02ID:???中学生以上ならわかると思ったんだが
れっどはっと8.0のhttpdのひょうじゅんのせっていでは
<Files *.php>
SetOutputFilter PHP
SetInputFilter PHP
LimitRequestBody 524288
</Files>
となっています。
これはれっどはっとのしっぱいではないでしょうか
わたしはうえのぎょうを
AddType application/x-httpd-php .php
にかきかえました
そしてちゃんとうごくようになりました。
0605nobodyさん
2005/09/14(水) 16:14:26ID:???うえのぎょうってどこにあるんですか?
httpd.confを探しても<Files *.php> は見つからないんですけど・・・
もしかして違う場所を見ているとか・・・
0607nobodyさん
2005/09/14(水) 16:53:12ID:???>>530に書いてある
while (!feof($fp)){
の「!」って何の意味?ヒント教えてください。
0610nobodyさん
2005/09/14(水) 17:03:11ID:???feof($fp) は、ファイルポインタが終端に来た時にTRUEを返す。
(ファイルポインタはfgetsを使う事で終端に向けて進む)
なので、終端に来た時に feof($fp)はTRUE、!feof($fp)はFALSEになり、whileループが終了する。
0611nobodyさん
2005/09/14(水) 17:13:48ID:???なるほどね、tureとfalseで頭がごっちゃになりそうだ。
ありがとう。いつか答えられるようになるまで頑張る。
0612nobodyさん
2005/09/14(水) 17:54:12ID:???場所は分かりました。
でも
LoadModule php4_module modules/libphp4.so
を
AddType application/x-httpd-php .php
に変えても状況は変わりません・・・
うえのぎょうと言われましてもどの部分を変更すればよいのかさっぱり分かりません・・・
0613nobodyさん
2005/09/14(水) 18:12:52ID:???今度はApacheを再起動したらエラーが出てしまったのですが何故でしょうか??
0614nobodyさん
2005/09/14(水) 18:15:58ID:???>>612の変更は論外
該当箇所がないんなら、httpd.confの最後に
AddType application/x-httpd-php .php
入れてやってみれば?
0615nobodyさん
2005/09/14(水) 18:42:59ID:???.htaccessすら触ったことないの?
あと、今までの書き込み内容からしてPHPとHTMLの区別すら分かってねーだろ?
HTMLの基礎から勉強してきな
0616nobodyさん
2005/09/14(水) 19:14:43ID:wrvJu8ADFatal error: Call to undefined function: php_error() in /usr/share/pear/DB/DataObject.php on line 405
ぐぐってもでてこん。php_error
なんかincludeするとかいう問題か??
0617nobodyさん
2005/09/14(水) 19:18:09ID:m0wxPPXH大文字が混ざっていると遷移しても破棄されないんです。
0618617
2005/09/14(水) 19:31:19ID:???大文字だけじゃないと残りません。
0619nobodyさん
2005/09/14(水) 19:31:39ID:???解決しない・・・と思ったらconfファイルは変更した後で再起動をかけないと
変更が反映されないということを知りませんでした・・・
一旦サーバーを再起動させてもう一度確かめてみます。
0620nobodyさん
2005/09/14(水) 19:43:10ID:???0621617
2005/09/14(水) 19:56:30ID:???Firefoxやネスケではちゃんと保存されています。
セッション変数ってブラウザによって挙動が違うんですか?
0622nobodyさん
2005/09/14(水) 19:59:51ID:???既に出力した文を扱うにはどうすればいいですか。
0627nobodyさん
2005/09/14(水) 22:36:01ID:???データを抜き出し、下のソースでその結果を表示しているのですが、
1ページの表示を100件くらいにして、「次のページ」という機能を付けたいのです。
どのようにすれば良いのか、教えていただけないでしょうか。よろしくお願いいたします。
<?php
$fp = fopen("hoge.csv",'r');
flock($fp, LOCK_EX);
while(!feof($fp)){
$data_line = explode(",",chop(fgets($fp, 1024)));
$data_all[] = $data_line;
}
$datatop=$data_all[0];
array_shift($data_all);
flock($fp, LOCK_UN);
fclose($fp);
foreach($datatop as $title){
print "$title";
}
print "<br>";
while(list($index,$data)=each($data_all)){
print "$data[0]";
print "$data[1]";
print "$data[2]";
print "$data[3]";
print "$data[4]";
print "$data[5]";
print "$data[6]<br>";
}
?>
0628nobodyさん
2005/09/14(水) 22:44:54ID:???return (preg_replace ("$bbb" , "$ccc", $aaa);
}
これにもう一つpreg_replaceを追加する場合は
もう一つfunctionを作るの?
0629nobodyさん
2005/09/14(水) 22:54:06ID:???while(!feof($fp)){
$data_line = explode(",",chop(fgets($fp, 1024)));
$data_all[] = $data_line;
}
この部分を以下の方針で見直す。
1.開始行を$_GETか何かで受け取ることを決めておく
2.開始行まで空読み
3.開始行に達したら100行程度読み出して$data_all[]に入れておく
4.ついでにこの先のデータがあるかチェックしておくと吉
0630nobodyさん
2005/09/14(水) 23:05:45ID:???勘で答えてみるけど
function aaa($aaa) {
$aaa = preg_replace("$eee", "$fff", $aaa);
return preg_replace ("$bbb" , "$ccc", $aaa);
}
とでも書けばいいんでないの?
0631nobodyさん
2005/09/14(水) 23:14:49ID:???EUCに城
0632627
2005/09/14(水) 23:23:08ID:???レスありがとうございます。
私にはその方法はかなり敷居が高いです。
つーかわかりません...orz
while(list($index,$data)=each($data_all)){
$indexはまったくの未使用です。
これを使って上手く処理できれば良いのですが…
(print_rで見ると、0から綺麗に連番で並んでいます)
0633nobodyさん
2005/09/14(水) 23:59:54ID:???$indexを使いたいということなら
最初の方で
$page = 2; //表示開始ページ
$start = $page*100;
とでも設定しておいて、
while(list($index,$data)=each($data_all)){
if ($index >= $start && $index < $start+100){
print"$data[0]";
・・・(略)
}
}
みたいにしても動くとは思うけど。
きついコーディングだな('A`)
せめてこうか
for ($i=$start; $i<$start+100; $i++){
$data = $data_all[$i];
print "data[0]";
・・・(略)
}
0634627
2005/09/15(木) 00:10:54ID:???ありがとうございます。
やはり100件だけの表示は早いですね。
これに「次のページ」リンクと
全体のページ数表示&リンクができればいいのですが.....
0636nobodyさん
2005/09/15(木) 00:28:43ID:???断片的に書いてみる。
次のページへのリンクの作り方は
$next = $page +1;
$self = $_SERVER["PHP_SELF"];
print "<a href=\"$self?page=$next\">次</a>";
それを受け取る時は
$page = $_GET["page"];
全体のページ数を計算するなら
$pages = ceil(count($data_all) / 100);
最後のページの処理は要注意かな。
0638nobodyさん
2005/09/15(木) 00:44:34ID:???セッション管理に興味があるならHTTP_SessionやAuthを参考に書いて見るといいかも
http://jp2.php.net/manual/ja/function.session-set-save-handler.php
0639627
2005/09/15(木) 00:52:48ID:???ありがとうございます。
よく見る「次」のリンクができています。
が、最終ページになってもリンクが....(汗)
どこかで打ち止めの呪文を書かないといけないようです。
最後のページの処理とはこのことですか?
0640627
2005/09/15(木) 01:15:18ID:???打ち止めの呪文は、全体のページ数にイコールかそれ以下の時にというif文でできました。
同じく、$page-1で「前のページ」リンクもできました。
残るは、1/2/3/4/.....というような、全ページへのリンクのみとなりました。
0641nobodyさん
2005/09/15(木) 02:52:47ID:???0642627
2005/09/15(木) 03:18:06ID:???最後のページの処理のもうひとつの意味。
100行で括ったまま作業をさせているので、最終ページで3行のみ
表示となった場合に、97行のカスが書き込まれてしまいます。
(<table>で表示させてる場合は、そりゃぁひどいのなんのって..)
そこで、全データ数-(表示ページ×100)の式を書き、
100よりも少ない場合の処理と、100の場合の処理に分岐させ
無事、綺麗に表示することができました。
ヒントをくださった皆様。ありがとうございました。
0643nobodyさん
2005/09/15(木) 03:35:27ID:???もう解決しちゃったようだけど、一応こんなのもあるってことで。
pear::HTML_Pager
ttp://pear.php.net/manual/ja/package.html.pager.php
0644nobodyさん
2005/09/15(木) 03:44:32ID:???strict refs,subsに該当するのは無いかな。
strict varsならerror_reporting(やphp.iniの設定)でE_NOTICEを扱うようにすれば、
初期化されていない変数宣言として通知される。
0645nobodyさん
2005/09/15(木) 04:07:03ID:???0646nobodyさん
2005/09/15(木) 11:19:39ID:yS4KEn1H>>630
function aaa($aaa) {
return preg_replace (array("$bbb", "$eee") , array("$ccc", "$fff"), $aaa);
}
こういう方法もあるでよ。
0648軟式PHP
2005/09/15(木) 14:21:44ID:???0649nobodyさん
2005/09/15(木) 15:58:54ID:???0650nobodyさん
2005/09/15(木) 16:00:28ID:???0651nobodyさん
2005/09/15(木) 16:03:06ID:???0652nobodyさん
2005/09/15(木) 16:55:25ID:???0655nobodyさん
2005/09/15(木) 19:37:29ID:???http://php.s3.to/man/about.prototypes.html
ここを読んでいるんだけど、「needle」ってなに?
辞書引くと「針」とか出るんだけど、文脈からすると「検索文字列」とかそんな感じだと思うんですが。
「needleとは」でググッてもいまいち、ぱっとするものが出てこないなぁ
0657PHP初心者
2005/09/15(木) 20:41:48ID:VaGG+gkL0658nobodyさん
2005/09/15(木) 20:43:34ID:???(look for) a needle in a haystack
干し草の山の中の針(を探す) ((不可能な事, むだ骨などのたとえ)).
0660nobodyさん
2005/09/15(木) 22:00:45ID:???md5の方が良い場合はどんな時ですか?
0661PHP初心者
2005/09/15(木) 22:05:02ID:VaGG+gkLありがとうございます。早速ためしてみます。
0662nobodyさん
2005/09/15(木) 22:46:21ID:???0663nobodyさん
2005/09/15(木) 23:32:45ID:???どう変更したらいいのか教えていただけますか?
sub write{
&asyuku;
#携帯機種を取得
$agent = $ENV{HTTP_USER_AGENT};
#$agent = "J-PHONE/3.0/J-SH05";
if($agent =~ /DoCoMo/){
@agents = split(/\//,$agent);
$agent = $agents[2];
}
elsif($agent =~ /J-PHONE/){
@agents = split(/\//,$agent);
$agent = $agents[2];
}
elsif($agent =~ /UP\.Browser/){$agent = 'EZweb';}
elsif($agent =~ /Mozilla/){$agent = 'PC';}
else{$agent = '?';}
0664nobodyさん
2005/09/16(金) 00:00:04ID:???Fuck guy!
0665663
2005/09/16(金) 00:11:04ID:???0666nobodyさん
2005/09/16(金) 00:43:20ID:???A03という文字があったとして、数字の部分は二桁or一桁の動く数字。
数字の部分に対してタグを入れたい。
$levelm = "/A([1-9]|[1-9])?([0-9]|[0-9])([^0-9]|[^0-9])/"
preg_replace ($levelm , "A<span class=\"level\">$1$2</span>", $buffer);
これだと全ての数字にマッチしてしまう。
どうすればいいですか。
0667nobodyさん
2005/09/16(金) 01:31:08ID:0dogEF/nこの板には「罪と罰」というネットゲームをご存じの方はいらっしゃるでしょうか?
そのように複数のプレーヤーの様々な数値を共有するようなことはどのように制作するのでしょうか?
拡張子を拝見してCGIを使用していることまでは分かったのですが内容までは分かるはずもなく知りたいという欲求にかられています。
自分のスキル不足、無知を知っていての質問です。
どうがご講義願います。
0668nobodyさん
2005/09/16(金) 01:35:28ID:???0669667
2005/09/16(金) 01:42:35ID:???あつかましいようですが作ってみたいです。
作りたいのは罪と罰のようなRPGとは少々違うのですがプレーヤーに数値があるのと多人数参加型のゲームであることは変わりは割りません。
でも私はCGIの知識はまったくと言って良いほど無く現状では無理です。
こういう私がこんな発言してすみません。
0670nobodyさん
2005/09/16(金) 01:50:15ID:???こんな奴を押し付けちまってスマン
>>667
ここはPHPのスレッドだからこっち行こうな
そもそも技量が足りてなさすぎだが
Perlコーディング初心者質問スレ Part 43
http://pc8.2ch.net/test/read.cgi/php/1123777607/
0671nobodyさん
2005/09/16(金) 01:51:31ID:???windowsアプリケーション向き
0672nobodyさん
2005/09/16(金) 01:56:05ID:???0673nobodyさん
2005/09/16(金) 08:11:38ID:BzI51Y3fDNを指定するのではなく…。
0674nobodyさん
2005/09/16(金) 15:23:31ID:bO5oShWUstrtrで\nの記号は消せるんですけど
普通の改行が消せません。
<TEXTAREA>から送ってるんですが改行したまま送信するとその改行がログファイルにそのまま出ちゃうんですよねー
どうにかなりませんか?
0676nobodyさん
2005/09/16(金) 15:35:31ID:???けど*nix系サーバの\nはLF(ラインフィード)
Macから送られてくる改行記号は\r = CR(キャリッジリターン)
Windowsは\r\n = CRLFでマッチしないことがある
対策としては\rと\nをそれぞれ削除するか、キャラクタクラスを使って
/[\r\n]+/、/(\n|\r|\r\n)+/のようにする等
0677nobodyさん
2005/09/16(金) 16:27:06ID:???検索データを保持しつつ、いろいろなパターンのソートを
したいのですがどのようにすればよいのでしょうか
0678nobodyさん
2005/09/16(金) 16:33:23ID:???$name1 = "山田";
$name2 = "中村";
for($i=1; $i<3; $i++)
{
$nameN = "\$name" . $i;
print $nameN . "<br>\n";
}
これを実行すると出力結果は
$name1
$name2
となってしまいます。
山田
中村
と出力させるには
↓この部分どう変更したらよいでしょうか?
print $nameN . "<br>\n";
お願いします。
0679nobodyさん
2005/09/16(金) 16:46:15ID:???$nameN = "name$i"; // バックスラッシュいらない
print $$nameN . "<br>\n"; // ドルマーク2つ
ってやればできるけど、そもそもなぜ配列を使わない?
この手の質問(変数名に数値を入れちゃうパターン)やたらよく見かけるけど。
いいから配列使えって。
>>677
配列のソートだったら
http://www.php.net/manual/ja/ref.array.php
から探して。
それともDB?
0680nobodyさん
2005/09/16(金) 17:09:18ID:???もし可能であれば、どの関数を使えばいいのでしょうか?
0682nobodyさん
2005/09/16(金) 17:16:46ID:???>>679さま
ありがとうございます
DBからの検索結果を保持したままいろいろソートしたいの
ですが、どのようにしたらよろしいのでしょうか
0683nobodyさん
2005/09/16(金) 17:24:40ID:???http://www.php.net/manual/ja/ref.filesystem.php
0686nobodyさん
2005/09/16(金) 17:40:27ID:???ご回答ありがとうございます
配列に入れてみます
0688nobodyさん
2005/09/16(金) 18:06:04ID:???そのまま打って実行してみたのですが、エラーになってしまいます。
私の打ち間違いだと思うのですが、どこがおかしいか教えていただけないでしょうか?
<html>
<body>
<?php if(empty($_GET["yyyy"])): ?>
<form action="test41.php">
西暦<input type=text name=yyyy>年
<input type=submit>
</form>
<?php else:
$meiji=$_GET["yyyy"]-1866;
$taisyo=$_GET["yyyy"]-1911;
$syowa=$_GET["yyyy"]-1925;
$heisei=$_GET["yyyy"]-1988;
print "西暦{$_GET["yyyy"]}年は明治{$meiji}年、大正{$taisyo}年、<br>\n"
."昭和{$syowa}年、平成{$heisei}年となります。<br>\n;
endif;
?>
</body>
</html>
0689nobodyさん
2005/09/16(金) 18:13:25ID:???すいません、自己解決しました。
"を付け忘れてました。
どうも失礼しました。
0690nobodyさん
2005/09/16(金) 18:17:00ID:???今思うとすごい文法だな。
0691軟式PHP
2005/09/16(金) 18:23:50ID:???0693nobodyさん
2005/09/16(金) 19:07:54ID:???ソースが汚くてもそれで読者がPHPを理解できるようになれば
それであの本の役目は果たしてるだろ
0695nobodyさん
2005/09/16(金) 21:12:32ID:???0696nobodyさん
2005/09/16(金) 23:35:06ID:???$bunに代入しました。それで、$bunに特定の言葉が入っているか判断する(例えば「yahoo!」と言う文字が有るか無いかで次の処理を変える)
ようにしたいのですが、どうやったら良いかいまいち分かりません。
ifを使ってやると思うのですが、、、ヒントを頂けないでしょうか?
0698nobodyさん
2005/09/16(金) 23:47:15ID:???http://www.php.net/manual/ja/function.strpos.php
http://www.php.net/manual/ja/function.ereg.php
http://www.php.net/manual/ja/function.preg-match.php
0700z208.219-127-36.ppp.wakwak.ne.jprlo
2005/09/17(土) 00:53:05ID:ILTk3jyK0701nobodyさん
2005/09/17(土) 04:05:58ID:???修正データを書き込む箇所で、該当レコードの次のレコードが削除されてしまい、四苦八苦しました。
そこで、試しにレコード番号に−1をしたところ削除されないようになり正常動作しました。
しかし、なぜ−1になるかわかりません
【環境】winXPsp2 + apache2 + php5
$input = implode(",",array($recode,$renen,$remake)); //入力データ作成
$dfile = file($data_file); //既存ファイルの読み出し
$fp = fopen($data_file, "w"); //オープン
for($i=0; $i<sizeof($delfile); $i++){
list($dcode,$dnen,$dmake) = split( ",", $dfile[$i]);
if ($recode == $dcode) { //該当データか判断
$dfile[$i-1] = $input; //該当箇所の書き換え ←問題の箇所
}
fputs($fp,$dfile[$i]); //書き出し
}
fclose($fp);
該当レコードが0番目の場合
FPUTSで、レコード−1番にインプットが入って、fputsではレコード0を書き出している。
次に1を書き出して・・とやっていくと、−1は書き出されない計算になると思うのですが・・・
書いてることが支離滅裂になってきたけど、わかってください
とにかく気持ち悪いんです
0702↑続き (勘違いでした)
2005/09/17(土) 04:15:17ID:???−1すると、修正できませんが、直後のレコードも削除されません。
−1をとると修正はできますが、直後のレコードが削除されます。
どーすれば普通にできるんでしょうか?早く寝たい・・
原因は fput か for か どっちでしょうか?
0703nobodyさん
2005/09/17(土) 04:18:23ID:???0704nobodyさん
2005/09/17(土) 04:23:06ID:???>>701が言ってるように、書き出されないはずだよ。
他にヤバそうな所といえば、file()は改行コード付きで読み込まれるから、
$inputの最後に改行コードが無いとつじつまが合わない事になるくらいかな。
そのせいで実際のデータファイル内では1行に2レコード入っちゃってるんじゃないかな。
それを別の表示用のスクリプトで見ているから あたかも消えたように見えるとか。
0705701and702
2005/09/17(土) 04:29:37ID:???ありがとうございます!
それでした。
$inputの後ろの改行コードが無く、1行2レコードになってました。
こんな時間なのに、的確なチェックありがとうございました。
0706nobodyさん
2005/09/17(土) 07:43:35ID:7NQoGAMZ<?
ob_start("ob_gzhandler");
?>
<html>
<body>
<p>This should be a compressed page.
</html>
<body>
ちゃんと圧縮されているかどうか確認する方法はないでしょうか?
レスポンスヘッダに「圧縮した」という情報が付加されているのかと思い見てみたのですが、
それらしき情報はありませんでした。
0707706
2005/09/17(土) 07:48:14ID:7NQoGAMZContent-Encoding: gzip
がありました。
これがないということはちゃんと動作していないということでしょうか?
ZLib Support はenabled になっているのですが…。
0709nobodyさん
2005/09/17(土) 08:28:08ID:???・リクエストヘッダのAccept-Encodingの内容の確認
・それに応じて圧縮するか否か
・必要であればリスポンスヘッダ(Content-Encoding)の追加
telnetで確認するのなら、リクエストに
Content-Encoding: gzip, deflate を追加する時としない時とで比較すればよいかと。
0710nobodyさん
2005/09/17(土) 08:28:59ID:???今試してみたけどちゃんとヘッダー出してますよ
Date: Fri, 16 Sep 2005 23:26:50 GMT
Server: Apache/2.0.54 (Win32) PHP/5.1.0b2 mod_perl/2.0.0 Perl/v5.8.6
X-Powered-By: PHP/5.1.0b2
Content-Encoding: gzip
Vary: Accept-Encoding
Content-Length: 1212
Keep-Alive: timeout=15, max=92
Connection: Keep-Alive
Content-Type: text/html; charset=Shift_JIS
Content-Language: ja
200 OK
0712706
2005/09/17(土) 08:33:33ID:???もう一度試してみたらちゃんと出ました。
レスポンスも悪くないし、今まで何故使っていなかったのだろうという感じです。
0713z84.61-45-20.ppp.wakwak.ne.jprlo
2005/09/17(土) 09:11:42ID:mvdEHd470714nobodyさん
2005/09/17(土) 09:36:38ID:???エラーがあればきちんとエラー情報が表示されたんですが、
別の鯖に移ったら、エラー表示が出なくなりました。
具体的には、たとえば行末の「;」を忘れた時に普通はエラー表示されますよね?
それが、真っ白な画面が出るだけで、エラーメッセージが出ないのです・・・。
これはPHPの設定の問題でしょうか??
0715nobodyさん
2005/09/17(土) 09:54:12ID:???本番鯖でデバッグするのはあんまりよくないかと。
訪問者に余計な情報を表示しないというポリシーから表示しない事の方が多いんじゃないかな。
PHPの設定(php.ini)に、
エラーをレベル分けした時にどのレベルから出力するかというレベル分けの設定と、
画面やログファイルなどのどこに出力するかという出力先の設定があります。
この辺 ttp://www.php.net/manual/ja/ref.errorfunc.php
0716nobodyさん
2005/09/17(土) 11:00:24ID:???共有にしろ専有にしろ
0717nobodyさん
2005/09/17(土) 11:43:48ID:???暴走させても致命的なダメージはないのでは?
特に専鯖の場合はApacheリスタートでほとんど無問題と思う
まあやらない方がいいに決まってるんだけど
0718nobodyさん
2005/09/17(土) 12:10:32ID:???0719nobodyさん
2005/09/17(土) 12:55:28ID:???0720nobodyさん
2005/09/17(土) 14:41:15ID:???まぁ、>>714はローカルにテスト環境構築しろ。って事で
0721nobodyさん
2005/09/17(土) 15:24:20ID:???0722714
2005/09/17(土) 16:55:28ID:???本鯖と同じ仕様で、デバッグ専用の専鯖も一つ借りてるんです。最近はかなり安くなりましたし。
以前はいちいちローカルでテストしてましたが、Windowsマシンだし、あとメール環境の違いとか
cron絡みとか、PHPのバージョンの違いとかで微調整が面倒くさかったので。。
>>715
参考になりました。ありがとうございます。
0723nobodyさん
2005/09/17(土) 17:00:28ID:???0724nobodyさん
2005/09/17(土) 17:00:47ID:???脳内鯖?
0725nobodyさん
2005/09/17(土) 17:02:01ID:???0726nobodyさん
2005/09/17(土) 17:12:21ID:???0727nobodyさん
2005/09/17(土) 19:17:35ID:???ことは可能ですか?
例
1回目アクセス時 http://www.abc.co.jp/php=?410ulp
2回目アクセス時 http://www.abc.co.jp/php=?584ajok
3回目アクセス時 http://www.abc.co.jp/php=?kefop78
0733nobodyさん
2005/09/17(土) 21:59:53ID:???0734nobodyさん
2005/09/17(土) 22:37:33ID:???度々あるのですが、その際に、大文字、小文字、似たような意味を持つ英単語の
区別など、本来ならば問題にする価値もない部分まで気になってしまいます。
ぜひとも皆様のご意見を聞かせていただければと思い、質問させていただきました。
よろしくお願いします。
0735nobodyさん
2005/09/17(土) 22:43:40ID:???http://pc8.2ch.net/test/read.cgi/tech/1109330204/
0736nobodyさん
2005/09/17(土) 22:56:32ID:???うまく動いてるのに、変数名とかフィールド名が気に入らないだけの理由でプログラムに手を加えて、エロイ事になった漏れがやってきましたよ。
いろいろやってるうちに自分なりのパターンが出来てくると思う。
0737nobodyさん
2005/09/17(土) 23:13:50ID:???「Fatal error: Call to undefined function mb_language() in C:\○○○\mail.php on line 10」
とエラーが出てしまうので、10行目のコードを確認したのですが原因が分かりません。
どこが間違っているのでしょうか?
よろしくお願いします。
0738ソースです
2005/09/17(土) 23:14:31ID:???<html>
<head><title></title></head>
<body>
<h2>メール送信スクリプト</h2>
<form action="mail.php" method="past">
宛先:<input type="text" name="address"><br>
件名:<input type="text" name="subject"><br>
本文:<br><textarea name="message" rows="5" cols="30"></textarea><br>
<input type="submit" value="送信">
</form>
</body>
</html>
0739ソース2です
2005/09/17(土) 23:15:03ID:???<html>
<head><title></title></head>
<body>
<?php
$address = $_POST['address'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$header = "Content-Type: text/plain;charset=iso-2022-jp";
mb_language("Japanese"); //10行目
if(mb_send_mail($address, $subject, mb_convert_encoding($message,"JIS", "EUC-JP"),$header)){
print("送信完了しました。");
}else{
print("エラー:送信に失敗しました");
}
?>
</body>
</html>
0740nobodyさん
2005/09/17(土) 23:15:22ID:???PHPで使えるDOMで、DTDを無視して読み込みが出来るできるラ
イブラリってありますか。
winのvc++で、某社のXMLライブラリを使って出来てはいるの
ですが、同じことをPHPでしたいです。
スレ違いだったら誘導願います。
0741nobodyさん
2005/09/17(土) 23:20:54ID:???致命的エラー: 定義されていない関数 mb_language() が C:\○○○\mail.php の10行目で呼び出されました。
なので、鯖のPHPがmb_language関数を使えるようになっていないのでしょう。
他のmb_*関係の関数(mb_send_mail、mb_convert_encoding)も使えないんじゃないかな。
phpinfo(); を実行した時に、mbstringの項目を見るとはっきりします。
対策は、その鯖の設定(場合によってはインストールから)を変更するしかないです。
鯖を管理している人に相談してみましょう。
0744nobodyさん
2005/09/17(土) 23:47:15ID:???ご丁寧な
説明ありがとうございます。
上の結果はサーバーではなく、ローカルで実行したときのものです。
説明が足りませんでした。すみませんorz
SMTPサーバーをlocalhostにしているのですが、それが原因でしょうか?
もしそうなら、SMTPサーバーはyahooメールやGmailのものでも代用可能なのでしょうか?
また、phpinfo(); を実行してmbstringという項目を探したのですが、見当たりませんでした。
バージョンは下記の通りです
PHP5.0.5
Apache/2.0.54 (Win32)
0745nobodyさん
2005/09/17(土) 23:57:42ID:???php_mbstring.dllをphpに組み込む。
インストールの説明をちっとも読んでないみたいだから、
googleで適当なサイトでも探していっぺん読んでこい。
0747nobodyさん
2005/09/18(日) 01:06:27ID:???今度は「Warning: mb_send_mail() [function.mb-send-mail]: Missing To: field in C:\○○○\mail.php on line 11」
と警告がでてしまいます。
エキサイトで翻訳してみたところ「警告: mb_は_メールを送ります。() function.mbはメールを送ります: 欠けているTo: Cの分野」
となりました。
欠けている、というのは・・
11行目のソースを見ても間違いが分かりません・・。
今度は何が原因なのでしょうか。
ご教授お願いします_| ̄|○
0748ソース
2005/09/18(日) 01:07:56ID:???<head><title></title></head>
<body>
<?php
$address = $_POST['address'];
$subject = $_POST['subject'];
$message = $_POST['message'];
$header = "Content-Type: text/plain;charset=iso-2022-jp";
mb_language("Japanese");
if(mb_send_mail($address, $subject, mb_convert_encoding($message,"JIS", "EUC-JP"),$header)){ //11行目
print("送信完了しました。");
}else{
print("エラー:送信に失敗しました");
}
?>
</body>
</html>
0749nobodyさん
2005/09/18(日) 01:21:06ID:???この辺りに詳しく書いてあるのでOSの事に注意しながら読んでみてください。
ttp://www.php.net/manual/ja/ref.mail.php
0750nobodyさん
2005/09/18(日) 02:08:40ID:???Missing TO: field
なんだからメール送信に必要な「TO:」が設定されてないですよ。
って事なんじゃないの?
0753nobodyさん
2005/09/18(日) 06:23:15ID:???0754736
2005/09/18(日) 06:55:49ID:???漏れだけじゃないんだ。ヨカタ
作っていくうちに関数と実際の機能がかけ離れて来たり、他の変数名とのいまいち、名前が粒ぞろいじゃなくて気に入らなくなったり。
で、そういうとき、藻前らはどう対処してますか?
一括置換で逝っちゃいますか?
失敗するともう訳解んなくなる。
0755nobodyさん
2005/09/18(日) 08:00:14ID:???0757nobodyさん
2005/09/18(日) 13:33:33ID:???0758nobodyさん
2005/09/18(日) 13:36:23ID:???ワラワラと出現する予感
0759nobodyさん
2005/09/18(日) 13:39:57ID:???0760nobodyさん
2005/09/18(日) 13:40:07ID:???0762nobodyさん
2005/09/18(日) 14:10:07ID:???変数f = 10.38 という値を最小フィールド幅10、小数点以下3桁表示させたいのですが、
printf("%10.3f", $f);
としても、最小フィールド幅が10になってくれません。
って、書きながら気が付いたんですけど、フィールド幅は変ってるけど、htmlのせいで
変ってないようになってたのか...orz
とすると、どうするのがベストなんでしょうか?
printf("<pre>%10.3f</pre>", $f);
何か違う気が...
0763nobodyさん
2005/09/18(日) 14:16:02ID:???IDや名前を送ってしまうと、アドレスバーにそれが表示されてしまいます
こんなんです→ id=onishi&name=大西
どうやったらこれを回避できるのでしょうか?
セッション管理というのを最近知ったのですが、それを使わないと出来ないので
0764763
2005/09/18(日) 14:16:52ID:???0767軟式PHP
2005/09/18(日) 14:43:24ID:???0768nobodyさん
2005/09/18(日) 14:48:40ID:???0771nobodyさん
2005/09/18(日) 14:57:14ID:???0772nobodyさん
2005/09/18(日) 15:15:55ID:???<form name="form">
<input type="hidden" NAME="name" value="大西">
</form>
としておいて、JavaScriptでform.submit();すれば送れるけれど。
どのみちHTMLソースを表示すれば見られるのは一緒なので、イヤならセッションかな。
その前に聞きたいんだが、何のためにnameを送るの?
データベースにidとnameを登録して、idからnameを引けば別に各ページへ引き渡す
必要はないと思うんだけど。
0775nobodyさん
2005/09/18(日) 15:42:38ID:???>その前に聞きたいんだが、何のためにnameを送るの?
名前だけ表示したいページがあるのですが、データベースから取得するのが
めんどくさかっただけです。。
ちゃんとデータベースから取得するようにしてみます。
0777nobodyさん
2005/09/18(日) 16:02:19ID:???0780nobodyさん
2005/09/18(日) 18:28:06ID:???入力フォームからのデータによってSQL文を生成し、それによってデータベースから結果を取得表示するのですが
検索結果件数取得をするためにはどうすれば、無駄がないでしょうか
無駄にコードが長いですがご容赦ください・・・ コード自体への突っ込みもあればよろしくお願いします。$loc=_SS($_POST["loc"]);
$type=_SS($_POST["type"]);
$phone=$_POST["phone"];
$shopname=_SS($_POST["shopname"]);
if($phone==NULL){//*1*************************************************************************************************************
$search="";
$search.="select shopname,pg from shop where ";
if($loc!=NULL){//*2
$search.= $loc." =loccd "; //LOCが入力されている
if($type!=NULL){
$search.=" and ".$type. " IN(typecd,typecd2,typecd3,typecd4,typecd5)";//LOC入力済みかつ、TYPE入力済み
if($shopname!=NULL){$search.=" and shopyomi LIKE '%" . $shopname . "%' ;";}//else{$search.=";";} 最後のせみころん不要?
}else{//LOC入力済みかつTYPE未入力
if($shopname!=NULL){$search.=" and shopyomi LIKE '%" . $shopname . "%' ;";}
}
}//*2
else{//LOC未入力 *3
if($type!=NULL){//LOC未入力かつTYPE入力済み
$search.=$type. " IN(typecd,typecd2,typecd3,typecd4,typecd5);";
}
}//*3
0781続き
2005/09/18(日) 18:29:43ID:???//*************************************************************************************************************
elseif($phone!=NULL){//*4
$search="select shopname,pg from shop where phone=" . $phone;
if($shopname!=NULL){$search.=" and shopyomi LIKE '%" . $shopname . "%' ;";}
}//*4*************************************************************************************************************
if($loc==NULL&&$type==NULL&&$phone==NULL){
if($shopname!=NULL){
$search="select shopname,pg from shop where shopyomi LIKE '%" . $shopname . "%' ;";
}else{
print("どれかひとつは選択してください");
exit();
}
}
$rs = mysql_query($search,$conn);
print($search);//生成されたSQL文の確認(デバッグ用表示)
以下 SQL結果の出力文
いいアイディアが浮かばないのが、count関数で出力すればいいんですが
SQL文が変化するのでどうしようか困っています。
0782nobodyさん
2005/09/18(日) 18:30:19ID:???0783nobodyさん
2005/09/18(日) 18:31:05ID:???0785nobodyさん
2005/09/18(日) 18:38:46ID:???単に select count(*), shopname,pg from shop... とすれば済む話でしょ。
それにしても惨いコードだな。
こんな奴と一緒に仕事をするハメになったら、どんな手を使ってもチームから
追い出したくなる。
0788nobodyさん
2005/09/18(日) 18:46:41ID:???んだけど、世の中って、こんなに低いレベルだったのか。
0789780
2005/09/18(日) 18:51:29ID:???お言葉ですが
それSQLエラーになりませんか?(汗
ソースコードがむちゃくちゃなのは自覚してますorz
適当な独学だけなもので・・・
>>788
自分は低いですが他の方は低くないでしょう・・・
0791nobodyさん
2005/09/18(日) 18:54:02ID:???xxxの値が0でもNULLにマッチするけどいいのか?
0792nobodyさん
2005/09/18(日) 18:55:36ID:MWUz/lX6言い過ぎ
お前職場でも嫌われてんだろうな…可哀想に
0793nobodyさん
2005/09/18(日) 18:57:50ID:???select count(*) from shop...
select shopname,pg from shop...
0794nobodyさん
2005/09/18(日) 18:59:17ID:???> 言い過ぎ
> お前職場でも嫌われてんだろうな…可哀想に
メンテナンス性が高いコードを書く事や、
クラックされにくいコードを書く事に関しては、
職場で嫌われようと徹底して行っていくべきだと思うよ。
0795780
2005/09/18(日) 18:59:51ID:???本は一応買いました・・・
>>791
今のところはそれは大丈夫のようです
でも覚えておきます ありがとうございます。
>$_POST['xxx']の値をNULLでチェックしている段階で腐ってる。。。
ちゃんとしたソースを入門編とかの本でしか見たことないんで、理想的なコードってのがよくわかんないんですよね。。。
0796nobodyさん
2005/09/18(日) 19:13:11ID:???見た事が無いなら、探せばいいんじゃないの?
「php MVC フレームワーク」 とかで、最近書かれてるコードを探せば?
0797nobodyさん
2005/09/18(日) 21:33:42ID:???それとも出てても無視?
0798nobodyさん
2005/09/18(日) 22:56:39ID:???大事なのは、ちゃんとしたものを作る・作らせるということであって、素人細工を
叱るのは、そのための手段。叱ることが目的になって、本来なら歓迎されるはず
だった正論を、他者が受け入れにくい不快なものにしてしまうようだと、本末転倒だ。
きつい教育的指導をするときは、事前と事後の根回しも、くれぐれもお忘れなく。
あべこべに、職場を追われるぞ。
おせっかい、スマソ
0800nobodyさん
2005/09/18(日) 23:20:54ID:???0801nobodyさん
2005/09/18(日) 23:23:04ID:???0802nobodyさん
2005/09/18(日) 23:39:16ID:???0805780
2005/09/19(月) 00:49:36ID:???しらべてみましたが、なんか難しいですね・・・・
もう少しPHPの基礎とか強化してから改めて取り組んでみます。
>>797
どういう場合についてのエラー/ワーニングメッセージでしょうか?^^;
>>798
>>785はちょっとショックでしたが、まあなんというか。。。
動けばいいってだけじゃない事を再認識させてもらいました。
贅沢を言えば、汚いコードって言うだけじゃないで
どこがどうきたないで、改善策も書いてもらえれば助かったんですがね・・・
0806nobodyさん
2005/09/19(月) 01:48:25ID:???漏れは785ではないが、改善策も書けなんて甘えも良いところ。
おまえみたいな甘えたヤツが漏れのプロジェクトに来たら、即クビだな。
きれいなコードを見たことないのなら勉強不足というか情報収集不足。
きれいなコードと自分のコードの違いがわからないのならセンス無し。
金もらってるプロだとするなら修業でもして滝に打たれた方が良い。
そこからはい上がってきたヤツは一目置かれるからガンガレ。
0807nobodyさん
2005/09/19(月) 02:29:25ID:???>>検索結果件数取得をするためにはどうすれば、無駄がないでしょうか
何したいかわからんので無駄かどうか知らんが、とりあえず結果の件数なら
$c = mysql_num_rows($rs);
ぢゃだめなのか?
条件を行き当たりばったりで書いてるように見える
見にくい=わかりにくい=見たくない
ざっと見たところ
$phoneが指定されていない loc,type,shopnameの指定されているものを条件とする
$phoneが指定されている phone,shopname(あれば) を条件とする
ってことでいいんじゃない?(違ってたらやっぱり他人にはわかりにくいということで)
if ($phone == "") {
if ($loc != "") {
....
}
if ($type != "") {
....
} else {
if ($shopname != "") {
........
}
0808nobodyさん
2005/09/19(月) 08:41:26ID:???鬼の首でも取ったかのように大騒ぎする
そしてセキュリティの穴を突いてくる犯罪者がそもそも悪いのだという最も重要な点を忘れ
ひたすら自分の小賢しい知恵を振りかざして「初心者」をコキ下ろし
ちっぽけで愚かなプライドを満足させている。つくづくバカなヤツらだ
0809808
2005/09/19(月) 08:42:54ID:???似ているようで大きく違う
0810nobodyさん
2005/09/19(月) 08:51:35ID:???今は
while(!feof($fp)){
$res .= fgets($fp,2048);
}
としています。
しかしページによっては連結するのに6秒くらい掛かります。
上以外で$resに内容を全て詰め込み速度が早い方法をご教授下さい。
0811nobodyさん
2005/09/19(月) 09:14:04ID:???どうしてもわからないので教えてください。
$sql= "create temporary table tmp select * from テーブル名 条件";
$res = $myclass->dbobject->query($sql);
$sql = "SELECT * FROM tmp order by date";
$res = $myclass->dbobject->query($sql);
while($row = $res->fetchRow()){
・・・・・・・・
こんなんで一度得られた検索結果を、さらにいろいろソートさせたい
のですが、どのようにしたらよいのでしょう。
お手数をお掛け致しますが何卒(初心者のため出来れば具体的な
形で)宜しくお願い致します。
0815nobodyさん
2005/09/19(月) 15:54:21ID:???0816nobodyさん
2005/09/19(月) 15:56:00ID:???0818nobodyさん
2005/09/19(月) 18:41:07ID:e00KWmStインデントはタブは使わずスペース4つが推奨となっているんだけど、
皆さんはどうしてます?
0819nobodyさん
2005/09/19(月) 18:42:11ID:???0823nobodyさん
2005/09/19(月) 20:11:17ID:???どのエディタでもタブを自動でスペースに変換っての
使ってるな。
要領がそんなに食うとは知らなかったけど、これからは
本運用の時は逆変換かけて使うかな。
別のエディタとかで開いたとき崩れにくいし、
タブだとエディタによって変にならんか?
0826nobodyさん
2005/09/19(月) 22:37:34ID:???0827nobodyさん
2005/09/19(月) 23:29:28ID:???これじゃYY-PHPがDLできないし、せめて理由ぐらい教えてくれ
0828nobodyさん
2005/09/20(火) 06:18:18ID:???その間も別のスクリプト(B)を並行して走らせるとします。
このとき、Bやwebサーバなど他のプロセスに影響しないよう、
Aの負荷をある一定以下にして(あえて実行速度を抑えて)走らせる方法ってありますか?
PHP.iniでスクリプトのMax実行時間などはいじれますが、Max実行速度はいじれませんよね??
0832nobodyさん
2005/09/20(火) 09:40:39ID:???元の話に戻ると、オイラはタブを使って(各自の)エディタ側で好きにインデント幅を決められる方が好きだな。
0833nobodyさん
2005/09/20(火) 09:45:40ID:???AもBもcronで走らせてます。
cronは単に「●時●分に■を実行」って指示するだけで、
実行速度とかを指定するものではないですよね・・・?
0836nobodyさん
2005/09/20(火) 10:46:25ID:???0837nobodyさん
2005/09/20(火) 11:57:22ID:???すでに答は出ているかもしれないけど、Unixには niceというコマンドが
あって、これは優先度を「下げる方向」に使うのであれば、一般ユーザーでも
使うことができるよ。
0838nobodyさん
2005/09/20(火) 13:39:13ID:???PHPにSQLコードを埋め込むときはPHPMyAdminで作って、PHPコードを生成して
コピペして調整しています。
少し困ったことがあります。
PHPMyAdminで作ったSQlの長文、特にGroup Byや join を使ったSQL文が
動作しません。シンプルな Group Byのモノは動作します。
例えば下のような長さのモノですけど、PHPMyAdminでは値が返されるのに
PHPに埋め込むとErrorになります。
何か気をつけるところとかあるのでしょうか?
select UserName, count(ginou) AS GinouKazu from Ginou
left join TaisenRecords
on Ginou.GameId = TaisenRecords.GameId
left join Users
on TaisenRecords.Winner = Users.UserId
where
GinouID = 21 and
Ginou.FightId = TaisenRecords.FightId
group by UserName
ORDER BY GinouKazu DESC
0839nobodyさん
2005/09/20(火) 13:52:36ID:???PHPから送ったクエリーをechoで出力して、
そいつをPHPMyAdminにコピペして動作するか確認してみては?
0840838
2005/09/20(火) 14:06:36ID:???echoでクエリーを出力してコピペしてPHPMyAdminでは動作しました。
PHPではエラー。エラーは下記でした。
ちょっと調べてみます。解決のヒントになりました。ありがとうございました。
mysql_fetch_array(): supplied argument is not a valid MySQL result resource
0841nobodyさん
2005/09/20(火) 14:28:15ID:???0842838
2005/09/20(火) 15:03:11ID:???すると、同じコードを実行した時にPHPMyAdminでは自動的に
select SQL_CALC_FOUND_ROWS UserName,.....
という風にSQL_CALC_FOUND_ROWSを添付しているようでした。
試しに動作しなかったPHPのコードにSQL_CALC_FOUND_ROWSを入れてみると動作しました。
MySQLサイトのReferenceを読むとクエリーをキャッシュする機能だという事のようです。
Tableをまたぐとこういう記述が必要になるのか、もっと汎用的に書けないものか
少し調べてみます。 ありがとうございました
0843nobodyさん
2005/09/20(火) 15:13:04ID:VaLk2yaU0844nobodyさん
2005/09/20(火) 15:13:42ID:VaLk2yaU0845838
2005/09/20(火) 15:14:15ID:???どうやら大文字か小文字かの違いだったようです。
>>838でのクエリー文では from となっていた部分を FROMと変えると
SQL_CALC_FOUND_ROWSを入れなくても動作しました。
とりあえずPHPDesigner2005で、今まで書いたSQLクエリーの from部分をFROM
に変換する作業からまたはじめてみます。
ttp://dev.mysql.com/doc/mysql/ja/query-cache-how.html
0846nobodyさん
2005/09/20(火) 15:19:58ID:???・Apacheの設定を変えて、.html, htm を PHPに処理させる
・SSI を利用する
どっちも嫌だ…
0847nobodyさん
2005/09/20(火) 15:27:25ID:VaLk2yaUPHPの中で別のPHPプログラムを動かすほうがいいのでしょうか・・?
0849nobodyさん
2005/09/20(火) 15:56:39ID:???<body>
<?php
echo 'Hello World';
?>
</body>
</html>
0850nobodyさん
2005/09/20(火) 18:07:57ID:???(処理内容は検索・削除・追加程度)
file()関数で最初に配列に収めた後で
foreachを使って1行ずつ検索等するのは
メモリなどのリソースを使いすぎてしまうのでしょうか?
こういう場合はfgets()関数で1行ずつ読み込んで処理すべきでしょうか?
0851nobodyさん
2005/09/20(火) 18:23:25ID:???無効にしたいのですが、どうすればよいですか?
また、一部のタグは許可したいのですが、その場合はどうすればよいでしょうか??
0854nobodyさん
2005/09/20(火) 19:33:31ID:???サニタイジングとかともいい、複雑でありながら、基本中の基本です
これだけは、パクりパクりしながら、根性で勉強して書き上げた方が、今後のためです
0855nobodyさん
2005/09/20(火) 19:40:19ID:???0857nobodyさん
2005/09/20(火) 20:49:55ID:+a/Wtbjo検索して結果を表示するプログラムを作りたいのですが、
なんか参考になるプログラム、あるいはページってありませんか?
上手な人ってデータをすべて読み込んで結果を表示するのか、
あるいは一行ごとに調べるのかなど参考にしたので。
0858850
2005/09/20(火) 20:50:53ID:???データベースを使わない方法をなんとかお願いしたいのですが・・・。
今のサーバではDBの個数に制限があるので、なるべくなら使いたくないんです。
0861857
2005/09/20(火) 22:52:57ID:mZEVLO6C859さん、レスどうも。
Excelからcsvで保存して使いたいのでなるべくデータベースは使いたくないな〜。
でも上手い人はそうしているのか・・
どなたかこの手のサンプルプログラムとか知りませんかね?
0862nobodyさん
2005/09/20(火) 23:27:34ID:???http://jp2.php.net/fgetcsv
0863nobodyさん
2005/09/21(水) 00:17:42ID:???1.
LOCK mysql_query("LOCK TABLE ○○ WRITE, ▽▽ READ")
QUERY mysql_query("SELECT ....."); mysql_query("INSERT INTO .....");
UNLOCK mysql_query("UNLOCK TABLES");
FETCH white(mysql_fetch_assoc()) { 。。。 } // SELECTの結果を使う
か
2.
LOCK
QUERY
FETCH
UNLOCK
のどちらで行うべきなのでしょうか?
PHPとデータベースでどのように連携されているかということがよく分からず、つまり
1.
QUERYを送った段階で結果のコピーが得られておりUNLOCKした後に内容が変更されても得た結果は変わらない
のか
2.
QUERYを送った段階では結果の参照(ポインタ)のようなものが得られておりUNLOCKした後に内容が変更されると結果が変わる
ということが気になりまして、どなたが詳しい方がいらっしゃいましたらよろしくお願いいたします。
0864nobodyさん
2005/09/21(水) 00:28:27ID:???これを消すにはどうすれば良いのでしょうか?
Fromは手動で設定してます。
環境はFreeBSD5, PHP4です。
0865nobodyさん
2005/09/21(水) 01:34:35ID:???データ検索する簡易型SQLエンジン(?)があったなぁ
0866nobodyさん
2005/09/21(水) 01:39:10ID:???気をつけるべきことって何かありますか?
普通に書いているぶんには特に気にする必要はないのでしょうか?
0867nobodyさん
2005/09/21(水) 02:00:09ID:???http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2005-30,GGLD:ja&q=%EF%BC%92%E3%81%A1%E3%82%83%E3%82%93%E3%81%AD%E3%82%8B
の最後のq=以下の部分から検索した文字を取り出すにはどのように変換すれば宜しいのですか?
0869nobodyさん
2005/09/21(水) 07:27:08ID:???Perlの簡易データベースをPHPに移植したやつ
http://s3p.net/~channel2/webpro/marunage/joyful/joyful.cgi?mode=thr&no=119
0870nobodyさん
2005/09/21(水) 07:36:19ID:???SJIS用
<?php
$url = 'http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rls=GGLD,GGLD:2005-30,GGLD:ja&q=%EF%BC%92%E3%81%A1%E3%82%83%E3%82%93%E3%81%AD%E3%82%8B';
$parse_url = parse_url($url);
parse_str($parse_url['query']);
$q = mb_convert_encoding(urldecode($q), "SJIS", "UTF-8");
echo $q;
?>
0871nobodyさん
2005/09/21(水) 07:43:01ID:???$string = strip_tags($string, '<a><b><i><u>');
タグ許可すればcssやjava script埋め込まれるのがオチ
0872nobodyさん
2005/09/21(水) 08:42:03ID:???警告
この関数は、allowable_tagsで許可した全てのタグ の属性を修整しません。
これには、style お よび onmouseover属性が含まれており、
悪意のあるユーザが他のユーザに見せるようなテキストを投稿する際に
危険な行為を行う可能性があります。
0873nobodyさん
2005/09/21(水) 08:45:11ID:???むっちゃヤバいってことだね。
0874nobodyさん
2005/09/21(水) 08:49:54ID:???有効にしたいタグだけ戻せば埋め込みは回避できるのでは?
&lt;s&gt; → <s>
0875857
2005/09/21(水) 09:01:19ID:???参考にしたらやっぱ一行づつ呼んでるか。
0877nobodyさん
2005/09/21(水) 09:18:43ID:???0879nobodyさん
2005/09/21(水) 09:23:58ID:???$string = strip_tags($string, '<a><b><i><u>');
print $string;
0880nobodyさん
2005/09/21(水) 09:29:53ID:???だから preg_replace('/(<.*)onmouseover/', '$1', $string) とか入れれば良いだけでは?
正規表現のツッコミは無しで。
0881nobodyさん
2005/09/21(水) 09:51:37ID:???正規表現もうちょっと勉強しような
>>879
アンカータグなんて普通は許可しない。
htp://等から始まるものに自動リンクが普通では。
0882nobodyさん
2005/09/21(水) 10:13:25ID:???某所で無条件に使うなとか書いてあったからなんかまずいのかと思った
0883nobodyさん
2005/09/21(水) 10:32:49ID:???unset($_SESSION['code']) && unset ($_SESSION['num'])
で
if ( isset($_SESSION['code']) && isset($_SESSION['num']) )
{A} else {B}
unsetしたらBの方に飛びたいんだけど、この書き方だと間違ってる?
0884nobodyさん
2005/09/21(水) 11:23:04ID:???$string = strip_tags($string);
echo $string;
0885nobodyさん
2005/09/21(水) 11:27:49ID:???したいことはpop認証して本人確認がしたいんですが、pop3系の平文認証は出来たらしたくないので・・。
安全目な方法を探しています。
必ずしもpopsじゃなくてもいいのですが・・。
0886nobodyさん
2005/09/21(水) 11:29:04ID:ND56HoqP$url = $_SERVER["QUERY_STRING"];
$parse_url = parse_url($url);
parse_str($parse_url['query']);
$q = mb_convert_encoding(urldecode($q), "SJIS", "UTF-8");
echo $q;
後半は870のコピペ。URLを取得するのにこういう方法もある。
0888nobodyさん
2005/09/21(水) 12:09:36ID:???あるメソッドの中でcall_user_func_arrayを使って親クラスのメソッドを明示的に呼び出すにはどうしたらいいですか?
parent::method();
を
call_user_func_array(???, $arguments);
という感じでやりたいのです。
0889nobodyさん
2005/09/21(水) 13:38:18ID:???$method = array(get_parent_class($this), "method");
call_user_func_array($method, $arguments);
どうやらこの書き方でできるらしい。
0890889
2005/09/21(水) 14:26:15ID:???上のは見なかったことにしてくれ。
0892nobodyさん
2005/09/21(水) 15:08:31ID:???参考になるURL等あったらよろしくおねがいします
0893892
2005/09/21(水) 15:15:53ID:???現在
http://www.hogehoge.jp/test.php?id=1&id2=2
となっているものを
http://www.hogehoge.jp/1/2/
としたいと思っています。
test.phpの部分は.htaccessでDirectoryindexを指定してできたのですが
それ以降がわかりません。
REDHAT7.3
apache1.3
PHP4.4
です
0894nobodyさん
2005/09/21(水) 15:26:39ID:ND56HoqPhtaccess の RewriteRule で出来るよ。
0895888
2005/09/21(水) 15:42:13ID:???試してみたらそれでいけました!
実際にはstaticなメソッドでなくてもできるんですね。
あと、$method = array('parent', $args); でも問題ないことを確認しました。
情報ありがとうございました。
0899nobodyさん
2005/09/21(水) 18:42:18ID:???ロックファイルも使ってるし、書き込むファイルもflockしてるし、stream_set_write_bufferも使ってる。アクセス+ファイル書き込み激多い。
0900nobodyさん
2005/09/21(水) 19:17:32ID:???$file = fopen ("url.html", r);
if (is_file ($file)){
echo "true";
}else{
echo "false";
}
落ちてなくてもfalseになるんですが、おかしい部分を教えて下さい。
0901nobodyさん
2005/09/21(水) 20:20:37ID:???> if (is_file ($file)){
マニュアルで、is_fileの引数と、fopenの返り値を調べるべし。
0902nobodyさん
2005/09/21(水) 20:58:02ID:???その書き方だと監視するためのurl.htmlと同じ場所で稼動するスクリプト?
鯖落ちてたら監視スクリプト自体が動かんジャネ?
0903893
2005/09/21(水) 21:56:44ID:???>>898
ありがとうございます。
http://www.hogehoge.jp/test.php/1/2/
というようにはできたのですが、
http://www.hogehoge.jp/test/1/2/
としたいのですが、どうしたらいいでしょう?
0905nobodyさん
2005/09/21(水) 22:08:53ID:???書き込みが成功したのを確認してからRenameが定石と思われ
いきなりfopen('hoge.dat', 'w')みたいなミスをやってないかとか、
もっと軽量なデータ構造にできないかとか設計の見直しもアリだと
思うけど、なによりまず何故壊れてるのかを突き止めないことには
決定打はない
0906nobodyさん
2005/09/21(水) 22:18:43ID:???書き込み過多でログ飛ぶとかどんな馬鹿スクリプトだよ
0907nobodyさん
2005/09/21(水) 22:41:13ID:???ガッデーム!!
0908nobodyさん
2005/09/21(水) 23:44:34ID:???ロックファイルが見える前に、別のフロントから叩かれてファイル壊れる可能性あるかもね。
0910nobodyさん
2005/09/22(木) 02:56:22ID:h7xNWILgphp_mysql.dllが入ってませんでした。
正確にはmysql 4.1.12だからphp_mysqli.dllが必要なのですが。
何か変わったのでしょうか?
0911nobodyさん
2005/09/22(木) 03:08:48ID:???銀行システムとか、よっぽどクリティカルなものでなければ、
データベースの自動ロックに任せておけばいいと思う。
ただし念のため、「分離レベル」「ロックの粒度」などをググって
調べておいてね。
0912nobodyさん
2005/09/22(木) 04:52:57ID:ZCKvH6ce何と言うのでしょう?
0913nobodyさん
2005/09/22(木) 04:57:13ID:???http://tsuttayo.sytes.net/mysql/backup/index.html
を参考にしてやってみましたけど、肝心のバックアップファイルがどこに
保存されてるのかが分かりません・・・。
試しに $BackPath = '/test/'; と設定してスクリプトを実行してみましたが、
その「test」フォルダがroot下にありません。SSH接続してroot直下に「test」フォルダを
作ってからスクリプトを実行しても、testフォルダの中にtar.gzが作成されてません・・・。
スクリプト実行時にエラーメッセージは出ないので、スクリプト実行自体は成功してると思うんですが。。。
(※私はLinuxの知識がほぼゼロなので、何か根本的な勘違いをしているかもしれません…)
0914nobodyさん
2005/09/22(木) 05:15:33ID:ZCKvH6ce何と言うのでしょう?
0915nobodyさん
2005/09/22(木) 05:27:37ID:???mysqlは使ってないからよくわかんないけど、コマンドのオプションの指定の仕方ってこれであってるの?
-uroot とか。-u rootとかになるような気がするんだが。。
>>914
PHPに関係ないでちゅよ
0917nobodyさん
2005/09/22(木) 08:13:47ID:???「+」のまま$_GETに持ってくる設定などできるのでしょうか?
0918nobodyさん
2005/09/22(木) 09:20:44ID:???ありがとうございます。
「-u root」については私も気が付いて直してあります。
その他エラーにはならないので、とりあえずスクリプト自体は問題ないと思われます。
0919nobodyさん
2005/09/22(木) 09:30:37ID:???正常な動作だし
parse_str($_SERVER['QUERY_STRING'], $foo) → rawurldecode($foo['bar'])
とかやるしかなさそう
0920nobodyさん
2005/09/22(木) 10:02:26ID:???test.php を test 置換させちゃえば?
RewriteRule ^/(test)/([0-9]*)/([0-9]*)/$ /test\.php?id=$1&id2=$2
ちょっと自信ないけどこんな感じ?
0921899
2005/09/22(木) 11:46:06ID:d7rcueJ2レスありがとうございます。色々参考になりましたので、やってみます。
0922nobodyさん
2005/09/22(木) 11:50:29ID:???他にも全部オプション「-p」「-r」とかもだが直してあるのか?
自分のやったことは全部書け。小出しにすんな。
0923nobodyさん
2005/09/22(木) 12:03:19ID:???<?php
system("/usr/local/bin/mysqldump データベース名 -uユーザー名 -pパスワード --opt -rディレクトリ名/ファイル名");
?>
とやって正常に動作するかどうかを切り分けていった方が早いと思うけど。
それと、MySQL4.1以降でUTF以外の文字コードを使っているのなら "--default-character-set=文字コード" で
文字コードを明示的に指定してやらないと "��" 辺りが文字化けしちゃう可能性があるのでご注意。
0924nobodyさん
2005/09/22(木) 13:18:36ID:???はい、全部直してみましたがダメでした。
あと、rootをadminにしてみてもダメでした。
>>923
>>913でリンクを貼ったサイトのスクリプトには
各コマンドを実行する度にエラーがあればexitしてエラー表示するようになっていますが、
まったくエラー表示されません。
また、function MySystemで出力されるであろうと予想される文字列は全て正常に出力されます。
ちなみにMySQLのバージョンは3.23.58です。
0925nobodyさん
2005/09/22(木) 13:29:21ID:???スクリプトを動かしてるユーザーが「/test」の権限持ってない。
手っ取り早いのは、ちと怖いが、/testのパーミッションを777にしてやってみそ。
普通に作っただけだと、root権限で実行するなら当然作れるが、作れないからな。
あと、ちょっと話はズレるが「root直下」って言い方すると「/root/test」みたいに聞こえる。
「/」直下って言うんだ、一般的には。
0926nobodyさん
2005/09/22(木) 14:13:22ID:???何処か良いサイトがあったら教えてください。
0927nobodyさん
2005/09/22(木) 14:14:04ID:???0928nobodyさん
2005/09/22(木) 14:33:02ID:???アクセスした瞬間に実行されるの?
0929nobodyさん
2005/09/22(木) 14:37:15ID:???そうですが何か?
>>928
いろんな初期処理を経て実際にスクリプトを実行する直前には準備できています。
多量のリクエストデータを送る場合でもなきゃ普通のユーザはその事を気にしなくていいかと。
0930nobodyさん
2005/09/22(木) 14:39:31ID:???今のあなたにぴったりのサイトをご紹介します。
http://www.google.co.jp/
0931nobodyさん
2005/09/22(木) 15:57:40ID:???情報がやっぱり少なくて分からん…。
・tarコマンドのパスを確認 (which tar)
・rootって本当に / ?(sshで入ったら、pwdコマンドで確認)
・バックアップ用ディレクトリの権限を確認(ls -l ディレクトリ名)
・mysqldump のパスを確認
・sshで入って、mysqldump のコマンドを直接実行してみる。出力先は適当な所で。
あとはまぁ、>>923 の方法が良さそうだけど。
あと、rootをadminにしても無理ですよ…。
0932nobodyさん
2005/09/22(木) 16:35:51ID:???あるサイトにHTMLで記述してあるデータ等を、PHPで引き出して、
配列に格納するにはどうすれば良いのでしょう。
0933nobodyさん
2005/09/22(木) 17:04:04ID:???0935nobodyさん
2005/09/22(木) 18:04:30ID:???$con = pg_connect("host=localhost dbname=hoge user=foo password=xxxxxxx");
の部分を別のDB接続に変更したら
Notice: Undefined index:orz(orzは本来$_POST["orz"]でphpに渡す変数)
が出てしまいます。どこに原因があるのでしょうか?
ちなみに変更後もDBへの接続は成功しています。
0937935
2005/09/22(木) 19:15:54ID:???接続しているDBが違うだけなので(テーブル構造は全く同じ)そんなこと
はない筈です。
追加情報です。 正常に動作している方はDBのユーザ名とOSのユーザ名前
が同じ。
Notice: Undefined indexが出る方はDB専用のユーザ名で接続しています。
(権限はきちんと設定しています)
ここら辺が関係しているのでしょうか?
0938nobodyさん
2005/09/22(木) 19:53:36ID:???おまいさんしか答えは見つけられん。
一つだけ忠告しとくと予断があると大抵ハマる。
0939nobodyさん
2005/09/22(木) 19:55:17ID:???エコーデバッグしてみろよ
0940nobodyさん
2005/09/22(木) 20:13:52ID:???連想配列のキー orz が存在しないんでしょ。
その箇所の行番号も表示されているはずなので、その箇所を調べてみたら?
0941935
2005/09/22(木) 21:41:48ID:???これはフォームから送信しています。
繰り返しますが、まともに動作するスクリプトの
$con = pg_connect("host=localhost dbname=hoge user=foo password=xxxxxxx");
を別のDBに接続変更するだけで
Notice: Undefined index:orzがでるんですよ。
原因分かんないんで、もうあきらめます。
ありがとうございました。
0942nobodyさん
2005/09/22(木) 22:59:44ID:???0943nobodyさん
2005/09/22(木) 23:01:21ID:???・不具合の原因は貴方が教えてくれた箇所ではありません。
・残念ながら、我々は貴方が隠している箇所のコードを知る術を持ち合わせていません。
貴方の力を使わずに解決する方法は以下の通りです。
・関連する全てのコードをここに公開する
・信頼でき知識のある知人、あるいは上司等に助言を求める
0945nobodyさん
2005/09/22(木) 23:27:32ID:???変数追ってダンプするだけ
BBSで聞くよりも、もちろんエスパーの存在を期待するより
手間も時間もかからなかったのに
0947nobodyさん
2005/09/23(金) 01:22:30ID:???画像の横サイズが一定サイズを超えたら縦横等倍で縮小しようとしてるのですが、
どうやって等倍の値を出すのかわかりません…。
今は、getimagesize関数で、横サイズが規定以上になったら、
縦も横も、元々の半分サイズになるようになってるだけです。
0948nobodyさん
2005/09/23(金) 01:42:37ID:???開く方法はありますか。
0950nobodyさん
2005/09/23(金) 01:47:34ID:???微妙にスレ違い。
多分相手はcookieを見てるのでhttpヘッダ見ながら適当にごまかせ。
分からなけりゃ手動でヤレどアホウ
0952nobodyさん
2005/09/23(金) 01:50:30ID:???$length = 200;//アップされた画像を規定サイズに変換する際の幅
if($size[0] > $length){//アップされた画像の横幅が規定値より大きい場合
$width = $length;//横幅は規定値
$high = $size[1] * $length / $size[0];//横幅に合わせた比率の高さ
}else{
$width = $size[0];//横幅は元の画像のまま
$high = $size[1];//縦幅も元の画像のまま
}
0953nobodyさん
2005/09/23(金) 02:20:16ID:???ちなみに>>952のやつだけじゃ、1x20000(物凄い縦長)の画像とかアップロードされたとき泣くことになる罠。
縦幅も制限すべし。ファイルサイズの制限は当然のこととして。
0955nobodyさん
2005/09/23(金) 07:55:08ID:p9teK3qAおまえもうバカアピールいらねぇって
0956nobodyさん
2005/09/23(金) 10:39:42ID:???0957nobodyさん
2005/09/23(金) 10:59:18ID:???一応プログラミングと名の付く板に来るほどのバカって
すさまじいものがあるな
0958nobodyさん
2005/09/23(金) 13:02:13ID:hrjXCQtZXHTMLで、HEAD要素内のタグを「head.txt」にして保存して
PHPファイルから呼出したいのですが…
どうしたら良いでしょうか?
0959nobodyさん
2005/09/23(金) 13:28:34ID:???そのPHPにアクセスされるたびに取り出したいのか、別のスクリプトからそのPHPにアクセスしたいのかがわからないので、そこにはふれずに無難な回答。
つ XML パーサ関数 http://www.php.net/manual/ja/ref.xml.php
とりあえずここを見て勉強汁。
もしくは出力全体を正規表現でマッチさせるか。
0960nobodyさん
2005/09/23(金) 13:31:27ID:hrjXCQtZサンクス
0961nobodyさん
2005/09/23(金) 19:03:05ID:???0962nobodyさん
2005/09/23(金) 22:37:07ID:???xmlパーサの処理止まるからなー。
多分>>958程度ならif文と正規表現が正解なきガスる。
0963nobodyさん
2005/09/24(土) 01:13:06ID:???日付をtimestamp(14)で取得してます。
これを、呼び出し時に曜日を算出し、表示させているのですが、
どうも作った曜日関数がおかしいようです。(曜日がずれる)
strftimeなど使ってみたのですが、うまくいきません。
みなさんは、どうやって曜日を算出していますか?
0964nobodyさん
2005/09/24(土) 01:39:26ID:???取得した日付は正しいがオマイさんが作成した曜日関数がおかしいって意味なのかな。。。
ハズしているかもしれないけど、漏れは以下で取得している。
$weekday = array('日', '月', '火', '水', '木', '金', '土');
$weekday_no = date('w', strtotime('2005/09/24'));
echo $weekday[$weekday_no];
0965963
2005/09/24(土) 01:51:24ID:???取得した日付は正しいです。DBん中はこんな感じ→20050924014800
曜日の配列はまだ用意してないんですけど、strtotime使ってみました。
と、"4"が返ってきました。
って事は、木曜日??
曜日配列を、array('火','水','木','金','土','日','月')て風にするのも、何かインチキだし…。
何故にー!?
0966nobodyさん
2005/09/24(土) 02:45:58ID:???strtotime ("now");
とか試せ。
0967nobodyさん
2005/09/24(土) 07:43:56ID:???それ以外のIPアドレスからのアクセスは拒否する
といった機能をサイトに付けたいのですが
どのようにやればできるのでしょうか?
0968nobodyさん
2005/09/24(土) 08:30:41ID:???0969nobodyさん
2005/09/24(土) 09:56:44ID:???0971nobodyさん
2005/09/24(土) 11:10:15ID:???timestampカラムを取得すると2005-09-24 01:48:00形式で返ってくると思うんだけど。
SQLで20050924014800という形に整形しているの?
echo date('w', strtotime('2005-09-24 01:48:00'));
で正しく6(-> 土)が返ってくるから、strtotimeに渡す形式をゴニョってみれば
良いのでは。
0973nobodyさん
2005/09/24(土) 17:54:59ID:???何をやったらいいのか分かりません。
0975nobodyさん
2005/09/24(土) 19:45:23ID:???ちゃんとリンクさせること出来るの?
0976nobodyさん
2005/09/24(土) 20:23:20ID:???0977nobodyさん
2005/09/24(土) 20:29:29ID:???0978nobodyさん
2005/09/24(土) 22:57:08ID:???一旦ファイルかDBに格納して、ユーザ毎に復元するしかないのかな。
0979nobodyさん
2005/09/24(土) 23:23:49ID:???0980nobodyさん
2005/09/25(日) 00:19:16ID:???PHPに関するくだらない質問用すれです。
次スレは>>970あたりが建ててください。
ここは、これらに当てはまる人を対象としています。
・最近PHPを始めたばかりな人
・本スレで質問しても回答を貰えなかった人
・マニュアルを見ても、Googleで検索しても、いまいち理解出来なかった人
※重要:我々はエスパーではありません。質問には詳細を書くように心掛けてください。
【回答してくださる方】
1.出来るだけ優しく質問に答えてあげてください。
2.「ググれ」「過去ログ嫁」ではなく、ヒントだけでも教えてあげてください。
【質問する方】
※過去に似た様な質問がされている事があります。質問する前に現行スレ内だけでも検索してみてください。
1.どんな事で躓いているのか、どうしたいのかを明確に書いてください。
2.コードがある場合は、問題がある箇所とその前後をスレに貼り付けてください。
短過ぎて答えられない事はあっても(長くなる場合はアップローダに上げてURLを)
3.自己解決した場合には、どうやって解決したかを後の人のために書き残してください。
4.「コードを出して」など回答者のお願いには出来るだけ応じてください。
5.回答が貰えなくても泣かない、騒がない。
0983nobodyさん
2005/09/25(日) 01:05:10ID:???次スレは>>970あたりがたてる
※重要:我々はエスパーではない。質問は詳しく。
【回答者へ】
1.出来るだけ優しく答えよう
2.「ググれ」「過去ログ嫁」ではなく、ヒントだけでも教えよう
【質問する人へ】
※質問する前に現行スレ内だけでも検索すること
1.何で事でつまづいているのか、どうしたいのかを明確に書くこと
2.できるだけ、コードをさらして質問すること
(長くなる場合はアップローダに上げてURLを書く)
3.自己解決した場合には、どうやって解決したかを後の人のために書き残すこと
4.「コードを出せ」などの回答者の要求には応じること
5.回答が貰えなくても泣くな、騒ぐな
0986984
2005/09/25(日) 02:09:45ID:???1.何で事でつまづいているのか、どうしたいのかを明確に書くこと
2.できるだけ、コードをさらして質問すること
タイポはともかく、この辺は実行力あるかもな。
他は気色悪過ぎだよ。勘弁してくれ。
上のほうを見る限り、2は当てはまらない質問も多い気がするけど、どうだろう?
0987nobodyさん
2005/09/25(日) 02:34:23ID:???PHPスクリプトのライフサイクルはリクエスト単位だから
>>979
あるこたあるけどほとんど無いよ。管理者に聞いてみそ
0988nobodyさん
2005/09/25(日) 02:39:45ID:???0989nobodyさん
2005/09/25(日) 02:40:49ID:???0990nobodyさん
2005/09/25(日) 02:41:08ID:???0991nobodyさん
2005/09/25(日) 02:45:43ID:???0992nobodyさん
2005/09/25(日) 03:14:44ID:???0993nobodyさん
2005/09/25(日) 03:31:24ID:/sWHtMR50994nobodyさん
2005/09/25(日) 03:32:36ID:???0995nobodyさん
2005/09/25(日) 03:32:39ID:???0996nobodyさん
2005/09/25(日) 03:32:41ID:???0997nobodyさん
2005/09/25(日) 03:32:49ID:???0998nobodyさん
2005/09/25(日) 03:32:53ID:???0999nobodyさん
2005/09/25(日) 03:33:28ID:???1000nobodyさん
2005/09/25(日) 03:33:31ID:???/ / / / / || | i ヽ i
i / / / / / / || || |│ |ノス
|// / /___, -一ァ| /! |ト、|│ | | く」 くだらねぇ!
|,-‐¬  ̄---┘'7 |! ハ! |,、-┼十|! | | |
, -‐ ''" し' '´_ /,ィ二l |ト、/!ヽト、\_ヽ!|!l | ハ |
,r/ __ ,イ|リ ヾハ! ヽ! ,ィ⌒ヾミリノ!/リ |
/ ||ヽ -' / ̄ )` __ |ヒノ:} '` ,イ/ | |
,r ' ヾ、 ,-、____ , イ ̄,r==- ==-' レ' /| |
/ ヽ `ーソ ' | |ト、,ヘ ′"" "" / / || |
. / \_ / | ハ ヽ`゙'ヘ ' '__. ィ / / | | |
/ / / | ヽ 川\ ヾ三ニ‐'′//! | | | |
/ / / 八 \川| |`ト- .. __ , イ‐ァヘ | | || |!
/ / / / \ \ 「`ー- 、 / .〉 ト、| ヽ、
,イ /-─=¬ニヘ、_ \ 厂\ 厂ヽ /!| | `ー=ヘ
-‐  ̄ /─ '  ̄ ├- ヽ\ \ノ\ \ 人 ハ!ヽ || |-┤ ヽ
/ /!‐-- | |\ ト、_`ヽ oヽ ト、! || |‐┤- ヽ
// 〉 __ / ├‐- || | 川-‐ | | 厂7! ハ! ├:┤  ̄ヽ
/ / ー ─  ̄ ├‐- リ || ハ!ヘ | | ト┤|/′ ヾ,┤ ゙i_
‐ ' 〉‐- | / /\ .|o | /ヽ/(′ ∨ \
‐--─ ──-r、___-、 /ー_ {( '´>、! /ヽ/ |\ \
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。