【PHP】質問スレッド Part7
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/02/06 05:56ID:???http://www.php.net/
■ 日本 PHP ユーザ会
http://www.php.gr.jp/
■ PHP マニュアル
http://www.php.net/manual/ja/
■ PEAR マニュアル
http://pear.php.net/manual/ja/
過去スレ, 関連スレ及び注意事項等は、>>2-10あたりに
0113nobodyさん
03/02/12 22:48ID:???これでもだめ?
$ip = $_ENV{'REMOTE_ADDR'};
$iplist = file(file("addr.dat");
if (!in_array($ip,$iplist)){
}
まあ、仕様の問題だけど、漏れは
ファイル形式をIPアドレス,最終書き込み時刻 とかにしといて
IPアドレスをキーに最終書き込み時間を値にしてやれば、
結構いいような気もする。
$fp=fopen(...)
while(list($key,$value)=fgetcsv($fp,1024)){
$iplist[$key]=$value;
}
$ip=...
// リストに名前がない、または3600*5経過してたら
if( !isset($iplist[$ip]) || ($iplist[$ip] < 3600*5)){
write
}else{
だめー
}
こなかんじ
file()って改行記号が付いたままだから一致しないんでねぇの。
0117101=104
03/02/13 00:28ID:qFqQzGYDレスありがとうございました。
PHP、csv,txt全てのファイルをEUCで保存して、
改行コードをLFにしたら、日本語表示できました。
どうもファイルうp時に、バイナリモードにして
いなかったのが原因のようです。信心が足りませんですたw
>>105さん
コードは、PHPマニュアルのサンプルコードを
まんま真似して書きましたw
>>106
echoやprintで表示した場合も化けたり化けなかったりでした。
>>107さん
やってみたら面白かったです。色々練習します。
0119nobodyさん
03/02/13 13:01ID:???自分でリストを作って変換させようと思うんですが
どういう文字をリストに加えればいいのでしょうか?
またその変換後の文字自体を入力されると戻すときに困るのですが
変換後の文字はどういったものがいいのでしょうか?
0120へたれ
03/02/13 13:06ID:EMswGLUvお知恵をお貸しいただけたら助かります。
マルチパート(ENCTYPE="multipart/form-data")のフォームから
画像のアップロードとテキストフィールドに入れた文字を
サブミット後確認画面を出し、確認。
その後、そのデータをHTMLで保存するプログラム作成中です。
確認画面で画像の確認は出来たんですが、テキストフィールドに入れた日本語が表示されません。
マルチパートでテキストデータを扱うには何か特別な処理をしないといけないのでしょうか?
お助けください。
0123へたれ
03/02/13 13:54ID:EMswGLUv>mbstring とかが自動でやってくれるとこ
とは、mb_convert_encodingで
文字コードを変換しないといけないということでしょうか?
0124nobodyさん
03/02/13 14:28ID:???え?そうなんですか?
例えば掲示板での投稿をチェックなしにDBに入れても大丈夫なんですか?
ブラクラとかデザインが崩れるとかは置いといて。
0125nobodyさん
03/02/13 14:57ID:E3277Fmxhttp://www5b.biglobe.ne.jp/~ryo-kyo/osu.html
---------------------------------------
0127nobodyさん
03/02/13 15:36ID:KY1XuPBnhttp://bbs.1oku.com/bbs/bbs.phtml?id=rantyan
0128nobodyさん
03/02/13 16:07ID:???入力された文字は徹底的にチェック&エスケープ
0129nobodyさん
03/02/13 16:54ID:???0130nobodyさん
03/02/13 16:56ID:???それ専用の関数もあるぞ。
http://jp.php.net/manual/ja/function.addslashes.php
あと、 ; は文字列の中なら、addslashesした後なら大丈夫だが、
数値等の場合は、間違いなく数値(;が入っていない)と確認した上で
掘り込んどけよ。
magic_quotes_gpc はデフォでonだが、ナニかと問題になるから、
offにして桶。
詳しくはマヌアル嫁。
0132nobodyさん
03/02/13 17:41ID:???それは<>&"(オプションで「'」もだったかな?)だけですよね。
>>129
>>130
なるほどまとめると「’」「”」「<」「>」「\」「%」「;」ですね。
ブラクラなんかも考え出すと他にも置き換えるべきものが
ありそうなんですがよくわかんないです。
あとmysql_escape_stringでエスケープするリストとかってわかりませんか?
そのほかにもいろいろなサイト見たんですがわかんなくて・・・
あと言い方も解りづらかったです。
SQL文に変数を使う場合その変数のチェック方法が知りたかったんです。
http://www.ravi.ne.jp/~shige/index.php?DirectSqlCommandInjection
http://www.ipa.go.jp/security/awareness/vendor/programming/a01_02_main.html
とかも見たんですが結局どうやればほぼ完璧なのか・・・
0133nobodyさん
03/02/13 17:57ID:???http://php.lamphost.net/manual/ja/function.mysql-escape-string.php
ここは見た?
0134nobodyさん
03/02/13 18:23ID:???見たつもりだったんですが、書いてありますね気づきませんでした。
どうもありがとうございます。
>- mysql_escape_string calls MySQL's library function of the same name,
> which prepends slashes to the following characters:
> NUL (\x00), \n, \r, \, ', " and \x1a.
あとmagic_quotes_gpcがonのときはstripslashesした後に
上のを置き換えればSQL的には安心ですね。
\x1aってのは初耳です。
0135nobodyさん
03/02/13 18:53ID:oTbfkKXC無料スペースのサーバでもなかなか使えないですか。
サービス概要やFAQあたりを見ても
特に書いていないところが多いですが
今すぐ、使えるかどうかが判別出来る方法はあるのでしょうか。
0136nobodyさん
03/02/13 18:53ID:oTbfkKXC無料スペースのサーバでもなかなか使えないですか。
サービス概要やFAQあたりを見ても
特に書いていないところが多いですが
今すぐ、使えるかどうかが判別出来る方法はあるのでしょうか。
0137nobodyさん
03/02/13 20:21ID:???って、それはともかくとして、SQLインジェクションとかで検索すれば概ね調べられると思われ
またライブラリ厨とか言われそうだけど(苦笑
PEAR DB使ってるならSQLにつっこむ変数を
$quote_user_id = $db->quote($userid);
として
$sql = "SELECT * FROM userdata WHERE userid = $quote_user_id";
としてもいいと思う。
使ってるDBにあわせてクォートしてくれるよ。
0139138 ◆AngelH/kMI
03/02/13 23:57ID:???ちなみにPEAR DBについては
http://pear.php.net/manual/ja/core.db.php
このあたりを参考に。
0140nobodyさん
03/02/14 08:39ID:???RedHat7.3
PostgreSQL7.2.3
でmb_send_mailでDBから本文を取ってメールを配信しています。
配信の際に改行を\nで送っていましたが、一部のメーラで改行されないとの
事だったので、本文の改行を\r\nに変更しました。
ですが、今度は改行が2回されるものがでてきました。
この問題が解決できないなら派遣を今月できるとおどされています。
どなたか助けてください。
首になったら家族が…。
0141140
03/02/14 08:44ID:???で変換しています。
0143140
03/02/14 11:09ID:???では
$data[message] = str_replace("\r", "\n", str_replace("\r\n", "\n", $data[message]));
こうすればOKでしょうか?
0144nobodyさん
03/02/14 11:10ID:cWyUFhz/ため息。。。
http://sagisou.sakura.ne.jp/~deai2/cgi/rank.cgi?fdeai
だとすると、先に改行コードを統一すればいいのかな?
>140
がんばれ。
人ごとに聞こえないし応援してる(苦笑>今月できる
0146nobodyさん
03/02/14 11:17ID:???こんなんは?
0147140
03/02/14 13:59ID:???手元にあるOutlookも全て試してみました。
あとは配信をまつのみです。
皆さんありがとうございました。
配信終わったら、戻ってきます。
0148b
03/02/14 14:31ID:???●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
24時間受付 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール [email protected]
グローバル探偵事務局
0149nobodyさん
03/02/14 15:36ID:BhC5+mMz『%_(変数名)_%』を$(変数名)に変換して、その変数の値を
反映して出力するものなんだけど、簡易テンプレートスク
リプトとしてかなり重宝してた。でも、勉強不足でその構造
はわからずじまい。
open FI, "file.html";
foreach(<FI>) {
s/%_(\w+)_%/${$1}/eg;
print;
}
close FI;
・・と、これをPHPにしたいんだけど、なんとかならない
だろうか?
0150超初心者
03/02/14 15:59ID:b6/Y7U2LHTMLのソースにどの様に記述すれば良いのでしょうか?
上手く表示できなくて困ってます。
PHP単体にアクセスすると動いているのでPHPには問題ないのですが…
お願いします。
0151nobodyさん
03/02/14 16:23ID:ShDZP0VnAddType application/x-httpd-php .html
0152超初心者
03/02/14 16:27ID:b6/Y7U2Lそれはヘッダーに記述すればよいのですか?
0153nobodyさん
03/02/14 16:40ID:ShDZP0Vn.htaccess
0154nobodyさん
03/02/14 16:43ID:mrfczmhq0155nobodyさん
03/02/14 17:02ID:???<?php
require_once("counter.php");
?>
今日のヒット数は<?php print(getcount()); ?>です。
カウンタの仕様は知らんけどな。
0156超初心者
03/02/14 17:18ID:b6/Y7U2L有難う御座いました。
お陰で使える様になりました。
0157nobodyさん
03/02/14 17:51ID:???<?
$FI = file ("file.html");
foreach($FI as $line) {
$line = preg_replace("/%_(\w+)_%/e", "$$1", $line);
echo $line;
}
?>
/eがポイント
0158nobodyさん
03/02/14 18:31ID:BhC5+mMzいった!。ありがとう!
こういうやり方って一般的なのかしらん?
0159スーパー初心者
03/02/14 18:35ID:???同じ鯖上で別々のユーザディレクトリに、同じPHPプログラムを置いてるんですが、
同じ動きをしてくれません。
1、http://ドメイン名/~userdirA/
2、http://ドメイン名/~userdirB/
1ではちゃんとセッション変数も問題なく処理出来てるんですが、
2では、セットしたはずの変数がクリア?されてしまって、ちゃんと動きません。
このような現象を回避する方法はあるんでしょうか?
0160nobodyさん
03/02/14 19:05ID:BhC5+mMzなるほどぉ、/eっていうのは、preg_replace()のみに使える
PHPコードとして評価させる修飾子だったんですね。
これで例えば配列とかも置換できちゃうだろうか?
%_ARRAY[TEST]_%とか・・・。
試してみよう・・・正規表現かぁ。
0161nobodyさん
03/02/14 19:41ID:QRPnIrmq1と2両方でphpinfo()して
sessionの項目を見比べる。
0162スーパー初心者
03/02/14 22:05ID:???見比べました。
一点だけ違いがありました。
不具合のある方のphpinfoには、
HTTP_CACHE_CONTROL max-age=0
てのがありました。
関係あるのですか?
0163nobodyさん
03/02/17 21:44ID:xAesCnLVそうでないサイズがあります。
(例えば10,11,12,13ポイントだと化けて、14ポイントだと綺麗に表示されるとか)
なにが原因なのでしょうか?
OSはFreeBSD5.0で、PHP,GD,FreeTypeともに現状の最新バージョンです。
0165163
03/02/17 22:50ID:xAesCnLV失礼しました、化けるという表現はおかしいですね。
文字の原型をとどめない意味不明な画像が表示されてしまいます。
0166nobodyさん
03/02/18 02:06ID:???$hoge->hoge();
見た感じ、Perlでの矢印演算子やパッケージ内の関数指定とは
微妙に違うっぽいのですが、これは一体何をやっているんでしょうか。
簡単な例とかでも良いのでよろしくおながいしますです。
0167nobodyさん
03/02/18 02:25ID:???0169nobodyさん
03/02/18 02:35ID:???return $a + $b;
}
function hikizan( $a, $b ){
return $a - $b;
}
$tasu = $this->tashizan( 10, 5 );
$hiku = $this->hikizan( 10, 5 );
0170nobodyさん
03/02/18 02:50ID:???> $tasu = $this->tashizan( 10, 5 );
> $hiku = $this->hikizan( 10, 5 );
$tasu = tashizan( 10, 5 );
$hiku = hikizan( 10, 5 );
これとどうちがうの?
0171166
03/02/18 05:20ID:???0173nobodyさん
03/02/18 14:47ID:2X2nTsk2PHP Version4.2.2では動くんですが4.0.6では動きません.
-------------------------------
<?php
ini_set('session.use_cookies', 0);
session_start();
if (isset($HTTP_SESSION_VARS['count']))
{
$HTTP_SESSION_VARS['count']++;
}
else
{
$HTTP_SESSION_VARS['count'] = 1;
}
?>
<a href='<?php echo $HTTP_SERVER_VARS['PHP_SELF'] ."?" . SID?>'>
<?php echo $HTTP_SESSION_VARS['count'] ?>
</a>
-------------------------------
0174173
03/02/18 14:48ID:2X2nTsk2-------------------------------
Session Support:enabled
session.auto_start:Off
session.cache_expire:180
session.cache_limiter:nocache
session.cookie_domain:no value
session.cookie_lifetime:0
session.cookie_path:/
session.cookie_secure:Off
session.entropy_file:no value
session.entropy_length:0
session.gc_maxlifetime:1440
session.gc_probability:1
session.name:PHPSESSID
session.referer_check:no value
session.save_handler:files
session.save_path:/tmp
session.serialize_handler:php
session.use_cookies:Off
-------------------------------
よろしくお願いします.m(_ _)m
<a href='<?php echo $HTTP_SERVER_VARS['PHP_SELF'] ."?" . SID?>'>
session.name:PHPSESSID
SIDとPHPSESSIDどちらかに統一してみれ。
0176nobodyさん
03/02/18 16:16ID:TGuboxDy<form action="test.php" method="post">
<input type="hidden" name="action" value="regist">
<input type="submit" name="submit" value="regist">
</form>
<?php
if ($action == regist){
print("<p>hoge</p>\n");
}
?>
と記述したtest.phpのSUBMITボタンを押しても<p>hoge</p>が出てきません。
なにが足りないのでしょうか?
0178176
03/02/18 16:36ID:???PHPって楽しいでふ。
0179173
03/02/18 18:47ID:2X2nTsk2<?php
ini_set('session.use_cookies', 0);
session_start();
if (isset($HTTP_SESSION_VARS['count']))
{
$HTTP_SESSION_VARS['count']++;
}
else
{
$HTTP_SESSION_VARS['count'] = 1;
}
?>
<a href='<?php echo $HTTP_SERVER_VARS['PHP_SELF'] ."?PHPSESSID=" . $PHPSESSID ?>'>
<?php echo $HTTP_SESSION_VARS['count'] ?>
</a>
と変えたんですがリンク先が[test.php?PHPSESSID=]と空になります…
$PHPSESSIDでいいんですよね?
なんもでないのでSIDにしてみました.
スクリプト自体に間違いはないんでしょうか?
またおねがします.
すまん、最近そこら辺り使わないので、間違いや。
確か、定数SIDには"PHPSESSID=............"が入ってるはずだ。
それと定数PHPSESSIDにセッションIDが入る。
ので、
<a href='<?php echo $HTTP_SERVER_VARS['PHP_SELF'] ."?" . SID?>'>
でOKの筈なんだけど、定義済み定数ってなんとなく不安定?
<a href='<?php echo $HTTP_SERVER_VARS['PHP_SELF'] ."?PHPSESSID=" . $PHPSESSID ?>'>
$PHPSESSIDじゃなくてPHPSESSID ($無し)
ショートタグが可能なら、
<a href="<?=$HTTP_SERVER_VARS['PHP_SELF']?>?PHPSESSID=<?=PHPSESSID?>">
と書いて味噌。
<a href="<?=$HTTP_SERVER_VARS['PHP_SELF']?>?<?=SID?>">
うーん、こんな書き方してたっけかなぁ...
0181173
03/02/19 01:04ID:oUZRirLtPHPSESSID($無し)だと?PHPSESSID=PHPSESSIDと
もろそのままに出ちゃうんですよ.
んで,SIDのほうはちゃんと
?PHPSESSID=b31b5948f0a507ac51f24b944d130d07
というIDが生成されるんですが全然カウンターが増えないんですよ…
IDが生成されるのにcountが取得できないってことは
$HTTP_SESSION_VARS['count']あたりが違うのでしょうか?
Version 4.0.6なので$_sessionは使えないようですし…
だれか助けて〜…
0182nobodyさん
03/02/19 02:04ID:???変数初期化した?
$HTTP_SESSION_VARS['count'] = 0;
とか
NULLな変数をインクリメントしても値は増えんぜよ。
で、うちは --enable-trans-sid してるのに何時の間にかSIDが使えねぇ・・・
何故、_| ̄|○ <ぬるぽ〜
0183182
03/02/19 02:08ID:???session_start();
if (!isset($_SESSION['test'])){
$count = 0;
$HTTP_SESSION_VARS['count'] = $count;
}
else $count++;
でどうよ?
0184173
03/02/19 02:44ID:oUZRirLtだめです…
たぶんスクリプト自体はPHP4.2.2で動いてるので
問題ないと思うんですよ… PHP4.0.6で動かない…
ん〜なんでだー…? (;_;)<HELP!
0185nobodyさん
03/02/19 03:39ID:???4.0.6の時代って$HTTP_SESSION_VARSに代入するだけで登録できるんだっけか?
PHPSESSIDに何も入っていないのは何でだろ。
それが妖しいが、やけくそで、
session_id($HTTP_GET_VARS['PHPSESSID']);
session_start();
以下同じ。
でどよ。
0187nobodyさん
03/02/19 04:07ID:???if (!session_is_registered('count')) {
session_register("count");
$count = 0;
}
else {
$count++;
}
?>
は?
0188173
03/02/19 13:27ID:pmHLZySe結論からいうと187さんのソースで動きました!!激感謝!
ちなみに186さんの方法だとセッションIDが空になってしまい
ダメでした.でもアドバイスありがとうございます.
結局のところ$HTTP_SESSION_VARSのセッション変数(?)
が使えない設定ということなんですかねぇ?
コンフィギュアってのはなんでしょ?php.iniとは別なんでしょうか?
とりあえず解決しました.ありがとうございます!m(_ _)m
0189nobodyさん
03/02/19 15:20ID:???ていうかchm版PHPマニュアル(日本語)をPHP日本ユーザ会から落としてこれば解決していたと思われ。
セッション関数の項を読んでみれ。
コンフィギュアってconfigureのことじゃね?
0190nobodyさん
03/02/20 00:21ID:???$a = "abc日本語defです";
$b = 日本語削除関数($a);
echo "$a ⇒ $b";
とやったときに
abc日本語defです ⇒ abcdef
と出力されて欲すぃんですが。
0191nobodyさん
03/02/20 00:26ID:???preg_replace("/[A-Za-z0-9\s記号スタート-記号終了]/g"."",$str);
じゃダメだな・・・寝よっと。
0192nobodyさん
03/02/20 01:22ID:???0193nobodyさん
03/02/20 01:40ID:???s/[\x80-\xff]//g
こんなんかw
0194nobodyさん
03/02/20 02:35ID:???0197しろうと【レベル1】
03/02/20 10:12ID:???JavaScriptを勉強中なんですが、大きな壁にぶち当たりました・・。
下のアドレスからソースコード見てみて、何がおかしいのか、なぜ動かないか
教えていただけませんか?
チェックボックスの飲み物の値段*数量が一番右のテキストボックスに表示され、
下の”ShowTotalHere”の所に合計の値段が出るようにしたいのですが。
どなたか教えてください。お願いします。
ttp://gladstone.uoregon.edu/~shasegaw/example.html
0199nobodyさん
03/02/20 10:43ID:FSsqjxufPHP3からオラクルのストアドファンクションの引数に
配列を送る方法を教えてください。
よろしくお願いします。
0200「タ」
03/02/20 13:03ID:6m4cOImb$s=~ s/([\xa1-\xfe\x8F].)//g ;
Shift_jisなら
$s =~ s/([\x80-\x9f\xe0-\xff].)//g;
ですね。
0201「タ」
03/02/20 13:04ID:6m4cOImb0202しろうと【レベル1】
03/02/20 14:19ID:???すみませんでした。Web製作板に行ってきます。
0203nobodyさん
03/02/21 00:12ID:???0205[PhP]
03/02/22 18:44ID:Wnbg1x3xニュースサイトを切りぬいているのですが、
その際、<img src="〜">等のタグを切り出さない
方法はないでしょうか。
0207nobodyさん
03/02/22 21:48ID:???前のバージョンから、アップグレードしたら、朝の3時頃になると決まって次のエラー
を吐くようになりました。
Warning: chmod failed: Operation not permitted in /xxx//Smarty.class.php on line 1995
Warning: utime failed: Operation not permitted in /xxx/Smarty.class.php on line 1285
Smarty.class.php の該当行を見てみると、以下のfunctionを呼んでいると思われます。
function _get_microtime()
{
$mtime = microtime();
$mtime = explode(" ", $mtime);
$mtime = (double)($mtime[1]) + (double)($mtime[0]);
return ($mtime);
}
時間関係の問題と思うのですが、なぜエラーが出るのかわかりません。
ちなみに、サーバは日本のレンタルサーバで時刻は合ってると思っています。
(前のバージョンでは大丈夫だったため)ちなみにuse_subdirはfalseです。
他のXOOPS2でもこんな問題が出ていなかったので、私だけの特殊な問題のように
思います。
何かわかりましたら、ご教授お願いします。
0209nobodyさん
03/02/23 05:59ID:2piid1+Y例としてのディレクトリです。実際はホームの下です。
/home/user/public_html/... のような感じです。
エラーメッセージを見ると時間関係じゃないように思えるが。
smartyなんて使ったことないからよくわからんが、
操作しようとしているファイルかディレクトリが存在しないか、
操作する権限がないんじゃねぇの?
#初心者コーナースレはそこそこ盛り上がっているが、その分
#こっちが廃れてきたな。
#それともYBBがアク禁になっているせいか(w
0211nobodyさん
03/02/23 06:43ID:???レスさんくす。
確かに言われてみれば時間関係でないような…
でも、毎日朝3時にエラーが出始めるのは、全く意味がわからなく…
#ちなみにYBBですが、書き込みできています。
■ このスレッドは過去ログ倉庫に格納されています