【PHP】下らねぇ質問はここに書き込みやがれpart16
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2006/02/05(日) 22:35:34ID:sf8bx52Dここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
本スレ【PHP】質問スレッドpart32【php】
http://pc8.2ch.net/test/read.cgi/php/1136276300/
前スレ【PHP】下らねぇ質問はここに書き込みやがれpart15
http://pc8.2ch.net/test/read.cgi/php/1137236771/
過去スレは>>2
0002nobodyさん
2006/02/05(日) 22:37:11ID:sf8bx52D【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/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
【PHP】下らねぇ質問はここに書き込みやがれpart10
http://pc8.2ch.net/test/read.cgi/php/1127581425/
【PHP】下らねぇ質問はここに書き込みやがれpart11
http://pc8.2ch.net/test/read.cgi/php/1129582431/
【PHP】下らねぇ質問はここに書き込みやがれpart12
http://pc8.2ch.net/test/read.cgi/php/1130835396/
【PHP】下らねぇ質問はここに書き込みやがれpart13
http://pc8.2ch.net/test/read.cgi/php/1132921016/
【PHP】下らねぇ質問はここに書き込みやがれpart14
http://pc8.2ch.net/test/read.cgi/php/1134868212/
0003nobodyさん
2006/02/05(日) 22:45:45ID:???0004前スレ993
2006/02/05(日) 22:48:34ID:???申し訳ない。
OSはXPです。
設定ですが・・・
拡張子は「.php」で実行プログラムは「c:\php\php-cgi.exe」です。
他にこれといって設定をいじっているわけではないのです。
ためしにAN HTTPDの設定を「c:\php\php.exe」で<?php phpinfo(); ?>を実行してみたら、
テキストを返してきました。こちらを実行する分には問題ないみたいです。
あと、04WebServerで「php-cgi %FilePath% %Query%」でやってみましたが、
同じように実行できませんでした。
php.iniあたりがかかわってくるのでしょうか。
コマンドラインで実行できるだけあって不思議で仕方ありません。
0008nobodyさん
2006/02/05(日) 23:11:19ID:???php.iniを覗くよりももう一度入れなおした方が楽じゃないかな。
AN HTTPDはPHPの実験に入れたの?
それとも前々からAN HTTPDは使っててPHP入れたらできなかったって事?
暇があればApacheで試してみてみ。
今の段階だとPHPの設定かAN HTTPDの設定か分からんけどApacheでも試せばより厳密に特定できる。
0009nobodyさん
2006/02/05(日) 23:23:41ID:???PHPだけの問題じゃないんだけどサーバ間通信って一体何なのでしょうか?
FORMとは違うものなのでしょうか?
0010前スレ993
2006/02/05(日) 23:27:46ID:???AN HTTPDのドキュメントルートにしたら正常に動作しました。
たかが「doc_root」の設定でも、重要なんだな。
いい勉強になりました。
つまらない質問に答えてくれてdクス >>995 >>6 >>8
0011シャットダウン2世@初心者
2006/02/06(月) 00:04:49ID:XTfmVf59を見ながらwin2000+apache2.0.55+PHP5.1.1+Mysql5.0.18で 接続テストしてるんですが、「test」というデータベースに接続しようとすると、
Warning: mysql_connect() [function.mysql-connect]:
Can't connect to MySQL server on 'localhost' (10061)
in C:\Program Files\Apache Group\Apache2\htdocs\mytest1.php on line 4
can not connect db
という文が出て接続できません。
ソースはホームページそのままコピペで
<?
//DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--root
$dbHandle = mysql_connect("localhost","root","a");
//DBの接続に失敗した場合はエラー表示をおこない処理中断
if ($dbHandle == False) { print ("can not connect db\n"); exit; }
//db名 test
$db = "test";
(中略 HTML文を出力する文句が書いてあります)
//結果レコードをメモリから開放
mysql_free_result($rs);
//DBへの接続を切断
mysql_close($dbHandle); ?>
ですが、パスは「a」にしてたのでこれに変えてみたけどダメです。
何がおかしいのでしょうか。 ちなみに、apacheの
「あなたもくろみ通りに余裕でこのページが見えているでしょうか?」
は出てます。phpinfo()も見ることが出来ます。
mysqlでデータベース「test」も作ってあります。
0013nobodyさん
2006/02/06(月) 00:16:39ID:???header("HTTP/1.1 403 Forbidden")
とやったところ、確かに403とヘッダーに出力されたのですが、
鯖が規定する403へ飛んでくれません。
どうすれば規定の403ページへ飛んでくれますか?
0015nobodyさん
2006/02/06(月) 00:26:04ID:???Cでのソースは
#define foge(a) (((a)) ? (TRUE) : (FALSE))
int k = foge (-1);
という感じです。
(((a)) ? (TRUE) : (FALSE))
については三項演算子がPHPでも扱えるので実装できるのですが、
foge(a)の部分が使えると助かります。
0016nobodyさん
2006/02/06(月) 00:37:14ID:???素直に関数にしちゃえばいいかと。
Cと違ってdefineにプリプロセッサによる効率改善の効果があるわけでもなし。
0017nobodyさん
2006/02/06(月) 00:43:10ID:???やっぱりそうですよね。
スーパーグローバル変数の変数があればそれを返し、
何も無ければ""と空を返すというのを作りたかったのですが、関数にしました。
function ischeck ($a){return ((isset($_REQUEST[$a]))?$_REQUEST[$a]:"");
$test = ischeck ('test');
0018nobodyさん
2006/02/06(月) 00:58:15ID:???{global $$a;((isset($_REQUEST[$a]))?$$a=$_REQUEST[$a]:"");}
$test = ischeck ('test');
随分と行儀の悪いコーディングをしてしまった…
0019nobodyさん
2006/02/06(月) 00:59:41ID:???00209
2006/02/06(月) 01:22:28ID:???サーバ間通信をするには何か特別な関数とか必要なのですか?
イメージはなんとなく掴めて来たのですが実装方法がなんとも・・・
0021nobodyさん
2006/02/06(月) 01:35:53ID:???>鯖が規定する403へ飛んでくれません。
4xxで飛ぶ?headerでHTTPのレスポンスを出しているのなら
エラーのコンテンツを提供するのは、そのスクリプト自身ではないのか。
Apacheが出してる403のコンテンツと同じものを出したいのなら
ApacheのErrorDocumentとPHPスクリプトのエラー出力内容を同じにする。
002420
2006/02/06(月) 01:54:47ID:???はい、HTTPでの通信を、って感じです。
SOCKETって確かLinux上のPHPとかならコンパイルのときにコンフィギュアで指定しないと
使えないんですよね?
>>23
いや、行ったことないです。
0025nobodyさん
2006/02/06(月) 02:05:02ID:???PHP書籍スレでよく似た流れを見たから同じ人なのかな?と思ってね。
>ソケット関数を使ったツールを作りたいんだけど、いまいち使い方がわからん
>参考になる本とかある?青マンモスに詳しく載ってる?
って質問に、「RFC読むかC/C++のソケットプログラミング本を読むのがいいよ」みたいな回答を
002620
2006/02/06(月) 02:08:56ID:???そうでしたか。
すんません、俺まだまだそんなレベルじゃないっす('A`)
AサーバからBサーバに何かパラメータを渡したい時はやっぱりフォームとは違う
処理とか関数が必要なんですよね?それこそSOCKETとか。
俺も明日本探しに行ってきます。
0028nobodyさん
2006/02/06(月) 02:15:43ID:???そのくらいの用途ならわざわざソケット関数使わなくてもいいよ。
(fsockopen使ったりもするけど)
PEAR::HTTP_Clientとか使ってはどうかな?
002924
2006/02/06(月) 02:18:19ID:???Bサーバーに値を渡すだけなら単にBサーバーに用意したPHPのページを
GETで呼び出すだけでもいいんじゃないの?
どんなデータをどんなタイミングで渡そうとしてるか知らないけど。
allow_url_fopenを有効にしてfile("http://Bサーバー/受信ページ?データ");でよさげ。
003020
2006/02/06(月) 02:31:36ID:???ありがとうございます!!
何を渡して何を貰うのか等は理解しているのですが、
今一「どうやってデータを渡せば良いのか」が解って
いませんでした。
何か実装方法はいろいろありそうですね・・・
皆さんの意見を参考にしていろいろいじって見ます!
003227=29
2006/02/06(月) 02:34:10ID:???0033nobodyさん
2006/02/06(月) 03:05:46ID:???忘れるなよ
http://wiki.2chx.net/php/
0034nobodyさん
2006/02/06(月) 03:57:38ID:???0035nobodyさん
2006/02/06(月) 06:41:38ID:???ActiveXを組み合わせる以外に方法はありませんか?
0037nobodyさん
2006/02/06(月) 10:57:08ID:???それを読み込む効率的な方法はどうでしょうか。
0038nobodyさん
2006/02/06(月) 11:14:02ID:???って感じで処理を区別してるのですが
エンターキーを無効して上のように処理する方法はないでしょうか?
JSの方になるのでしょうか?スレ違いならすいません。
0039nobodyさん
2006/02/06(月) 11:19:41ID:???結局 $line = `tail -1 $filename`; が1番速くて省メモリだった。という経験はある。
0043前スレ931
2006/02/06(月) 11:39:05ID:???あくまでも拾い物なんで、テキトーに使ってやってください。
ついでに、それが含まれたweb iconセットをうpってきました。
これだけでほとんどいけてます、ウチだと。
ttp://up.spawn.jp/file/up11206.zip
004443
2006/02/06(月) 11:39:53ID:???ttp://up.spawn.jp/index.html
ここのup11206ですー。
0045nobodyさん
2006/02/06(月) 13:31:31ID:???そのアイコンってどう使うの?
何処に設定するの?
教えてちょ。
0046nobodyさん
2006/02/06(月) 13:46:42ID:???0047nobodyさん
2006/02/06(月) 15:59:11ID:???フリーメールってありますよね、@melu.jpとかの。
ああいうフリーメール発行サイトの運営をしようと思ったらどういう
知識が必要ですか?
かなり恥ずかしい質問ですが。。
レンタルサーバ(さくら)とかでも出来るものでしょうか?
0048nobodyさん
2006/02/06(月) 16:18:54ID:???さくらサーバーでメルアドを作るの?それは無理じゃないかなぁ。
自宅鯖でやるならまだしも。
というか、板違い。
何処の板が適正か俺には判断できないが。
0050nobodyさん
2006/02/06(月) 16:27:36ID:???サーバを管理できるだけの技術と権限が必要。
共有サーバでは権限が制限されるので、ほぼ無理。
メアドを無限に発行してくれるサービスであればできなくもないけど、
不特定多数による利用は規約で認められていないと思う。
専用サーバを借りるか、自鯖を建てるのが妥当かと。
詳しくはサーバ板で訊いた方がいいと思われ。
0052nobodyさん
2006/02/06(月) 17:01:36ID:???PHPで出来たWebメール機能も持ったフリーメール管理ツールがあるので
PHPの話に持っていけなくもないが、基本的にはスレ違い・板違い。
収容したドメインに対してメールアカウント追加のI/Fを
提供してるところも少ない(でも少ないけどあるよ)ので、
結局はサーバの管理権限を確保することが必要。
005347
2006/02/06(月) 17:31:22ID:???そうですかー、自宅サーバがあったほうがいいんですね…
プログラムの練習のためにも必要だろうし
でも今使ってるパソより練習サーバ用に買うマシンの方が
性能よくなりそうなんですよね、今使ってるの古いからw
なんか、いい方法探してみます
ありがとうございました!
0054nobodyさん
2006/02/06(月) 17:32:56ID:???むかーし、某所でCで最高速のtailコマンドを実装するコンテストみたいのがあったけど、
fseekで後ろから1024バイト単位など適当なサイズで読み込みかけてって、
中身に改行コードが見つかればそこから末尾の行を抽出する、みたいな手法があったよ。
まともなtailコマンドだと1行の長さも抽出する行数も不定なんでチューニングに
かなり神経使うロジックを組んでたけど、大体似たような長さの行ばかりで
しかも抽出対象が1行だけなら簡単なロジックで高速に抜き出せると思う。
0055nobodyさん
2006/02/06(月) 17:39:47ID:???自分で鯖を一から実装したいってのなら別だけど。
0056nobodyさん
2006/02/06(月) 17:44:20ID:/04IpGBt0057nobodyさん
2006/02/06(月) 17:54:20ID:???契約者が用意されたコンパネなどを使って手動でアカウントを
管理するのはあるけど、巷のフリーメールのように第三者が
勝手に追加削除できるようなものは極少ない。
フリーメールにありがちなSPAMの温床になるから。
契約者が用意されたコンパネを叩く中間的なスクリプトを
書いて第三者に提供すればいいのだけどね。
0058nobodyさん
2006/02/06(月) 18:16:36ID:???0059nobodyさん
2006/02/06(月) 18:19:54ID:nFVQbOKx0060nobodyさん
2006/02/06(月) 18:20:17ID:???その別ファイルとやらを require_once すれば準備は出来てる。
これでワカランならマニュアル見ろ。全然マニュアル見ないで質問してるだろオマエ。
0062nobodyさん
2006/02/06(月) 18:33:18ID:???とすると、エラーつうかわー人具がでるんですよね
0063nobodyさん
2006/02/06(月) 18:41:18ID:???0065nobodyさん
2006/02/06(月) 19:14:16ID:???つか、include("aaa.php");は徹ようになったんですが
include("aaa.php?mode=aa");とかするとまた同じエラーがでるんですよねこれ
なんか、そのファイルが無いいたいなエラーなんですけどね
0066nobodyさん
2006/02/06(月) 19:17:06ID:yVSQC/2Iheader("Content-Type: text/html; charset=utf-8");
header("Content-Style-Type: text/css; charset=utf-8");
header("Content-Script-Type: text/javascript; charset=utf-8");
?>
[06-Feb-2006 19:07:14] PHP Warning: Cannot modify header information - headers already sent
by (output started at /home/user/www/index.php:1) in /home/user/www/http-header.inc on line 4
このようなエラーが出てしまいます。
どうすれば良いでしょうか?
0067nobodyさん
2006/02/06(月) 19:24:26ID:BYKAG910例えばccc.phpでaaa.phpを読み込んでるなら、aaa.phpへの引数を
aaa.php?mode=aaとするのではなく、ccc.php?mode=aaとするのはどうだろうか?
0069nobodyさん
2006/02/06(月) 19:27:00ID:???includeとかではファイルをそのまま読み込むだけで実行はしないので、?〜のパラメータは無意味な上に
それくっついたファイル名として扱われるので、当然そんなファイルは存在しないことになる。
0070nobodyさん
2006/02/06(月) 19:28:44ID:???全然マニュアル見ないで質問してるだろオマエ
0074nobodyさん
2006/02/06(月) 19:42:51ID:yVSQC/2Iすみません、間違えました。
<?php
if (isset($_SERVER["HTTP_ACCEPT"])) {
$HA = explode(",", $_SERVER["HTTP_ACCEPT"]);
if (in_array("application/xhtml+xml", $HA)) {
header("Content-Type: application/xhtml+xml; charset=utf-8");
} else {
header("Content-Type: text/html; charset=utf-8");
}
} else {
header("Content-Type: text/html; charset=utf-8");
}
header("Content-Style-Type: text/css; charset=utf-8");
header("Content-Script-Type: text/javascript; charset=utf-8");
?>
これで、5・12・13行で>>66のようなエラーが出ます。
しかも text/htmlが送られてくるし…
0075nobodyさん
2006/02/06(月) 19:52:25ID:???0079nobodyさん
2006/02/06(月) 20:41:13ID:???どれが質問者か分からない俺逆エスパー
0080nobodyさん
2006/02/06(月) 21:15:30ID:???>headers already sent
であると指摘しているのだが
0082nobodyさん
2006/02/06(月) 23:28:55ID:???マニュアルもロクに読めないやつらが質問するのがくだ質だろ。
0083nobodyさん
2006/02/06(月) 23:50:09ID:???008568
2006/02/07(火) 00:10:07ID:???コードが変わってもアドバイスは同じ。
いきなりそのファイルにアクセスして
そのエラー表示なら
余計な空白、改行などが入っているのだろうと思われる。
0086nobodyさん
2006/02/07(火) 01:11:11ID:???<?
function kansai($text){
$text=str_replace("ありがとうございました","おおきに",$text);
}
?>
上記の内容のosaka.incというファイルを作成し
外部ファイルからosaka.incをrequire_once print(kansai($text)) とやると 中に入っていたはずの文字列が全て消えてしまいます。
どこがおかしいのでしょうか?使う関数が間違っているのでしょうか?
0087nobodyさん
2006/02/07(火) 01:17:12ID:vK7c16Ac0088A子
2006/02/07(火) 02:06:08ID:Ru+YG/77xamppを導入したら、今まで動いていたソースが動かなくなりました。
具体的な不具合は、掲示板の投稿ボタンを押しても登録されませんし、
表示の更新も行われません。
おそらくクライアントよりサーバーへデータが送信されていないと思われます。
原因と推測される設定ファイルなどをお教えして頂ければ嬉しく思います。
質問に不備がありましたら再度投稿させて頂きます。
よろしくお願いします。
0089A子
2006/02/07(火) 02:09:29ID:Ru+YG/77データベースへの接続は成功しています。
コンソールよりテーブルに対してはデータを追加できます。
0090nobodyさん
2006/02/07(火) 02:18:04ID:???前の環境とやらがレン鯖とかで設定ファイルが見れないなら、phpinfoでも可。
この先はエスパーに任せた
0092A子
2006/02/07(火) 02:40:27ID:Ru+YG/77Onと設定されています。
0095nobodyさん
2006/02/07(火) 13:57:44ID:???0096nobodyさん
2006/02/07(火) 14:16:54ID:???0098nobodyさん
2006/02/07(火) 16:22:32ID:???趣味[ ](変数はhobby)というテキストボックスに[野球,漫画,旅行]と入れたとします。
結果表示のプログラムで
$kekka=array($hobby);
print"$kekka[0]";
と記載したら、「野球」が出ると思ったのですが、そのまま「野球,漫画,旅行」とでます。
どうすれば配列として$hobbyのデータを扱う事が出来るのでしょうか?
0099nobodyさん
2006/02/07(火) 16:31:59ID:W5Ufji/6あるサブドメイン配下の「*.php」はPHP4とみなし、
あるサブドメイン配下の「*.php」はPHP5とみなすようにって、
できますか?
できるとしたら、どうすればよいのでしょうか?
よろしくお願いいたします
0100nobodyさん
2006/02/07(火) 16:42:29ID:???それぞれのドメインを別のサーバーに割り振るようにDNSを設定しちゃって、
別々のマシンで動かしちゃうとかはダメ?
010499
2006/02/07(火) 17:14:43ID:???php4とphp5がみにいくphp.iniを別個に用意することはできないでしょうか?
0106nobodyさん
2006/02/07(火) 17:54:04ID:???PHPのコンパイル時にかっちり指定してもいいし、
CGI版なら普通な設定ならば、違うものを読みにいくでしょ?
0107nobodyさん
2006/02/07(火) 18:34:21ID:???ここでいいのか判らないけど、質問します
現在ロリポップでmovable type(SQLite)を運営していますが
さくらのプレミアムプランへの移行を考えています
この場合、例えば設定を書き換えた上で
ダウンロードしたファイルをそのまま丸ごとアップして
パーミッションさえ設定すればデータは復旧できるのでしょうか?
それとも、インストールから一通りの手順を踏む必要があるのでしょうか
0108nobodyさん
2006/02/07(火) 18:44:11ID:z2Ed5501ttp://www.php.net/manual/ja/ref.fdf.php
を読み、Adobeのサイトで FDF Toolkit というのを
ダウンロードしようとしましたが、住所氏名電話番号使用目的など
たくさん書いて、Adobeの人に承認されないとダウンロードできません。
ttp://partners.adobe.com/public/developer/acrobat/fdf/topic.html
なので誰かください。
# FDF Toolkit for Windows (ZIP: 2.2MB) [FDF Toolkit access approval required]
FPDFはあまりに煩雑すぎてイヤです。
0110nobodyさん
2006/02/07(火) 18:52:34ID:???簡単なメール送信フォームを作成したのですが、メール送信後に
511 Headers specify no receipients.
というエラーメッセージが出ます。
mb_language("ja");
mb_internal_encoding("sjis");
も指定してます。どうしたら出ないように出来るのでしょうか?
0113nobodyさん
2006/02/07(火) 20:49:13ID:???そのメール内容は送信相手にちゃんと届いてますか?
そのエラー訳したら
「ヘッダーは受取人を全く指定しません」
ってなったけど。あとreceipientsではなくrecipientsだと思う
0114nobodyさん
2006/02/07(火) 21:25:39ID:QxUNaPeItest/&test2/&test3/&
という文字列から&の直前のスラッシュのみをすべて取り除きたいのですが
正規表現に詳しい方がいたらやり方を教えてください。
0115nobodyさん
2006/02/07(火) 21:25:43ID:xKyeolaWmethodがPOSTになっているフォームの内容をPHPで送信したいんですが、どうやれば良いんでしょうか?
例えば、ユーザIDとパスワードを求めて来るページに、PHPで自動的にログインしたいんです。
そのあと、戻って来たページ(html)を読み込みたいんです。
fopen()でURLを指定する事も出来ませんよね。
よろしくお願いします。
0116nobodyさん
2006/02/07(火) 21:34:21ID:???&の直前のスラッシュって条件なら、
正規表現使わなくても
$text = test/&test2/&test3/&;
$text = str_replace("/&", "/", $text);
でできないかな。
的外れならスマン
0117nobodyさん
2006/02/07(火) 21:34:54ID:???だった
0120nobodyさん
2006/02/07(火) 21:41:49ID:???(
[0] => あああ
[1] => いいい
[2] =>
[3] => ううう
[4] => えええ
)
から、空の要素を削除して
Array
(
[0] => あああ
[1] => いいい
[2] => ううう
[3] => えええ
)
にするにはどうすればよいのでしょうか。
0121nobodyさん
2006/02/07(火) 21:44:53ID:???0122nobodyさん
2006/02/07(火) 21:50:12ID:QxUNaPeIおお!!ビンゴです!!
わたしが難しく考えすぎていたみたいです。
どうもありがとうございました。本当に助かりました。
0127nobodyさん
2006/02/07(火) 23:29:30ID:xKyeolaWなるほど、参考になりました。
どうもありがとうございました。
0128nobodyさん
2006/02/08(水) 01:14:09ID:???あれってGDでも出来るんですか?
普通の文字ならまだしも、無駄にふにゃふにゃしてますよね。
何かフォントでもあるんでしょうか。
0129nobodyさん
2006/02/08(水) 01:27:12ID:???0130nobodyさん
2006/02/08(水) 02:03:14ID:???GDでできなくはないけど結構面倒くさいと思う。
元のフォント自体があんな風になってるわけじゃなく、フォントから生成した画像に対して
ピクセル単位にデータの位置をずらしていく、いわゆる画像フィルタ処理のライブラリを
用意しておいて、それを通して加工した画像を表示させてる感じ。
PHP+GDでもピクセル単位での読み出しと出力はできるので頑張れば同じような
画像加工も可能だとは思うけど、一発でそういう変換ができるわけじゃない。
自分で頑張って座標変換の計算をするような演算式を書く必要あり。
ま、画像の加工と言っても基本的には座標位置の変換だけなので、
画像変換処理の中では比較的楽な部類ではあると思うけどね。
(左右ずらしだけじゃなく回転や歪みが入ってくると計算が面倒になってくるけど)
0131nobodyさん
2006/02/08(水) 02:13:16ID:???0132nobodyさん
2006/02/08(水) 02:18:08ID:xBsMO0LFそういうのを作ってくれるCGIがあったはずなので
それ探して使えば?
0133nobodyさん
2006/02/08(水) 02:30:02ID:xmigkNJp0134nobodyさん
2006/02/08(水) 02:40:34ID:T0ghpS/6どうしたらいいのかなぁ。
<?php
include("jcode-LE.php");
if ($fp = @fopen("http://www.yahoo.co.jp", "r")) {
while (!feof($fp)) $data .= mb_convert_encoding(fgets($fp, 1024), "SJIS", "EUC-JP");
fclose($fp);
}
$match_all = preg_match_all("%<a href=\"http://rd.yahoo.co.jp/toppage/topics/(.+?)\">(.+?)</a>%is", $data, $item);
echo "Yahoo!ニュース <a href=\"http://www.yahoo.co.jp/r/fc1\" target=\"_blank\">トピックス</a>\n";
echo "<ul>\n";
for ($i=0; $i< $match_all; $i++) {
$url = "http://dailynews.yahoo.co.jp/fc/". $item[1][$i];
$title = $item[2][$i];
$title = strip_tags($title);
echo "<li><a href=\"". htmlspecialchars($url) ."\" target=\"_blank\">". htmlspecialchars($title) ."</a></li>\n";
}
echo "</ul>\n";
echo "Yahoo!ニュース <a href=\"http://www.yahoo.co.jp/r/fc2\" target=\"_blank\">一覧</a>\n";
?>
0135nobodyさん
2006/02/08(水) 02:49:53ID:???0137nobodyさん
2006/02/08(水) 05:28:53ID:???php|architectまたはPHPプログラマーズマガジンの2003年2月号で
「Building a Turing Test with PHP and the GD Library
(PHPとGDライブラリでチューリングテストを試みる)」
http://www.asial.co.jp/magazine/backnumber/200302/
という記事がある。自分で作るなら参考にすると良い。
やってるのは描画位置ずらしと違う色の線を重ねるパターンだけだけど。
他に回転や複数フォントの組み合わせもやると、更に高度になるけど
スクリプトローダー相手にはそこまでしなくても、まあ大丈夫。
あと探せばライブラリは何個かあるよ。
0138nobodyさん
2006/02/08(水) 05:33:22ID:???つ http://www.linkclub.or.jp/~ma3ki/webutil/jpgraph/howtomake-jpgraph.html#antispam
0139nobodyさん
2006/02/08(水) 08:40:33ID:???0140nobodyさん
2006/02/08(水) 09:44:40ID:???>ユーザIDとパスワードを求めて来るページに、PHPで自動的にログインしたいんです。
sessionとかcookieとか使ってみたらどうよ。
0141シャットダウン2世@初心者
2006/02/08(水) 09:50:48ID:HTXUrlQxレスサンクスです。SQL5を再インストールしたら(汗)
PHPで書いた文でWebページにテーブルが表示されるようになりました。
いろんなバージョンをいじくってたら、ポートが3307になってたり
したけど、今はSQL5ひとつだけのポートは3306になっている模様。
3つほどさらに質問があるんですが、
1、PHPの設定はSJISにしてるんですが、とってきたレコードが文字化けします。
2、PHPのプログラムで接続、クローズしてもW2kのサービスで反映されてません。
ブラウザでは「connect DB」とか「close DB」とか
ちゃんと表示されているのに。
3、「insert into …」で新しい行を書き込んだら、
ブラウザでは「書き込みました」と出るのに、Mysqlで見てみるとレコードが
入ってません。
オレのPCには魔物が天狗がひそんでいるんでしょうか。
0142nobodyさん
2006/02/08(水) 10:02:29ID:???そこでsessionやcookieきたのにワラタwwwwww
>>126 がいってる通りPEARのHTTP_Requestを使うのが一番楽い。
コードで記述すると以下みたいな感じになる。
$req = new HTTP_Request("URI");
//POSTを定義
$req->setMethod(HTTP_REQUEST_METHOD_POST);
//実際に渡すPOSTデータをセット
$req->addPostData("foo", "var");
//リクエスト
$req->sendRequest();
//ヘッダー取得
$header = $req->getResponseHeader();
//レスポンスコード取得
$code = $req->getResponseCode();
//リクエスト後のHTMLを取得
$body = $req->getResponseBody();
詳しくは以下参照
ttp://pear.php.net/manual/ja/package.http.http-request.php
そういやHTTP_RequestのsetProxyメソッドを使用した際に
timeout処理の部分にバグがあったから手直しした事があるな。
0143nobodyさん
2006/02/08(水) 10:13:59ID:???まず1に関して
何をSJISにしてるんだ?
内部コード?出力コード?
まぁどっちにしろ、MySQL側の文字コードとPHP側の文字コードがあっていないからそういう事態が発生する。
2に間して
MySQLの終了が出来ないと言ってるのか?
もしそうならば勘違いしている。
PHP側がMySQLを起動終了させるわけではなく、アクセスのオープン、クローズをしているわけだ。
3に関してはコードを見ないとなんとも言えないな。
0146nobodyさん
2006/02/08(水) 11:58:52ID:???特に変更する必要がある点などあるのでしょうか?
4で動いていれば基本的に5でも問題なく動作するのでしょうか?
0147nobodyさん
2006/02/08(水) 12:09:46ID:???>>1
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
0149nobodyさん
2006/02/08(水) 15:55:23ID:zajb1emBpear upgrade pear
したら、
requires package 'PEAR' >= 1.3.3
とメッセージが出てアップグレードできません。
確かにインストールされてる PEARは1.3.1 です。
アーカイブをダウンロードしてきて、
手動で pear/PEAR ディレクトリを書き換えてしまっていいのでしょうか?
0150nobodyさん
NGNGポストされるファイルのサイズを制限したいんですが
どうしたらいいですか?
0152nobodyさん
2006/02/08(水) 18:21:31ID:???<?
$max_size = 1024 * 100;
$kb = $max_size / 1024;
if($_FILES["hoge"]["size"] > $max_size){
exit("アップロードされたファイルは最大ファイルサイズ(".$kb."KB)を超えています。");
}
?>
0153nobodyさん
2006/02/08(水) 18:23:28ID:0zkvAuO5phpのコードに出てくる「 => 」の意味は何ですか?
貰ってきたコードに出てきました。
数字=>"ファイル名"みたいになってます。
0156nobodyさん
2006/02/08(水) 18:35:32ID:???ini_set関数でも設定は変えられるわな。
場合によっては、upload_max_filesizeだけでなく、post_max_sizeも変える必要もあるかと。
>>152
これって、実際にPOSTされた後でしか実行できないよね?
0157149
2006/02/08(水) 18:36:25ID:zajb1emB0158nobodyさん
2006/02/08(水) 18:37:04ID:0zkvAuO5うひょー。どうもです。
=>を使えば、順番にかかわらず配列の中身をコントロールできますね。
すげー。わかりやすいし。
ありがとうございました。
0159nobodyさん
NGNGどうもありがとうございます。
>>151
あ、.htaccessでもできるんですか。
それは知りませんでした。
てっきりphp.iniでしかできないのかと思ってました。
>>152
その方法でやってみたんですが、
>>156のとおり
アップロードされた後にチェックする感じになってしまいましたorz
>>156
phpスクリプトの中からも変えられるんですね。
できるだけphpスクリプトの中だけやりたいので
それで行こうと思います。
0160nobodyさん
2006/02/08(水) 18:43:25ID:o/oLkGrK$cnt1〜$cnt100まで、今のところ100個の変数にそれぞれ数値が格納されています。
コレを「一番大きいもの」を見つけるにはどうやったらいいのでしょうか?
正規表現でこういうのとかあるんですか?
それとも比較して1つ1つ気の遠くなるような作業をするんですか。。。orz
どうやればいいのか分からないので、アドバイス下さい。
0163150
NGNGなんかうまくいきませんでした。
で、なんでだろうとググったりしてみたら
>>156の方法が有効なのはPHP 4.2.3 までらしいです。
それ以降のバージョンでは
upload_max_filesizeとpost_max_sizeが
PHP_INI_PERDIRという分類になってて
.htaccessとかphp.iniからしか変更できないっぽいです。
なのでphpスクリプトから制限するのは諦めて
.htaccesで制限する方向でやってみようと思います。
0164nobodyさん
2006/02/08(水) 19:27:48ID:???あれ?upload_max_filesizeってPHP_INI_SYSTEM|PHP_INI_PERDIRじゃなかったっけ?
0165nobodyさん
2006/02/08(水) 19:28:50ID:???0166nobodyさん
2006/02/08(水) 19:38:24ID:???push(@cnt, ${"cnt$_"}) foreach(1..100);
$max = (sort(@cnt))[-1];
だからPerlでもあんまりかわらんと思う
0167nobodyさん
2006/02/08(水) 19:46:15ID:???0168156
2006/02/08(水) 20:00:58ID:???うぉ、すまんかった。
パラメータによって有効無効があるのは知っていたけど、いちいち確認してなかった…
htaccessからでも、<FilesMatch>ディレクティブか<FilesMatch>ディレクティブを使えば、
ファイルごとに設定を変更できるよ。
0169nobodyさん
2006/02/08(水) 20:05:19ID:???ここまでやんなきゃ大したことないって。ふつーふつー
0170150
NGNGありがとうございます。
一応うまくいきました。
でもちょっと気になることがあるんですが、
upload_max_filesize を10Kにして、さらに
<input type="hidden" name="MAX_FILE_SIZE" value=100000000000>
というタグを入れてブラウザに知らせるマックスファイルサイズを大きくした上で
100Mbyteのファイルをアップロードしようとすると、
upload_max_filesize が10Kなのにもかかわらず
ブラウザはずいぶんと長い時間送信し続けるようになります。
そして最終的にアップロード失敗や成功の画面ではなく
投稿フォームの初期の画面に戻ります。
スクリプトは実行されていないみたいで
テンポラリファイルのサイズを調べることができません。
これってブラウザが勝手に送りつけてるだけで
サーバー側は upload_max_filesize 以上受け取っていないと考えて良いんでしょうか?
読みにくい文章ですみません(・・;
0171nobodyさん
2006/02/08(水) 22:07:23ID:???Apache自体は全部受信してて、それをPHPコアがフォーム分解してテンポラリを作る際に、
サイズが大きすぎたら処理を中断してエラーフラグを設定して、スクリプトの実行を開始、
って感じだと思う。
サーバー負荷を下げるのが目的ならname="MAX_FILE_SIZE"で指定してやんないといけないし、
それを無視するブラウザを弾きたいということであればApache側でPOSTの制限をするなどの
設定をしてやる必要があると思う。
0172156
2006/02/08(水) 22:08:28ID:???んー、PHPマニュアルには、
『MAX_FILE_SIZEはブラウザへの勧告に過ぎません。この最大値を 出し抜くのは簡単なことなので信頼してはいけません。
しかし、 PHP側の最大サイズの設定を欺くことはできません。 しかしそれでもMAX_FILE_SIZEを指定すべきです。
なぜなら、 巨大なファイルを転送しようとして、
実はそれが大きすぎて転送できないということを長時間待ったあとで知らされるのを防げるからです。 』
とあるので、
MAX_FILE_SIZE(HTML) < POSTしようとするファイルサイズ < upload_max_filesize(PHP) の場合は、
(MAX_FILE_SIZEを欺くことは簡単にせよ)ブラウザ側で警告が出る。
upload_max_filesize(PHP) < POSTしようとするファイルサイズ < MAX_FILE_SIZE(HTML) の場合は、
ブラウザ側で警告は出ずに、サーバ側から"大きすぎて転送できないということを長時間待ったあとで知らされる"。
ということだろうから、その挙動は合っていると思う。
エラーコード、$_FILES['userfile']['error'] をechoしてみれば分かるんじゃ?
0173nobodyさん
2006/02/08(水) 22:32:04ID:???ini_setで関係のありそうな場所を設定してるのですが、気を付けた方がいい所はありますか?
漠然とした内容ですいませんが、第一引数に「ー」や「]」などを入れると文字化けして、ini_setや他の関係ありそうな関数を使っても必ずどっちかが文字化けしたりで途方に暮れてます…
0175nobodyさん
2006/02/08(水) 23:41:03ID:???現在ある掲示板を、携帯絵文字対応にしようと思っております。
既存の掲示板では携帯から絵文字を投稿すると
<img src="img/i/F8C7.gif" width="12" height="12" border="0">
と変換されているのですが、これを携帯から見た時に
?
と変換したいのです。
このような変換を行う場合はどのようにしたらよろしいでしょうか?
よろしくお願いいたします。
0176175
2006/02/08(水) 23:41:43ID:???です。文字化けしてしまいました・・。
0178nobodyさん
2006/02/09(木) 00:06:23ID:MhSFpTrNhttp://c-others.2ch.net/test/-/php/1139146534/w ←こんな感じで書き込めるようにするにはどうしたらよいでしょうか
hiddenの値とかは何とかなると思いますが、ソケットプログラミングが全くわかんないので、できたら実際に書き込みできるスクリプトを見せていただきたいのですが・・・
よろしくお願いします。
0179nobodyさん
2006/02/09(木) 00:12:01ID:???すでに「p2」というPHP製の非常に優れたGATEWAYプログラムが存在してますので、
まずはそちらの中身を解析してみて、それ以上のものを作って公開してくださいね。
0181179
2006/02/09(木) 00:21:24ID:???>>178で参考になるスクリプトが見たいといってるから、
存在するオープンソースで一番目的に近いものを紹介して
なんで、「死ね」とか言われなきゃならんのだ・・・凹むぞ
0182nobodyさん
2006/02/09(木) 00:37:21ID:???0183nobodyさん
2006/02/09(木) 01:00:28ID:???0184nobodyさん
2006/02/09(木) 01:21:00ID:???0185150
NGNGありがとうございます。
そして遅レスですみません。
>>171
Apache側の設定のこと完全に忘れてましたw
それでApache方面でググった今の自分にぴったりな(?)文章を見つけました。
http://multix.jp/html/memo/030521.html#00010201
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
LimitRequestBody
クライアントから送信されてくる POSTや PUTデータを受け入れる
最大値を指定します。初期値は 0(無制限)で、バイト単位で
2147483647(2GB)までを指定できます。これを使えば CGIで
ファイルアップローダを運用するような場合、CGIプロセスが
起動する前に巨大すぎるデータの受け入れを容易く拒否することができます
(CGIプロセスに渡ってからではほとんどの場合、手遅れ)。
それ以外でもバッファオーバーフローやサーバクラッシュ目的での
DoS攻撃を回避するのに有効ですから、サーバ管理者は必ず再設定しておくべきです。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
>>172
upload_max_filesize以上post_max_size未満のサイズなら
$_FILES['userfile']['error']でちゃんとエラーを拾えるんですが
post_max_sizeを超えてしまうと拾えなくなってしまいます。
というか何もPOSTされなかったかのような反応になります。
しかも送信してる間にハードディスクがガリガリいってるぽいので
どうも>>171のとおりPOSTされたデータをApache側で
全部受け取ってるのかもしれません。
うーんでもApache側で一旦受け取るんだったら
upload_max_filesizeとupload_max_filesizeの意味無いような気がするし。。。
もうわけわかめ。
0186nobodyさん
NGNGそれにphpのテンポラリディレクトリは
ウェブディレクトリの外側なので
LimitRequestBodyで設定できませんでした。
0187nobodyさん
2006/02/09(木) 02:07:21ID:???鯖のリソース余ってるやつちょっと来い@自宅サーバ
http://pc8.2ch.net/test/read.cgi/mysv/1137564375/l50
0188150
NGNG>というか何もPOSTされなかったかのような反応になります。
良く調べたらこれはMAX_FILE_SIZEに引っかかっただけでしたorz
MAX_FILE_SIZEを100000000000000000000にして
やってみたらエラーを拾えるようになりました。
いろいろやってみた結果、
結局サーバー側は upload_max_filesize 以上受け取っていない
ということかもしれません。
ご迷惑をおかけてすみませんでした。
0189nobodyさん
NGNG0190nobodyさん
2006/02/09(木) 03:40:24ID:???0192nobodyさん
NGNG0194nobodyさん
2006/02/09(木) 07:55:13ID:???(my) $hoge = 1;
(my) $hige = 2;
// hogeにhigeを加える
$hage = $hoge + $hige; //hogeをhageに間違える
print $hoge;
0196nobodyさん
2006/02/09(木) 09:01:55ID:???str_replace("\n", "<br>", stripslashes($textarea))
としているのですが、テキストエリアにタグを入れた場合、改行が入っていると
<br>が入ってしまいます(当然ですが)
例)
<table>
<tr>
<td>テキスト </td>
</tr>
</table>
これを改行無しに記述すれば問題はないのですが、ホームページ作成ソフトなどから
直接タグをコピペする時もあります。
どうすれば整形済みのタグを入れても<br>だらけにならないように出来るのでしょうか?
説明が下手ですが、何かアドバイスをいただければと思います。
0198196
2006/02/09(木) 09:29:55ID:???それが、普通のテキスト文字の場合は改行した時、<br>に変換が必要なんです。
ブログの記事書き込み部分のようなイメージです。
ブログ(MTなど)でも記事フォームにタグを入れている場合は、改行せずに
入れているような気がしないでもないですが、もし何か良い方法があれば、ご教授願います。
0199nobodyさん
2006/02/09(木) 09:49:35ID:???HTMLでの記事書き込みとテキストでの記事書き込みとをモード切替してるとこはある。
同一のものとして扱うのであれば、タグの開始と終了<hoge></hoge>を判別して、
その間だけ<br>変換やめるとか。
同じ名前のタグをネストされた時の対処が必要だしちょっと面倒かもしれんが…
XMLパーサとか使ってみるのもテではないでしょうか?
0200nobodyさん
2006/02/09(木) 09:51:04ID:???0201196
2006/02/09(木) 10:12:05ID:???なるほど。やっぱり、入力フォームを分けるという対処しかありませんよね。。
1つのテキストエリア上で出来たら、便利だと思っていたのですが、
入力する側が手間になるといけませんので、断念します。
アドバイスありがとうございました。
0202149
2006/02/09(木) 10:17:13ID:g3a/RWdO0203nobodyさん
2006/02/09(木) 10:24:38ID:???これってなにか問題ありますか?
0204nobodyさん
2006/02/09(木) 10:25:48ID:???ttp://hrgs.itbdns.com/diary/item/24
ていうか少しは自分で調べる事を知れ。
ttp://www.google.co.jp/search?hl=ja&q=PEAR+%E3%82%A2%E3%83%83%E3%83%97%E3%82%B0%E3%83%AC%E3%83%BC%E3%83%89&lr=
思いっきり一番上に出てきたぞwww
0206nobodyさん
2006/02/09(木) 10:48:04ID:???includeもしてないです。
a.phpにb.phpで作ってる関数と同じ名前の関数を作ったらエラーになったので
試しにa.phpの関数を消して呼び出しだけを行ったら普通にb.phpの関数が呼ばれてたので
0207nobodyさん
2006/02/09(木) 10:52:33ID:???include山ほどしとりますた・・
a.php内で
<?php〜?>外に
<!--〜-->ってコメントにしてたんですが、これって
<?php〜?>外なのに生きてるんですね
0208nobodyさん
2006/02/09(木) 10:55:31ID:???でも
やっぱコメント扱いっぽいけど、インクルードはされてるみたいだなあ
<!--<?php include("b.php"); ?>-->
これって、b.phpは実際には呼ばないけど内部関数の定義はされるんですか?
0209nobodyさん
2006/02/09(木) 10:59:21ID:???つ http://www.php.net/manual/ja/language.basic-syntax.comments.php
0210nobodyさん
2006/02/09(木) 11:05:06ID:???え?あれ?
いや、コメントになってるっぽくて確かにb.phpは呼ばれてはいないのに
b.phpの関数が呼べるのが疑問なんですよ、俺変なこと言ってます?
0211nobodyさん
2006/02/09(木) 11:08:43ID:???こういうのはロジック以前にルール作りをどうするかだと思うんだけど、
例えば「各行の末尾が">"で終わっていなければテキストの改行とみなして<br>を入れる」とかじゃダメ?
$test = <<<TEXT
<table>
<tr>
<td>テキスト </td>
<td>テキ
スト </td>
</tr>
</table>
TEXT;
foreach(explode("\n", $text) as $line) {
$newtext .= $line . ((substr($line, -1) != '>')? '<br>': '') . "\n";
}
結果
<table>
<tr>
<td>テキスト </td>
<td>テキ<br>
スト </td>
</tr>
</table>
0212149
2006/02/09(木) 11:08:45ID:g3a/RWdOありがとう!
家に来て俺の妹とファックしていいよ。
0214nobodyさん
2006/02/09(木) 11:11:35ID:???フレームを解除させて飛ばす場合はどのようにすればいいのでしょうか?
0215nobodyさん
2006/02/09(木) 11:12:36ID:???>208の書き方では、HTMLではコメントとされても、PHPとしては実行される。
ただ、b.php内でechoしてると、<!-- hogehoge -->となるので、ブラウザ上では表示されない。
HTMLソース見れば、b.phpが読み込まれた上に実行されていると思うが。
0216nobodyさん
2006/02/09(木) 11:13:31ID:???いやそれはわかってるんですが、実行されてる様子がないんですよ。
b.phpで適当な文字をechoしてるのですが、
<!-- -->でくくってると、文字が出なくて<!-- -->を取ると文字が出ます。
ひょっとすると俺の根本から間違ってますか?
0217nobodyさん
2006/02/09(木) 11:15:16ID:???出力されたHTMLソース見れ。
<!-- 適当な文字 --> って出力されてて、PHPは実行されてるがブラウザから見れなくなってるから。
0218nobodyさん
2006/02/09(木) 11:15:26ID:???嗚呼、わかりますた。
どうやら俺の根本が間違ってました。
確かにソースをみると、実行されてますねこれ・・
コメントになってるんでブラウザには表示されてないだけか・・・
0220nobodyさん
2006/02/09(木) 11:16:56ID:???PHPの呼び出し元HTMLでtargetを指定してやるか、Locationで飛ばした先のHTMLを
target解除してさらに別ページに飛ばすJavaScriptのページにして連続遷移。
0221nobodyさん
2006/02/09(木) 11:16:57ID:???ちょっと前にも同じ質問があったぞ…
フレームはHTMLの仕様であり、PHPから直接いじることは無理。
どうしてもやりたければ、PHPのheaderで飛ばすのではなく、
PHPでJavaScriptを生成してwindowオブジェクトを操作すべし。
0222nobodyさん
2006/02/09(木) 11:20:30ID:???サーバー側の処理を考えればそんな所にはいきつかん。
<!-- ここに書かれた文字列 -->を表示しないと言うのはブラウザ側の機能。
サーバー側はあくまで取得してきたファイルを処理し、整形されたHTMLをクライアントへ投げるだけだ。
0223nobodyさん
2006/02/09(木) 11:22:06ID:???例えば、a.phpからb.phpの自作関数を呼ぶ場合って
b.phpでは関数のみを作成し本体には何も書かないのがいいんですか?
0224nobodyさん
2006/02/09(木) 11:24:27ID:???本体って何を指してんだよw
ていうか、関数郡、実際稼動ファイルと分けておいた方が後で自分でも見やすいだろ?
お前次第だよそれはw
0226nobodyさん
2006/02/09(木) 11:32:10ID:???言ってる意味が分からんがな。
本体=a.php 、 関数のみ=b.php という意味なら、
>>224が言うように見やすくなり管理し易くなる。
その関数を他のファイルで使いたい場合も、b.phpをincludeするだけでよくなる。
0227nobodyさん
2006/02/09(木) 11:37:17ID:???そそ、それそれ、ってやっぱ自分次第なんですよね。
>>226
ですね、<?phpでかこめば関数を作らなくても記述できる点がCとは異なるので
ちょっとアレだったんですよ
0229nobodyさん
2006/02/09(木) 11:55:47ID:???Cと異なるってのはどういうこと?
メイン関数を作らなくてもいいってこと?
関数呼び出しに関してはいたってCと同じ構造だと思うぞ。
0230nobodyさん
2006/02/09(木) 11:56:23ID:???extract($_GET);
extract($_POST);
extract($_COOKIE);
extract($_SERVER);
っていうのがあるんですが、これはどういう意味があるんですか?
0231nobodyさん
2006/02/09(木) 11:58:19ID:???ttp://php.s3.to/man/function.extract.html
ttp://php.s3.to/man/language.variables.predefined.html
0235nobodyさん
2006/02/09(木) 12:11:02ID:???ちゃんとサニタイズしてね。
0237nobodyさん
2006/02/09(木) 14:01:39ID:???0238nobodyさん
2006/02/09(木) 14:54:57ID:???いやCは必ず関数が存在するけどphpて関数いらんっしょ
例えば、
<?php
なんか
この部分とか
function aa( )
{
}
?>
0240nobodyさん
2006/02/09(木) 15:09:41ID:???<?php
include ("b.php");
func();
?>
----b.php----
<?php
echo "test message";
function func() { echo "hello world.\n"; }
?>
----終了----
Cなら echo "test message";はエラー返される、とか
言い方が分からないけど、グローバルな部分で関数を呼び出したりifやwhileが使えないって事かな。
0242229
2006/02/09(木) 15:25:09ID:???インクルードするだけって点ではCと同じじゃないかと書いたのですが、
どうやら私の方が227の文面を読み違えていたようでしつれしました。
0244nobodyさん
2006/02/09(木) 15:56:49ID:eu00qYyittp://www.xxxx.com/zzz/hello.php
のアドレスに
ttp://www.xxxx.com/zzz/hello
だけで行くのは出来ますか?
お願いします。
0246nobodyさん
2006/02/09(木) 16:05:12ID:???↑の文を
<form action="aaa.php" method="post">
<input type="hidden" name="name" value="write">
<textarea name="text" cols="20" rows="5" wrap="soft"></textarea>
<input type="sub" value="送信">
</form>
↑で送信して
if ($_POST['name']=='write'){
print $_POST['text'];
}
↑みたいな感じでで受け取ると、
<a href= \'http://www.yahoo.co.jp/\'>Yahoo!</a>
↑みたいに変化してしまいます。回避策あったら教えてください。
0247nobodyさん
2006/02/09(木) 16:14:13ID:???単にPHPの場合は各ファイルにmain()関数を置けるってだけだな。
Cとの最大の違いは「main()関数の中身を複数ファイルにバラバラに配置できる」ってとこか。
0250nobodyさん
2006/02/09(木) 16:58:06ID:???Apacheのコンテントネゴシエーションが有効ならそのまま拡張子無しでアクセスできるかも
あとはmod_rewriteを使う
どっちにしてもPHP関係ねー
0253nobodyさん
2006/02/09(木) 18:12:07ID:???cronも使わないで決まった時間に…なんて出来るのですか?
0254nobodyさん
2006/02/09(木) 18:22:31ID:???表示する時に指定の時間を過ぎてたら、指定時間に投稿したような記事を書き込めばいいんじゃないかな?
0255nobodyさん
2006/02/09(木) 18:52:25ID:???$sort_dir = ソート方向
$sort_type = 比較方法
$list = 処理対象フールド
こんな風な変数を作っておいてから
array_multisort($sort_key, $sort_dir, $sort_type, $list);
って具合に引数に変数で渡すと、
Warning: array_multisort(): Argument #2 is expected to be an array or a sort flag in〜
または Argument #3〜ってエラーになります。
$sort_dirのとこは
SORT_ASC(昇順にソート)
SORT_DESC(降順にソート)
$sort_typeのとこは
SORT_REGULAR(普通に比較)
SORT_NUMERIC(数値的に比較)
SORT_STRING(文字列として比較)
などのフラグの文字列そのものを直接、引数のとこに書き込まないとダメなんでしょうか?
フラグの文字列(SORT_DESCとかSORT_NUMERIC)を直接入れるとうまくいきます。
なにかウマい方法がありましたら教えてください。
0256nobodyさん
2006/02/09(木) 18:55:51ID:???0257nobodyさん
2006/02/09(木) 19:02:45ID:9NTQCcyh>>200を参考にして
nl2br(htmlspecialchars($_POST['textarea']))
0259nobodyさん
2006/02/09(木) 19:26:56ID:???dump?ちょっと調べてみます
>>258
もちろん、それでもよい訳ですが、関数に与える引数に変数が使えなかったというのが初めての経験なので、とりあえず、なんとかしちゃう方法というのも後学の為に知っておきたいと思った次第です。
0260nobodyさん
2006/02/09(木) 20:31:57ID:???$sort_dir = SORT_ASC;
$sort_type = SORT_REGULAR;
と、書けばいいのではないでしょうか?
直接引数のとこに書く必要はないでしょう。
# 意味取り違えてたらスマン
0261nobodyさん
2006/02/09(木) 21:18:52ID:???きっと>>260が言うように
$sort_dir = 'SORT_ASC';
$sort_type = 'SORT_REGULAR';
って ' や " でくくってないか?
0262nobodyさん
2006/02/09(木) 21:31:40ID:???問題なく変数経由でパラメータは渡せる。
$sort_dirに格納してるフラグdefineの綴りでも間違ってるんじゃない?
存在しないdefineを渡すとPHPはそのまんまその文字列を格納して、提示されたエラーメッセージが出る。
0263178
2006/02/09(木) 21:51:59ID:???初心者しかいないようなら去りますw
0264nobodyさん
2006/02/09(木) 21:53:25ID:???0265nobodyさん
2006/02/09(木) 21:54:24ID:MhSFpTrN0268259
2006/02/09(木) 23:36:21ID:???これは定数なんではないかとはうすうす考え始めていたんですが。
なるほど。確かに文字列じゃなくて、これは定数を変数に入れて、引数として渡すってことだったんですね。
0271nobodyさん
2006/02/10(金) 01:52:50ID:???/etc/apache2/modules/にlibphp4.soが見つかりません。
コンパイルの仕方がおかしいのでしょうか?オプションもマニュアル
どおりに指定したのですが・・・
超初心者の質問ですみません。
0273nobodyさん
2006/02/10(金) 03:05:49ID:???それを指定する場所に置くなり、シンボリックリンク貼ってあげれば。
0274271
2006/02/10(金) 07:18:50ID:???http://nx.eth.jp/hiki.cgi?PHP-i18n-Compile
に書いてあることにしたがって、
--enable-zend-multibyte --enable-mbstring --enable-mbstr-enc-trans
を指定しました。
>273
仕事に出かけますので、帰宅したら探してみます。
0276nobodyさん
2006/02/10(金) 09:00:53ID:???|/etc/apache2/modules/にlibphp4.soが見つかりません。
らしいので「--with-apxs2」とまで導いてやった方が良いかと。
# でもmakeのエラーで生成してないだけの予感。
0277nobodyさん
2006/02/10(金) 16:00:51ID:???0278nobodyさん
2006/02/10(金) 16:21:56ID:???0279nobodyさん
2006/02/10(金) 16:32:15ID:???同意。
3日前から覗き始めたが
質問の内容が調べれば速攻出てくるようなものばかりでつまらんな。
ここで質問する奴は検索エンジンって物を知らないんだろうか^^;
0280nobodyさん
2006/02/10(金) 16:43:56ID:???0281nobodyさん
2006/02/10(金) 16:51:30ID:???>>278 == >>178 なのか?
答えもらって捨て台詞はいて、また戻ってきたのか
0282nobodyさん
2006/02/10(金) 17:07:22ID:???0283nobodyさん
2006/02/10(金) 17:24:23ID:???0284nobodyさん
2006/02/10(金) 17:39:24ID:???0286271
2006/02/10(金) 18:25:49ID:???--with-apxs2を使って、configureすると、libphp4.soが出来上がりました。
最初、--with-apxs2=/use/local/apache2/bin/apxs2として、configureすると、
エラーが出たので、--with-apxs2を使わずにconfigureしたのが間違いでした。
ちなみに、私の環境(Vine 3.1 + apache2 : apache2はapt-get installしたもの)
では、apxsが/usr/binにあったので、ここにたどり着くまでに、ちょっと苦労しました。
初心者の質問で、済みませんでした。
0288nobodyさん
2006/02/10(金) 20:39:32ID:???文字列でしか読み込み書き込みできないんですか?
C言語で言う
fread( &hoge, sizeof( hoge ), 1, fp);
見たいなのがやりたいんですが
0289nobodyさん
2006/02/10(金) 20:49:07ID:???$hoge = fread($fp, 100); とかでいいじゃん。どっから文字列でしかダメなんて聞いてきたのよ。
0290nobodyさん
2006/02/10(金) 20:57:41ID:???PHPにうらみでも持ってるのかと思った。
できないんですか?
なんなんですかあんた。
みたいなね。
ニュー速+に入り浸りすぎだな。
0291nobodyさん
2006/02/10(金) 21:47:30ID:???0292nobodyさん
2006/02/11(土) 14:26:21ID:???俺もPHPのconfigure指定するときマジで悩んだ('A`)
0293nobodyさん
2006/02/11(土) 14:30:05ID:???ttp://httpd.apache.org/docs/2.0/ja/programs/apxs.html
0294nobodyさん
2006/02/11(土) 16:42:47ID:???良いね!
今ちょっとしたアイコンブームが起こってるw
0295nobodyさん
2006/02/11(土) 21:02:38ID:???0296nobodyさん
2006/02/11(土) 23:01:44ID:???0297nobodyさん
2006/02/11(土) 23:57:56ID:???今回はオマケ付だぜ
0299nobodyさん
2006/02/12(日) 00:44:28ID:???0300nobodyさん
2006/02/12(日) 15:43:56ID:???LAMP/LAPPで掲示板等を作成するにあたり、
SQL、およびSQLとPHPの連携について学べるサイトなどはないでしょうか。
あまりPHPと関係のない質問で、すみません。
0305300
2006/02/12(日) 21:22:03ID:???0306nobodyさん
2006/02/12(日) 21:58:54ID:???文字列の中にひらがな、カタカナなどの16進数で使われる文字以外の文字が含まれているか、
或いは16進数のフォーマット(0-9とA-Fのみ)になっているかどうかを調べることはできますか?
説明が分かり難ければその旨を仰って下さい。
0309306
2006/02/12(日) 22:21:50ID:???ものすごく下らないことでしたね・・・
わざわざコーディングまでしていただいてすみません。
0310nobodyさん
2006/02/13(月) 00:37:45ID:???0311nobodyさん
2006/02/13(月) 08:55:26ID:???0312nobodyさん
2006/02/13(月) 09:56:37ID:???0313nobodyさん
2006/02/13(月) 09:59:46ID:???0314nobodyさん
2006/02/13(月) 10:29:56ID:???ソートする項目がキーではなくて2つ目の項目とかの場合どうすればよいのでしょうか?
↓でいうbの項目でソート
array([1]=>array([a]=>hoge,[b]=>test),[2]=>array([a]=>hoge2,[b]=>test2))
0315nobodyさん
2006/02/13(月) 10:35:01ID:???0317nobodyさん
2006/02/13(月) 13:20:11ID:???ということをしたいのですが、適した関数はないでしょうか?
思いついたのが手間がかかる方法で・・・
1.1文字目を調べて.なら削除
2.文字列反転させて1文字目を調べて.なら削除
3.もう一回文字列を反転
0318nobodyさん
2006/02/13(月) 13:25:50ID:???boolean 1 とも返ってきているのでflag立てには成功しているって事ですよね?
指定したメールをまた新着状態に出来れば何でもいいのですが・・
--------------------------------------------------
$mbox = imap_open("{example.jp/imap}INBOX", "mail@example.jp", "user");
$fclear = imap_search($mbox,'SUBJECT "hogehoge"', SE_UID);
foreach($fclear as $num)
{
$status = imap_setflag_full($mbox, $num, "\\Recent", ST_UID);
print gettype($status)."\n";
print $status."\n";
}
--------------------------------------------------
どなたかよろしくお願い致します。
0319nobodyさん
2006/02/13(月) 13:35:59ID:???$rest = substr("abcdef", -1); // "f" を返します
ってのはどうだろう
あとはマニュアルなりを見て
http://php.s3.to/man/function.substr.html
っていうか出来てるんならその処理でもいいんじゃないかとは思う
0322nobodyさん
2006/02/13(月) 14:21:49ID:???0324nobodyさん
2006/02/13(月) 14:25:53ID:???trim -- 文字列の先頭および末尾にある〜
http://php.s3.to/man/function.trim.html
0326nobodyさん
2006/02/13(月) 15:16:17ID:???long型のカラムに対して64Kバイト以上の文字列を
バインドしてinsertすると
ORA-01480: STRバインド値に終了のNULLがありません
とでてしまいます。
php側では普通の変数を使用してstrlenで文字数を取得しても
正しく文字数は取得できています。
これはoracleとphp、どちらが悪いのでしょうか?
また、何が原因なのでしょうか。
ちなみに
oracle関数【推奨されません】
の関数を使用しています。
0327nobodyさん
2006/02/13(月) 15:22:16ID:???recentが新着ということで他のimap関数にも敏感に反応してしまうのが原因だったみたいです
seenフラグで管理するようにしたら問題なく動作しました
0328nobodyさん
2006/02/13(月) 15:31:00ID:???とすると、一つ目が%5Fになってしまうのですがこれはバグでしょうか?
OSはWinXP ProSP1、鯖はAnHTTPD、PHP5を使ってます。
こちらのサイトではきちんと認識しているようです。
ttp://openoffice.s16.xrea.com:8080/pukiwiki/pukiwiki.php?%5B%5BOOo2.0%A5%D0%A5%B0%BE%F0%CA%F3%5D%5D
0330nobodyさん
2006/02/13(月) 16:39:06ID:???それ、本スレでも見た気がする。
http://pc8.2ch.net/test/read.cgi/php/1136276300/761-764
なんだろこれ。バグ?
0331nobodyさん
2006/02/13(月) 16:42:29ID:???0332nobodyさん
2006/02/13(月) 18:17:35ID:???MySQLのバージョンは、4.1.16と5.0.16で試しました(PHPの再インストール)。
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$db = new PDO($dsn, $user, $password);
$db->setAttribute(PDO::ATTR_ERRMODE,PDO::ERRMODE_EXCEPTION);
var_dump($db->query('SELECT * FROM testtable'));
} catch (PDOException $e) {
print $e->getMessage();
}
とした時、Connectではエラーが出ていないのに、queryの結果は
falseが返ってきます。どのような正しいSQLでも必ずfalseです。
Connectのエラーを拾えてないのかな?と思い、わざと間違った
hostにすると、エラーは正常にprintされました。
試しに、mysqli関数でConnectし、同様のSQL文を発行すると
期待値が返ってきます。
エラーが出ないのでどうして良いかわかりません・・・。
postgresの方は今の所問題ないのに・・・。
0333nobodyさん
2006/02/13(月) 19:00:58ID:???前スレによると仕様だそうです。
俺はバグだと思うけどな。
971 名前: nobodyさん 2006/02/05(日) 17:52:09 ID:???
既出か分からないけど、
トップーページと入力すると
本来ならば%83g%83b%83v%83y%81[%83WのはずなのにPHPは%83g%83b%83v%83y%81_%83Wと受け取ってしまう。
[となるべく部分が_になってしまう。
[[[とすると_[[と受け取るので最初の[のみ誤認してしまうようです。
これの対処はどのようにすればいいでしょうか?
973 名前: nobodyさん 2006/02/05(日) 18:03:33 ID:???
>>971ですが状況が分かりづらくてすみません
>トップーページと入力すると
というのはURLに入力という意味で
『http://.../index.php?トップページ』
としたときです。
このように入力した後 echo key ($GET); とするとトップペ\ジとなります。
それと、環境はPHP5を使用しています。
OSはWindowsXP SP1でAN HTTPDとApacheの両方で同様の誤動作を確認しています。
情報足らずで失礼しました、
引き続き対処の程を教えていただけるようお願いします。
975 名前: nobodyさん 2006/02/05(日) 18:25:21 ID:???
>>973
それで理由が分かったよ。
それ、PHPの仕様。マニュアル嫁。
0334nobodyさん
2006/02/13(月) 19:07:47ID:???unixで使うスクリプトを作ってるんだけどこの場合はLFにすべき?
0335nobodyさん
2006/02/13(月) 19:12:28ID:???エラー文どおりNULL文字が最後に入ってないんじゃない?
LONG型のカルマについては無知でスマンけど、
対象の文字を "1234567890\0" のように\0(NUL/NULL文字)で締めてみて。
0337nobodyさん
2006/02/13(月) 19:17:43ID:???LFでもCR+LFでも大丈夫じゃないかな。
大抵の"\n"は\n|\r|\r\nを自動で読んでくれるはずだろうから、unixで\r\nやっても平気じゃないかな。
PC-UNIXじゃなくてマジもんのunixならLFのがいいだろうけど。
0338nobodyさん
2006/02/13(月) 19:30:15ID:???CLIスクリプトならLFにすべき。
Webで呼び出すならほとんどの場合はどっちでもいい。
ただし
$string = "aaaa
bbbbb";
とか
$string = <<<TXT
aaaaa
bbbbbb
TXT;
みたいにソースの改行=データの改行みたいな真似してるなら
データの要求に準じるべき。
0339332
2006/02/13(月) 19:30:53ID:???MySQLのユーザのパーミッションということでしょうか?
それなら、mysql関数、mysqli関数で試して期待値が返ってきた
ので問題無いと思っています。
phpinfo()の結果を見ても、POD_MYSQLの項目がきちんと出てきてはいるのですけど・・・。
現状仕方ないのでMDB2を使おうと思ってます。
が、今度はドキュメントがあまり見つからない&英語がわからないので、
浅い使い方しかわからず困ってしまいました(苦笑
0340nobodyさん
2006/02/13(月) 19:50:29ID:5OEO9gPeやっぱり正規表現でpreg_splitでしょうか?
ばかなので正規表現書けませんでした。
レンサバがphp4なので、str_splitは無しの方向でお願いします。
0341nobodyさん
2006/02/13(月) 19:54:34ID:???0343nobodyさん
2006/02/13(月) 20:48:20ID:???マルチバイト文字列関数
http://www.php.net/manual/ja/ref.mbstring.php
文字列関数
http://jp.php.net/manual/ja/ref.strings.php
マニュアルくらい見る癖をつけると、
後々役に立ちますよ
0345nobodyさん
2006/02/13(月) 21:43:36ID:???期待値が返って来たって事は少なくともreadは許可になってるんだろうけどwriteは許可されてるのかな。
他のサーバーでは失敗(というかあんにょい感じ)するか試して見た?
ためしにDebianか、HDDに入れるの面倒ならKNOPPIX(CD-Linux)で自鯖立てて試して見るといいかも。
これらはapt-getで簡単にmysqlなどなど入れられるので便利。
調べてみたら、初めからMySQL/PHPが使えるように設定してあるKNOPPIXもあるようです。
http://pcweb.mycom.co.jp/column/yetanother/010/
0348nobodyさん
2006/02/13(月) 22:03:01ID:???10個から20個にする時とか画面を眺めながら.を打ち続ける様を想像して更にワラタ
0349nobodyさん
2006/02/13(月) 22:17:53ID:???どうすればいいでしょうか?
0351nobodyさん
2006/02/13(月) 22:57:25ID:1JhTlLn3データの書込み、表示などの一通りの動きは出来るようになりました。
次に、環境設定(1ページに何件表示等)もweb上で出来るようにと考えているのですが、
現段階ではPHPファイルに
$bbs_Cnt = 10; //bbs1ページには10件表示
のように書いていて、
fopenなどでPHPファイル自体を読み込み上書きなどをしようと思ってますが、
通常はどんな風にするものなのでしょうか?
このような値もDBに格納するべきなのでしょうか?
0352nobodyさん
2006/02/13(月) 23:14:44ID:???DBに格納でもいいでしょうし、
iniファイルを使ってもいいでしょう。
個人的にすきなのはiniファイルですね。
PHPにはparse_ini_file関数が用意されてますし。
あくまで個人的な意見ですけど。
PHPファイル自体を直接読み書きよりは
融通が利くかと思います。
0353nobodyさん
2006/02/13(月) 23:18:08ID:???DBもいいね。
PHPを書くのは少々面倒だね。
0354351
2006/02/13(月) 23:25:07ID:1JhTlLn3実は、PHPファイルではなくてiniファイルなのでした|x・`)チラッ
と言っても、中身は<?php......?>て書いてあるので、
PHPファイルなのですが…。
parse_ini_file関数から、iniファイルの扱いについても
ちょっと調べてみまーす。
ありがとうございましたm(__)m
0355nobodyさん
2006/02/13(月) 23:28:41ID:???標準と全然違うファイル形式の拡張子をつけるのはどうかと…
PHPソース形式にするならせめて.inc辺りにしとけ
0357351
2006/02/13(月) 23:39:28ID:1JhTlLn3そっか。
設定ファイルが.iniって言う知識しかなかったもんで(^-^;
そこら辺、初心者にもわかり易く書いてあるサイトとかって
何かありますかい??
0359nobodyさん
2006/02/14(火) 00:41:28ID:???あれはブラウザから中身が見えちゃうから、
見られたくないような場合phpにしたほうがいいよ。
パーミッションいじってもいいけどね。
まぁセキュリティ対策にはならないからどうでもいいっちゃいいんだけど。
0360nobodyさん
2006/02/14(火) 00:54:50ID:???だな。アセンブラ時代からの由緒正しき拡張子かw
>>359
iniファイルにしろincファイルにしろ設定ファイルをドキュメントルート以下に置く方が悪い。
0361nobodyさん
2006/02/14(火) 01:23:29ID:???0362nobodyさん
2006/02/14(火) 01:26:09ID:???0363nobodyさん
2006/02/14(火) 01:48:24ID:???0364nobodyさん
2006/02/14(火) 01:51:54ID:???って、array_searchしてunsetしかないの?
0365351
2006/02/14(火) 02:01:36ID:zk1lvDPH無敵ではない?
0366nobodyさん
2006/02/14(火) 02:09:05ID:???トラップを自ら掘りまくるような行為は感心しないな。
0369nobodyさん
2006/02/14(火) 02:35:42ID:???.htaccessやhttpd.confが間違って上書き、削除されてしまったり、
何ヶ月も経って元々の意図を忘れて別の目的のために設定を変えてしまったり、
Apacheのアップデート時に設定が効かなくなってしまってたりなど、
その程度の隠蔽設定がうっかり消失されてしまうようなケースは多々あり、
またそういうミスをしてる連中が世間にはごまんといるってことだ。
「自分はそんなアホなミスしないから」と思ってるならセキュリティとかは口に出さない方がいいぞ。
0370nobodyさん
2006/02/14(火) 07:56:53ID:???以前Livedoorの.incが漏れたときもルートより上ではなかった。
なんというか、仕事を完璧にめざす者と、仕事を徹底的にさぼる者に別れている気がする。
そしてJavaサーブレットを使えばこの問題が簡単に解ける悲しさ。
0371nobodyさん
2006/02/14(火) 09:20:26ID:???「ミスしやすいもの」と「しにくいもの」
「やってしまったときに気付きやすいもの」と「しにくいもの」
は確かにあって、その分別は必要だと思うのよね。
0372nobodyさん
2006/02/14(火) 10:47:05ID:???0374nobodyさん
2006/02/14(火) 13:28:11ID:???212.112.227.217
を
212.112.227.xxx
みたいにするにはどうすればいいでしょうか?
0376nobodyさん
2006/02/14(火) 15:18:00ID:???Mozilla/5.0 (Windows; U; Win 9x 4.90; ja-JP; rv:1.7.10) Gecko/20050717 Firefox/1.0.6
これってOSなんですか?
0377nobodyさん
2006/02/14(火) 15:26:30ID:???0378nobodyさん
2006/02/14(火) 15:36:44ID:???0379nobodyさん
2006/02/14(火) 15:37:43ID:???0380nobodyさん
2006/02/14(火) 15:38:32ID:???「このUAから識別出来るOSって何ですか?」って感じで聞かないと。
「UAも知らないのかプギャー」な馬鹿に見えるぞ。
で、それぐぐれば答えはすぐ出るな。
0381nobodyさん
2006/02/14(火) 15:39:20ID:???Mozillaと先頭に出ててOSですか?
なんてきかれたら、誰でもブラウザと答える罠。
質問するならもっとわかりやすい質問しろ。
0382nobodyさん
2006/02/14(火) 15:42:21ID:???これってOSなのですか?
0383nobodyさん
2006/02/14(火) 16:09:46ID:???0384nobodyさん
2006/02/14(火) 16:23:57ID:???0385nobodyさん
2006/02/14(火) 16:27:59ID:???0386nobodyさん
2006/02/14(火) 16:32:04ID:???0387nobodyさん
2006/02/14(火) 16:34:37ID:???0389nobodyさん
2006/02/14(火) 18:04:38ID:???0390nobodyさん
2006/02/14(火) 18:11:26ID:???0391nobodyさん
2006/02/14(火) 18:36:47ID:???0392nobodyさん
2006/02/14(火) 18:44:56ID:???0393nobodyさん
2006/02/14(火) 18:58:55ID:???0394nobodyさん
NGNGマルチバイト文字列を扱うときは
mbstringモジュールをインストールしないとやばい
みたいなことが書いてあったんですが
いまいちなにがやばいのかわかりません。
具体的にどういうコードを入れると
問題が発生するのですか?
0395nobodyさん
2006/02/14(火) 19:50:05ID:???マルチバイト文字の入力を受け付けるプログラム
マルチバイト文字で検索を行うプログラム
マルチバイト文字の編集を行うプログラム
のいずれかで文字化けを起こす可能性が高いです。
0396nobodyさん
NGNGありがとうございます。
split()とか試してみても問題なく処理されるから
なんでだろーなーと思って質問したんですが、
問題が起きなかった理由は、
どうも文字コードがISO-8859-*, EUC-JP, Shift_JIS
ならmbstringなしでも正常に動作するらしく、
私が試したのはEUC-JP, Shift_JISだけだったからっぽいです。
ということでISO-2022で試してみたら普通にエラーが出ました。
どうもすみませんでした。
EUC-JPで問題が起きないということは、
例えば掲示板などをを作るときに
内部コードとhttpヘッダとフォームタグの文字セットを
全部EUC-JPにすればmbstring無しでも
いけますかね?
0397nobodyさん
2006/02/14(火) 21:27:40ID:???Shift_JISだって問題になることは多い。
それはsplitで使った分割文字がたまたまShift_JISで問題の出ない文字だっただけだ。
0398nobodyさん
2006/02/14(火) 21:28:43ID:???が、全く問題が出ないわけじゃない。
0399nobodyさん
NGNGじゃあやっぱりmbstring入れなきゃやばいんですね。
どうもありがとうございました。
0400nobodyさん
2006/02/14(火) 21:58:12ID:???関係ないけど
0401nobodyさん
2006/02/14(火) 22:08:05ID:???関係ないけど
0402nobodyさん
2006/02/14(火) 22:43:05ID:???0404nobodyさん
2006/02/14(火) 22:59:12ID:???使用する文字コードを特定すればできるよ。
mbstringみたいに設定でどれでも自動切換えみたいのはさすがにしんどい。
0405nobodyさん
2006/02/14(火) 23:04:33ID:???%x8Cとか
0406nobodyさん
2006/02/14(火) 23:18:59ID:???0407nobodyさん
2006/02/14(火) 23:20:50ID:???/hoge/fuga/hunnu/2test
のような文章から
/hoge/fuga/hunnu(最後の/〜を抜いたもの)
hunnu(最後の/〜の直前の文字列)
2test(最後の/以降の文字列)
を一度に正規表現で抜き出したいのですが、どのようなコーディングをすればいいでしょうか?
"^(/?([a-zA-Z%])*)*([a-zA-Z%]*)"
として挫折しました。
直前に書いた"/^((\/[a-zA-Z]*))*$/"のが抽出率はいいようですが。
よろしくお願いします。
0409nobodyさん
2006/02/14(火) 23:27:00ID:???・/2testを抜いたもの
・/2testの直前にある文字列
・2testのみ
を抽出したいという事です。
とても分かりづらく書いてすみません。
0410nobodyさん
2006/02/14(火) 23:37:42ID:???$str = "/hoge/fuga/hunnu/2test";
preg_match('<.*/([^/]+)/([^/]+)$>', $str, $match);
$str1 = $match[2];
$str2 = $match[1];
0411410
2006/02/14(火) 23:40:32ID:???preg_match('<^(.*/([^/]+))/([^/]+)$>', $str, $match);
$str1 = $match[1];
$str2 = $match[2];
$str3 = $match[3];
0412nobodyさん
2006/02/14(火) 23:49:28ID:???ありがとうございます。
dirnameだとファイル名を含まないパスを返してくるので意図した内容にはならず、
ただこちらの存在を忘れていました。
>>411
神を見た。
いや、何度読んでも仕組みが分からない。
でも期待したものが返って来ます。
凄いです。なぞです。
いわゆるゴッドです。
0413nobodyさん
2006/02/14(火) 23:55:57ID:???/2testのみだと返って来ないみたいです。
0414nobodyさん
2006/02/15(水) 00:01:49ID:???で/2testのようなものも回収できるようになりました。
<や>が全然分かりませんが、動くので>4100氏に感動してしまいます。
0415nobodyさん
2006/02/15(水) 00:17:35ID:???/hoge/fuga/hunnu/
だと取得できなかったのですが、
'<^(.*/?([^/]+))*/([^/]+)?$>'
とする事で取得する事ができました。
>410氏ありがとうございました。
0416nobodyさん
2006/02/15(水) 01:16:25ID:???あー。<や>には大して意味ないよ。
普通、pregの正規表現は /〜/ って書くものだけど、
|〜| とか [〜] とかでも書けるってだけの話。
パス分解の正規表現を書くときは中身に / を多用するから
エスケープ面倒くさいんで別の記号で代用してるだけ。
0417nobodyさん
2006/02/15(水) 02:51:07ID:NFe11LPg0423nobodyさん
2006/02/15(水) 09:37:50ID:???0424nobodyさん
2006/02/15(水) 09:56:08ID:???その場合matchesに入るテキストはどういう順番になるの?
0425nobodyさん
2006/02/15(水) 10:01:21ID:???0426nobodyさん
2006/02/15(水) 10:24:46ID:???0429nobodyさん
2006/02/15(水) 12:06:02ID:???Date:
Two, 14 Feb 2006 8:38:50 -0480
という素晴らしいヘッダを送ってくるスパムがあるんですが、postgresにdateとして登録すると日付ではないと怒られます。
phpでも同じような正しい日付ではないと判断する関数は無いでしょうか?
0431nobodyさん
2006/02/15(水) 13:06:54ID:???ファイルの更新日時を取得するにはどうしたらよいのでしょうか
0432nobodyさん
2006/02/15(水) 13:09:36ID:???ありがとうございます、出来ました
下記のようにおかしな日付表現だと"-1"が帰ってきました。
----------------------------------------
$time = 'Two, 14 Feb 2006 8:38:50 -0480';
//$time = 'Wed, 15 Feb 2006 11:49:43 +0900';
$stime = strtotime($time);
print $stime . "<br>";
print date("(Y-m-d h:i:s)",$stime);
----------------------------------------
関数名が分かってマニュアル見てみるとそのまんまエラーの処理があって便利
http://php.s3.to/man/function.strtotime.html
0433nobodyさん
2006/02/15(水) 13:20:22ID:???stat
filemtime
別に宣伝じゃないけど
PHP5逆引き大全 500の極意
とかの逆引き出来る本買うと相当便利よ
phpのマニュアルは日本語検索する方法が分からないのよね・・
0434nobodyさん
2006/02/15(水) 14:04:41ID:p2BDIAFN0437nobodyさん
2006/02/15(水) 14:47:56ID:???0439431
2006/02/15(水) 15:08:53ID:???やってみたのですが、どうもうまくいきません。アップロードした時刻が表示されてしまいます。
ポイントだけでもかまわないので、何かサンプルを示していただけないでしょうか?
0441nobodyさん
2006/02/15(水) 15:35:03ID:???0443nobodyさん
2006/02/15(水) 15:41:12ID:???ありがとうございます、気をつけます
現在はphp4なので、またphp5に移ってDB登録の際にエラーが出たら考えます。
>>431
アップロードしてからの更新時刻についてだったら
clearstatcache();
print_r(stat('./dummy.txt'));
で出来てるようだけど
0445nobodyさん
2006/02/15(水) 18:22:47ID:NFe11LPgそうです。そのPDFとして吐き出すという処理を自動でさせたいのです。
ID・PASSなどでログインした会員ページで、例えば自分の登録状況をPDFとして出すとか。
0447nobodyさん
2006/02/15(水) 20:43:29ID:???上に出てきてないやつだと fpdfとかもあるな。
0448nobodyさん
2006/02/15(水) 21:12:05ID:HBKFx6cqsqliteは入っているのでしょうか?どこにもないんです。
phpinfoもみましたがそれらしき文字も見当たりません。
なにかインストールする作業が必要なんでしょうか?
どなたかご教授おねがいします。
0449nobodyさん
2006/02/15(水) 21:36:07ID:???sqlite_open()すればインストールされているかどうか分かる
0450nobodyさん
2006/02/15(水) 22:19:37ID:???Win版しか知らないが、最新版なら作業が必要。
5.1から標準ではなくなった。ライブラリ化されたっぽい。
php.iniの適切な位置に
extension=php_pdo.dll
extension=php_pdo_sqlite.dll
extension=php_sqlite.dll
の3行を順番に記述するがよろし。
Linux版とかでも何らかの作業が必要と思われ。
0451nobodyさん
2006/02/15(水) 23:48:30ID:yhYCj6u70452450
2006/02/16(木) 00:08:24ID:???Win版で非標準(デフォで組み込まれていない)になって、Linux版で標準のままだったら不公平かとw
Win版に関しては間違いなく5.1.0ではデフォでは組み込まれなくなった。
5.0.4→5.1.0Ver.UP時にphp.iniを流用してたらSQLite動かず、原因究明にえらい苦労した。
0453nobodyさん
NGNGクローズに失敗した場合
どう対処したらいいですか?
というかどういう状況になると
失敗するんですか?
0454nobodyさん
2006/02/16(木) 01:07:23ID:???0455nobodyさん
2006/02/16(木) 01:10:32ID:???0458nobodyさん
NGNGじゃあスクリプトからしかアクセスしないような
ログファイルとかだったら
失敗してもそのまま終了してしまって問題ないですよね。
0459nobodyさん
2006/02/16(木) 01:53:31ID:???質問じゃないのか。
0460nobodyさん
2006/02/16(木) 01:57:27ID:???いいんじゃない?
貧弱なOSじゃなかったらスクリプト(PHPプログラム)が終了すると同時にファイルもクローズしてくれるだろうし。
0461nobodyさん
2006/02/16(木) 02:06:41ID:???もうPerl忘れちゃったよ('A`)
いや、そんなにPHPとは変わんないけどさ、気分の問題だよ
0462nobodyさん
2006/02/16(木) 02:26:03ID:U/SzwaHVデータベースがはじめてなのに土曜日までに会員登録をつくらなあかんのです。
助かりました。ありがとうございます。
0465nobodyさん
2006/02/16(木) 04:19:25ID:???xreaを使ってるんですが、
拡張子をphpにしてるにも関わらずhtmlとして扱われてしまいます。
もともとはMovable Typeのtmplという拡張子のファイルを、
PHPでカスタマイズしたものなのですが、
Movable Type側で、このファイルをhtmlとして扱うような
処理がしてあると考えるのが妥当でしょうか?
Perlはわからないのでサッパリです・・・
当然、ファイルは拡張子をかえたので、
そのファイルを使っているものに関しては、
拡張子の関連付けを変えました。
0467nobodyさん
2006/02/16(木) 05:10:39ID:???↑の「&」ってどういう意味をなすんでしょうか?
くだらないかもですが、宜しくお願いします。
0468nobodyさん
2006/02/16(木) 05:56:15ID:???& $variable;みたいに&と$の間にスペース入れられるのかな。
ちなみにそれは参照渡しと呼んぶ。
$src = 100;
echo "$src\n";
hoge ($src);
echo "$src\n";
function hoge (&$src){$src=0}
----出力----
100
0
----終了----
となる。
詳しくは関数の引数を読んでくれ
ttp://www.php.net/manual/ja/functions.arguments.php
0469nobodyさん
2006/02/16(木) 07:50:00ID:???PHPでzip圧縮なんて出来るんですか?
0473470
2006/02/16(木) 09:53:03ID:???PHP自体ではZIP読み込み関数しか用意されてないが、
phpMyAdminの話でいうとPHPからzlibを利用できる環境で
zipとgzipの出力ができる。詳しくはzip.lib.php参照
(PEARのArchive_Zipクラスみたいなもん)
0474nobodyさん
2006/02/16(木) 13:18:39ID:???$rにNULLを入れると、NULLと表示されてしまいます。
これって正しいですか?
0476474
2006/02/16(木) 15:05:23ID:???formタグのvalue='NULL'で渡しているんですが、もしかしてこれって文字列になるんですか?
''としてもifの中を通ってしまいます。
ちなみに明らかに使っていないグローバル変数でif(isset())をしたら中を通ってしまったので、
ためしにNULLを渡してみたらやっぱりifの中を通ってしまいます。
さらにちなみにif(isset())は多用していて、機能する所と機能しない所があります。
なにが違うのかさっぱり分かりません。
どうかご教授下さい。
0477nobodyさん
2006/02/16(木) 15:12:53ID:???APACHEを勉強しようと思い、マイPC(windows)にAPACHEをインストールし、
PHPを動作させました。
ところが、日本語の$_GET値が、勝手にURLデコードされてしまいます。
例えば、次のようなPHPファイルがあり、
test.php
<?php
print $_GET[key];
?>
以下のようにアクセスすると、
test.php?key=%A4%A2%A4%A2%A4%A2
実行結果
-----------------
あああ
-----------------
と表示されます。
正しくは、
-----------------
%A4%A2%A4%A2%A4%A2
-----------------
かと思うのですが、何が原因でしょうか。
お時間がある方教えていただけると助かりますm(__)m
0478nobodyさん
2006/02/16(木) 15:13:32ID:???0479nobodyさん
2006/02/16(木) 15:19:16ID:???>>476
$a = "NULL";
$b = "NULL";
$C = NULL;
echo "a = $a, b = $b, c = $c";
を実行してみて感想が欲しい。
ちなみにマニュアルでは、
引用符、二重引用符
ttp://www.php.net/manual/ja/language.types.string.php
NULL
ttp://www.php.net/manual/ja/language.types.null.php
に書いてあるから。
それでも分からなかったらまた質問しれい。
0480nobodyさん
2006/02/16(木) 15:22:43ID:???http://www.studyinghttp.net/uri
ここのパーセントエンコーディングを読んでみて
0481nobodyさん
2006/02/16(木) 15:25:17ID:???つかhtmlのformで渡せるのは"文字列"だけだよ。
文字列を受け取って、それをどう解釈するかは受信側に任されてるが。
0482474
2006/02/16(木) 16:01:57ID:???実行結果です。
引用符、二重引用符については一様分かっているつもりなのですが、
postで渡したNULLがどうしてもif(isset())を通ってしまいます。
value=NULL
value="NULL"
value='NULL'
$_POST[r]
$_POST['r']
$_POST["r"]
いずれもif(isset())を通ってしまいました。
仕方ないのでNULLの代わりに0を渡して、
if($_POST[r] != 0)としました。
if(isset())は他でも使っているので気持ちが悪いッス。
0484nobodyさん
2006/02/16(木) 16:08:11ID:???フォームでNULLを渡してissetで判定、ってのは基本的には無理。
やるなら
if($r == 'NULL') unset($r);
とかやって変数を消すしかない。
> 明らかに使っていないグローバル変数
これでisset()を通るのは意味不明。どっかで $r = ''; とかしてるんじゃないの?
isset()で偽になるのは unset($r); で変数自体を消す場合と $r = NULL; とプログラム中で書いたとき。
0486nobodyさん
2006/02/16(木) 16:11:33ID:???通常、フォームに対するissetは「そのフォーム自体が存在しない場合」をチェックするのに使う。
なので、<input type="hidden" name="a" value="">とやった時点でもうissetは必ず真。
普通は<input type="submit" name="a" value="aを押したときの処理">みたいにsubmitで使って
どのボタンが押されたかの判別に使う程度。値の内容判別にissetを使うのは間違い。
0487474
2006/02/16(木) 16:14:33ID:???ぬあ、そうなんですか、ってそうなんですね。
ありがとうございます。
ところで、formタグに囲まれている input type='file' は、
参照されなくても$_FILESに値が入ってしまうんでしょうか?
参照されていないのにif(isset($_FILES))でifの中を通ってしまいます。
0488nobodyさん
2006/02/16(木) 16:18:28ID:???基本的な「型」の区別すら付けられていない気が・・・・
(481を読む前に482を投稿したとしても)
0490474
2006/02/16(木) 16:34:56ID:???昨日は動いてた気がしたんですよ、夢でも見てたんですね。
勉強し直して来ます。
0491nobodyさん
2006/02/16(木) 16:36:06ID:???ttp://www.gac.jp/article/index.php?stats=question&category=&id=17033&command=msg&page=all
こっちでも優しくしてやってくれよ…マイッタ
0492nobodyさん
2006/02/16(木) 16:46:47ID:???例えばある表のパラメータとかを入れるレコードを作るとして
2回目から入れる場合
主キー=aとか調べてあればupdateなければinsertっていうのより
一旦レコード全部削除してinsertばっかってやってるのですが
何かまずいことありますか?
調べる処理分時間も短縮されるのでと思っているのですが・・・
0494nobodyさん
2006/02/16(木) 16:51:55ID:???全然ちょっとじゃないよっヽ(`Д´)ノ
0497nobodyさん
2006/02/16(木) 17:01:14ID:???基本的にどの言語にもある変数や配列といった概念は昔からあるのですか?
0498nobodyさん
2006/02/16(木) 17:09:10ID:???0499477
2006/02/16(木) 17:10:43ID:???ありがとうございました。
PHPって勝手にデコードされるのが仕様だったんでしたね。
perlと行ったり来たりの開発でテンパッてました。
0506nobodyさん
2006/02/16(木) 20:50:20ID:ZZ/v8PR0↑これはレンタルサーバのphp.iniのセッション管理部分を抜き出した画像です。
このレンタルサーバでセッション管理は使えるでしょうか。
使える場合、なにか制限はあるでしょうか。
よろしくおねがいします。
0509nobodyさん
2006/02/16(木) 21:43:15ID:???0513506
2006/02/16(木) 22:20:40ID:ZZ/v8PR0>>509
あ、申し訳ない。
「削除されてる」というのは設定が削除されていて
セッション管理ができないことだと思ってました。
画像が削除されてましたね。
もう一度よろしくお願いします。
http://www.geocities.jp/unamuhi/sessioon.html
0516nobodyさん
2006/02/17(金) 06:45:05ID:???´`^^i1^v~ヽ
!|i
||゚
___」L__&/ヽ、
.:.:./ ̄  ̄\;:...;:.:.:.:.:.:.....:.:.:.........:.:.:.
.:...^.^:ー.:.:.:.:...::.:.:.:..:.:.:^^~.:.:.:.:.::::.:.::^::::... :. :.:.. .:.:
:::::::::::::::::::::::::::::,::::::::::::、::::::::::,::::::::::::....:.:.:......:.:.:....:.:
0517nobodyさん
2006/02/17(金) 07:23:56ID:???今の日本が悪いんだ!だからオッサンを責めないでやってくれ!
0518nobodyさん
2006/02/17(金) 08:44:49ID:???by オッサン
0519nobodyさん
2006/02/17(金) 11:30:00ID:???0520nobodyさん
2006/02/17(金) 11:45:07ID:???0521nobodyさん
2006/02/17(金) 12:34:55ID:???class指定の際に変数の型宣言をきっちりしている人がいるのですが、
自動判別にゆだねずあえて宣言するメリットは何なんでしょうか?
0522nobodyさん
2006/02/17(金) 12:43:33ID:???0524nobodyさん
2006/02/17(金) 12:55:47ID:???自動判別は気持ち悪くて仕方が無いんだよ。
現場でも「気持ち悪い、気持ち悪い」とか言いながら「便利だよな」で。
0525nobodyさん
2006/02/17(金) 12:56:31ID:U6ySh0xXttp://pamo.dip.jp/blog/archives/000119.html
windowsで、c:\piyo\foo以下のディレクトリにある
ファイルに含まれる半角かなを全角カナに変換しようと
思ってぐぐったら、上野サイトがみつかりました。
そこで、上記のサイトの通り、以下のディレクトリを作成し、
beforeの方に、変換したいファイルをごっさり入れました。
c:\piyo\foo\before
c:\piyo\foo\after
そして、上野スクリプトをこう書き換えました。
$r_dir='.;c:\foo\before';
$w_dir='.;c:\foo\after';
ですが、うまく動きません。
何か他に設定すべき所はありますか?
どなたかご教示願います。
0526nobodyさん
2006/02/17(金) 13:10:01ID:U6ySh0xX質問がわかりにくくすみません。
自己解決しました。
0527nobodyさん
2006/02/17(金) 13:48:34ID:???こんな短時間で自分でミスを発見する程度のものを質問する時点で・・・
結局、 \\ なのか?
0528nobodyさん
2006/02/17(金) 13:51:05ID:U6ySh0xXはい、そうでしたorz
0529nobodyさん
2006/02/17(金) 15:33:48ID:tkJ6TdC2そうするとhttpでアクセスできなくなりますよね。
自分はアクセスできるようにしたいのですが、
なにか良い案などありましたらご教授願えませんか?
よろしくお願いいたします。
0530nobodyさん
2006/02/17(金) 15:40:33ID:???0531nobodyさん
2006/02/17(金) 16:33:07ID:Jyi+qfsMPHPでアニメーションGIFを自動生成しようと思い
GDでは出来ないということだったので、
ImageMagick(Windows版)というものを探してインストールしてみたのですが、
使い方がさっぱりわからなくて困っています。
どなたか、ご教示をお願いします。
0532529
2006/02/17(金) 16:46:16ID:tkJ6TdC2.htaccessは信頼してもよろしいのでしょうか?
セキュリティーは慎重にいきたいと思ってます。
0533nobodyさん
2006/02/17(金) 16:50:29ID:???質問の意図が良く分からない・・・;
そんな事言ってたらキリが無いと思ったのは自分だけ?
そこまで気になるなら、httpd.confと.htaccessに書いてIPSTABLEにも書き加えれば流石に大丈夫かと
0535nobodyさん
2006/02/17(金) 16:55:44ID:???$hoge['A']='aaa';
$hoge['B']='ccc';
$hoge['C']='ggg';
↑
これを "A=aaa&B=ccc&C=ggg" みたいな文字列にしたい
泥臭くループ回せばとりあえずできる・できたんだけど、
格好良く惚れ惚れするコードは書くことが出来るだろうか
0537nobodyさん
2006/02/17(金) 17:03:25ID:???$s[]="A=aaa";
$s[]="B=ccc";
$s[]="C=ggg";
を作らなきゃやっぱだめ?
0538nobodyさん
2006/02/17(金) 17:04:01ID:???$hoge['B']='ccc';
$hoge['C']='ggg';
$result = "";
foreach ($hoge as $key => $val) {
$result .= $key . "=" . $val . "&";
}
0541nobodyさん
2006/02/17(金) 17:09:40ID:???foreach( $hoge as $k=>$v ) $s[]="$k=$v";
$str = implode("&", $s);
どうしてもかっこよく出来ない。 $sが必要なのがダサすぎ。
0542nobodyさん
2006/02/17(金) 17:27:24ID:???0545543
2006/02/17(金) 17:37:57ID:???PHPならひょっとしてと思ってマニュアル見たらやっぱりあったって感じかな
0546nobodyさん
2006/02/17(金) 17:53:57ID:???すげぇ、ホントにこんな関数あるんだw
でもマニュアルは何故かこの関数だけ英語だな;
それにしてもphpの関数て日々増えてるけど全部把握してる人とかいるのかな・・・
俺は作成するとき関数名調べるのに時々ごっごる先生にお世話になってるけど他の人って大概頭に入ってる?
0547nobodyさん
2006/02/17(金) 17:58:47ID:???print_r(get_defined_functions());
?>
で、出てきた関数を片っ端から調べてる。
0549nobodyさん
2006/02/17(金) 18:13:46ID:???他の関数だと普通に検索できるんからちょっと気になった。
ぐぐって調べたが便利な関数だな。早速書き換えてやるぜ
0550535
2006/02/17(金) 18:30:09ID:???すごいなPHP
0551nobodyさん
2006/02/17(金) 18:33:25ID:???5で新規に追加された関数とか結構英語マニュアルしかないのいっぱいあるよ。
日本語化の中の人も追いつきません。
$hoge['A']='aaa';
$hoge['B']='ccc';
$hoge['C']='ggg';
print $query = join('&', array_map(create_function('$k', 'return urlencode($k)."=".urlencode($GLOBALS["hoge"][$k]);'), array_keys($hoge)));
せいぜいこんなもんだなぁ
0553551
2006/02/17(金) 18:45:44ID:???function http_build_query($a) {
return join('&', array_map(create_function('$k, $v', 'return urlencode($k)."=".urlencode($v);'), array_keys($a), array_values($a)));
}
print http_build_query($hoge);
0554nobodyさん
2006/02/17(金) 18:50:27ID:???よく、会員登録フォームなどで「半角英数字4文字以上を入力して下さい」
っと但し書きがありますが、PHPで指定のフォームの文字数が一定値入っていないと
エラーを返すような仕様にしたいと思っています。
登録内容確認ファイルに、正規表現とその個数を書いて、IFで判別するようにしたら
上記の事が可能だとは思うのですが、いまいちどのように記述すればよいかわかりません。
お手数ですが、教えていただければと思います。
0555nobodyさん
2006/02/17(金) 18:57:09ID:???if(strlen($_POST['input']) < 4 || ! ctype_alnum($_POST['input'])) {
エラー
}
0556nobodyさん
2006/02/17(金) 18:58:22ID:???0557nobodyさん
2006/02/17(金) 19:03:31ID:???>登録内容確認ファイルに、正規表現とその個数を書いて
ってどういう意味だ?
正規表現で「半角英数字4文字以上か判別する」なら
if (!preg_match('/^[\da-z]{4,}$/i', $foo)) die;
か?
555の方がいいかも。
にしても、検索しても見つけられないってのは
絶対検索の仕方が悪いだけだと思う・・・・
(もしくは検索結果の内容が理解できていないか)
0558nobodyさん
2006/02/17(金) 19:08:27ID:qTAsxSAoよっぽど検索が下手なんだろうな、って思うよな。
0559nobodyさん
2006/02/17(金) 19:15:39ID:X1bnCm1pありがとうございます。この方法で問題なく出来ました。
>>557-558
「PHP 入力チェック」「PHP 文字数チェック」などで探しても駄目でした。
検索下手ですみません。
0560nobodyさん
2006/02/17(金) 19:18:09ID:???PHP バイト数
0561nobodyさん
2006/02/17(金) 19:34:46ID:???http://www.uploda.org/uporg315320.txt
RSSリーダーなんですがindex.phpで設置したのですが動作しません。
何故でしょうか?
鯖はphp対応です。
配布先が分からないのでお聞きしました。
0563nobodyさん
2006/02/17(金) 20:15:24ID:OSq2eJeb'passwordcol'=>"password",
外部ファイルのFORMからPOSTで取得したものを代入するには,
usernameとpasswordのところをどう書き換えればよろしいのでしょうか?
ご教授の程、よろしくお願いいたします。
0564nobodyさん
2006/02/17(金) 20:17:32ID:???0565nobodyさん
2006/02/17(金) 20:25:26ID:???0566nobodyさん
2006/02/17(金) 20:26:03ID:???ソース見てコーラ吹いた
それ俺が書いたソースなんだがw
多分1年半前に書いた奴だ
PHP初めて2,3ヶ月程度だったらかなり力技で作ってる奴だから
恥ずかしいんですけどwwww
知り合いに頼まれて作ったものだったんだがそいつが最近自サイトでソース公開してるのを知ってはいたが。。
ttp://sussex.ddo.jp/contents/rss-reader.txt
ttp://sussex.ddo.jp/
0567nobodyさん
2006/02/17(金) 20:32:08ID:OSq2eJeb左辺にPOSTで受け取ったものを代入したいのです。
0571566
2006/02/17(金) 20:56:38ID:???一番上の<? 〜 ?>を
<?
//$rss_arrayはRSSをするサイトを入れてください、"",で読み込むRDFファイルなどを追加できます。
$rss_array=array(
"http://rss.akiyan.com/rss/googlenews.rss?category=public&link=related"
);
//表示件数を設定並びは上とあわせて。上記のRDFを追加した場合も、数字コンマで追加してください。
$num_array = array(
5
);
?>
これにしてみて動くか?
0572nobodyさん
2006/02/17(金) 21:10:26ID:???動作している鯖です。
phpのカウンタはしっかりと動作してます。
>>571
やはり無理です・・・。
パーミッションは何も変更しなくていいんですよね。
0573nobodyさん
2006/02/17(金) 21:15:27ID:???↑を禁止してるとか?
<?php にしてみたらどうでしょう。
0575nobodyさん
2006/02/17(金) 21:27:41ID:???なんだか意味がよく分からんが
$hoge = array(
'usernamecol'=>$_POST["username"],
'passwordcol'=>$_POST["password"],
);
ってことが言いたいのか?
フォームの内容はどうなってて何て変数に代入させたいんだかさっぱり日本語が分からん。
0576nobodyさん
2006/02/17(金) 21:34:54ID:???1.
foreach($rss_array as $key => $files){
echo "";
のとこを
foreach($rss_array as $key => $files){
echo "<hr>$files<hr>";
にして何か表示される?
PHPが動作してて組み込みミスしてなきゃURLが表示されるはず。
2.
1でURLが出てくるようなら
$file = file($files);
の次の行に
echo "<pre>".join("",$file)."</pre>";
というのを追加してみてHTMLソースが表示されるかどうか。
これが出てこないならfile()での外部サイトアクセスを禁止してるサーバなので、
そのプログラムでのRSS表示は難しいかもしれない。
0578nobodyさん
2006/02/17(金) 21:56:03ID:???0579563
2006/02/17(金) 21:56:31ID:???<?php
require_once("Auth/Auth.php");
// Authオプション
$params = array(
'dsn'=>"mysql://username:password@localhost/database",
'table'=>"usermng", // テーブル名
'usernamecol'=>"username", // ユーザ名の列名
'passwordcol'=>"password", // パスワードの列名
'cryptType'=>"md5", // パスワードの暗号化形式
'db_Fields'=>"*", // 他の項目の取得を可能にする
);
$objAuth = new Auth("DB", $params);
// 認証プロセスの開始
$objAuth->start();
if($objAuth->getAuth()) {
echo "ようこそ!" . $objAuth->username . "さん<br>";
// メールアドレスを取得。
echo $objAuth->getAuthData('email');
};
?>
引用(http://www.bnote.net/php/pear/25_auth_db.html)
0581nobodyさん
2006/02/17(金) 22:19:47ID:???('A`)ぅ ラジャ
JpGraphで、Y軸を児童にしてるとき、Yの取り得る範囲が
0〜5とか小さい範囲だと、小数点つきで目盛り振られたり
0.0 0.5 1.0 1.5 みたいになるんだけど、これを整数のみに
したいです。
$graph->yaxis->SetFormat("%d"); みたいにあてずっぽ
でやってみてもダメでした。
なんのプロパティのなにをどうしたらいいかヒントください。
0582nobodyさん
2006/02/17(金) 22:48:00ID:???まぁ、生ソース表示させたんで中身UTF-8のままだからな。
$file = file($files);
echo "<pre>".join("",$file)."</pre>";
mb_convert_variables("SJIS","UTF-8",$file);
を
$file = file($files);
mb_convert_variables("SJIS","UTF-8",$file);
echo "<pre>".join("",$file)."</pre>";
にすれば中身見えるんじゃないかな。
しかしそこまで動いてて表示が出ないのか…。
なんだか真面目にロジックの中身をデバッグしなきゃいけない悪寒。
作った本人いるんだからそいつにデータとコード確認させてぇ。
0583nobodyさん
2006/02/17(金) 22:52:17ID:???変えても
1.
foreach($rss_array as $key => $files){
echo "";
のとこを
foreach($rss_array as $key => $files){
echo "<hr>$files<hr>";
にして何か表示される?
PHPが動作してて組み込みミスしてなきゃURLが表示されるはず。
これしか表示されない・・・。
コードがいけないんすかね?
0584nobodyさん
2006/02/17(金) 23:00:40ID:???0585作った本人
2006/02/17(金) 23:04:04ID:???糞ったソースを動かしてみた。
>>561のソースコピペで
$rss_array = array(
"http://rss.akiyan.com/rss/googlenews.rss?category=public&link=related"
);
↑のRSSでは正常動作確認が出来るな。
>>577
適当なファイル名のphpファイル作って
以下のコード動かしてみて
<?php
echo ini_get('display_errors')."<br>";
echo ini_get('error_reporting');
?>
結果を貼り付けれ
0586nobodyさん
2006/02/17(金) 23:05:52ID:???2047
と出た。
0587nobodyさん
2006/02/17(金) 23:11:24ID:???0588作った本人
2006/02/17(金) 23:15:36ID:???最高レベルか。
んじゃーRSSリーダープログラムの一番上の行に以下を挿入して。
<?php
error_reporting(E_ALL ^ E_NOTICE);
?>
ってか>>583の発言で
これしか表示されない・・・。
コードがいけないんすかね?
これってどれ?
0590nobodyさん
2006/02/17(金) 23:23:01ID:???>>582の変更をしたら、それまで出てたRSSのソースXMLが全く出てこなくなった、でおけ?
ちゅーことは
mb_convert_variables("SJIS","UTF-8",$file);
ここでUTF-8からSJISへ文字コード変換するのに失敗して全部データが消えてる模様。
mbstringが使えないかもしくは設定を間違ってると思われる。
0591nobodyさん
2006/02/18(土) 01:02:47ID:???phpinfo();
ですか
0592nobodyさん
2006/02/18(土) 01:27:54ID:???データに空白を入れることなくグラフを途中で切るには
どうしたらいいでしょうか
0593nobodyさん
2006/02/18(土) 03:36:10ID:???これまたアプリ固有の話題だな。
""で飛ばすのが仕様だから、方法はないよ。
空白""がいやなら、あとは"x"とか入れるか。
0594nobodyさん
2006/02/18(土) 05:28:46ID:???サーバはXREAです。
これの対処法が持っている本に書いてあった気がするんですが、
どうしても見つからなくて困っています。
<?xmlがphpの始まりと認識されなくする方法がわかる方教えていただけませんか?
0595nobodyさん
2006/02/18(土) 05:58:59ID:???元に戻す関数ってあるでしょうか?
ブラウザで表示するときは、変換して、
処理するときは戻したいのです。
0596nobodyさん
2006/02/18(土) 06:04:49ID:???http://www.php.net/manual/ja/ini.core.php#ini.short-open-tag
ただしPHP4かからPHP_INI_PERDIRなのでhttpd.conf php.ini .htaccess で設定できないなら
echo '<?xml〜';
ってやるしかない。
0597nobodyさん
2006/02/18(土) 06:08:21ID:???http://jp.php.net/manual/ja/function.html-entity-decode.php
処理するときに戻すとか考えるなら、出力を2系統に分けることも考えてみては?
0598nobodyさん
2006/02/18(土) 06:15:02ID:???ない。
そういう処理の場合(htmlに限らない)加工前のデータを
保持しておいて、出力に合わせて加工するのが普通。
あと、htmlspecialchars()のUser Contributed Notesを
見ると良い事があるかも。ただ厳密な可逆処理となると面倒。
0599598
2006/02/18(土) 06:17:00ID:???http://jp.php.net/manual/ja/function.htmlspecialchars-decode.php
0600nobodyさん
2006/02/18(土) 06:46:49ID:???print htmlspecialchars($hoge);
って表示する時だけ処理すればいいって話じゃない?
0601nobodyさん
2006/02/18(土) 07:45:01ID:???初期値として表示させておくことは
<INPUT type="text" name="hoge" value="<?=$_POST["hoge"];?>">
で問題ないのですが、
これがSELECTタグのような場合、簡単に
OPTIONタグにselecedを付加する
(valueに一致するoptionにselectedを付加する)方法ありますか?
あるにはあるんですが、自分の考えた方法だと
ループさせて一致させてselectedを付加するという
非常に回りくどいやり方です、これしか思いつきませんでした。
下のようなOPTIONに動的にselectedを付加することが
できるようにしたいのです、例えば変数1がPOSTされたら1、
変数2がPOSTされたら2、という感じです。
<OPTION value="1">1</OPTION>
<OPTION value="2">2</OPTION>
<OPTION value="3">3</OPTION>
0602nobodyさん
2006/02/18(土) 07:54:04ID:???今朝見てロック用ファイルがロックされっぱなしなのかと思い、それを削除してアップし直したら正常に動きました。
ロック用ファイルがロックされっぱなしになることってあるんですか?また、あるなら回避する方法も知りたいです。
0603nobodyさん
2006/02/18(土) 08:23:07ID:???特定のメールアドレスへエラー内容を送信、
みたいなことってできる?
プログラム側でやろうとしたらかなり面倒になりそうなんで。
0604nobodyさん
2006/02/18(土) 08:54:15ID:???for(30まで){
Aの処理
}
if(B!=""){
for(30まで){
Bの処理
}
}
とforを2回、値チェックは1回回して値ごとに処理する方ががいいのか
for(30まで){
Aの処理
if(B!=""){
Bの処理
}
}
とforが1回、値チェックを30回するほうがいいのかどちらがよいと思いますか?
0606nobodyさん
2006/02/18(土) 08:58:30ID:???一個目。
$OptValue = $_POST["hoge"];
$selected1 = "";
$selected2 = "";
$selected3 = "";
switch($OptValue){
case 1: $selected1 = " selected"; break;
case 2: $selected2 = " selected"; break;
case 3: $selected3 = " selected"; break;
}
<OPTION value="1"<?php echo $selected1 ?>>1</OPTION>
<OPTION value="2"<?php echo $selected2 ?>>2</OPTION>
<OPTION value="3"<?php echo $selected3 ?>>3</OPTION>
----------------------------------------------------
二個目。
$OptValue = $_POST["hoge"];
<OPTION value="1"<?php echo( ($OptValue == 1?" selected":"") ) ?>>一</OPTION>
<OPTION value="2"<?php echo( ($OptValue == 2?" selected":"") ) ?>>ニ</OPTION>
<OPTION value="3"<?php echo( ($OptValue == 3?" selected":"") ) ?>>三</OPTION>
ですが、SELECTタグは何度も使うもののような気もしますので
SELECTタグを自動生成する関数などを用意したほうが効率が良いと思われます。
0607nobodyさん
2006/02/18(土) 11:48:31ID:???$OptValue = $_REQUEST["hoge"];
echo "<form>"
."<select>";
$num = 20;
for ($n = 1; $n < $num; $n++)
echo "<OPTION value=\"$n\"" . (($OptValue==$n)?(" selected"):("")) . ">$n</OPTION>";
echo "</select></form>";
?>
0608nobodyさん
2006/02/18(土) 11:48:44ID:XJx/AN5Sリンクはhtmlみたいに、./example2.php#topってやってもエエのん?
(´・ω・`)そんなやり方ダセー!とか言われない?
0609nobodyさん
2006/02/18(土) 11:53:09ID:???#以降の文字は サーバに送信すらされないんだっ!
0610nobodyさん
2006/02/18(土) 12:02:59ID:XJx/AN5Sえええええ?
じゃあ、どうすればエエのん?(´・ω・`)
0612nobodyさん
2006/02/18(土) 12:12:11ID:???こういうことかい
http://nike.s151.xrea.com/info.php#module_gd
0613608
2006/02/18(土) 12:14:45ID:???そうそう!それです!
よかった、もっとPHPらしいやり方とか
あるのかと思いました…。
>>611,612
お二方レスさんくすです!ヽ( ^∀^)ノ
0616nobodyさん
2006/02/18(土) 13:49:44ID:???>>606さんが行ってたユーザ関数を使う俺の場合
もっとこうしたらってのがあったらよろ
下ではvalueとselectしか出力して無いけど、optionタグ丸ごと出したほうがいいかもって気がしてきた
------------------------------
selected(5);
function selected($value)
{
print 'value=' . $value;
if($_GET["hoge"] == $value)
{
print " selected";
}
}
------------------------------
0617nobodyさん
2006/02/18(土) 15:23:05ID:???どうすればよかとでしょうか?
mb_send_mail以外で使うためです。
0618nobodyさん
2006/02/18(土) 15:41:40ID:???php.iniに起因する起動時のWARNINGをキャッチするのは無理でしょ。
Apacheとかのログに一応でるけど。
php.iniをそんなに頻繁に書き換えることないと思うけど?
という上記の意味合いにも取れる質問なんだけど、
本当は下みたいな情報が欲しいの?
http://www.php.net/manual/ja/ref.errorfunc.php
http://www.php.net/manual/ja/function.set-error-handler.php
0621nobodyさん
2006/02/18(土) 15:45:55ID:???<OPTION value="1"<?php echp ($value==1)? " selected": ''?>>1</OPTION>
<OPTION value="2"<?php echp ($value==2)? " selected": ''?>>2</OPTION>
<OPTION value="3"<?php echp ($value==3)? " selected": ''?>>3</OPTION>
くらいしか…
0623nobodyさん
2006/02/18(土) 15:49:18ID:???optionタグに追加の属性とか入れたくなったときに困るから
俺ならselectedしか出さないようにする。
0626nobodyさん
2006/02/18(土) 16:05:33ID:rgTa0qqQ内部文字コードはSJISで、PHP4.4.1を使用しています。
0627nobodyさん
2006/02/18(土) 17:14:38ID:???単純にその値だけ見て厳密な判定は不可能。
(特定の文字が入力されると判定を失敗する場合がある)
よくある手法としては、hiddenで絶対に誤判定しない文字列を常時入れといて
そいつがSJISになってるかどうかで判定するという手法。
0628nobodyさん
2006/02/18(土) 17:25:07ID:???0629nobodyさん
2006/02/18(土) 17:41:24ID:rgTa0qqQで$_POST[a]にいろいろしていましたが、SJISをうまく判別してくれません。。
hiddenでいれてもだめでした。
半角英数字だとASCII、ひらがなをいれると何も表示されず、iモードの絵文字を入れるとUTF-8になり、
何も入力しないとASCIIです。。
0630nobodyさん
2006/02/18(土) 18:09:28ID:???0631nobodyさん
2006/02/18(土) 18:16:37ID:???hexdumpしてみ。
それにiモードの絵文字ってそもそもSJISの範囲じゃないのでは?
調べたこと無いので違うかもしれないけど。
0632nobodyさん
2006/02/18(土) 18:42:42ID:???Autorank PHPについてご存じの方いますか?
ttp://www.jmbsoft.com/software/arphp/
日本語での検索機能が動かないんです
"サイト"で検索すると
http;//〜Keyword=%A5%B5%A5%A4%A5%C8
というような感じでエンコードされて、画面にも サイト と表示されるのですが、
検索がうまくいっていきません。
文字コードはHTML、DB(MySQL)ともにEUC-JPで運用してます
よろしくお願いします >_<
0633nobodyさん
2006/02/18(土) 18:43:52ID:hW4iLyW6検索がうまくいきません でした
他のサイトでEUC-JPで運用しているサイトがあり、
うまくいってるようなのですが原因がわかりません >_<
0636nobodyさん
2006/02/18(土) 20:09:32ID:rgTa0qqQ2chはどうやってSJISを見分けているのでしょう?
0637nobodyさん
2006/02/18(土) 22:07:41ID:???LIKE を使ってスクリプトのクエリ部分をいじってみます
他になにかいい方法ないのかな・・・
0638nobodyさん
2006/02/18(土) 22:19:31ID:???ってさ、mb_convert_encoding()にauto使うと時々失敗しちゃうよな?
0639nobodyさん
2006/02/18(土) 22:21:56ID:???↑のはMySQLの問題だったとは orz
LIKEで代用 orz
0640nobodyさん
2006/02/18(土) 22:25:10ID:???ある集合がどの集合に属するか判定するって言う問題は奥が深ぇと
カンチョールもゆっとる。
0641nobodyさん
2006/02/18(土) 22:27:35ID:???> auto" は、 "ASCII, JIS, UTF-8, EUC-JP, SJIS"に展開されます
とある。
なので、>>629のような現象が起こるのは至極当然のことかと。
0642nobodyさん
2006/02/18(土) 22:47:53ID:???>>いや、それだと>>629の状態にはならない。(ひらがなでSJISになるはず)
これって、最近のPHPの仕様が変わったのかWin32版の問題なのかは知らんけど、
"auto"は"ASCII,UTF-8"に展開されるみたいよ。SJISやEUC-JPは判定しない。
試しに
mb_detect_order("auto");
var_dump(mb_detect_order());
ってのを実行すると、結果は
array(2) {
[0]=>
string(5) "ASCII"
[1]=>
string(5) "UTF-8"
}
となるのよ。(PHP 4.3.10 Win32版の場合)
0643642
2006/02/18(土) 22:48:36ID:???0644nobodyさん
2006/02/18(土) 23:35:34ID:VuSKJfnu$foo = "田中";
という状況で
$strのなかの$fooの値を反映したい
(つまり、$strの中身を「私は田中です。」にしたい)
のですが、何か良い方法があれば教えて下さい。
0645nobodyさん
2006/02/18(土) 23:40:06ID:???遅レスすいません。ロック中で処理できず502エラーでタイムアウトしてた感じです。ちなみに一年くらいそのスクリプトを使っていて、このようになったのは初めてです。現在普通に稼働してます。
0649nobodyさん
2006/02/19(日) 00:03:47ID:???array(5) {
[0]=>
string(5) "ASCII"
[1]=>
string(3) "JIS"
[2]=>
string(5) "UTF-8"
[3]=>
string(6) "EUC-JP"
[4]=>
string(4) "SJIS"
}
-------------------------
WinXP
PHP Version 5.1.1
0651nobodyさん
2006/02/19(日) 00:08:40ID:???0652nobodyさん
2006/02/19(日) 00:12:12ID:???0653nobodyさん
2006/02/19(日) 00:14:46ID:???自分でそんなの再現させたことないから分からんけど、PHPを実行中のApacheスレッドが
途中で異常終了しちゃったりなんかするとflockを解除できずに終わるかも。
flockって通常はプロセス単位で処理してるんでプログラムが異常終了=flockも解除だけど、
CGIと違ってSAPIなPHPみたいに「1個のPHPが異常終了してもApache自体は終了しない」場合では
OSはその終了を検知できないと思うんだよね。
となると、fclose時またはexit時、die時、エラー終了時などにPHPのコアが自動でflockを解除してるはずで、
それが実行できなかった場合にflockがいつまでもかかったままになるのかもしれない。
で、回避方法…定期的にApacheを再起動でもして、不正なflockを掃除するくらいしかないんじゃない?
どう考えてもApacheかPHPが正常動作しなくなった場合くらいしかそんな状態にはならんと思うから
その状態で対策しようったって無理がある気がする。
推測が外れてたらすまそ
0657nobodyさん
2006/02/19(日) 00:38:25ID:???mbstring.language = Japanese
を設定してないだけだ。
デフォルトのphp.iniではコメントアウトされてるぞ。
0658657
2006/02/19(日) 00:39:22ID:???0659nobodyさん
2006/02/19(日) 00:58:56ID:???0660nobodyさん
2006/02/19(日) 01:14:45ID:???0661nobodyさん
2006/02/19(日) 01:16:48ID:8QITr0F/コメントやトラックバックの機能を実装したいと考えています。
管理者が(kakikomi.html)から記事を投稿した際に、(blog.php)でトップページに記事を書き足し、
その日付のHTMLをコメント用HTML(060218.html)として出力します。
コメントはcomment.phpがその日の日付を判別し、コメント用php(060218.html)に書き込まれます。
コメントを付けられたのが記事を投稿したその日ならいいのですが、
comment.phpは日付でコメント用HTMLを探しにいってしまうので、
日付が変わってからコメントをつけると次の日の日記を書いたときにコメントを書いたことになってしまいます。
長文で申し訳ありませんが、何かいい解決方法ありましたらよろしくお願いします。
フリーサーバーを使っていて、広告が入ると著しくデザインが崩れるので、
トップページをphpで構成したいところなんですが、なんとかHTMLで出力したいと考えています。
0662nobodyさん
2006/02/19(日) 01:21:29ID:???0663nobodyさん
2006/02/19(日) 01:22:05ID:???0664661
2006/02/19(日) 01:24:57ID:8QITr0F/ttp://muroran-it.s60.xrea.com/up/data/207.zip
0665nobodyさん
2006/02/19(日) 01:31:24ID:???>comment.phpは日付でコメント用HTMLを探しにいってしまうので、
>日付が変わってからコメントをつけると次の日の日記を書いたときにコメントを書いたことになってしまいます。
この部分の仕様にかなり問題があるような気がするけど・・
あるブログの投稿に紐付けされたコメントなら、その関連を情報として残せばいいだけなのでは・・。
設計を考え直すべきなんじゃない?
0669nobodyさん
2006/02/19(日) 11:42:42ID:???全部変数に入れればいいじゃんってな。
だから$int1 $int2 みたいに書いてたんだよ。
あ、もちろん最初の頃だけだぜ?
でな、とある関数に出会ったんだ。stat()ってヤツだ。
マニュアル見てみたらファイル情報を配列で返すって書いてあるんだよ。
そんなもん使ったことねーし興味ないけど、その時は気分が良かったんだな。
使ってみようと思ったんだよ。
で、いざ使ってみたらこの素晴らしい利便性!
世界が変わったよコードが半分に減ったよミスも減ったよ。
いや、それだけ素晴らしいってことを言いたかっただけだ。
じゃあな、また来るぜ。
0670nobodyさん
2006/02/19(日) 11:56:21ID:iKD+hWT/向上するらしいという表記を見つけたのですが、誰か試した人います?
http://hotwired.goo.ne.jp/webmonkey/2004/05/index1a_page2.html
0672nobodyさん
2006/02/19(日) 12:25:58ID:???0673nobodyさん
2006/02/19(日) 12:29:59ID:iKD+hWT/確かにそうですね。体感速度に影響ないくらいの向上なら、可読性優先の
ほうがいいかも。
0674nobodyさん
2006/02/19(日) 12:41:24ID:???・コメントなんて邪道なものはすべて取っ払う
・空白文字なんて以ての外、改行も入れずにスクリプトは1行で構成
・実行制御に余分な時間を取られるのでループは全て展開
0675nobodyさん
2006/02/19(日) 12:42:27ID:???0676nobodyさん
2006/02/19(日) 12:50:26ID:???改行だけは省略できね。
0677nobodyさん
2006/02/19(日) 13:33:06ID:???昔BASICでゲームプログラミングする時はそんな風に仕上げてたな。
普通に記述してから変換ツール通したり。
0678nobodyさん
2006/02/19(日) 13:55:11ID:iKD+hWT/大幅ダウンしそう...
0679nobodyさん
2006/02/19(日) 14:12:11ID:???0680nobodyさん
2006/02/19(日) 14:13:00ID:j5wr3rm8属性を606から変えたら、プログラムから読み書きできないし・・・
0681nobodyさん
2006/02/19(日) 14:13:43ID:???0682nobodyさん
2006/02/19(日) 14:14:47ID:???> 属性を606から変えたら、プログラムから読み書きできない
?(´△`) デキルダロ
拡張子をcgiとかにしれ
0683nobodyさん
2006/02/19(日) 14:55:13ID:???0684nobodyさん
2006/02/19(日) 15:02:27ID:???0685nobodyさん
2006/02/19(日) 15:00:20ID:???いや、作る段階でそんなこと言ってるようでは
役に立つ判定プログラムは作れないと思うよ?
というか、診断くんそのものをダウンロードすれば
参考どころの騒ぎじゃないだろ?
0686nobodyさん
2006/02/19(日) 15:09:48ID:???隙間を開けたいんだけど、どうしたらいいかな?
BarPlotでSetWidth設定してもダメだった。
0688nobodyさん
2006/02/19(日) 16:38:45ID:8orHyj9/自動的にEUC-JPに変換して読み込みたいのですが、
どうすればよいでしょうか?
0689nobodyさん
2006/02/19(日) 17:11:43ID:iKD+hWT/$line = file_get_contents('file');
$line = mb_convert_encoding($line, 'EUC-JP', 'SJIS');
でいかがでしょう?
0690nobodyさん
2006/02/19(日) 17:51:33ID:???非常識なコーディングだろ。
普通のファイルは >>689 のように読んでくれよ頼むから。
0692sage
2006/02/19(日) 19:06:37ID:iKD+hWT/20行目
3行目
っていう内容のtest.txtというファイルの内容を、
1行目
2行目
3行目
というように一行だけ書き換えたいんですが、どうやればできますか。
file_get_contents->preg_replace->file_put_contentsという方法も
考えたのですが、これだとメモリを浪費しそうなので、一行ずつ操作
する方法を教えていただけるとありがたいです。
0694692
2006/02/19(日) 19:17:53ID:???fopenを違う引数で2回呼び出すわけですね。使ったことがない関数がでて
きたので、これから早速試してみます。
0695nobodyさん
2006/02/19(日) 22:49:33ID:QKFjYBJ6拡張子が
index.htmlのファイルでもphp利用可能なの?
htaccessで何かやってるのかな。。
0697nobodyさん
2006/02/19(日) 23:16:29ID:???$i++;
}while($i == 5);←ここで真ならば、特定の動作を行ってからdoに戻る
というようなことは可能でしょうか。
また、代替案もあればぜひご教授お願いいたします。
0698661
2006/02/19(日) 23:26:20ID:8QITr0F/>>667のようにするのって何て言うんでしょうか?
調べようにもよくわからないのですが・・・・
0699nobodyさん
2006/02/19(日) 23:40:10ID:cMtmYVLo単なるリンク
0700nobodyさん
2006/02/19(日) 23:42:06ID:???今いちやりたいことがよくわかりませんが、
無限ループさせたいのでしょうか?
while (1) {
$i++;
if ($i == 5) {
// 処理を記述
}
}
ではだめでしょうか?
0701661
2006/02/19(日) 23:59:21ID:8QITr0F/phpにリンクでURLを渡す(?)
見たいなことなんでしょうか>?
0702nobodyさん
2006/02/20(月) 00:08:50ID:???こういうことじゃないの?
0703697
2006/02/20(月) 00:16:12ID:???ご返答ありがとうございます。
説明が分かり難く申し訳ありません。
無限ループではなく、$i==5が偽になった時点でループを抜けたいのです。
1)doの内容を実行
2a)whileが真ならば"特定の処理"を実行した後doを実行
2b)whileが偽ならば"特定の処理"を行わずにループ終了
御指南いただいたコードですと、ifのところが偽ならばwhileループを抜ける、ということです。
付け加えさせていただきますと、ちょうど下記の動作です。
$hoge = 1;
while ($hoge) {
$i++;
if ($i == 5) {
// 処理を記述
}else{
$hoge = 0; // breakで二重ループを抜けられると良いのですが・・・
}
}
この動作をdo...whileでできないものかと試行錯誤していたのですが、
ふと気づけば希望の動作が完成してしまいましたね・・・
ただ、もう少し綺麗な書き方はないでしょうか。
頼んでばかりで大変申し訳ないのですが、私の力量ですと案が浮かびません。
今一度、よろしくお願いいたします。
0704661
2006/02/20(月) 00:49:07ID:wo/bPpPB~~~~~~~~~~~~~~
この部分はcomment.php側にはどのように送られて、
どう処理して受け取ればいいのでしょうか?
0705nobodyさん
2006/02/20(月) 00:53:25ID:???0706nobodyさん
2006/02/20(月) 01:30:38ID:???0707nobodyさん
2006/02/20(月) 01:30:55ID:???0710nobodyさん
2006/02/20(月) 02:12:52ID:???お前はWebプログラムの基礎の基礎の基礎から1度やり直せ。
つーか、そんなのも知らずにプログラムしようとするな!!
まず1冊でいいからWebプログラム入門の本の頭から読んでみろよ。
そんなんでコメントはともかくトラックバックなんて仕込まれた日には社会の迷惑。
0711697
2006/02/20(月) 07:20:41ID:???示唆していただきありがとうございます。
こうすればいいのですね。これならば最後のループだけ違う動作も行えますね。
do{
$i++;
if($i<=5){
//特定の動作
continue;
}
//最後のループのみで実行される動作
}while($i <= 5);
>>697,>>703の$i==5はすべて$i<=5の間違いでした。
度々申し訳ありません。
0712nobodyさん
2006/02/20(月) 08:17:51ID:???for($i=1;$i<=5;$i++){
if($i<=5){
//特定の動作
continue; //←なしでもいい
}else{
break;
}
}
じゃだめなの?
0713712
2006/02/20(月) 08:23:25ID:???for($i=1;$i<=5;$i++){
//特定の動作
if($i==5){ //最後の処理 }
}
0714nobodyさん
2006/02/20(月) 10:06:25ID:???0715nobodyさん
2006/02/20(月) 10:40:46ID:???while (TRUE) {
if (++$i<=5)
echo '途中';
else {
echo '最後';
break;
}
}
で良さそうな
0716nobodyさん
2006/02/20(月) 10:47:48ID:???0717nobodyさん
2006/02/20(月) 12:03:55ID:???0718nobodyさん
2006/02/20(月) 12:12:10ID:???0719nobodyさん
2006/02/20(月) 13:45:09ID:???0720nobodyさん
2006/02/20(月) 13:52:42ID:???ちょと教えてほしいのですがinputのテキストフィールドなどの値を表示させるとき
<input value='<?=$hoge?>'> だと$hogeに'が入っているとおかしくなるし
<input value="<?=$hoge?>"> だと$hogeに"が入っているとおかしくなるし
<input value=<?=$hoge?> style=〜> だと$hogeが空白だとvalue後のタグが値と認識されて
おかしくなってしまうのですがどうしたらよいのでしょうか?
0721nobodyさん
2006/02/20(月) 13:59:22ID:???変数の宣言を強制する方法はありますか?
0723nobodyさん
2006/02/20(月) 14:08:52ID:???----test.php----
変数aに10を入力し、それを変数bに移し変数bを出力する
====source====
error_reporting(E_ALL);
$a = 10;
$b = $c; // 未宣言としてここは防げる。
$c = 10; // ここは防げない。
echo $d; // 未宣言としてここは防げる
----<test.php>----
0726nobodyさん
2006/02/20(月) 15:27:30ID:???0727697
2006/02/20(月) 15:30:36ID:???>>713
「特定の動作」は、ループの最後の"$i<=5"が真ならば実行し、偽ならば実行せずにループ終了
というようにさせたいのです。
それですと必ず最初に「特定の動作」を行ってしまうので、申し訳ありませんが趣旨とは少し異なります。
>>715
ちょうどその動作です。
綺麗なコードをどうもありがとうございます。
>>716
$i=0と考えていただいて結構です。申し訳ありませんでした。
>>717
最初にdo...whileを使おうと方針を立てただけで、同じ動作が行われるならば特に問題はないです。
do{
//ループ
}while(条件式) ここに条件が真の場合に行われる動作 ;
このような仕様になれば楽なのですけどね。
0728nobodyさん
2006/02/20(月) 15:44:16ID:???$i=0から開始なら
for($i = 0; $i <= 5; $i ++, 特定の動作) {
}
でいいじゃん
0729nobodyさん
2006/02/20(月) 16:05:20ID:???ちょこっとヒント頂けませんかoz
$conn=ocilogon("xxx","yyy","zzz");
$sql = "select id,pass from users";
$stmt = OCIParse($conn, $sql);
OCIDefineByName($stmt, "ID", &$dbid);
OCIDefineByName($stmt, "PASS", &$dbpass);
OCIExecute($stmt);
while(OCIFetch($stmt)){
$idpw[$dbid] = $dbpass;
}
OCIFreeStatement($stmt);
OCILogoff($conn);
0730nobodyさん
2006/02/20(月) 16:19:35ID:???簡単なsql文でデータは持って来れてるのは確認したので
配列に格納するところがおかしいとは思うんですが・・・
0732729
2006/02/20(月) 16:44:05ID:???聞く前にまだ自分にできることあったのに気づかなかったのがセンスなさ過ぎますね(TT
ありがとうございました またしばらく悩んでみます
0735nobodyさん
2006/02/20(月) 18:19:28ID:???0736nobodyさん
2006/02/20(月) 18:41:07ID:???0737nobodyさん
2006/02/20(月) 18:54:32ID:E2kZov7hPHPの最初で header('Content-type: text/plain;'); としてもうまくいきません。
0738nobodyさん
2006/02/20(月) 18:56:12ID:???header前でechoとかprintとか使ってない?
0739nobodyさん
2006/02/20(月) 18:56:36ID:???なことはできますか?
例)
preg_match_all('([0-9]+?)', '1,2,3,4,5,6,7,8,9', $matches);
この例では5までマッチしたら正規表現による検索を中止したい。
0740737
2006/02/20(月) 19:02:18ID:???> headerの前で何か出力をすると意味ないよ。
> header前でechoとかprintとか使ってない?
使ってないです。
ちなみにheader()の前でheaders_sent()してみるとFalseでした。
php.iniの設定の問題ですかね…
0743nobodyさん
2006/02/20(月) 19:06:55ID:???カンマ刻みの「要素,キー」が複数行あるデータをtxtファイルから読み込みasortしたいのですが。
読み込んだファイルから一気に連想配列を作成のしかたを教えてください。
自分では、
$lines = file("test.txt");
で読み込んだあとに、
$i = 0;
foreach ($lines as $value) {
list($a => $b) = explode(",",$lines[$i]);
echo "$a => $b";
$i++;
}
でできるかな…とかおもったんですが無理でした。
勉強中なんですさまじく頭悪い質問だとおもいますがよろしくお願いします。
0744nobodyさん
2006/02/20(月) 19:58:21ID:???allでは無理。つーかallって言わないだろそれ。
preg_matchはそれを実現するために4.3.3以降でoffset指定ができるようになってるから
ループで回せ。
0745nobodyさん
2006/02/20(月) 20:00:30ID:???条件にあるループにして途中で
break
die
return
continue
あたりで出来るんじゃね
preg_match_all使ったこと無いけどさ
0746739
2006/02/20(月) 20:04:30ID:???>allでは無理。つーかallって言わないだろそれ。
うーm、確かに
それでは、ループで回してみます。
0748nobodyさん
2006/02/20(月) 20:58:35ID:???> list($a => $b) = explode(",",$lines[$i]);
ここで無理せずに
list($a, $b) = explode(〜);
$array[$a] = $b;
にしときなよ。
0749nobodyさん
2006/02/20(月) 21:08:16ID:???レスありがとうございます。
やっぱ、それしかないんですかねぇ。
問題ないしやっぱりそれでいこうかとおもいます。
回答ありがとうございました。
0750nobodyさん
2006/02/20(月) 22:01:47ID:???一発でインストールできるコマンドは無いんですか?
落としたパッケージを一つ一つ入れる方法しか見つかりません。
Fedora core4です。
0751nobodyさん
2006/02/20(月) 22:04:06ID:???見やすいコードを書くんだ。
0752nobodyさん
2006/02/20(月) 22:08:30ID:???それを言うなら「かっこいいコードなんて書かなくていい。分かりやすいコードを書くんだ」だと思う。
バグを生まない鉄則だよね。
0754nobodyさん
2006/02/20(月) 22:58:13ID:???例
hoge.csv の2行目,6列目の文字列を表示
<?echo
0755nobodyさん
2006/02/20(月) 22:59:20ID:???r' ,v^v^v^v^v^il / ヽ
l / jニニコ iニニ!. / ジ き ぼ l
i~^' fエ:エi fエエ)Fi ! ャ れ く l
ヽr > V ! イ い は l
l !ー―‐r l <. ア な l
__,.r-‐人 `ー―' ノ_ ヽ ン /
ノ ! ! ゙ー‐-- ̄--‐'"ハ ~^i \_ _ノ
ヽ ! ヽ、_ _.ノ i \  ̄ ̄ ̄ ̄
ヾV / ! /.入
0757nobodyさん
2006/02/20(月) 23:05:58ID:???$fl = file ("hoge.csv");
$sp = split ("\t", $fl[1]);
$target = $sp[6];
かな。
0759nobodyさん
2006/02/21(火) 00:26:57ID:???0761nobodyさん
2006/02/21(火) 01:46:35ID:???0763nobodyさん
2006/02/21(火) 01:55:32ID:???fgetcsvなんて運頼みの関数使っちゃああああああああ
0764nobodyさん
2006/02/21(火) 01:56:44ID:???これ試してみ
"ソ","あああ"
0765nobodyさん
2006/02/21(火) 02:49:36ID:???タブ区切りだけのものとかにこう使うと問題無く使えて便利だよ。
$line = fgetcsv($fp, 1024, "\t", '');
0766nobodyさん
2006/02/21(火) 05:12:01ID:???ZIP解凍関数ならあるのですが…
0770nobodyさん
2006/02/21(火) 10:26:49ID:9X8UKVFdショッピングカートの原型を作っているのですが、
$nameにtestが入っていて送信すると、$_SESSION['test']=$testになるようにし、
header('Location')で次のページで表示します。
再び前のページに戻って今度は$nameにtest2が入っているデータを選択して
送信します。しかし、次のページではtestしか表示されません。
次のページではforを使って、$_SESSION['test']に入っているデータをすべて
出すようにしたのですが、1つしか入らないみたいです。
説明が下手で済みませんが、セッション変数に次々とデータを入れて
すべて表示させるような事はできるのでしょうか?
0771nobodyさん
2006/02/21(火) 10:27:36ID:???$nameにtestが入っていて送信すると、$_SESSION['test']=$testになるようにし、
↓
$nameにtestが入っていて送信すると、$_SESSION['name']=$nameになるようにし、
0772nobodyさん
2006/02/21(火) 10:34:45ID:???>$nameにtestが入っていて送信すると、$_SESSION['test']=$testになるようにし、
>header('Location')で次のページで表示します。
現在の$_SESSION['test']=="test1";
>再び前のページに戻って今度は$nameにtest2が入っているデータを選択して
>送信します。しかし、次のページではtestしか表示されません。
現在の$_SESSION['test']=="test2";
$_SESSION['item'] .= "test1,";
$_SESSION['item'] .= "test2,";
のように買い物籠のリストを作成してみては?
そんで$_SESSION['test1']が買い物かごの内容にすればいいんじゃないかな。
0773nobodyさん
2006/02/21(火) 12:25:16ID:???両者の違いは引数を羅列して渡すか、配列にして渡すかだけですか?
例えば、
function test($var1, $var2, $var3) {
return $var1 + $var2 + $var3;
}
関数testを呼び出して引数を渡したい場合、
$result = call_user_func('test', $a, $b, $c);
と、
$result = call_user_func_array('test', array($a, $b, $c));
は等しいという認識であってますか?
0774nobodyさん
2006/02/21(火) 12:27:14ID:nnE5DkIVその時に文字列のみをハイライトしようと思い、曖昧検索のため大文字,小文字は両方ハイライトしてもらいたいため
mb_eregi_replace
でやろうとしましたが、特定の文字列では正規表現されないのでエラーになります。(当たり前ですけど)
どうすれば英数小文字,大文字でも正確にハイライトできるでしょうか??
PHP4.4.2を使用しています。
0775nobodyさん
2006/02/21(火) 12:49:03ID:???call_user_func_arrayの方は引数は必ず二つでなくてはならない。
'function name'と'parameter(mixed)'
call_user_func はいくつでも引数を指定できる。
例えば
function hoge($a, $b)と
function hogehoge($a)
を使い分けたい場合は
call_user_funcでは引数の数が合わなくなってしまいますが、
call_user_func_arrayを使えば
call_user_func_array ('hoge', array('a_var', 'b_var'));
call_user_func_array ('hogehoge, array('a_var'));
とできるので、call_user_func_arrayの方が柔軟性があると言えるでしょう。
0776nobodyさん
2006/02/21(火) 12:53:23ID:???preg_match_all使ってみては?
例文としては。
<?php
$a = "abcdefg/hijklmn/opqrstu/vwxyz";
preg_match_all ("<[^/]*>i", $a, $b);
print_r ($b);
?>
0777773
2006/02/21(火) 13:09:52ID:???丁寧にありがd
call_user_func_array()の方が見栄えが良くていいな。書き換えるか。
レスサンクス。
0778774
2006/02/21(火) 13:24:41ID:???preg_match_allは始めてみましたがいまいち使い方がよくわかりませんでした。
とりあえずquotemeta()で一時的に対処しました。
0780nobodyさん
2006/02/21(火) 15:18:51ID:???0781nobodyさん
2006/02/21(火) 15:26:29ID:???0783774
2006/02/21(火) 17:39:23ID:nnE5DkIVエラーログには
PHP Warning: mb_eregi_replace(): mbregex compile err: premature end of regular expression in...
という記録が残されているのですが、どのような文字列が投稿されてるのかも解らず困ってます。。
0785nobodyさん
2006/02/21(火) 17:48:24ID:???入力された時刻を合わせて記録しとけばエラーログと突合せもできるだろ。
0786nobodyさん
2006/02/21(火) 17:55:50ID:???0787774
2006/02/21(火) 18:01:28ID:nnE5DkIVで使用しています。php.iniは
mbstring
Multibyte Support enabled
Japanese support enabled
Simplified chinese support enabled
Traditional chinese support enabled
Korean support enabled
Russian support enabled
Multibyte (japanese) regex support enabled
mbstring extension makes use of "streamable kanji code filter and converter", which is distributed under the GNU Lesser General Public License version 2.1.
Directive Local Value Master Value
mbstring.detect_order no value no value
mbstring.encoding_translation Off Off
mbstring.func_overload 0 0
mbstring.http_input pass pass
mbstring.http_output pass pass
mbstring.internal_encoding SJIS SJIS
mbstring.language neutral neutral
mbstring.substitute_character no value no value
となっていて、imodeでも使えるようにしているのでSJISコードです。
とりあえずログ吐かせてみます。
0788774
2006/02/21(火) 18:14:39ID:nnE5DkIV"ー"
でした。
0789nobodyさん
2006/02/21(火) 18:21:15ID:???「ゼ」とかどうよ
0790774
2006/02/21(火) 18:24:02ID:nnE5DkIVおっしゃるとおりです。
0791nobodyさん
2006/02/21(火) 18:31:24ID:???0792774
2006/02/21(火) 18:42:15ID:???ただこうなるとは思わず、ちょっとやっかいです・・
0793nobodyさん
2006/02/21(火) 18:43:04ID:???> mbstring.language neutral neutral
これJapaneseに設定してみて
0794nobodyさん
2006/02/21(火) 18:49:01ID:???となりましたが、やはりエラーです。。
んー困った。。。
0795nobodyさん
2006/02/21(火) 19:02:01ID:???$result = mb_ereg_replace ($replace_str, "<Font Color=\"#FF0000\">\\0</Font>", $input, "ip");
と後ろに"p"をつけてみて。
mb_ereg_replace(x,y,z,"i");と
mb_eregi_replace(x,y,z);は同じ動作するから。
0796nobodyさん
2006/02/21(火) 19:05:29ID:???ここの情報がもしかしたら有用かもしれない。
ttp://ns1.php.gr.jp/pipermail/php-users/2002-November/011727.html
ttp://fjsk.s39.xrea.com/item_340.html
正規表現が停止する文字が入ってるからかもね。
[などは\でエスケープしてあげるといいかも。
0797774
2006/02/21(火) 19:10:25ID:???かわんないです。。
>>796
読んでみました。pもつけてるのにな。
あと、mbでやると"ゾ"を代入しても変換されないことに気づきました。
str_replaceで英大小文字も変換できるだけでいいのに・・・
0798nobodyさん
2006/02/21(火) 19:11:23ID:???このサイトのソースを見ながら、フォームからアクションで動作するプログラムを作っていたのですが
ttp://www.komonet.ne.jp/~php/program/bbs/chap1.htm
Array
(
[action] => regist
)
$_POSTではこのように返ってきているのですが、if文の後の処理がされません。
実際は、掲示板を作りたいわけでなくラジオボタンが全て選択されているときにだけ、次のページor次の処理へというようにしたいのですが。
よろしくお願いします。
ファイル名test.php
<FORM ACTION="test.php" method="POST">
・
・
・
<INPUT TYPE="SUBMIT" VALUE="書き込み/更新">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="regist">
・
・
if($action == "regist"){
〜
}
0799nobodyさん
2006/02/21(火) 19:15:14ID:???スーパーグローバル変数を調べてごらん。
$action = $_POST['action'];
で$action埋めてなくちゃif文は実行できないよ。
0800nobodyさん
2006/02/21(火) 19:17:43ID:???おまえ途中の話を全然読んでないだろ…
>>794
mbstringの問題じゃなく、quotemetaがマルチバイトに非対応なせい。
mb_ereg_replace使ってマルチバイト対応のquote処理を自前でやるか
SJISやめてEUCに変換してから検索するとかしないとダメかもな。
0801nobodyさん
2006/02/21(火) 19:24:36ID:???そこのサイトのプログラムは古くて、ほとんどの場合、そのままでは動作しない。
というか$_POSTの存在まで気付いときながら何故そんな旧時代のサイトを参考にしてるんだ。
0802nobodyさん
2006/02/21(火) 19:55:48ID:???返信ありがとうございます。
そうなのですか。
アクションリスナーでnullが返ってきたらページを移動させない。
みたいなニュアンスで作れるのかなと前途記述したサイトをみてやってみたのですが。
$_POSTはすでに使用していて、別ページにとんだときにラジオボタンの状態に応じた処理をつくりました。
その前のページでのラジオボタンのチェックミスがあったときの処理についてアドバイスをください。
0805nobodyさん
2006/02/21(火) 20:13:21ID:???すいません。
ラジオボタンによる選択肢を2つ用意したとして、1つに記入ミスがあったとする。
実行ボタンを押しても次のページに飛ばず再入力を求めるようなものを作りたい。
if(入力ミスがあったら?){
}
をどのように記述すればいいかがわかりませんでした。
javaの場合だと
アクションリスナーでアクションをキャッチできるのですが。
phpの場合だとformの実行ボタンを押した、という状態をどのように感知するのかがわかりません。
調べてたら、
if(count($_POST) > 0){
でできるかもっぽいことがわかったのでためしてみます。
>>804
なるほど…
でも、勉強を含めて覚えてる最中なのでできれば妥協はしたくなかったんです。
見苦しい質問ですいません。
0806nobodyさん
2006/02/21(火) 20:24:28ID:???勉強も十分必要だが、適材適所を見極める目も養ったほうがいいよ。
コードを組めるようになったのに、汚いコーディングしかできなくなると自分で大変だから。
0808nobodyさん
2006/02/21(火) 20:38:14ID:???PHPがどこで実行されるのかつーと、鯖で動くんだなこれが。
鯖側で動くJavaのJSPやServletなんかも鯖で動くんだな。
一方、JavaScriptやAppletなんかは、ブラウザ側で動くことになる。
普通はこんな感じになるんじゃないかな。
1. JavaScriptで入力チェック、okであれば 2.へ。(JSが嫌いな人は 1.は無し。ブラウザ側)
2. PHPで入力チェック後、エラーメッセージなり既入力値なり何なりを付け足したHTMLを出力。(鯖側)
ちょいと変わり物だと、Ajaxを使うのもありかな。
0809nobodyさん
2006/02/21(火) 21:10:40ID:???mbを使わない
preg_quote
など。ただしこれを使ってもまた別な問題が発生する。
特に理由がなければEUCで書いて出力だけSJISにする方が早い。
0810nobodyさん
2006/02/21(火) 21:36:24ID:???など、というかその組み合わせだな。
>>797
1.mb_eregを使うならエスケープは自力でやる
2.quotemetaやpreg_quoteを使うならeregかpregを使ってmb_eregは使わない
mb_eregじゃなければquotemetaやpreg_quoteでSJISが相手でも正しくクオートできるが、
その代わり1文字のSJISコードなどを正常にマッチできる保障はなくなる。
ま、元々がstr_replaceを使ってたって言うんならeregi_replaceでいいんじゃないの?
0811nobodyさん
2006/02/21(火) 21:38:41ID:???> phpの場合だとformの実行ボタンを押した、という状態をどのように感知するのかがわかりません。
type=hiddenで特定のデータを埋め込んでおいてそのデータが送信されたかどうかをチェックするか、
type=submitにnameをつけてそいつの送信の有無を確認する。
0812798
2006/02/21(火) 22:02:00ID:???なるほど、ということは。
ファイル名test.php
<FORM ACTION="test.php" method="POST">
・
・
・
<INPUT TYPE="SUBMIT" VALUE="実行">
<INPUT TYPE="HIDDEN" NAME="action" VALUE="regist">
・
・
if($action == "regist"){
〜
}
というプログラムで$_POSTが
Array
(
[action] => regist
)
と返ってきていてif文内の処理がされないのは、別の部分の記述ミスということなのかな。
あと、>>805さんの2個目のやり方だと。
<INPUT TYPE="SUBMIT" VALUE="実行" NAME="id">
if($id == "実行"){〜}
という感じですかね?もう少し勉強してから出直してきます。
0813nobodyさん
2006/02/21(火) 22:05:32ID:???〜
}
0814nobodyさん
2006/02/21(火) 22:06:17ID:???ここはお前のメモ帳じゃないんだ。
ちゃんとAN HTTPDやApacheとPHPを入れて自分で実践してくれ。
0815nobodyさん
2006/02/21(火) 22:06:37ID:???そんなに $_POST['action'] や $_POST['id'] を嫌ってあげなくてもいいと思うのよ
0816nobodyさん
2006/02/21(火) 22:07:53ID:y3MPaFDb0817nobodyさん
2006/02/21(火) 22:07:59ID:???0818nobodyさん
2006/02/21(火) 22:14:50ID:???ごめん
何度か自鯖でためしてたんですが、参考にしてたサイトのやりかたが古かったようで。
いまいち使い方がわかってなかったようです。
>>813
thx
0819nobodyさん
2006/02/21(火) 22:37:20ID:???0820nobodyさん
2006/02/21(火) 22:44:30ID:???0821nobodyさん
2006/02/21(火) 23:28:23ID:???0822nobodyさん
2006/02/21(火) 23:29:02ID:???それもありますけど
$user_id = $_POST['id']
みたいなかんじで別の変数に入れてたり。
0823nobodyさん
2006/02/21(火) 23:30:08ID:???0826nobodyさん
2006/02/21(火) 23:59:45ID:???例えば、
hoge.php?_SESSION[user_pw]=hogehoge
って形で送られてきたとします。これを
extract($_GET)
しちゃうと、$_SESSION['user_pw']の値が、
"hogehoge"に変更されてしまいます。
もし事前にユーザのパスワードを、$_SESSION['user_pw']に
保持してたとしたら、勝手に書き換えられてしまうことになります。
それを避けるために
extract($_GET, EXTR_SKIP)
ってやって上書きを避けたとしても、
このままでは変数の初期化を忘れる危険性があります。
extract($_GET, EXTR_PREFIX_ALL, "get")
と、接頭辞をつけるのが一番安全な気はしますが、
それなら最初から
$hoge = $_GET['hoge'];
ってやるのと手間が変わらないと思いますし、可読性も増します。
確かにextractするのは楽だと思いますけど。
0829nobodyさん
2006/02/22(水) 03:10:45ID:???みんな分かってるくせに。
どんな時でも値チェックは基本。
時には正規表現も使う。これでいいか?
0830nobodyさん
2006/02/22(水) 06:28:29ID:???htmlspecialcharsに通すだけにしてるんですけど、
それだけじゃ足りないでしょうか?
0833nobodyさん
2006/02/22(水) 09:13:49ID:???やってて当たり前っつーか。
0834nobodyさん
2006/02/22(水) 09:40:06ID:???どういうことを入力されたらXSSやSQLインジェクションに繋がるかがわからない・・・
赤マンモス本しか読んでないから、セキュリティ関係の本も読んだほうがいいのかな。
0835nobodyさん
2006/02/22(水) 10:39:33ID:???ttp://64.233.179.104/search?q=cache:LgahQDd3smIJ:www.atmarkit.co.jp/fsecurity/rensai/webhole02/webhole01.html+sql+%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%A7%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3&hl=ja&gl=jp&ct=clnk&cd=1
ググればいくらでもあるだろ
0836nobodyさん
2006/02/22(水) 10:40:13ID:OxTvy2cr0837nobodyさん
2006/02/22(水) 10:49:53ID:/RILhY7o個人的に携帯専用の求人情報サイトを作りたいと
思っていますが、
PHPの知識は皆無ですので、
システムが構築できません。
システムの参考HPはhttp://www.jwpc.jp/
です。
どなたか、安く作成してくれる方、
または安く作成してもらえるところはないでしょうか?
メールを記載しますので
onm_2006@mail.goo.ne.jp
お返事ください。
システムの機能に関しては詳しくお返事しますので
どうかよろしくお願いします。
0838nobodyさん
2006/02/22(水) 10:55:15ID:???個人的に、話の最初から「安く」と言ってくる仕事で
クライアントが期待する金額が妥当な価格であった試しがない。
話の中で優先度の高い条件のひとつに、
予算(安く)が出てくる事は当たり前だが。
0839nobodyさん
2006/02/22(水) 11:02:10ID:???SOHO系のスレッドにでもいって、
そこで頼んでみたほうがいいと思うよ。
仕事がない暇だーって言ってる人もいたし。
あとそういった用途にはちょっとPHPは不向きかもね。
0840nobodyさん
2006/02/22(水) 11:07:33ID:???システム参考とのサイトがなぁ…ネタッぽ杉
「求人情報サイト」とかいって作ったら、
いつの間にかカスタマイズされて
出会い系サイトに流用されそうなオカン
>>839
「そういった用途」って何?
0841nobodyさん
2006/02/22(水) 11:26:07ID:???PHPは処理速度が遅いから、
たくさんのリクエストを同時に抱えると極端に遅くなる可能性がある。
っていうこと。
0843nobodyさん
2006/02/22(水) 11:31:04ID:???0844nobodyさん
2006/02/22(水) 11:31:17ID:???0846nobodyさん
2006/02/22(水) 11:41:56ID:???処理速度にこだわるだけならCとかもいいんでね?
インタプリタだからPHPの処理が遅いのは仕方がない。
ってここなんのスレだっけ?
0847nobodyさん
2006/02/22(水) 11:42:28ID:???epsってただのテキストファイルじゃなかったっけ?
epsを出力するエンジンがあるのか?って質問かもしれんが…
0850nobodyさん
2006/02/22(水) 11:49:46ID:???<?for(〜){?>
<tr>
<td>〜</td>
<?for(〜){
処理a?>
<td></td>
<?}?>
</tr>
<?}?>
とか書いているのですがもっと綺麗に書く方法はありますか?
で、こういう場合上みたいにtdの頭をそろえた方がいいのか?
<td>と<?の頭をそろえた方がどちらが良いのでしょうか?
0852nobodyさん
2006/02/22(水) 11:55:37ID:???0854nobodyさん
2006/02/22(水) 12:02:42ID:???<table>
<?php
for (;;) {
echo "<tr><td>" . 〜 . "</td>";
for (;;) {
処理a
echo "<td></td>";
}
echo "</tr>";
}
?>
</table>
そもそもそこまで入れ子にしない方がいい。
だけど気になるので分かる人俺にもついでにおせーて。
0855nobodyさん
2006/02/22(水) 12:03:53ID:???中間コードコンパイル後の実行処理もJavaやPerlに比べて結構遅いよ。
1回目がめちゃ遅いんであって、2回目以降でも決して速くはない。
0856nobodyさん
2006/02/22(水) 12:09:48ID:???デザイナーと分業してるんなら、>>852 じゃ無いが、テンプレートエンジン使えば?
Flexy とかもあるぞ。
0857nobodyさん
2006/02/22(水) 12:20:58ID:???これが俺のデザインなんです。
って言ってみようぜ。
俺はお前のデザイン分からんように、お前も俺の知的フィールドは理解できんだろ。って
クビは覚悟だな。
0859850
2006/02/22(水) 12:53:19ID:???>>856 テンプレートエンジンか・・使ったことないんでちょっと調べてみます。
>>857 それじゃ進歩しないじゃんw
0860nobodyさん
2006/02/22(水) 13:10:35ID:???extractを使うと初期化しないで使っている変数がある場合や、
extract以前に処理した変数の値が任意に設定できるため、
XSSやSQLインジェクションなどわかりやすい物だけではなく、
もっとわかりにくい論理的破綻すら招く。
デバッグはしにくいし、どこでどう転んで脆弱性を生み出すか検討するのも大変になる。
ならば、extractを乱用するのは避けるべきであるってことだ。
見通しの悪いコードは書かないのは基本。
0861nobodyさん
2006/02/22(水) 13:25:58ID:???こっちが進歩するだけが世界じゃない、
向こうが進歩する事もまた世界の一つだ。
>>860
昔から気になってたんだけど、Let's PHP
あれはどうなん?
extract使ってるけど。
0864nobodyさん
2006/02/22(水) 13:55:20ID:???> >>861
> 諸悪の根元
(・ω・;)ω・;)・;) )...マヂ??
レッツPHP!を参考に、つい先日から勉強を始めたばかりなのですが・・・。
ええextractも「これが基本かっ!」てな感じで使ってました・・・。
0865nobodyさん
2006/02/22(水) 14:05:25ID:YzTdS2ndwindows server 2003でIIS6.0を使用してます。
PHP4.4.2をインストールし、nucleusでblogを作成したところ、
「エラー発生アプリケーション w3wp.exe、バージョン 6.0.3790.1830、エラー発生モジュール php4isapi.dll、バージョン 0.0.0.0、エラー発生アドレス 0x00002443」
とアプリケーションログに記録され、表示できなくなりました。
どうやら、PHP4.4.2のバクのようで、STABLE版の使用で解決するらしいのですが、STABLE版はIISで使用できるのでしょうか?
また、設定方法等、解説しているサイトをご存知でしたら、ご教授願えませんでしょうか?
よろしくお願いします。
0866nobodyさん
2006/02/22(水) 14:07:18ID:???それを利用してブラウザに情報を挿入したhtmlを表示させるにはどうすればよいのでしょうか?
今までは表示用のhtmlを、あとから情報を挿入したい部分毎に細切れにしたものを変数に入れておき、
情報を挟みつつ順番につなげてからechoで出力していたのですが、
デザイン面の変更にかなり手間がかかっていました。
そこで次に試してみたのは、
_template.htmlの情報を挿入したい部分に{$hoge}と入れておき、
$hoge = "output test";
$output = file_get_content("_template.html");
echo $output;
としてみたのですが、ブラウザにも「{$hoge}」とそのまま表示され、$hogeに格納した文字列は表示されませんでした。
たとえば$output = "テスト{$hoge}";とやると$hogeの内容が表示されます。
どうすれば_template.html中の{$hoge}のような部分に変数の内容を表示させることが出来るのでしょうか?
よろしくお願いします。
0867nobodyさん
2006/02/22(水) 14:09:36ID:???スレ違い。こっちで
http://pc8.2ch.net/test/read.cgi/php/1140027592/145
0868nobodyさん
2006/02/22(水) 14:13:45ID:???あそこは凄いね。ある意味勉強になるよ。
SQLインジェクションとかがやり放題なスクリプトとか放置されてるし
(確かここで指摘されて知ったんだが)
0869nobodyさん
2006/02/22(水) 14:16:36ID:???スレ違い。こっちで
http://pc8.2ch.net/test/read.cgi/php/1118799352/
0870nobodyさん
2006/02/22(水) 16:51:33ID:25ErppZdprint関数内の変数名の全てを htmlspecialchars($hoge) のように変更すれば良いのですが、
それだとコードが汚くなってしまうので・・・。
よろしくお願いします。
0871nobodyさん
2006/02/22(水) 16:54:39ID:???それで正常に動作しているのですが、make uninstall には対応していないようですので、
例えば新たに PHP 5.1.3 が公開された場合には、どうやってアップグレードするのがよいのでしょうか?
1. Apacheの設定ファイル httpd.conf から 「LoadModule php5_module modules/libphp5.so」 を削除
2. Apacheの再起動
3. make install 時に作成されたファイルを全部手動で削除(rm, rmdirコマンド)
4. 新しいバージョンを落としてきてコンパイル、make install
5. Apacheの再起動
といった手順で問題ないでしょうか。
0872nobodyさん
2006/02/22(水) 16:58:14ID:???ソース内の「print」を一括置換で、
「$tempdata .=」に変えておいて、
処理の最後で
print htmlspecialchars($tempdata);
0873nobodyさん
2006/02/22(水) 17:02:31ID:???ob_start()で出力内容を全部バッファに格納しちゃって
プログラムの最後でprint htmlspecialchars(ob_get_contents())ってのはどう?
0874nobodyさん
2006/02/22(水) 17:03:03ID:???print htmlspecialchars($str);
}
とか作って
hoge($str)で読み込ますのは駄目?
0875nobodyさん
2006/02/22(水) 17:10:54ID:???高木さんも、あのサイト批判したらいいのに。
個人サイトだけど、公開してGoogleランクが非常に高いのは責任あるだろって。
(責任云々は無茶だけど。効果の問題として)
0876nobodyさん
2006/02/22(水) 17:14:56ID:???print $a,$b,$c; とか,でパラメータが渡されてるパターンの話だから、
それだと無理。,→.を追加ってのもスマートじゃないので、無しにしようよ
0877nobodyさん
2006/02/22(水) 17:17:52ID:???お前は、>>870か?それともエスパーか?
>>870のどこに
>print $a,$b,$c; とか,でパラメータが渡されてるパターンの話
なんて記述があるんだ?
0879870
2006/02/22(水) 17:22:39ID:???>>876は私ではありません。
条件が不足していて申し訳ありませんでした。
「print関数内の変数を全て htmlspecialchars を使ってエスケープ処理をする、といった場合にはどうするのが一番簡単でしょうか?」ではなく、
「print関数内の変数全てのみを htmlspecialchars を使ってエスケープ処理をする、といった場合にはどうするのが一番簡単でしょうか?」です。
つまり、
print "<strong>貴方のIPアドレスは" . $hoge . "です。</strong>"; となっている場合に
変数以外の部分の <strong> はエスケープせずに、変数である $hoge をエスケープしたいと考えています。
0881nobodyさん
2006/02/22(水) 17:31:04ID:???make clean は
make時に作成された一時ファイルの削除でしょ、全然違うと思うけど。
# make deinstall
# make uninstall
などが提供されている場合もあるけど、phpだとそれがない。
従って手動でファイル消すしかないっしょ
0882nobodyさん
2006/02/22(水) 17:57:21ID:???知らないだけかもしれんし、突っ込みどころ大杉で
やらないだけかもね。
>SQLインジェクションとかがやり放題なスクリプト
なんて、たいていの入門書がそうなってるし。
0883nobodyさん
2006/02/22(水) 18:20:14ID:???PHPのレッツPHP
0884nobodyさん
2006/02/22(水) 18:21:19ID:???0885nobodyさん
2006/02/22(水) 18:21:30ID:???0886nobodyさん
2006/02/22(水) 18:25:01ID:???今となってはかなり古くて、汚いコードに見えるね・・・。
0888nobodyさん
2006/02/22(水) 18:29:24ID:???よくあるように、
「既にその役目を終えたと判断し、閉鎖させていただきます」
みたいな潔い幕引き出来んもんかね・・・
0890900
2006/02/22(水) 18:49:20ID:???metaWeblog.newMediaObject でフォームから画像をアップロードしたいのですが、
アップロードされたファイルのサイズが1.5倍程に膨らんでしまいます。
以下、ソースになります。よろしくお願いします。PHP 4.3.11
<?php
require_once("XML/RPC.php");
$GLOBALS['XML_RPC_defencoding'] = "UTF-8";
$mt_host = "host名";
$mt_xmlrpc_path = "Movabletypeの mt-xmlrpc.cgi へのパス";
$mt_user = 'user';
$password = 'pass';
$c = new XML_RPC_client($mt_xmlrpc_path, $mt_host, 80);
$appkey = new XML_RPC_Value('', "string");
$username = new XML_RPC_Value($mt_user, "string");
$password = new XML_RPC_Value($password, "string");
$blogid = new XML_RPC_Value("1", "string");
0891900
2006/02/22(水) 18:50:02ID:???$UPLOAD = fopen($Myfile, "r");
$image = fread($UPLOAD, $Myfile_size);
fclose($UPLOAD);
$image64 = new XML_RPC_Value(chunk_split(base64_encode($image)),'base64');
$imageName = new XML_RPC_Value($Myfile_name, "string");
$Params = new XML_RPC_Value(array('bits' => $image64, 'name' => $imageName), 'struct');
$message = new XML_RPC_Message('metaWeblog.newMediaObject', array($blogid, $username, $password, $Params));
$result = $c->send($message);
$filepath = XML_RPC_decode($result->value());
echo $filepath{'url'};
exit();
}
?>
<html><body>
<form method="post" action="<? echo $PHP_SELF; ?>" enctype="multipart/form-data">
<input type="file" name="Myfile">
<input type="submit" value="SEND">
</form>
</body></html>
0892890
2006/02/22(水) 18:51:03ID:???0893nobodyさん
2006/02/22(水) 19:32:14ID:???みなさんにお聞きしたいのですが、どうやってプログラム勉強されたのですか?
PHPが初のプログラム言語(って言っていいのかな?)なんで戸惑ってます。
ひたすらサンプルとか拾ってきて勉強したりするんでしょうか?
○日で覚える系の参考書を一通り手打ちして、連想配列ってのがあるんだぁ
など知ったレベルです。
デザイナーなので、職業プログラマになるつもりは無いのですが
最近PHPに触れる機会があり、興味を持ったので勉強しています。
助言を頂けたらうれしいです。
よろしくお願いします。
0894nobodyさん
2006/02/22(水) 19:48:54ID:???ローカルに環境を作り、自分で書いてみるのが一番です。
サンプルを真似して書いてみるのもいい勉強になると思います。
(簡単なチャットや、レス無掲示板などいい勉強になると思います)
慣れてきたら、ただ書き写すだけではなく、
値を変えてみるとか、自分なりに色々いじってみるといいでしょう。
サンプルでわからない単語・関数が出てきたら、
公式のマニュアルを参照するのが良いでしょう。
それを読んでわからなければここで質問すればいいだけです。
サンプルに慣れてきたならば、
今度は一から自分で作ってみたいと思うようになります(多分)
簡単なプログラム(チャットとかでなくてもいいと思います)を
作れるようになる頃には、
自分なりの勉強方法が確立できていると思いますよ。
環境だけはローカルに作りましょう。
(Googleで検索するとインストールの方法がいろいろ出てきます)
レンタルサーバーなどで実験するのはただの迷惑なので。
以上、個人的な見解でした。
(個人差はあると思います)
0895nobodyさん
2006/02/22(水) 19:58:03ID:???ありがとうございます。
一応ローカルにapache入れて環境は作ってあります。
いろんな所からサンプル拾って真似てみます。
とりあえずチャットに決めました。
また書込み機会があればよろしくお願いします。
それでは失礼します。
0896nobodyさん
2006/02/22(水) 20:04:00ID:???今のはどうか知らんけど。
0898890
2006/02/22(水) 20:35:09ID:???ファイルサイズが増えた時点で気付くべきでしたが、
バイナリエディタで覗いてみたところデコードされていませんでした。
MT に Base64.pm が無かったので、extlib/MIME に
Base64.pm(MIME-Base64-2.23)を追加し、以下にソースを修正。
$image64 = new XML_RPC_Value(chunk_split(base64_encode($image)),'base64');
↓
$image64 = new XML_RPC_Value($image,'base64');
MIME-Base64
http://www.perl.com/CPAN/modules/by-authors/id/GAAS/
どうみてもPHPと関係ないスレ汚しです。
本当にありがとうございました。
0899nobodyさん
2006/02/22(水) 20:37:12ID:???0900nobodyさん
2006/02/22(水) 21:26:13ID:???AccessKeyってファンクションキー(F1とか)は設定できないのでしょうか。
別にAccessKeyでなくてもよいのですが、他に方法を思いつかないので・・。
0902900
2006/02/22(水) 21:44:40ID:???サヨウナラ・・
0903nobodyさん
2006/02/22(水) 22:00:00ID:???print htmlspecialchars($str);
}
HOGE("htmlspecialchars+printしたい文字");
0904nobodyさん
2006/02/22(水) 23:15:23ID:???それだと
HOGE('<strong>ここは<強調>したいんです</strong>');
はダメだからわけるしか無い
0905nobodyさん
2006/02/23(木) 01:36:14ID:???そこらへんは評価してあげないと。
今となっては穴だらけのスクリプトでも、
当時は感動したもんだ。
0906nobodyさん
2006/02/23(木) 02:01:43ID:???chmodコマンドは、借りている鯖側の処理で禁止されているのかな?
ファイル生成段階で属性って決めて保存ってできるか教えてください。
0907nobodyさん
2006/02/23(木) 03:07:02ID:???普通、PHPで出力したものは自分自身がそのオーナーなんだから
特にパーミッションなんて変更しなくても再読み書きできるもんだが、
そこのサーバーで何かおかしな真似されてるんじゃないか?
で、chmod以外でパーミッション設定は無理かと。
0908nobodyさん
2006/02/23(木) 10:25:22ID:???マニュアル見ても
define ("CONSTANT", "Hello");
echo CONSTANT; // "Hello"を出力します。
としか書いてないんですけど、
echo CONSTANT World!!;
といれたらエラーが出ますし、
echo "CONSTANT World!!";としたらそのままの文字列が出力されてしまいます。
変数の場合は、
echo $a;でもecho "$a";でもecho "{$a}";とかでも出力されますよね?
定数もecho "{CONSTANT}"みたいに何かで囲むことで、
出力されるようになるということはないですか?
それともこういう使い方の場合は変数を使えということでしょうか?
0909nobodyさん
2006/02/23(木) 10:44:59ID:???定数を "" で括って使う事自体定数の使い方がおかしい。
定数はその内容を意識しないで使うモンだ。
fopen( "example.dat", LOCK_EX ); の LOCK_EX みたいに普通は引数に使うだけ。
ライブラリや組み込み関数で使う定数の内容なんか意識しないで使うだろ?
そういう使い方をするものは変数が適している。
0910909
2006/02/23(木) 10:48:11ID:???flock( $resource, LOCK_EX ) と思ってくれ
0911nobodyさん
2006/02/23(木) 10:52:40ID:???0912nobodyさん
2006/02/23(木) 11:01:07ID:HLa5KG/+{ ? ? ? ( ) などを置換したくて[{???()]と書いてもパースエラー
[\{???\(\)]と書いても同様にパースエラーがでます。
Parse error: parse error, unexpected '[', expecting ')'
たぶん ) がエスケープできていないと思うのですがどうすれば ) を
エスケープできるのでしょうか。
0913nobodyさん
2006/02/23(木) 11:02:30ID:HLa5KG/+そこは気にしないでください。
0917nobodyさん
2006/02/23(木) 13:22:18ID:???phpの他のスレを関連として書いとくとかFAQとか
0919nobodyさん
2006/02/23(木) 14:11:48ID:HLa5KG/+だめみたいです。
勘違いしているだけかもしれませんが、
$text = '(abc)'
$text = mb_ereg_replace("[\(\)]*","",$text));
というふうに原因追及のため簡単に書き直して試してみましたが
やっぱりパースエラーが出ちゃいます。
parse error, unexpected ')'
var_dump($text)でabcと出したいのですが、
どこを間違えているのでしょうか。
PHP Version 4.4.1です。
0922nobodyさん
2006/02/23(木) 14:36:59ID:???助かりました、マジでありがとうございます。
こんなことに何時間も悩んで、
なんかすごくバカらしくて涙が出てきました。
0923nobodyさん
2006/02/23(木) 15:30:20ID:???mb_ereg_replace errorとか関数名がきちんと出てくるしな。
>>922
そうやって成長してくもんさ。
オメデトウ。
0926nobodyさん
2006/02/23(木) 16:08:03ID:???自ホストを取得するには
どうしたらよいでしょうか?
0927nobodyさん
2006/02/23(木) 16:13:05ID:???PHPeclipse
CVSとエディタしか使ってないから使いこなせてるとは言い難いんだけどね('A`)
ロースペックマシンだと動作の重さで涙が増えるかも。
統合開発環境スレだともっといろいろ教えてくれるんでないでしょか。
0928nobodyさん
2006/02/23(木) 16:49:23ID:???個人的にあるとうれしいのはHTMLのタグ間ジャンプ。
閉じタグを確認するというより編集範囲を探し出すのに重宝するって感じだけどね。
0929nobodyさん
2006/02/23(木) 17:00:38ID:???0931nobodyさん
2006/02/23(木) 17:12:12ID:???<form action="index.php">
<input type="text" name="moji" size="40" value="<?echo "<a href="database.cgi?keys2=" . $moji . "">" . $moji . "</a>" ?>">
<input type=submit value=sub>
</form>
こんな感じでフォームに文字を入れてsubmitすると
$moji の部分が置き換わるようにしてるんですが、
これを
<input type="text" name="moji" size="40" value="<?echo "<a href="database.cgi?keys2=" . $moji . "">" . $moji2 . "</a>" ?>">
として、
「$moji」は入力した通りの文字, 「$moji2」は全角カナがある場合は半角カナに置き換えて表示するようにしたいのですが。
0932nobodyさん
2006/02/23(木) 17:17:40ID:???<?echo "&lt;A href=&quot;database.cgi?keys2=" . $moji . "&quot;&gt;" . $moji . "&lt;/A&gt;" ?>">
↓
<?echo "&lt;A href=&quot;database.cgi?keys2=" . $moji . "&quot;&gt;" . $moji2 . "&lt;/A&gt;" ?>">
0933nobodyさん
2006/02/23(木) 17:22:24ID:???まぁカタカナなんて50種類ぐらいしかないんだから、
悩むより全通りやったほうがはやいとおもう^^;
0934nobodyさん
2006/02/23(木) 17:22:32ID:???preg_replaceで地道に
$zenkaku = array ("ア", "イ", "ウ"...);
$hankaku = array ("ア", "イ", "ウ"...);
とやる。
0937nobodyさん
2006/02/23(木) 18:00:27ID:???0939nobodyさん
2006/02/23(木) 20:11:35ID:???CLIからWebとかftpのバーチャルホストかどうかなんて判んないから取得できないよ。
CGIのI/Fのように環境情報が渡されてないから。
0941nobodyさん
2006/02/23(木) 20:16:24ID:???0942nobodyさん
2006/02/23(木) 20:30:32ID:???で、そのCLIってのはどうやって起動されるんだ?
Web上のPHPやCGIからsystemで呼び出し?
それとも手動またはcronで実行?
前者なら子プロセスに環境変数が継承されるかもしれないが、
後者なら「ホスト名というもの自体が存在しない」よ。
無い物は取得不可能。
0943nobodyさん
2006/02/23(木) 20:52:38ID:aYPvtFuR$fp = @fsockopen('www.example.xxx', 80, $errno, $errstr, $timeout);
ってやっています。
できるだけ素早く判別してもらいたいんですが$timeoutの値の目安ってありますか?
0944nobodyさん
2006/02/23(木) 20:55:27ID:???0945nobodyさん
2006/02/23(木) 21:23:39ID:???それ以上は死んでいるも同然
0949nobodyさん
2006/02/23(木) 23:04:53ID:???0950nobodyさん
2006/02/23(木) 23:29:27ID:???0951nobodyさん
2006/02/23(木) 23:53:06ID:???0952nobodyさん
2006/02/24(金) 00:42:35ID:???0953nobodyさん
2006/02/24(金) 02:01:19ID:???$hoge = $_POST['hoge'];
をextractを使って表現するとどのように書けばいいのでしょうか?
特に何もしないとXSSの原因になるそうなので、
わからないうちは使うつもりはありませんが、気になるので・・・
0955nobodyさん
2006/02/24(金) 02:30:53ID:???extract($_POST, EXTR_SKIP);
か
extract($_POST, EXTR_PREFIX_ALL, "post");
のどっちかかな。
$hoge = $_POST['hoge'];相当なのは前者。
後者は$post_hoge = $_POST['hoge'];相当。
0956nobodyさん
2006/02/24(金) 02:36:19ID:???どうもありがとうございます。
早速実行してみたところ、
ちゃんと$hoge = $_POST['hoge'];と同じになりますね。
便利ですねえ。
どういう危険性があるか理解できるまで使わないことにします。
ひとつ謎が解けました。ありがとうございました。
0957nobodyさん
2006/02/24(金) 02:38:49ID:???レスしてる間にレスがorz
詳しくありがとうございます。
値もいろいろと指定できるんですねー
早速値に関してどういったものか調べてまいります。
0958nobodyさん
2006/02/24(金) 03:44:05ID:???extractで展開していると
予期しない変数を書き換えられる危険がある。
例えばパスワードを$passに設定している場合に
hogehoge.com?pass=〜
でアクセスされ、これをextractで展開すると…。
↑はgetの場合だけれど
ローカルでフォームを書けばpostだって送りつけられるし。
0960nobodyさん
2006/02/24(金) 04:00:42ID:???見たいに
example.com?pass=5
しか想定しないでextractすると、下のURLみたいなアクセスをされた場合に大量に変な変数作られるのが危険て事?
example.com?pass=5&user=hoge&db=example.com
予期しない変数を大量に作られるのは気持ち悪いね
でも、プログラムの一番最初にextractすれば変数の内容は上書きされないような気もするけど・・
0961nobodyさん
2006/02/24(金) 04:24:48ID:???0962nobodyさん
2006/02/24(金) 06:38:31ID:???http://jp2.php.net/manual/ja/function.extract.php
警告
extract() をユーザー入力 ($_GET, ...) のような信頼できないデータについて使用しないでください。
もし行う場合、例えば register_globals を信頼しているような古いコードを一時的に実行したい場合、
EXTR_SKIP のような extract_type の値が上書きされていないことを確認してください。そして php.ini の
variables_order で定義されたものと同じ順で展開すべきであることに留意してください。
ま、他人のサーバがどうなろうが知ったこっちゃ無いが
0964nobodyさん
2006/02/24(金) 08:35:07ID:???$data=$_POST['data'];にしとけばいいってこと?
他人のスクリプト見ると、
extractを使うのが一般的だとか思っちゃうけど…
0967nobodyさん
2006/02/24(金) 10:24:28ID:???0968nobodyさん
2006/02/24(金) 12:03:24ID:???それは過去の遺物。
大昔(と言ってしまおう)のPHPがデフォルトでextractと同等のことを自動的にする仕様だったんで、
その頃からPHPで物作ってる人は互換性のためにextract使っちゃうのよ。
で、そういうプログラムって過去の実績は多数あるんで、さらに巷で大量に流布しちゃって
それを真似する素人プログラマがまた問題があるままパクって傷を広げてしまうんだな。
0969nobodyさん
2006/02/24(金) 12:05:01ID:???別にextract関数自体が問題あるって話ではないわな。
でもクエリーの展開以外にextractを使う人ってほとんどいないけどなw
0973nobodyさん
2006/02/24(金) 12:52:58ID:VruGZZOM解析って出来ないのでしょうか?
0976nobodyさん
2006/02/24(金) 14:56:56ID:j/2+6+fN取得できなくて困っています。GETは取得できます。
<input type="submit">だと、POST/GET両方普通に取得できます。
0980973
2006/02/24(金) 15:32:05ID:???おお、なるほど。本当にソースダウンロードしてって感じですね。
大きいサイトでソースを公開しているところって殆どないですよね?
SNSなどでソース公開しているところってご存知?
0981nobodyさん
2006/02/24(金) 15:40:10ID:???実行処理の後にwindow.closeとか書いても電卓が消されないと下の処理に移動しません。
system("calc.exe > /dev/null &")
とかもやったのですがこっちは電卓が画面に表示されませんでした。
どうすればよいのでしょうか?
0983nobodyさん
2006/02/24(金) 17:15:42ID:aTqN8USg外部のサイトを読み込み、文字コードを変換して出力したいのですが
どうしてもエラーの表示が出てしまいます。
多分、とてつもなく馬鹿な事をしているのだと思いますが…
この場合、どのようにしたら良いのでしょうか?
ヒントだけでも頂けたら幸いです。
下記、エラーが出たもの
<?php
$max =30;//MAX件数
$arr = file("http://pc8.2ch.net/php/subback.html");
$lines = $arr;
$lines = mb_convert_encoding($lines, "UTF-8");
for($i = 0; $i < $max; $i++)
echo $lines[$i];
?>
0985983
2006/02/24(金) 17:20:12ID:???実際のものは<html><head><meta>系タグを抜いた、
<li><a>テキスト</a></li>\n
といった固定の形式のものが並んでいるのみです。(読み込み先はSJIS)
>>984
すみません。
phpのエラー表示ではなく、
なぜか一言、白い画面に「Array」と出るのみです
0986nobodyさん
2006/02/24(金) 17:33:56ID:???$lines[$i]が配列なだけ
変数がどういう値もってるのかいろんなとこでvar_dump()してみろよ
0987nobodyさん
2006/02/24(金) 17:58:16ID:???>$lines = mb_convert_encoding($lines, "UTF-8");
ここがおかしい。 mb_convert_encoding()がパラメータに
どのような型を取りうるのか確認。
0988nobodyさん
2006/02/24(金) 18:05:03ID:???2時間も何を検索してたん
<?php
$max =30;//MAX件数
$lines = file("http://pc8.2ch.net/php/subback.html");
//$lines = $arr;
//$lines = mb_convert_encoding($lines, "UTF-8");
for($i = 0; $i < $max; $i++)
echo mb_convert_encoding($lines[$i], "UTF-8", "sjis");
?>
0990nobodyさん
2006/02/24(金) 20:11:38ID:???確かにNoticeがでるな
$lines = mb_convert_encoding($lines, "UTF-8");
Notice: Array to string conversion in ****.php on line *
0991nobodyさん
2006/02/24(金) 20:13:31ID:???1行目に、
error_reporting(E_ALL);
を記述しておきましょう。デバッグに役立ちます。
0993nobodyさん
2006/02/24(金) 21:03:11ID:???他にいい資料置いてるとこない?
0994nobodyさん
2006/02/24(金) 21:29:00ID:???こことか・・・
0996nobodyさん
2006/02/24(金) 21:55:52ID:???0997983
2006/02/24(金) 22:04:04ID:???>>986-991
皆さん本当にありがとうございます。
自分はまだforの扱いすらあやふやな所があり論外なレベルなので
皆さんのレス保存して、根っこから勉強しつつやってみます。
ありがとうございました。
0998983
2006/02/24(金) 22:07:26ID:???どこか間違ってたらごめんなさいね
【PHP】下らねぇ質問はここに書き込みやがれpart17
http://pc8.2ch.net/test/read.cgi/php/1140786348/l50
1000nobodyさん
2006/02/24(金) 22:13:27ID:???本当にありがとうございました。
10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。