【PHP】下らねぇ質問はここに書き込みやがれpart10
レス数が1000を超えています。これ以上書き込みはできません。
0001nobodyさん
2005/09/25(日) 02:03:45ID:nLUfPXhDここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。
次スレは>>970あたりが建てて下さい
・過去スレ
【PHP】くだらねぇ質問はここに書き込みやがれ
http://pc5.2ch.net/test/read.cgi/php/1099322141/
【PHP】くだらねぇ質問はここに書き込みやがれpart2
http://pc5.2ch.net/test/read.cgi/php/1105218084/
【PHP】くだらねぇ質問はここに書き込みやがれpart3
http://pc5.2ch.net/test/read.cgi/php/1107780435/
【PHP】くだらねぇ質問はここに書き込みやがれpart4
http://pc8.2ch.net/test/read.cgi/php/1110697712/
【PHP】くだらねぇ質問はここに書き込みやがれpart5
http://pc8.2ch.net/test/read.cgi/php/1114787573/
【PHP】くだらねぇ質問はここに書き込みやがれpart6
http://pc8.2ch.net/test/read.cgi/php/1117945031/
【PHP】くだらねぇ質問はここに書き込みやがれpart7
http://pc8.2ch.net/test/read.cgi/php/1121100429/
【PHP】くだらねぇ質問はここに書き込みやがれpart8
http://pc8.2ch.net/test/read.cgi/php/1123431535/
【PHP】くだらねぇ質問はここに書き込みやがれpart9
http://pc8.2ch.net/test/read.cgi/php/1125716012/
0002nobodyさん
2005/09/25(日) 02:15:35ID:nLUfPXhD0003nobodyさん
2005/09/25(日) 03:29:22ID:???includeで下記のように書いています。
include('tmp/tmp$numbar.php');
これだとエラーが出るようです。正しい書き方を教えていただけないでしょうか?
0004nobodyさん
2005/09/25(日) 03:31:36ID:/sWHtMR50006nobodyさん
2005/09/25(日) 03:39:28ID:???1.何で事でつまづいているのか、どうしたいのかを明確に書くこと
2.できるだけ、コードをさらして質問すること
0007nobodyさん
2005/09/25(日) 04:26:57ID:???0008nobodyさん
2005/09/25(日) 04:56:19ID:???0010nobodyさん
2005/09/25(日) 07:06:18ID:???include('tmp/tmp{$numbar}.php');
でもいけるかも。
それはそうと、ナンバーは
$numberか、$nanbarだと思うぞ。
(後者はそれでも恥ずかしいが)
0011nobodyさん
2005/09/25(日) 07:23:56ID:2/zVxBc/0013nobodyさん
2005/09/25(日) 09:18:03ID:???どのような方法がありますか?
<?php
$url_01="http://www.yahoo.co.jp/";
$url_02="http://www.google.co.jp/";
$url_03="http://www.amazon.co.jp/";
$url_04="http://www.rakuten.co.jp/";
$url = array($url_01, $url_02, $url_03, $url_04);
foreach ($url as $url) {
$file .= file_get_contents("$url");
}
print "$file";
?>
0014nobodyさん
2005/09/25(日) 09:20:16ID:???一部を消す方法が見つからなかったのでこちらに来ました。似たようなないようのサイトでもヒントだけでも教えてください。
001514
2005/09/25(日) 09:32:20ID:???0016nobodyさん
2005/09/25(日) 09:53:21ID:???001716
2005/09/25(日) 09:59:47ID:???つくり、Xから一行ずつ読み込んで、消したい条件に一致しないときだけ、Yに書き出す。
Xの全部の行を読み終わったら、Xを消去するなりリネームするなりし、一時ファイルYの
名前を、Xにする。
0019nobodyさん
2005/09/25(日) 14:54:32ID:???スクリプトの先頭に ini_set('max_execution_time', 2);と書いておく、
forkするかシェルスクリプト書いてexecする、
あるいはexec timeを指定したRunkitのSandbox内で実行する、
declare()で実行時間を監視する
などの方法が考えられる
0020nobodyさん
2005/09/25(日) 14:58:18ID:???max_execution_timeを2秒に設定したfile_get_contentsするだけの
プログラムをforeachの中で実行させればいいような。
呼び出してsleep(2)して結果読み出し。
呼び出すプログラムの方でファイルに書き出すもよし、proc_openで
url渡せば結果を返すプログラムにするもよし。
0021nobodyさん
2005/09/25(日) 17:26:44ID:???他のドメインのサイトで取り出して使うことは出来ますか?
0023nobodyさん
2005/09/25(日) 18:20:25ID:???というような機能をつけたいと思い、自分なりに書いてみたのですがうまくいきません。
どのようにすればできるのでしょうか?
よろしくお願いします。
<?php
$ref = $_SERVER['HTTP_REFERER'];
$url = "http://***.index.htm";
if ($ref != "http://***.index.htm"){
header( "Location: $url" );
}
?>
0025nobodyさん
2005/09/25(日) 18:33:01ID:???htmlの拡張子をphpに変えて、その中で
<? include('message.php'); ?>
と書いて、メッセージを表示しています。
ここまでは、上手くいってるのですが、今度はmessage.phpを呼ぶときに
引数も一緒に渡したいのです。
例えばあるページから、message.phpを呼ぶ時は
<? include('message.php?mode=1'); ?>
あるときは
<? include('message.php?mode=2'); ?>
みたいな感じで呼びたいのですがエラーになってしまいます。
きっとmessage.php?mode=2というファイルを探しに行ってエラーになってしまってると
思うんですが、
こういう処理は実現可能なのでしょうか?
呼び元は全てhtmlです。includeする為に拡張子をphpに変えています。
0027nobodyさん
2005/09/25(日) 18:40:34ID:???- bar.php -
$hoge = 'hello, world';
include 'foo.php';
- foo.php -
echo $hoge;
HTTPクエリにする必要なし
Include()文とインクルードしたファイルが置き換わると思えばOKだ
http://jp2.php.net/include
0028nobodyさん
2005/09/25(日) 18:46:34ID:???リダイレクトできないという意味?
とりあえずLocationヘッダが送信できてるかどうか確認してみなよ
エラー抑止してるならスクリプトの頭にerror_reporting(E_ALL)も追加
0029nobodyさん
2005/09/25(日) 19:28:19ID:???解決しました。
ソースが間違っていたのではなく、記述する場所が間違っていたようです(一番最初に記述したらリダイレクトできました。)
<html>
<head><title></title></head>
<body>
(中略)
ココに記述>
</body>
</html>
ありがとうございました。
003029
2005/09/25(日) 19:30:38ID:???誤
<html>
<head><title></title></head>
<body>
(中略)
<?php ココに記述 ?>
</body>
</html>
正
<?php ココに記述 ?>
<html>
<head><title></title></head>
<body>
(中略)
</body>
</html>
0031nobodyさん
2005/09/25(日) 19:39:22ID:???HTTPのスペックではヘッダーフィールドの後にコンテンツがくることになっているので、
コンテンツを送信した後でヘッダーを送信することはできない。ヘッダー送信までコンテンツの
出力を遅延させたい場合は、アウトプットバッファリングを使用すると言うのがハウツー
コンテンツの送信後にヘッダーを変更しようとすると、本来Warningが出るよ
デバッグ時にWarningを抑止する真っ白画面に陥りやすいので要注意
0032nobodyさん
2005/09/25(日) 19:39:57ID:???○抑止すると真っ白
0035nobodyさん
2005/09/25(日) 22:02:51ID:???0036nobodyさん
2005/09/25(日) 22:20:43ID:???0037nobodyさん
2005/09/25(日) 22:43:58ID:???0038前すれの963
2005/09/26(月) 01:25:21ID:???次スレ、立てなくてすんません。
date('w', strtotime(now))で、1が返ってきました。
なので、曜日の配列を作っておけば月曜日が返ってくるので、成功です!
でも、元々のDBに入っているデータを"now"部分にいれると、やっぱりおかしいのです。
>>972さんの言うとおり、MySQLのバージョンはMySQL 4.0.24-standard-logでした。
データの取得がおかしい?
でも、nowで取得した値のはずなんだけど…
0039nobodyさん
2005/09/26(月) 02:44:11ID:???display_errorsをoffにし、log_errorsをonに設定するところまではやりました。
ところでこのlogはどこに保存されていて、どうやったら見れるのでしょうか…??
0040nobodyさん
2005/09/26(月) 04:45:05ID:???0041nobodyさん
2005/09/26(月) 05:02:26ID:ngVBM4RI<!--#echo var="DOCUMENT_URI" -->
とやると/hoge/hoge.shtml
と結果が返りますが、/hoge/のフォルダ名で終わる形にはできないでしょうか?
教えてください。
0042nobodyさん
2005/09/26(月) 05:03:27ID:ngVBM4RI0043nobodyさん
2005/09/26(月) 08:14:36ID:9OUzr1cB例えば、PHPのログインフォームからIDとパスワードを使ってログインする方法と
.htaccessでBASIC認証してログインする方法は、どちらがセキュリティ的に
高いと言えるでしょうか?
前者であれば各PHPファイルにログイン設定をしなければいけませんが、
後者なら.htaccessで制御するだけなので、非常に簡単です。
しかし、それだけで良いのかどうか迷っています。
0044nobodyさん
2005/09/26(月) 10:12:03ID:???どちらにせよセキュリティ重視ならSSLにするのは当然として、
どちらか選ぶなら前者。なぜなら誰がログインしたかが分かるから。
仮にパスワードが漏洩とか盗まれたりとかして不正アクセスがあっても、
同じログインIDで毎回リモホが変わってたらすぐ見つけられる。
>各PHPファイルにログイン設定をしなければいけません
こんなの簡単でしょ。ログイン時にセッション変数にログイン判定フラッグを格納しといて、
その有無を判別するif文を各スクリプトの先頭に書いとけばいいだけ。
0045nobodyさん
2005/09/26(月) 10:53:04ID:???BASIC認証もお手製認証も対して変わらないから、しっかりした認証の仕組みを作れるのなら、
付加的なメリットを組み込みやすいお手製でもいいんじゃないかな。
auto_prepend_fileを設定すれば、自動的にファイルを読み込んでくれるよ。
.htaccessで設定できるから、読み込み対象ファイルも指定できるし。
0046おれおれお
2005/09/26(月) 11:39:10ID:???ご教授お願いします。
ttp://cgi.au-lait.net/wiki.cgi?page=K%2DProf
0048おれおれお
2005/09/26(月) 11:47:44ID:???0049nobodyさん
2005/09/26(月) 11:48:04ID:???ここはPHP言語のスレで、Perl言語で書かれたそのCGIの話はスレ違いだよ。
・配布元のサポート掲示板で聞く
・CGI設置質問スレ http://pc8.2ch.net/test/read.cgi/php/1104624784/l50 で聞く
あたりが妥当かと。
0050nobodyさん
2005/09/26(月) 11:56:13ID:???0051nobodyさん
2005/09/26(月) 12:34:22ID:???スクリプトを作ったんですが、メールヘッダーの「差出人(from)」の
日本語が文字化けしたりしなかったりします。
まったく同じ条件でフォームからPOSTしてメールを送信してるのに、
文字化けするときもあればしないときもあります。
ということは、(自動)エンコードの際に判定を誤ってるのかとも思いますが、
自分の書いたソースを見直してもどこがマズイのかわかりません。
005251
2005/09/26(月) 12:39:31ID:???$to_addr = $_POST['mail'];; //フォームからPOSTされたメアド
$title = "テスト件名";
$body = "テスト本文";
$headers = "";
$headers .= "Content-Type: text/plain; charset=ISO-2022-JP\n";
$headers .= "Content-Transfer-Encoding: 7bit\n";
$headers .= "From: ".mb_encode_mimeheader("テスト送信者",'ISO-2022-JP')." <[email protected]>\n";
$headers .= "Bcc: <[email protected]>\n";
$headers .= "X-Mailer: Test_Mailer\n";
$headers .= "Return-Path: <[email protected]>\n"; // エラー時の返信先
mb_language("Japanese");
mb_internal_encoding("EUC-JP");
if ( mb_send_mail ($to_addr, $title, $body, $headers) ){
}else{
echo "<BR>送信失敗<BR><BR>";
exit;
}
005351
2005/09/26(月) 12:42:52ID:???すみません、1行目に「;」が2つありますが、これはここにコピペした際に
補足として行末のコメントを書いたときにミスって付けてしまいました。
実際のソースでは「;」はもちろん1つです。
0054nobodyさん
2005/09/26(月) 12:48:05ID:l8/RJqBH<?php
if($u) {
echo $u;
header("Location: http://www.yahoo.co.jp");
exit;
}
?>
index.phpで以上のコードを作成したのですが
echoで$uの値は表示されるのに
ロケーションでヤフーに飛びません。
PHPのバージョンなどが問題なのでしょうか?
宜しくお願いします。
0059nobodyさん
2005/09/26(月) 13:30:42ID:???インターネットでは7bitの文字コードでやりとりするのが標準なので、日本語の場合は7bitの「JIS(ISO-2022-JP)」という文字コードを使うよう定められている。Shift-JISやEUCは8bitの文字コードなので、送信の際、メールソフトがこれをJISに変換するのが普通だ。
つーか、文字化けするならコード変えるぐらい思いつけよ。
0060nobodyさん
2005/09/26(月) 13:47:34ID:2nx2CLo8知ったかage
0061nobodyさん
2005/09/26(月) 13:52:54ID:???0062nobodyさん
2005/09/26(月) 13:56:58ID:???0063nobodyさん
2005/09/26(月) 14:01:28ID:???誰か教えてください。
0064 pc6.nucba-unet.ocn.ne.jprlo
2005/09/26(月) 14:06:36ID:+wttJfxy0065nobodyさん
2005/09/26(月) 14:08:04ID:???UTF-8で文字データを渡してやれば大抵のもので問題無く動作する筈なんだが...
具体的に使おうと思ってたライブラリの名前を出して解決策を聞いた方がいいんでないの?
ものによってできる内容が全然違うし。
0067nobodyさん
2005/09/26(月) 14:28:19ID:???なぜなら、>>52のソースにはmb_language("Japanese") とmb_send_mailがあるので
「メールソフトがこれをJISに変換する」という動作は組み込まれている。
だから>>59の言ってることは的外れ。
というか、>>59はマルチバイト関数の動作内容を知らないのかね?
0068nobodyさん
2005/09/26(月) 14:36:40ID:???0069nobodyさん
2005/09/26(月) 14:36:44ID:???0070nobodyさん
2005/09/26(月) 14:41:14ID:???mb_internal_encodingはスクリプトのエンコーディングを決めるものだから
メール送信(mb_send_mailの動作)には関係ないよ。
0071nobodyさん
2005/09/26(月) 14:46:11ID:???つ[http://www.res-system.com/weblog/item/478]
>>69
もちつけ、知ったかクン。
0072nobodyさん
2005/09/26(月) 14:48:42ID:???007367
2005/09/26(月) 14:49:02ID:???「そのあとで」って、何の後で??
「JISに変換する」はmb_send_mail関数の動作だぜ。
mb_send_mailの「後」に何がある?
0074nobodyさん
2005/09/26(月) 14:51:49ID:???っていうか、本文や件名も文字化けしてんの?
書き込みを見る限り本文とかは文字化けしてないようだが、
もしヘッダの送信者の部分"だけ"が化けてんなら、原因は謎だな。
mimeエンコードもちゃんとやってるみたいだし。。。
0075nobodyさん
2005/09/26(月) 14:57:34ID:???正確には覚えてないけどヘッダはJIS。他はどうにでもなる。だったはず
0076nobodyさん
2005/09/26(月) 15:00:36ID:eL6BgYRtPHP+MySQLでの日付についてなのですが、
SQLで直接日付部分をNow()でインサートすると、date関数で正常な曜日が返ってきました。
と言う事は、PHP側で生成している日付がおかしいのだと思うのですが、
date('YmdHis', time())で得たモノを、一端、年・月・日…にmb_strcutで分けて、
DBに登録時に結合してるのがいけないのでしょうか…。
みなさん、PHP+MySQLで日付を登録させる時はどのようにしているのですか?
(特に、好きな日付を登録したい時)
0077nobodyさん
2005/09/26(月) 15:30:21ID:???知ったかくんが答えるけど、JISはエージェント実装上の慣例でしょ
http://www.asahi-net.or.jp/~bd9y-ktu/dtd_f/rfc_f/rfc2047j.html
0078nobodyさん
2005/09/26(月) 15:53:45ID:???mb_send_mail使うんならContent-typeもContent-transfer-encodingも自動でつけてくれるので不要
mb_detect_orderの最初にメールの文字コードを書いておく
後はmb_languageをJapaneseかjaにしておけば自動的にメールの文字コードを判別してJISに変換してくれる
007951
2005/09/26(月) 16:01:09ID:???本文や件名は化けません。ヘッダーの差出人のところだけが、たまに化けます。
また、まったく同じ条件でも化けるときと化けないときがあり、再現性が分かりません。
>>78
>mb_detect_orderの最初にメールの文字コードを書いておく
これはつまり、メールの本文がスクリプト内に書かれている(=スクリプトのエンコードで書かれている)なら、
mb_detect_order(EUC-JP,・・・)と書けばいいわけですよね?
mb_detect_orderは今のところ記述してませんが、
それでも文字化けせずに送信できることもあるのは何故なのでしょうか。
(というか、文字化けすることのほうが少ない)
0080nobodyさん
2005/09/26(月) 16:04:02ID:???0081nobodyさん
2005/09/26(月) 16:29:46ID:???オレの場合。
DB鯖側での時間(=SQL文による時間取得/挿入)の場合はdatetime型。
Web鯖側での時間(=PHPのdate()やtime()による時間制御)の場合はint(10)型。
全ての時間をどちらでとるかは1つのシステムで一意にしといたほうがいい。
NOW()を多用するのが楽ではあるんだが、システムを作る上で業務として
よく用いるのは後者だったりする。他にデータを持っていっても柔軟に扱えるため。
テストなんかもしやすいしね。
0082nobodyさん
2005/09/26(月) 16:56:47ID:???入力をdate()でやるのはロケールが欠落するから完全ではない場合もあるが
008376
2005/09/26(月) 16:59:56ID:???うまく行きました。
問題は型だった?
PHP側での処理は、time()だったので、
>>82さんの言うのは当てはまらない??
んんんんー、謎です。
何が悪かったのでしょうか。
0084nobodyさん
2005/09/26(月) 17:04:14ID:???それともphpスクリプト自体が問題なければ、心配する必要は
なしでしょうか?
0087nobodyさん
2005/09/26(月) 17:14:10ID:???まあ他人に使われないならないんじゃない
悪用の仕方はリモートファイルを読み込んでeval()で実行させるとか
串代わりにするとかだろうから
0088nobodyさん
2005/09/26(月) 17:31:23ID:???ファイルパスを引数にとる関数は全部そうだけど
http://marc.theaimsgroup.com/?l=php-dev&m=111973903130155&w=2
0089nobodyさん
2005/09/26(月) 17:38:43ID:???cURLライブラリを使って実装しました。
ですが、セッションIDが全く別のものとなっていて、実装したいことができなく悩んでいます。
$header = "Set-Cookie: PHPSESSID=" . session_id();
curl_setopt($ch, CURLOPT_HTTPHEADER, array($header));
のようにして、セッションを渡してみたのですが、うまく行きません。
どうにかして、同じセッションIDで実装したいのですが、解決策はないですか。
環境:PHP5.1b3, apache1.3.3, windows
0090nobodyさん
2005/09/26(月) 17:52:51ID:???実際送ったら上書きされるようなかんじ?
009189
2005/09/26(月) 17:57:49ID:???そうです。
送信側と受信側でsession idが全く別のものとなってるんです。
受信側はアクセスごとにsession idが違うものになってます。
0092nobodyさん
2005/09/26(月) 18:12:25ID:tV04tbjf面白いです。
●無料レンタルランキング
URL : http://rk.xgm.jp
●無料レンタルホームページ
URL : http://sp.xgm.jp
●無料レンタル掲示板
URL : http://bb.xgm.jp
●無料画像アルバム
URL : http://ph.xgm.jp
0094nobodyさん
2005/09/26(月) 18:18:05ID:???CURLをクライアントに使ってるなら、リクエストで“Set-”Cookie:ておかしくないですか
CURL的なクッキの送り方は判らないけど、Cookie: PHPSESSID=〜
0095nobodyさん
2005/09/26(月) 18:20:05ID:???// ケース1 set
// mb_language("Japanese"); mb_internal_encoding("EUC-JP");
$header = mb_encode_mimeheader("テスト送信者",'ISO-2022-JP');
// ケース1 out
print($header);
// ケース2
mb_language("Japanese"); mb_internal_encoding("EUC-JP");
// ケース2 out
print($header);
0096nobodyさん
2005/09/26(月) 18:40:45ID:???0097nobodyさん
2005/09/26(月) 20:06:11ID:???自分で書くスクリプトで問題が出るような作りをする香具師は
全体的に悔い改めるべきだと思う。ポカミスじゃなくて
理解不足の致命的なミスで危険な問題だから。
よく共有サーバでOffにした方が...という話も聞くが
そんならもっとPHPの動作環境を根本的に見直せと。
0098nobodyさん
2005/09/26(月) 21:29:45ID:???mkdirとかuseraddとか。出来るなら、その書き方がわかるサイトなどを
教えてもらえますか?ぐぐっても参考とするところが見つからなくて・・
0099nobodyさん
2005/09/26(月) 21:39:42ID:???そう熱くなるな。
関数の良し悪しじゃなく使う方のロジックの問題なのは誰も分かってるのに
どっかにサンプルコードあったからーとか安易に考えてるのが問題。
例えばinclude $_SERVER[REMOTE_ADDR'];は無問題だが
それをロジックで示せる人間は割と少ない希ガス。
>>98
おまいは示せそうにないな。
0101nobodyさん
2005/09/26(月) 22:00:00ID:???('**' は、ディレクトリ階層を再帰的にたどってくれるパターンです。)
これをサポートした関数ってありますか。
Rubyならできるとかいわれたんですけど、PHPでやりたいです。
0102nobodyさん
2005/09/26(月) 22:08:50ID:???正規表現が間違ってますか?
<?php
$date = "<li>aaaaaaaa</li><li>bbbbbbbb</li><li>cccccccc</li>";
$ary = split('<li>.*</li>', $date);
print_r($ary);
?>
0105軟式PHP
2005/09/26(月) 23:11:52ID:???<?php
$date = "<li>aaaaaaaa</li><li>bbbbbbbb</li><li>cccccccc</li>";
preg_match_all("/<li>.*?<\/li>/",$date,$reg);
print_r($reg);
?>
簡単にだけど。
0108nobodyさん
2005/09/27(火) 06:17:35ID:CN65Gin9を有効にして、php.iniを保存しました。
Apacheを再起動して、<?php phpinfo() ?>をブラウザからアクセス
するとMySQLの項目が表示される、と思うのですが
私の場合、Apacheを再起動すると、「php_mysql.dllがありません。」
のようなことをPCが叫びます。
どうしてでしょう?原因がさっぱりわかりません。ご教授くださいませ。
0109nobodyさん
2005/09/27(火) 06:50:18ID:NWOBxAVj0110nobodyさん
2005/09/27(火) 06:52:18ID:NWOBxAVj0111nobodyさん
2005/09/27(火) 07:55:07ID:???dllということはWindowsのようですからPHPを解凍したディレクトリにあるlibmysql.dllというファイルをシステムディレクトリ(例:C:\WINDOWS\system32\)にコピーすると幸せになれるかもです。
0112nobodyさん
2005/09/27(火) 10:24:29ID:???<?php echo date('m/d', filemtime('../xxx/zzz.log') ) ?>
なんですが、
色々なディレクトリに存在する複数のファイルを参照して、
いずれかが更新されていればその日時を表示させる、
というようなコードはないでしょうか?
../xxx/zzz.log 2005/09/25更新
../../yyy/yyy.dat 2005/01/01更新
./www.log 2005/09/26更新
↓
./www.log の更新日時を表示
0113nobodyさん
2005/09/27(火) 10:26:55ID:???何をもってして「更新されている」と判断するのかが分からない。
0114nobodyさん
2005/09/27(火) 10:50:45ID:B3+8rfdNstripslashes
バックスラッシュが取り除かれた文字列を返します。(\' が ' になるなど) 2つ並んだバックスラッシュは1つのバックスラッシュになります。
stripcslashes
バックスラッシュを取り除いた文字列を返します。C言語と同様に \n, \r ..., 8進表現, 16進表 現を認識します。
という説明があったのですが、よくわからないです。
0115nobodyさん
2005/09/27(火) 10:53:30ID:???>色々なディレクトリに存在する複数のファイルを参照して
ループ処理 + readdir 関数で1ファイルづつ舐めながら、
>いずれかが更新されていれば
基準となる UNIX 時間か何かと if 比較して
>その日時を表示させる、
date('m/d', filemtime('../xxx/zzz.log')
ってのは、そんなに難しい事なの?
0118nobodyさん
2005/09/27(火) 10:58:33ID:???>stripcslashes
手元の教科書には addcslashes 関数でクォートされた文字列をアンクォートする
って書いてある。用途別って事かと。
0119nobodyさん
2005/09/27(火) 11:02:27ID:???>>115でも書いてる通りの方法だけど。
$files = array('../xxx/zzz.log','../../yyy/yyy.dat','./www.log');
forerach($filelist as $value) $filemtimes[] = filemtime($value);
sort($filemtimes,SORT_NUMERIC);
echo $filemtimes[0];
0120119
2005/09/27(火) 11:03:36ID:???$files = array('../xxx/zzz.log','../../yyy/yyy.dat','./www.log');
forerach($files as $value) $filemtimes[] = filemtime($value);
sort($filemtimes,SORT_NUMERIC);
echo $filemtimes[0];
0121nobodyさん
2005/09/27(火) 11:28:55ID:???php/4.3.11にPOSTしたときの連想配列ってid属性じゃ受け取れないみたいで、将来的にどうしたらいいの?
0122nobodyさん
2005/09/27(火) 11:43:10ID:???0123nobodyさん
2005/09/27(火) 11:50:44ID:???XTML1.1のDTDから ttp://www.w3.org/TR/xhtml-modularization/DTD/xhtml-form-1.mod をDLしてくると、
<!ENTITY % InputType.class
"( text | password | checkbox | radio | submit
| reset | file | hidden | image | button )"
>
<!-- attribute 'name' required for all but submit & reset
-->
とあるから、nameを使ってええんでないの?
0124nobodyさん
2005/09/27(火) 12:46:22ID:???ありがとうございます。(--ゝ
参照するファイル数が増えると、多少読み込み時間は長くなりますかね?
>>120氏のコードは.phpとして保存して、別のphpのhtml部からincludeさせるというような方法でいいんですよね?
>>113
スミマセン。 「複数のファイルを参照して、更新日時の一番新しい物を表示」
の間違いでした。(汗
0125nobodyさん
2005/09/27(火) 15:29:08ID:???そんなとこでsortしないほうがよか
foreach($files as $value) $mtime = max($mtime, filemtime($value));
0127115
2005/09/27(火) 17:36:05ID:???うおー。max 関数を使って、そういう事ができるのか。
趣味でチマチマと PHP やってる程度の自分にとっては、目から鱗です。
また少し、書くスクリプトに幅を出せそう。
0128nobodyさん
2005/09/27(火) 18:00:11ID:???0131nobodyさん
2005/09/27(火) 20:37:55ID:???00134nobodyさん
2005/09/28(水) 10:15:01ID:???0137nobodyさん
2005/09/28(水) 10:43:06ID:???では、mysql_closeについて
「 持続的でないリンクはスクリプトの実行終了時に自動的に閉じられるの で、この関数は通常の場合必要ありません。」
と説明されています。
この関数が必要とされる「通常」でない場合とは、どのような場合でしょうか。
ヒントや手がかりでもお教えいただけましたら幸いです。
よろしくお願いします。
0138nobodyさん
2005/09/28(水) 10:57:23ID:???たとえば、DBから情報を取得してから、そのあとに長い処理が続く場合とか。
ほら、気持ち的に切っといたほうがいいだろ。
難しい話はしても分からんと思う。
0139nobodyさん
2005/09/28(水) 11:32:02ID:dxIsb4Ke1枚ずつというのは手間がかかるのでまとめて処理する方法があれば
教えてください。
0140nobodyさん
2005/09/28(水) 12:08:28ID:oH6eqvtcMail_mimePartを使いメールのエンコードをやってみました。
使ってみると、setTxtBodyで指定したメール本文が反映されずbodyの
値が入っていませんでした。
どなたかMail_mimePart::encode()の使い方、または参考になりそうなページを
ご存知の方いませんか?
0141nobodyさん
2005/09/28(水) 12:22:48ID:b9i0UmwQ自分はHoge.classなんですが。
0142nobodyさん
2005/09/28(水) 12:30:00ID:???エディタが拡張子で色分けとか判別する場合、.classだとJavaのソースとごっちゃになるから漏れは.class.phpにしてるけど。
まあフレームワークとか配布されてるコードでは.class.phpが一番よく見かける罠。
0143nobodyさん
2005/09/28(水) 12:33:39ID:???テキストとしてソース垂れ流しちゃう危険性もあるから、.phpで終わらせるのが普通。
*.inc.php
*.class.php
*.conf.php
とかかな。
0144nobodyさん
2005/09/28(水) 13:22:27ID:???0147nobodyさん
2005/09/28(水) 13:54:56ID:oiijkcifサーバーに負荷をかけなくてすむのでしょうか?
1、
echo"こん";
echo"にちわ";
2、
echo"こん".
"にちわ";
3、
$html .="こん";
$html .="にちわ";
echo $html;
4、
echo <<<EOD
こん
にちわ
EOD;
0148nobodyさん
2005/09/28(水) 14:11:10ID:???こんにちは
<?php
0149nobodyさん
2005/09/28(水) 14:57:24ID:oiijkcifありがとうございます
そちらの方向で行きます
0151150
2005/09/28(水) 17:13:12ID:???普通じゃんね。
あほだな俺。
スルーしてください(鬱
0152nobodyさん
2005/09/28(水) 18:19:45ID:????>
あほ
<?php
処理
?>
あほ
<?php
処理
?>
あほ
<?php
処理
?>
あほ
<?php
みたいな。
0153nobodyさん
2005/09/28(水) 19:16:22ID:???<?
echo"<input name='test' type='hidden' value='テスト'>";
?>
でも、echoなので書き出され、表示されます。
何か良い方法、書き方はありませんでしょうか?
0154nobodyさん
2005/09/28(水) 19:19:13ID:???0157nobodyさん
2005/09/28(水) 20:01:23ID:qeEepy5X変数に格納したいのですがどうすればいいでしょうか?
0158nobodyさん
2005/09/28(水) 20:25:26ID:???0159nobodyさん
2005/09/28(水) 20:56:33ID:???これだけ書いとけばヒントになるかな?
---included.php---
<?php
$string = 'テラワロス';
?>
--show.php--
<?php
include 'included.php';
echo $string; // “テラワロス”が出力される
?>
0160nobodyさん
2005/09/28(水) 21:35:42ID:???マッチしたらスクリプトを終了。しなかったらURLにリダイレクト。
というような機能のスクリプトを書いたのですが、「211.102.103.65」の
最後の二桁の数字(65)が変動するので変わるたびに新しくリストに
登録しなければいけません・・・
後ろ二桁の「65」がマッチしていなくても「211.102.103」の部分がマッチすれば
TRUEを返すようにしたいのですが、どのようにすればいいのでしょうか?
よろしくお願いします。
ソースは次にかきます↓
0161nobodyさん
2005/09/28(水) 21:36:30ID:???//許可IPリスト
$ip_list = array("211.102.103.65",
"216.102.103.65",
"208.102.103.65",
"201.102.103.65");
$url = "http://hoge.org"; //リダイレクトするURLを変数に代入
$get_ip = $_SERVER['REMOTE_ADDR']; //取得したIPアドレスを変数に代入
//IPアドレスのチェック
foreach ( $ip_list as $value ) {
if (ereg ($get_ip, $value) ) {
exit;
}
else {
header ( "Location: $url" );
}
}
?>
0162nobodyさん
2005/09/28(水) 21:39:04ID:???0163157
2005/09/28(水) 21:53:48ID:???phpファイルにはスクリプト以外にhtmlソースも混ざっていて、
それの出力結果を変数に入れるということです。
0166nobodyさん
2005/09/28(水) 22:50:38ID:???IPv6は扱えないけど
0167nobodyさん
2005/09/29(木) 01:35:01ID:???0168nobodyさん
2005/09/29(木) 02:38:30ID:???0169nobodyさん
2005/09/29(木) 03:39:41ID:???ob_start();
include('includefile.php');
$data = ob_get_contents();
ob_end_clean();
0170157
2005/09/29(木) 06:03:27ID:FSfI9Iafありがとうございました。
0171nobodyさん
2005/09/29(木) 10:06:58ID:M2gqALef無限ループしないのは何故ですか?
上の例では foo で発生したエラーに対してエラーハンドラ関数が適用"されない"のに対し、
下の例では var で発生したエラーに対してエラーハンドラ関数が適用"されます"。
ぶっちゃけこういう仕様のほうがプログラミングが楽ちんなんですけど
なんか仕組み的に納得いかないもので。
------------------------------------
function foo(){
$x = 1 / 0;
}
set_error_handler('foo');
$a = 1 / 0;
restore_error_handler();
------------------------------------
------------------------------------
function foo(){
echo 'ERROR';
}
function var(){
$x = 1 / 0;
}
set_error_handler('foo');
var();
restore_error_handler();
------------------------------------
0172nobodyさん
2005/09/29(木) 11:56:56ID:7Ojuf/BR性器表現できないなら、explodeで前3つ保存すれば?性器表現を勉強するんだな。ユーザーエージェントとホストで弾けばいいんジャマイカ?
0174nobodyさん
2005/09/29(木) 17:25:57ID:???php.iniまわりの話なんですが
0175nobodyさん
2005/09/29(木) 17:35:25ID:???GDライブラリを使って画像出力をしてます。
沢山の図形や線を様々な色を使って描画するのですが、
一定数以上の図形を出力すると、
図形そのものは表示されるのですが図形の色が途中から全て同じになります。
phpの初期設定周りが原因なのでしょうか。解決出来ず困っています。
0176nobodyさん
2005/09/29(木) 17:52:56ID:???0177nobodyさん
2005/09/29(木) 18:07:21ID:???それも疑ったんですが、結構積んでるのでその心配はないかと。
CGIとして動かしてるので、
apacheとか別の所で引っかかってるんでしょうか...。
0178nobodyさん
2005/09/29(木) 18:35:39ID:???メモリ積んでてもphp.iniで制限してたら意味なし
memory_limit = 500M
とかやっとけ
0179nobodyさん
2005/09/29(木) 18:48:29ID:???くだらない質問じゃないから、も少し詳しい状況と
実際に使ってる環境とスクリプトソースをMLに投げたら?
ここでもいいけど追試してくれる母数が大きいところで調べた方がいいと思う。
0180nobodyさん
2005/09/29(木) 18:48:39ID:6Acw6xK3$val_tmp2 = 'ポストする文字列
項目1(タブ)項目2
111(タブ)222';
$val_tmp2 = urlencode($val_tmp2);
$val_length = strlen( $val_tmp2 );
$val_tmp1 ='POST /recive.cgi HTTP/1.0
Content-Type: text/csv
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0; .NET CLR 1.1.4322)
Host: hoge.hage.com
content-length:' . $val_length';
$val_out = $val_tmp1 . "\n\n" . $val_tmp2;
$val_sock = fsockopen( 'host_name', 80, $val_error_no, $val_error_msg, 120 );
if( $val_sock == false ){
print "bom1<BR>\n";
exit( 1 );
}
$val_ret = fwrite( $val_sock, $val_out );
fclose( $val_sock );
としたのですが、どうしてもval_tmp2の値が受け側で取得できません(それ以外はOKでした)
どのようにしたら取得できるでしょうか?
0182nobodyさん
2005/09/29(木) 19:01:00ID:???> $val_out = $val_tmp1 . "\n\n" . $val_tmp2;
ここの\n\nでHTTPヘッダが終了してるんじゃないの?
0183nobodyさん
2005/09/29(木) 19:05:31ID:???PHPで受け取るならname=value&name1=value1の形式で
Content-type: application/x-www-urlencoded
がないと$_POSTには入らない
で$_POSTになければ$HTTP_RAW_POST_DATAを見てみたらあるかも
0184nobodyさん
2005/09/29(木) 19:54:27ID:???だった
0185180
2005/09/29(木) 19:58:12ID:???ありがとうございます。
しかしダメでした…
調べたところ、STDINには入っているので、最悪そちらを使えばいいかなとも思っています。
しかし正常に動かないのは癪なので、もしわかる方がいたら教えてください。
0186nobodyさん
2005/09/29(木) 20:14:21ID:???reciev.cgiはPHPなのか
PHPならContent-typeがapplication/x-www-form-urlencodedかmultipart/formdata以外のときは$HTTP_RAW_POST_DATAにPOSTデータが入る。
application/x-www-form-urlencodedかmultipart/formdataのときはその仕様に合ったデータじゃないとダメ
Perlなら何も考えずSTDINから読み込めばいい
0187180
2005/09/29(木) 21:10:24ID:???失礼しました、中身はphpです。
で、cgiとして動かしたところ、HTTP_RAW_POST_DATAがどうしてもとれませんでした。
cgiでは無く、phpとして動かすとなんの問題も無く取れたのですが…。
もしかしたらサーバの設定とかそういう話なのかな、と思ったのですが、
ちょっと今のところわからないので、とりあえず保留にしました。
しかしどうにかデータの取得自体は出来たので、なんとかなりそうです。
ありがとうございました!
0188nobodyさん
2005/09/29(木) 22:33:47ID:???sample.phpに
switch ($_GET['id']) {
case "1" : $sql="WHERE id=1";break;
case "2" : $sql="WHERE id=2";break;
case "3" : $sql="WHERE id=3";break;
default : $sql="";
と記述してあるとします。
この時、ブラウザからhttp://〜/sample.php?id=2と入力すると、
idが2のデータが出力されますよね。
上記の例の様に3件程度ならcase文でも構わないのですが、
仮に300件とかある場合、case文で300行書くのは非効率の様に思えます。
ここのidの部分を動的に変更する事は出来るのでしょうか?
例えば
if($_GET['id']){ $sql="WHERE shop_id=$_GET['id']";}
みたいな感じで、受け取ったidをWHEREで使う様なやり方です。
ちなみにこのまま命令文は、エラーがあるらしく何も表示されませんでした・・・。
PHP Version 4.3.10、MySQL 4.0.20という環境です。
どうか宜しくお願いします。
0190nobodyさん
2005/09/29(木) 23:01:56ID:????id= の後ろにセミコロン入れられると、悪い人の任意のSQLをさしこまれちゃうよ。
UPDATEとかDELETEとか。
こうしな
$sql = "WHERE shop_id=" . (int)(@ $_GET['id']);
まあゼロをどう扱うかは自分で調節して。
0191188
2005/09/29(木) 23:02:17ID:???早速のお答え、どうもありがとうございます。
ちゃんとidが動的に切り替わり、表示される様になりました。
・・・ですが、「とっても危険」という言葉が非常に気になっています・・・。
何がどういう点で危険なのか教えて頂けないでしょうか?
また、危険にならない代替案ってあるんでしょうか?
質問ばかりでスイマセン・・・。
0193nobodyさん
2005/09/29(木) 23:51:19ID:???$_GETには任意の文字列を入れることが出来るから、「;」で区切って
次のSQL文を自由に入れられてしまう。そうなったら編集も削除も思いのまま。
だからSQL文に渡す場合は何かしらのフィルタリングを自分ですることになる。
(今回の場合は数字以外の文字列があったら消すとかエラーで弾くとか)
この辺は自分で勉強しないと身に付かない。勉強が嫌なら下手に触らない事。
0194nobodyさん
2005/09/29(木) 23:59:10ID:???掲示板や、メールフォームですぐに送信させずに
入力画面→確認画面→送信完了画面という3ページの構成だったとします
で、確認画面でやり直しをしたい時、ブラウザの戻るもしくはhistory.back関数で
戻ったときに、フォームに入力した内容を保持させるためにはどうすればいいんでしょうか?
0196nobodyさん
2005/09/30(金) 00:07:15ID:???なるほど。
こちら側でキャッシュさせるようにすれば、少しは確実になるってことになるってことですかね。
session や、hiddenか何かでやるかと思ってました。
ありがとうございました(・∀・)
0197nobodyさん
2005/09/30(金) 01:04:12ID:???SQLインジェクション でググると色々出てくるので、質問よりそっち見たほうが早い
・・・確か価格.comの件ってこれだったよな?あの件以来価格.comに登録してあった
アドレスにspamが来るんだが・・・
>>196
どうしてもやりたいなら「前の画面に戻る」リンクを作り、そこで戻させるように
するしかない。それでもブラウザの戻るで戻られたら意味がないけど。
そういやFirefoxだとブラウザの戻るで戻っても残ってたな・・・
0198nobodyさん
2005/09/30(金) 01:37:08ID:???俺もspam来てる。
そりゃ、0day-attackとかなら許せるけど、SQLインジェクションとか・・もう馬鹿かと・・・。
きっと他にも大量に穴があったんだろうなぁ。
0199nobodyさん
2005/09/30(金) 02:17:32ID:???逆だと思うぞ。
確実にやりたいなら、クライアントの挙動に期待などせずに(つまりキャッシュなぞ”させない”)
サーバ側で言うとおりセッション何ぞで管理するこった。
0200nobodyさん
2005/09/30(金) 07:36:44ID:???とにかくGET POST COOKIEは入力値をチェックしてから使え
if (strstr($_GET['id'], ";")) { echo "氏ねバカアホ"; exit; }
elseif (!is_numeric($_GET['id'])) { echo "いたずらはいやずら"; exit; }
0201nobodyさん
2005/09/30(金) 08:33:55ID:FAEPRLcc0202nobodyさん
2005/09/30(金) 09:11:32ID:???0203nobodyさん
2005/09/30(金) 10:40:52ID:???お前とりあえずPHPの参考書をせめて2〜3冊は読んでみろよ。
基礎の基礎を知らずにやってても上達しない。
セキュリティ対策云々とかの前に、idに変数を代入するというような
プログラミングにおける超基本的な思考が出来てない。
この調子じゃ配列なんか絶望的だな。
0205名無したん(;´Д`)ハァハァ
2005/09/30(金) 13:37:42ID:kjDGUNft[a-zA-Z0-9_] と等価という認識で問題ありませんか?
0206nobodyさん
2005/09/30(金) 13:43:35ID:???0207nobodyさん
2005/09/30(金) 13:46:02ID:???0208nobodyさん
2005/09/30(金) 13:47:11ID:???0209nobodyさん
2005/09/30(金) 13:49:21ID:???0210188
2005/09/30(金) 14:48:49ID:???>>197
>>200
>>203
大勢の方からのアドバイス、本当に感謝しております。
一度基本から、じっくりと勉強し直してみる事にします。
さっそく今日辺り、
「基礎PHP」か「はじめてのPHP言語プログラミング入門」でも
買ってこようかと思います。
親身なご指導、本当にありがとうございました。
0211nobodyさん
2005/09/30(金) 15:03:14ID:???どうでもいいけど、最近ネット上でもリアルでも「少なからず」と「少なくとも」の意味をごっちゃに使ってる香具師を少なからず見かけるな。
「少なからず」は少なくはないって意味なんだが。
まあ言葉の意味なんて時代と共にうつりかわっていくのかね。
スレ違いな話でスマソ
0212軟式PHP
2005/09/30(金) 15:54:03ID:???0213nobodyさん
2005/09/30(金) 15:54:16ID:???0214nobodyさん
2005/09/30(金) 16:00:18ID:0T6o3fdx自分でチェックするしかありませんか?
0215軟式PHP
2005/09/30(金) 16:02:04ID:???時代遅れってこともないけど、環境によっては仕方ないんじゃないのかな。
データベースが使える環境なら、絶対使ったほうが開発は楽。
シリアライズを使って作るのもありじゃないかなぁと思うけど
ログが多くなってきた場合のアンシリアライズの速度や、
過去ログ管理が面倒さが気になるけどやったことないので分からない。
0216nobodyさん
2005/09/30(金) 16:06:56ID:???おまいさんには↓の本がオススメだ。PHPに限らずプログラムを理解しやすい。
ttp://www.amazon.co.jp/exec/obidos/ASIN/4798006696/
ただし今は注文できないみたい。絶版か??
0218nobodyさん
2005/09/30(金) 16:28:17ID:???ttps://www.honya-town.co.jp/servlet/jp.co.honya_town.p3.HSsearchServlet?ipg=1&iqm=2&isc=999999&ici=ZB01&ibo=&itm=0&ib1=1&ib2=2&ib3=4&ib4=8&ipu=&iop=0&iau=&ioa=0&isy=&ism=&iey=&iem=&ifr=&ifm=0&iol=20&ipr=0&ibt=0&iis=4798006696&x=46&y=20
絶版ではないらしい。品切れ扱い。
0219nobodyさん
2005/09/30(金) 17:04:56ID:???>少なからずあるといえばあるが、可能性は限りなく少ない
これを211の言うように置き換えると、
少なくはないがあるといえばある
あれ、何処が問題なんだ?
やばい俺日本人じゃないのかも。
0221nobodyさん
2005/09/30(金) 20:12:51ID:???<?php
$date = "<li>aaaaaaaa</li><li>bbbbbbbb</li><li>cccccccc</li>";
if(eregi("/<li>.*?<\/li>/",$date,$ary)){
print "$ary[0]";
}
?>
0223nobodyさん
2005/09/30(金) 20:31:23ID:???http://php.s3.to/man/function.eregi.html
マニュアル
「/」イラネ
で.*?じゃなくて(.*)?
最低エラーメッセージくらい書きたまい。
0225nobodyさん
2005/09/30(金) 20:41:59ID:???ありがとうございます。エラーは解決できました。
でも、【<li>aaaaaaaa</li>】だけとりたいんです、
最短マッチができません。
0227nobodyさん
2005/09/30(金) 21:26:13ID:???正規表現が苦手ならsubstr辺りで処理すればいい。
正規表現を勉強したくてやっているのなら丸投げするな。
0228nobodyさん
2005/09/30(金) 22:09:27ID:???<?php
$number = array ("1","2","3","4","5","6","7","8","9");
$alpha = array ("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o",
"p","q","r","s","t","u","v","w","x","y","z");
shuffle ($number);
shuffle ($alpha);
echo ("<br />");
foreach ($number as $value_number){
echo ($value_number);
}
echo ("<br />"."<br />");
foreach ($alpha as $value_alpha){
echo ($value_alpha);
}
?>
0229nobodyさん
2005/09/30(金) 22:22:02ID:???何がやりたいのかイマイチ分からんが・・・
<?php
echo '<br /'>',
str_shuffle('123456789'),
'<br /'>', '<br /'>',
str_shuffle('abcdefghijklmnopqrstuvwxyz');
?>
0230nobodyさん
2005/09/30(金) 22:44:23ID:???ありがとうございます。
str_shuffle関数は下記のようにまずシャッフルして、それから出力といった使い方はできないんですね(´・ω・`)
<?php
$alpha = "abcdefghijklmnopqrstuvwxyz";
str_shuffle($alpha);
echo ($alpha);
?>
0231nobodyさん
2005/09/30(金) 23:02:58ID:???0235nobodyさん
2005/09/30(金) 23:17:43ID:???ありがとうございます。
小数点以下を切り捨てる場合はどのようにすれば良いんでしょう?
$total += (filesize($afn)/1024);
こんな感じでやってるんですが
0236nobodyさん
2005/09/30(金) 23:29:36ID:???てか検索しろよ
0237nobodyさん
2005/09/30(金) 23:58:24ID:???あ、>>229は余計な'があったな(試してないのバレバレ・・・)。
str_shuffle()のマニュアルを読めば判ると思うが「適当に入れ替えた文字列を返す」だから、
$alpha=str_shuffle($alpha);
で済むのではないかと。
0239239
2005/10/01(土) 04:07:40ID:???$logfile = "./counter.log";
$cookiename = "mycookie";
$counter = 0;
if( $fn = @fopen($logfile,'r')){
$counter = trim(fgets($fn));
fclose($fn);
}
if(!isset($_COOKIE[$cookiename])){
$counter++;
setcookie( $cookiename,$counter);
if($fn=@fopen($logfile,'w')){
fwrite($fn,$counter);
fclose($fn);
}
}
?>
<html>
<body>
<?php
if($fn= @fopen($logfile,'r')){
$counter=trim(fgets($fn));
fclose($fn);
}
print($counter."人目です");
?>
</body>
</html>
を実行すると、
0240239
2005/10/01(土) 04:10:56ID:IQUyxXuW(output started at C:\04WebServer_182\04WebServer\DocumentRoot\p.php:1)
in C:\04WebServer_182\04WebServer\DocumentRoot\p.php on line 11
46人目です
↑こんなんが出ます。
HTTPヘッダが送られた後にクッキーを送ろうとしてるので、こんなエラーが出るのだと解読しましたが、
当たっていますか?
また、解決するにはどうすればいいでしょうか?
0241nobodyさん
2005/10/01(土) 04:17:34ID:???本にそってapacheはちゃんとインストールできて、「予想に反してー」ページが出ます。
phpもインストールでき、php.iniを/usr/local/libに置いています。
httpd.confにも
AddDefaultCharset none と
AddType application/x-httpd-php .php
を追加しています。
しかしphpにブラウザでアクセスしてもダウンロードダイアログが出てしまいます。
apacheも再起動してます。何か他の問題は考えられますか?
apache2.0.53 、 php5.0.4
FedoraCore4です。よろしくお願いします。
0243nobodyさん
2005/10/01(土) 08:58:49ID:???正解。クッキーはHTTPヘッダの中にSet-Cookie: mycookie=239の形で埋め込まれる。
1行目でヘッダ以外のものを出力したのでPHPの中の人はヘッダが終了したと思っている。(output started 〜 p.php:1 の部分)
うちでは問題なく動作したよ。「 <?php」てな感じにスペース1つを追加したら同じwarningを出せたけども。
0244nobodyさん
2005/10/01(土) 11:13:05ID:???ワロス
0245nobodyさん
2005/10/01(土) 12:22:33ID:???0246nobodyさん
2005/10/01(土) 12:50:33ID:???提示された行付近をチェックしたのですが、エラーの原因がサッパリわかりません。
ごく普通のswitch文なんですが、何がいけないのでしょうか?
switch( mysql_num_rows($sql_result) )
{
case 0:
$id_result = "";
break;
default:
$id_result = ""; ←ここがダメと言われる
}
ちなみに、問題の行をコメントアウトしても同じ行数でエラーが出ました
0247nobodyさん
2005/10/01(土) 13:00:16ID:???または括弧の対応とかさ。
0248nobodyさん
2005/10/01(土) 13:01:24ID:???0249nobodyさん
2005/10/01(土) 13:02:26ID:???Parse error: parse error, unexpected '}' in
てな感じで、何が不適切なのかもでてるでしょ?それも参考にしる
0250246
2005/10/01(土) 13:04:54ID:???試しに、switchを丸ごとコメントアウトして実行するとエラーが出ませんでした。
一体全体何が・・・
eclipseでやってるので、括弧の対応不一致とかも無いです
0251246
2005/10/01(土) 13:05:51ID:???それが出ればいいんですが、
Parse error: parse error in ファイル名 on line 63
しかでないんです・・・
0252nobodyさん
2005/10/01(土) 13:09:02ID:???PHPのアクセラレータかオプティマイザの所為かもしれない。
phpinfo()でインストールされてないか確認。
0254nobodyさん
2005/10/01(土) 14:44:59ID:???> サーバーにアップして実行すると、Parse errorが出たので、
これってローカルで試した時はエラー無しでアップしたらエラー出たって意味か?
0256246
2005/10/01(土) 16:18:25ID:???いえ、書いてあるそのままの意味です
ローカルで実行する環境作ってないので
で、自己解決しました。
上に抜き出したソースは空文字列にしてますが、
実際にはcase 0 と default で、$id_resultにそれぞれ違う文字列を代入してたのですが
その文字列の内容を変えたら動くようになりました。
文字コードの問題なのでしょうか・・・
とりあえず、お騒がせしました。
0257nobodyさん
2005/10/01(土) 16:37:04ID:???0258nobodyさん
2005/10/01(土) 17:01:10ID:???0259nobodyさん
2005/10/01(土) 17:04:31ID:eDSneZeHまた、WebサーバとしてApacheを用いた場合とIISを用いた場合ではPHPの挙動にどのような違いが出るのか教えていただけないでしょうか?
0260nobodyさん
2005/10/01(土) 17:52:22ID:???ApacheのSAPIとIISのISAPIは似たような技術だけど、
ApacheのDSOってのは全然ジャンルが違う。
そもそもそんな比較が出てくる時点で
「CGIとPHPは違うの?」並に理解不足と思われ。
0261259
2005/10/01(土) 18:13:42ID:???すみません。こんな理解不足の僕がこの辺の知識を得るために読むべき本やサイトを紹介していただけたらありがたいのですが…。よろしくお願いいたします。
0262nobodyさん
2005/10/01(土) 20:15:03ID:???リファレンスマニュアルにもないような・・・・
0265nobodyさん
2005/10/01(土) 21:09:27ID:???262でしたorz
0266nobodyさん
2005/10/01(土) 21:29:13ID:???ローカル環境とサーバー環境で並び方が違います。
ローカルではabcの順に並んでるのですが、鯖側では規則性が見つけられませんでした。
何が問題でしょうか。
0267nobodyさん
2005/10/01(土) 21:38:22ID:???フォルダ操作は環境依存。
0268nobodyさん
2005/10/01(土) 21:57:57ID:???$comment = preg_replace("/\n{2,}/", "\n\n", $comment);//2行以上の改行を2行に
上記のはわかるんですが、掲示板のコメントとか名前を改行禁止(改行しても一行表示)にしたいのですが…
どなたか教えて下さい
0269nobodyさん
2005/10/01(土) 22:35:17ID:???君、応用力ないなぁ…
つ[$comment = preg_replace("/\n/", "", $comment);//改行を削除]
0270nobodyさん
2005/10/01(土) 22:37:49ID:???処理
}
これは $i に値が存在する場合TUREを返し、ループ。
値が存在しない場合はFALSEを返すからループ停止。
という意味でOKですか?
0271nobodyさん
2005/10/01(土) 23:06:42ID:???fgetcsv()はファイルの終端に達した場合を含み、 エラー時にFALSEを返します。
0273nobodyさん
2005/10/02(日) 00:03:36ID:???PHPについてこの後はどのようなことをして勉強をすれば良いのでしょうか?
0274nobodyさん
2005/10/02(日) 00:21:46ID:???一度自分で実際に作ってみて、
問題にぶつかってからいろいろ考えればいいじゃない。
勉強するだけじゃスキルは身に付かないよ
0276nobodyさん
2005/10/02(日) 01:25:17ID:???a.phpのプロセスでロック掛けている時はb.phpのプロセスでもロック掛かっていますでしょうか?
0277nobodyさん
2005/10/02(日) 01:48:20ID:???なるほど、ありがとうございます。
実際に何かを作る場合、リファレンスがあると便利なので買おうと思うのですが
逆引き代全とポケットリファレンスとではどちらの方が初心者向けでしょうか?
0278nobodyさん
2005/10/02(日) 01:51:59ID:???アイモード(携帯全部?)にはクッキーは効きませんよね?
携帯用としてクッキーに変わるようなものはありますでしょうか?
0280nobodyさん
2005/10/02(日) 02:15:27ID:???0281nobodyさん
2005/10/02(日) 02:21:13ID:???http://ns1.php.gr.jp/pipermail/php-users/2002-February/005377.html
あとはGoogleや本でも手当たりしだいでも立ち読みして調べろ。
0283nobodyさん
2005/10/02(日) 06:14:40ID:???マニュアルのどっかに書いてあったら教えてください。
(PHP5です)
class Hoge {
private $value;
public function __construct($value) { $this->value = $value; }
}
$a = array(new Hoge(100), new Hoge(32), new Hoge(255), new Hoge(7));
sort($a);
とやったらちゃんと$valueの順番にソートされてやがんの。
privateなのにアクセスされてる感がたまらなくキモイ。
0284nobodyさん
2005/10/02(日) 07:28:33ID:???0285nobodyさん
2005/10/02(日) 07:51:37ID:???>>280
レス有難うございます。
phpのチャットなんでここに書きましたがスレ違いの様な…
hiddenで構いませんので教えて下さい
もしくはヒントを!
0286nobodyさん
2005/10/02(日) 08:08:27ID:???0288nobodyさん
2005/10/02(日) 08:58:15ID:???<FORM action="セルフ" method="post">
<?PHP
if($_POST['onamae']){
echo "$_POST['onamae'] ->";
echo "<INPUT type=\"hidden\" name=\"onamae\" value=\"$_POST['onamae']\">\n";
}else
echo "<INPUT type=\"text\" name=\"onamae\">\n";
?>
こんな感じかな?
0290nobodyさん
2005/10/02(日) 09:41:40ID:???0291nobodyさん
2005/10/02(日) 09:55:16ID:???http://php.s3.to/chat/schat.php
ソース
http://php.s3.to/chat/schat.php.txt
0293nobodyさん
2005/10/02(日) 18:12:55ID:???いろいろ調べたのですがよくわかりません。
ヒントを下さい、お願いします。
0294nobodyさん
2005/10/02(日) 18:36:20ID:???予め決めておいた特殊な文字列 (特定界隈で特殊タグなどと呼ばれているもの)を
許可したい "一部のタグ" に変換するとか、一旦全ての文字列を HTML エンティティ
関数に通してから "一部のタグ" に置き換え直すとか、という風に出来ん?
0297nobodyさん
2005/10/02(日) 21:02:32ID:KeoPF5wsこれって書き方間違っていませんよね?
どうしても
Fatal error: Call to undefined function: imagetypes() in ・・・・
と出てしまいます。
0298nobodyさん
2005/10/02(日) 21:06:33ID:???0299nobodyさん
2005/10/02(日) 21:11:28ID:KeoPF5ws0300nobodyさん
2005/10/02(日) 23:29:21ID:???0301nobodyさん
2005/10/03(月) 02:46:03ID:???ソートするためには大小比較をしなければならないのだけど、
オブジェクトの大小比較って定義されてたっけか。
マニュアル15章の、比較演算子の項を見ると
オブジェクト同士の比較はできないことになってるから
偶発的なものと考えていいんじゃないかな。
本来ならエラーになってしかるべき手法だと思う。
そこには比較には配列形式でと書いてあるから、
たまたまそんな挙動になってるんじゃないかと推測。
0302283
2005/10/03(月) 04:52:53ID:???>>287
何がキモイかわからないなら、>>301を読んでくれるとピンとくるかな?オブジェクトの比較って点がポイント。
クラスに関してひょっとしたら>>287さんほどわかってないかもしれないが、>>283に書いたコードのクラスくらいならわかりますよ。
頭は大丈夫。心配してくれてありがとう。
>>301
本当ですね。比較演算子のところでオブジェクトの比較にはまったく触れられていませんね。気になって試してみたら
$a = new Hoge(100);
$b = new Hoge(200);
とやると $a < $b は true になり、$a > $b は false になるようです。
勝手にプロパティで比較しているみたいですね。
クラスの中に複数のプロパティを定義してみると、ご丁寧にプロパティを定義した順に比較しているようです。
class Fuga extends Hoge {
private $value2; public $value3 = "";
public function __construct($value, $value2) { parent::__construct($value); $this->value2 = $value2; }
}
$c = new Fuga(10, 20); $c->value3 = "ABC";
$d = new Fuga(10, 20); $d->value3 = "ABZ";
とやると $c < $d が true になります。
Hoge::$value、Fuga::$value2、Fuga::$value3の順に正しく比較されていて、どうも偶発的ってよりも、意図的に比較してるような感じです。
プロパティが参照だったらどう比較するんだろう?
ずいぶん余計なお世話な挙動ですね。エラーだしてくれたほうがましなのに。
まあマニュアルにものってないようだから、変な比較はしないのが吉ってことかな。
0305nobodyさん
2005/10/03(月) 08:38:22ID:???0307nobodyさん
2005/10/03(月) 10:39:56ID:UqfVmxKvPHPはHTMLソースの中に書き込む形で書いてくらしいのですが
これって右クリックのソース見るで、<? ?>の部分を見たらどのようにPHPで書いたのか丸見えということはないでしょうか。
まさかとは思うのですが。何かユーザからは見えないようになってたりしますよね。
0308nobodyさん
2005/10/03(月) 10:57:27ID:???まずはPHPを始めてから聞いてください
0311307
2005/10/03(月) 11:23:23ID:UqfVmxKv見えないということで安心しました。丸見えってなんかやですもんね。
HTMLの中に一緒に書いたら見えるんじゃないのかと思ったのですが、やっぱり見えないようになってるんですね。
>PHPは鯖側で実行されるつーことをまず理解しましょう。
どこかに書いてありました。JavaScriptはユーザ側で実行されて、PHPはサーバ側で実行されると。
同じスクリプト言語でも仕組みが違うと。
なんか読んだことがあるのですが、この知識からPHPのソースは見えないの解を導き出すことはできませんでした。残念。
確かJavaScriptはソース丸見えでしたよね。
ということは、ユーザ側で実行するスクリプト=見える
サーバ側で実行するスクリプト=見えない
の図式がなりたちますね。
でもなんでサーバ側で実行すると見えなくなるんだろうか。
サーバ側で実行した結果をブラウザに返すからかな。
だからブラウザ側では帰ってきた結果しか見ることができない。ゆえにソース見えない。
と推理したのですが、あってるでしょうか。
0312nobodyさん
2005/10/03(月) 11:29:15ID:???>サーバ側で実行した結果をブラウザに返すからかな。
そだね。
0314nobodyさん
2005/10/03(月) 12:11:14ID:???function & bbb() {
// 色々な処理
return $aaa;
}
function bbb() {
// 色々な処理
return & $aaa;
}
function & bbb() {
// 色々な処理
return & $aaa;
}
のなかでどう書くのが一番良いでしょうか?
PHP4でクラスを返す場合は参照にしないと無駄なコピーができるということなのですが。
0315nobodyさん
2005/10/03(月) 12:25:35ID:???関数に渡した時点では、どちらもアドレスが渡されており、実行速度に差はなく、違ってくるのはその値が変更される時で、値渡しの場合に、関数内で変更された値が、関数内のローカル変数にコピーされるよう。つまり、値を変更しない関数ならば、値渡しと参照渡しの差はない。
0316nobodyさん
2005/10/03(月) 12:32:08ID:???参照で返すってどういうこと
引数に渡す変数には値渡しとか参照渡しとかあるけど
実際にやってみればわかるけどreturn & $aaa;でエラーがでる
0317314
2005/10/03(月) 12:47:03ID:???すみません、とんだ勘違いなコード書いてました。
呼び出す方で
$aaa = & bbb();
とやるのと、
function & bbb() {
}
とやるのと、もしくは両方&をつける場合の違いについてでした・・・
あと、自分はCがわからないので、ちょっとイメージがつきにくいのですが、違いは全くないということなのでしょうか?
よく$x = new class()は$x = & new class()と書くほうがいいというのとはまた別の話ということなのでしょうか?
0318nobodyさん
2005/10/03(月) 12:54:34ID:???後者のやり方でやってみたのですが、属性が必要なタグ(font color=〜等)の場合は
どうすればよいのでしょうか?
0320nobodyさん
2005/10/03(月) 14:09:15ID:???http://www.php.net/manual/ja/language.references.return.php
0321294
2005/10/03(月) 14:44:59ID:???俺としては、前者 + 正規表現 (最小限ならば str_replace だけでも) を推奨。
後者でやろうとすると、色々とボロが出てしまわないだろうか?以下の色々と
ボロが出てしまっている、小汚いソースの様に。
<?php
header("Content-Type:text/html; charset=".mb_detect_encoding("ほげ"));
$str = "<Font color=red>文字列</fonT> <font color=\"red>文字列</font> <font color=\"red\">文字列</font> <span style=\"font-size:500%;\">文字列</span>";
$bef = array("/<font(\s+color\s*=\s*(\"(#?[a-z0-9]*)?\"|(#?[a-z0-9]*)?))*>(.+)<\/font>/iU");
$aft = array("<font$1>$5</font>");
echo preg_replace($bef,$aft,str_replace(array("<",">","@"),array("<",">","?"),stripslashes($str)));
exit;
?>
0322294
2005/10/03(月) 14:49:56ID:???echo preg_replace($bef,$aft,str_replace(array("<",">","@"),array("&lt;","&gt;","&#64;"),stripslashes($str)));
0323314
2005/10/03(月) 15:14:40ID:???なるほど。両方に&をつけなければいけないのですね。了解です。
関数の中でnewしてるんで、3箇所に&を書かないといけないんですね。
しかし、そうなるとやっかいです。
クライアントコードの側にも&をつけなければならないのはドキュメントで明示しておくしか方法はないということなのでしょうか?
0324nobodyさん
2005/10/03(月) 15:40:51ID:yF4zapvkプログラミングは初心者で、htmlがちょっとできる程度なので、基本的な疑問があります。
メールフォームなどを作っているのですが、いくつかのテキストボックスなどを作成するときに、
エラーチェックのプログラムなどは、なにも考えずにテキストボックスの項目の順番に記述すればいいのですか?
0326nobodyさん
2005/10/03(月) 16:41:05ID:???その場合、呼び出し側で参照つけ忘れても大丈夫。
むしろ最初からその3つとも&をつけなくても無問題。
>>324
テキストボックスの順番自体に何か意味があるならそれなりに考える必要あるんだろうが、そうでないなら別に気にしなくてよし。
とりあえず状況詳しく書かないと、何でそんな疑問がわいたのかすら想像つかないんだけど。
0328nobodyさん
2005/10/03(月) 17:16:50ID:7v8t3+9llogin.php にてログイン認証し、その際にニックネームをセッション登録しています。
認証後にトップページ index.php に戻り、トップページではサイドメニュー menu.phpを include にて読み込んでいます。
このサイドメニューでニックネームを表示させたいのですが、うまく取得してくれません。
index.php の方で呼び出すときちんと表示してくれるのですが。
原因が分かる方、教えてください。
0331nobodyさん
2005/10/03(月) 19:45:28ID:???0332328
2005/10/03(月) 20:44:44ID:???index は呼び出せましたが、menu のほうだと呼び出せませんでした。
なんでだろう…。
0333328
2005/10/03(月) 22:29:49ID:???menu.php に直接アクセスすると表示されるのですが
include(requireも試した)で読み込んだ時は表示されません。
原因が分かる人いませんかー?! orz
0334nobodyさん
2005/10/03(月) 22:36:36ID:???include のパスをURLで指定していました。
絶対パスにしたところ、きちんと表示されるようになりました。
別のサイトと認識されてしまったのでしょうか…。
何にせよ、ご迷惑おかけしました。
0335nobodyさん
2005/10/03(月) 22:39:14ID:???0336nobodyさん
2005/10/03(月) 22:41:05ID:???単純化するとこんな感じになると思うけど問題なく動くよ。
って、再読込したらそんなオチかよ。。。
テストスクリプトまで書いたので送信ポチっとな。
1.php - セッションの設定、 2.php - includeする、 3.php - includeされる
1.php
session_start();
$_SESSION['name']='hoge';
<a href="2.php">link</a>
2.php
include("3.php");
3.php
session_start(); // 2.phpでsession_start(); しても動作する
echo $_SESSION['name'];
0338nobodyさん
2005/10/03(月) 22:51:58ID:+uOrbyCWメモリが足りなくなってプログラムが途中で止まってしまいます。
unsetを使っても、$var = NULLとしても
全然メモリが解放されないんですがどのようにしたら良いでしょうか?
0341nobodyさん
2005/10/03(月) 23:38:39ID:+uOrbyCWPEARのMail.phpを使って、
SMTPでメールを送っている時にメモリがみるみる内になくなっていきます。
一万通くらい送ると250MBくらい減ります。
require( "Mail.php" );
$param["host"] = "127.0.0.1";
$mail = Mail::factory('smtp', $param);
for( $i = 0 ; $i <= 10000 ; $i++ ){
$mail->send("[email protected]", $head, $body);
}
このような感じになります。
送信の後にunset($mail);としてみたり、
$mail = NULL;としてもメモリが解放される様子はありません。
分かる人助けてください!
0342nobodyさん
2005/10/03(月) 23:41:34ID:+uOrbyCWなるほど。メモリ上限は設定していませんが
設定してやってみます。
プログラムではメモリ解放できないですかね。
0343nobodyさん
2005/10/03(月) 23:47:31ID:???0344nobodyさん
2005/10/03(月) 23:49:26ID:+uOrbyCW登録してる人だけに送ってます
0345nobodyさん
2005/10/03(月) 23:52:51ID:???0346nobodyさん
2005/10/04(火) 00:08:26ID:???そこに専用URLが載ってたりするのありますよね。
あれの仕組みってPHPで出来るんですか?教えてくだされ。
0347軟式PHP
2005/10/04(火) 00:21:10ID:???0349nobodyさん
2005/10/04(火) 08:15:26ID:???0350nobodyさん
2005/10/04(火) 08:39:28ID:???0351346
2005/10/04(火) 11:05:37ID:???こんな便利な機能があることに驚きです。
しかし、xreaでは使えないようでした…。
残念ですが諦めます。
0354nobodyさん
2005/10/04(火) 11:53:41ID:???0355nobodyさん
2005/10/04(火) 11:59:09ID:???最近、XREAで使ってるドメインのメアドで送受信したメールが
届かないことがあるな〜と思ったら、やっぱりトラブル発生してんの!?
でも公式サイトの障害情報見ても何も載ってないんだが・・・
0356nobodyさん
2005/10/04(火) 12:02:52ID:JKocPbjBcopyはファイル全体をコピーする。
renameはディレクトリ構造とファイル名のみを書き換える。
検証するまでもない。
0357nobodyさん
2005/10/04(火) 12:32:57ID:oyC3QmoSありが�d
0358nobodyさん
2005/10/04(火) 13:09:49ID:ogSOlTW8Apacheをインストールするところなんだけど
インストールする際に出てくるウィザードに
Network Domain, Server Name, Administrator's Email Address
の3項目を入力する画面が出てきた。
Email Addressは適当なものを入れるとして
Network Domain, とServer Nameは適当に決めちゃっていいもんなんでしょうか。
XP Homeのローカルで実験するんだから
Network Domainは、C:\ でいいのかな。
それとも適当に、test.com とか書いちゃっていいんですかね。
Server Nameなんかは適当にPCがdynabookだからdynabookとか入れとこうかと思ってるのですが
これでいいんでしょうか。
0359nobodyさん
2005/10/04(火) 13:13:30ID:???ローカルなんだから適当なドメインを考えて入れればいい
サーバーネームは自分のマシン名でも入れとけ
どうせ、アクセスするときの指定はlocalhostか127.0.0.1でやるんだからよ
0360358
2005/10/04(火) 13:30:08ID:ogSOlTW8>C:\がドメインだと思うか?
いや、思いません。思わないけど。ローカルのアドレスを入れとかないと、PHPのコードを実行するときに困るんじゃないかなと
ちょっと思っちゃった。
ドメインもサーバネームも適当でOKということなので安心しました。
アクセスはlocalhostか127.0.0.1で指定するからこの画面で設定しなくてもいいんですね。
どうもありがとうございます。助かりました。
0361nobodyさん
2005/10/04(火) 15:38:29ID:???0363nobodyさん
2005/10/04(火) 18:02:46ID:???m9(^Д^)プゲラッチョ!
0364nobodyさん
2005/10/04(火) 20:36:23ID:F0xENNekサイト作りのノウハウがある方は、ご協力お願いします。
デザイン関係、サイトに載せる文章を書ける方も募集中です。
http://off3.2ch.net/test/read.cgi/offmatrix/1128239507/
(過疎スレのリサイクルです)
0366nobodyさん
2005/10/04(火) 21:33:09ID:???0367nobodyさん
2005/10/04(火) 22:42:10ID:TMWi83Dvfirefoxで見るとバックスラッシュになってしまいます。
$str = "123あいう¥¥";
echo ($str);
こんな風に書いたりしてます。
0369nobodyさん
2005/10/04(火) 23:07:08ID:TMWi83Dv$str = "¥¥1200";
echo ($str);
は¥1200と出力されますが、
$str = "¥¥えんまーく";
echo ($str);
は¥えんまーくと出力されます。
こういうもんなんですか?¥付の値段を出力したいときはどうすればいいのでしょうか?
0371nobodyさん
2005/10/04(火) 23:12:18ID:???&#165; &yen; (&は半角)
0373369
2005/10/05(水) 01:56:22ID:oPPZGTrSレスありがとうございます。
やりたいことは、Accessで出力したCSVファイルを分解してhtmlで出力したいだけなんです。CSV上で既に半角¥マークになってしまっているのでどうしたものかと。
IEでは問題ないのですが...。
>>372
文字コードをいろいろ試していたんですが、いまいちうまく行かないんですよねー。もうちょっと悩みます。ありがとうございました。
0374nobodyさん
2005/10/05(水) 02:01:17ID:???uid 名前
0 高橋
1 伊藤
2 鈴木
というテーブルがあるとします。
そしてuidをGETで取得し、名前を表示するプログラムを作るとします。
もしテーブルに無い番号が入力されたら、エラーメッセージを表示させます。
ここで質問ですが、
「GETしたuidがテーブルのuidに含まれていなかったら」という内容の文は
どのように書くべきでしょうか?
自分で調べて、
if ($_GET['uid'] != $row_Recordset['uid']) { echo "不正なIDです"; exit; }
というのを作ったのですが、
これだとテーブルに含まれるuidも全て"不正なIDです"となってしまいました。
どうしたら良いでしょうか・・・?
ちなみにこの質問内容は、DB板じゃなくてココでOKですよね??
0375nobodyさん
2005/10/05(水) 02:12:49ID:???SELECT ------ WHERE uid = 「GETのuid」
で結果0件ならエラーじゃだめなん?
0376374
2005/10/05(水) 02:30:01ID:???sqlのクエリ部分ではなく、phpの部分でやりたいのです・・・。
自分でも今色々と調べてる所ではあるんですが、
なかなかどうして難しいですね。
0378nobodyさん
2005/10/05(水) 03:30:00ID:???Firefox(Winodws)で試したけど、x5cを円マークで表示すべき
EUC-JP、SHIFT_JISあたりはちゃんと円マークになってたぞ。
(\と&yen;で違うフォントになるのは知らなかったが)
マッピングが変なフォント使ってるんじゃないの?
0379374
2005/10/05(水) 03:37:13ID:???えっ、マジっすか!?
無駄無駄ァ、な事だったとは・・・。
要は、「GETしたuidが、テーブルの中に実在するuidに含まれていなかったら」という
内容の文がうまく記述出来ればOKなのです。
無理というか、無駄な事なのでしょうか・・・。
とりえあず今宵は寝ます。
0380nobodyさん
2005/10/05(水) 03:38:25ID:???uidってやつがテーブル内にあるかどうかの判別って結局SQLで問い合わせてからじゃないと無理じゃん。
だったら、>>375にするのがベストだし、それが普通。
他に複雑な事情があるならそれも書かんとわからんよ。
0381nobodyさん
2005/10/05(水) 04:55:34ID:???>sqlのクエリ部分ではなく、phpの部分でやりたいのです・・・。
だから、SQLで該当するuidが何件あるかを読んで
phpで件数を確認すればいいやん
>なかなかどうして難しいですね。
379の頭の中のほうが難しい。
380氏のいうようにそれが普通というか定石ってもんだ
phpのマニュアルに結構ためになるサンプルあるで。
0382nobodyさん
2005/10/05(水) 05:19:45ID:???0383nobodyさん
2005/10/05(水) 05:55:55ID:SZgLc6+c>PHPマニュアル print_r より
>print_r() と var_export() はvar_dump()と違い、 PHP 5においてオブジェクトのprotected及びprivateのプロパティも表示します。
と書いてあり、「var_dump()はpublicしか表示しないのだろう」と思って試してみた。
結果:var_dump で protected・private が出力されている。
<var_dump>
object(obj)#1 (3) {
["a"]=>
string(6) "public"
["b:protected"]=>
string(9) "protected"
["c:private"]=>
string(7) "private"
}
<print_r>
obj Object
(
[a] => public
[b:protected] => protected
[c:private] => private
)
<var_export>
class obj {
public $a = 'public';
protected $b = 'protected';
private $c = 'private';
}
0384nobodyさん
2005/10/05(水) 05:56:30ID:SZgLc6+c・var_dump()はpublicしか表示しないのだろうと思ったけど、私の勘違い?
・各関数の違いは以下の通り?
print_r : 簡素に出力。第二引数がTRUEの場合、結果を返す。
var_dump : 型などの詳細も出力。
var_export : PHPコードの形で出力。第二引数がTRUEの場合、結果を返す。
0385nobodyさん
2005/10/05(水) 07:47:03ID:???var_dump(英語)には
In PHP 5 only public, private and protected properties of objects will be returned in the output.
と書いてあるから
0386369
2005/10/05(水) 10:22:41ID:Qlmr5ADvわざわざすみません。もっと勉強します。
ちなみにfirefox(mac os X)です。
osXとMAMPという環境でphpを勉強中です。
0387nobodyさん
2005/10/05(水) 10:44:16ID:hgIawq/C$fruits = array("lemon", "orange", "banana", "apple");
sort($fruits);
reset($fruits);
while (list($key, $val) = each($fruits)) {
echo "fruits[" . $key . "] = " . $val . "\n";
}
?>
上はsortを用いて配列をアルファベット順に並べたものですが、
配列をランダムに並ばせるものを作る簡単な方法はありますか?
つまり、やりたい事はアクセスするたびに4つの画像の順番がランダムに入れ替わり表示されるようにしたいのです。
0388nobodyさん
2005/10/05(水) 10:45:58ID:???0389nobodyさん
2005/10/05(水) 10:46:21ID:???0390nobodyさん
2005/10/05(水) 11:29:52ID:???0391nobodyさん
2005/10/05(水) 11:35:44ID:rxjtKeLJ0392nobodyさん
2005/10/05(水) 11:45:40ID:hgIawq/Cありがとう
できました
0394nobodyさん
2005/10/05(水) 12:35:29ID:iJ3zhQF9for($i = 0; $i < count(@$_POST["check1"]); $i++)
{
echo "<p>".$_POST["check1"][$i]."にチェックが入っています";
}
?>
<form method = "POST" action = "<?=$_SERVER["PHP_SELF"]?>"
<table>
<tr>
<td>
<input type = "checkbox" name = "check1[]" value = "PHP">PHP
<input type = "checkbox" name = "check1[]" value = "Perl">Perl
<input type = "checkbox" name = "check1[]" value = "ASP">ASP
<input type = "checkbox" name = "check1[]" value = "JSP">JSP
</td>
</tr>
<tr>
<td>
<input type = "submit" value = "送信" name = "sub1">
</td>
</tr>
</table>
ちょっと確認したいのですが。
この場合、チェック入れたものだけが配列に入って送られるで合ってるでしょうか。
仮にPHP,JSPにチェック入れたとしたら、配列番号0には"PHP"が、配列番号1には"JSP"といった
具合に入れられて送られるといったイメージで合ってますか。
何か勘違いしていたら指摘していただけるとうれしいです。
0397394
2005/10/05(水) 12:47:08ID:iJ3zhQF9回答ありがとうございます。
PHP初めてなもので、このイメージで合ってるのか不安だったので質問しました。
配列表示するんだったらprint_r関数使ったほうがコードが短くなってすっきりですね。
どうもアドバイスありがとうございます。
>>396
PHPもforeach使えるんですね。覚えときます。どうもありがとうございます。
0398nobodyさん
2005/10/05(水) 13:18:45ID:KahEav2gグラフで、左Yのスケールと右Yのスケールが違う複合グラフは作成出来るのでしょうか?
例えば、左Yのメモリは最大値100で棒線グラフ。
右Yのメモリは最大値10000で折れ線グラフといった感じです。
0399nobodyさん
2005/10/05(水) 13:25:55ID:???>配列表示するんだったらprint_r関数使ったほうがコードが短くなってすっきりですね
そういう意味ではなく、print_r($_POST) してみればワザワザ聞かなくても判るでしょ?
という意味だろ。
0400nobodyさん
2005/10/05(水) 13:31:47ID:???ダメでしょうか?
0401nobodyさん
2005/10/05(水) 13:44:26ID:???取り敢えず書く。
叩かれるのを恐るべからず。
0402nobodyさん
2005/10/05(水) 13:57:32ID:???http://nekomimi.s91.xrea.com/_database_test/stock/extract_php.zip
”extract.php”
これはWeb制作板のCGI探索スレで作っていただいたスクリプトなんですが、
作成者さまのPCが飛んでしまったということでサポート対象外になってしまったので、こちらに投書させていただきます。
概要としては、csvファイルの「ランダムに選択された行」から、「指定した列の文字列」を抽出し、表示するというものです。
csvファイルは1行1データという形で収束されています。
このスクリプトで若干不具合があり、
・csvの行が10行以上ある場合、それ以降の行が選択候補から除外される(9行までしか認識しない)
・逆に、9行未満の場合、文字列が表示されない場合がある
というものです。
希望としては、
・行が何行であってもその中から選択し、確実に文字列表示する
というようにして頂きたい次第です。
実際に動いているイメージとしては、このページのようになります。
http://nekomimi.s91.xrea.com/_database_test/stock/
0403nobodyさん
2005/10/05(水) 13:58:54ID:???ボロカスに言われるかもしれないけど、それなりに相手してくれると思うよ。
矢継ぎ早に同じレベルの質問を繰り返すと嫌われるかもしれないけれど。
ボロカスに言われても、指摘内容は正しいことが多いから、ムカつかずに今後に生かせばいい。
0404394
2005/10/05(水) 14:05:38ID:???そうか。
print_r($_POST)すれば配列の中身が見れるから、それをしていたら質問するまでもなかったよねという意味でしたか。
配列だったら、こう書いたほうが便利だよといった意味かと思いました。
まだ基礎的なコードいじって学習してる段階なのでechoばっかり使ってました。
最初の方にちらっとprint_r関数も出てきてたなあ程度だったのでそこまで考えが回らなかったようです。
まあ、もやもやしたイメージが確かなものになったので感謝です。ありがとう。
0405nobodyさん
2005/10/05(水) 15:13:04ID:???<?
#データファイル
$data_file = "dataedit.csv";
#取り出す列-1(「$row = array("0", "1", "2")」とすれば1列目と2列目と3列目を取り出します。)
$row = array("0","3");
$num = count($row);
$data = file($data_file);
for($j = 0; $j < $num; $j++)
{
$result = $data[array_rand($data)];
$val = explode("\t", $result);
echo $val[$row[$j]] . "<br>";
}
?>
0406nobodyさん
2005/10/05(水) 15:13:52ID:???試してないけど
<?
$data = ---- の行以降を以下に変更
$tmp = file($data_file);
$rand_keys = array_rand($input, 10);
foreach($rand_keys as $i) {
$rec = explode("\t", $tmp[$i]);
foreach($row as $j => $k) {
echo $rec[$k] . "<br>";
}
}
0407406
2005/10/05(水) 15:16:15ID:???1行訂正
foreach($rand_keys as $a => $i) {
0408405
2005/10/05(水) 15:18:29ID:???$tmp = explode("\t\n", $data);
を
$tmp = explode("\n", $data);
にすれば不具合はなくなるのではないかと思う
0409nobodyさん
2005/10/05(水) 15:24:21ID:???0410nobodyさん
2005/10/05(水) 15:37:15ID:Cp2lANiyPHPバージョン:4.3.8
APACHE:1.3.28
DBサーバ:Windows2000Server・SQLServer2000
LinuxのPHPからDBサーバにアクセスを行い、データを取得したいのですが
方法が分かりません。
マニュアルには、プラットフォームが違う場合はコンパイル時に
「Sybase拡張モジュール」を使用して下さいとあるのですが、
Sybaseをインストールしなければならないのでしょうか。
0412nobodyさん
2005/10/05(水) 16:04:46ID:Wy1EjQwZ{$user.id} みたいな変数(連想配列)は普通に展開されて表示できますが、
{include file="header.tpl" user_id="$user.id"}
のような感じでやると、header.tplには$userが渡されているようです。
$user.idを渡したい場合はどうすればいいのでしょうか?
0413nobodyさん
2005/10/05(水) 16:48:26ID:iJ3zhQF9post_max_size = 8M
upload_max_filesize = 2M
なのですが、この値って
post_max_size = 1G
upload_max_filesize = 2G
のように適当にG買いとも大丈夫なんでしょうか。
書き込める容量とかにも制限があるんですかね。
1G,2Gくらいなら余裕で書いちゃってもOKでしょうか。
0414402
2005/10/05(水) 16:50:56ID:???>>406>>407
>>403>>409
ありがとう御座います。
とりいそぎ>>405さんのソースをうpさせてもらいましたところ、希望する通りの表示が確認できました。
他の方法も興味があるのでいろいろ試させてもらいますが、原理を把握するのに少し時間がかかりそうです…。すみません。
ご教示頂いて本当に有り難うございます。
0415nobodyさん
2005/10/05(水) 16:52:52ID:???0416413
2005/10/05(水) 16:56:15ID:iJ3zhQF9post_max_size > upload_max_filesizeじゃないと、upload_max_filesizeが全く意味をなさないみたいなことを書いてました。
もし、2Gまでアップロード可能にしたければ
post_max_size = 2G
upload_max_filesize = 2G
って書くべきなんですね。
でも、ここに書ける容量の限界ってどのくらいなんでしょうか。
>>415
メモリの使いかたによっては書けると。
物には限度というものがあるとは思うのですが。書こうと思えばいくらでも設定可能なんでしょうかね。
0417413
2005/10/05(水) 16:59:20ID:iJ3zhQF9よくよく見てみたら
memory_limit > post_max_size > upload_max_filesize
じゃないとだめみたいですね。
こういうことしようと思えば、自サーバで、回線も高品質でメモリいっぱい積んどかないときついのかな。
0418nobodyさん
2005/10/05(水) 17:01:29ID:???http://jp2.php.net/manual/ja/faq.databases.php#faq.databases.mssql
UnixODBC利用して、ODBCで話してもいいと思うけど。
0419nobodyさん
2005/10/05(水) 17:15:40ID:???0420nobodyさん
2005/10/05(水) 18:08:01ID:???0421418
2005/10/05(水) 18:49:26ID:???0422nobodyさん
2005/10/05(水) 19:53:24ID:???PHPで作ったライブラリ(クラス群)を第3者に提供する必要がでてきたのですが、
そのままですとソース丸見えになってしまいます。
そこで中身を見れなくするために、
コンパイルしてオブジェクトの形で提供したいのですが、
そんなこと可能なのでしょうか?
APCはちと違うような気がするし、Encoderもありましたが有償ですし。
もし不可能ってことになるとC言語でライブラリ作成する必要がでてきて死にそうなんです。
どなたかお知恵を・・・
0423422
2005/10/05(水) 19:58:44ID:???FedoraCore4
Apache2
PHP5
です。
0427nobodyさん
2005/10/05(水) 20:26:30ID:???ttp://www.asial.co.jp/products/ioncube/
↑これ使えばいいじゃん。
第三者に提供ってことは商売だろ? だったら投資を惜しむな。
商売じゃないんだったら、そんな依頼請けるな。
0428nobodyさん
2005/10/05(水) 20:43:27ID:???http://pecl.php.net/package/bcompiler
ただ、俺も>>427に強く同意するがな。
0429422
2005/10/05(水) 21:02:41ID:???そのプロダクトいいですね。
上に聞いてみます。
今後PHP案件がどんどん増えればいいんですけどね。
まだ正式な契約はしてないので、
Cでゴリゴリやるとなると工数再見積になると思います。
あ〜、めんどくせ。
0430nobodyさん
2005/10/05(水) 21:42:55ID:???サーバ環境が間違ってました。
サーバ:FreeBSD4-stable
FreeBSDでFreetdsとunixODBCを使用し、
DBにアクセスは出来たのですが、select分で取得した
値の日本語が文字化けします。
サーバがLinuxで、教えて頂いたURLの
「必要なLinux用ライブラリのフリーな実装」を利用すれば、
日本語の文字化けもなく、問題なく利用できるのでしょうか・・・。
0431nobodyさん
2005/10/05(水) 22:11:21ID:???0432nobodyさん
2005/10/06(木) 00:32:54ID:???bbb
ccc
ddd
とある場合に先頭にaaaを追加して
aaa
bbb
ccc
ddd
としたいのですがbbb〜dddを読み込まずに実現する方法を教えて頂きたいです。
ファイルの先頭に挿入書込がしたいということです。
よろしくお願い致します
0433nobodyさん
2005/10/06(木) 00:46:30ID:???無いよ。
PHPの関数や命令文つーのは最終的にOSが提供している機能を使うんだけど
OS側の機能にそういう物が存在しない。
0434nobodyさん
2005/10/06(木) 03:31:59ID:taikAwmTしかしいまいちアルゴリズムが思い浮かばないのでアドバイスをお願いしたいです。
はじまりから終わりまでを特定の文字列(正規表現の一致)で指定して
はじめ部分指定〜おわり部分指定
という感じでこれら指定部分に挟まれた部分を抽出したいと思っています。
よろしくお願いいたします。
0436nobodyさん
2005/10/06(木) 04:07:20ID:???データ管理をマイシークェルとかいうデータベースを使うのですか?
0437434
2005/10/06(木) 06:40:55ID:taikAwmT正規表現で一致したある部分を先頭とし、もうひとつ同様にある部分を終わりとする、そしてそれらで指定した箇所を抽出する、そういったことが可能な関数または手法
あるいは
正規表現で一致したある部分から前方を削除し、もうひとつ同様にある部分から後方を削除する、そういった関数または手法
はありませんか?よろしくお願いいたします。
0438nobodyさん
2005/10/06(木) 07:24:47ID:???>>432みたいな苦労をしなくてすむ
データの追加はデータを放り込むだけ
読み出す時は必要な分だけを指定した順番で並び替えて送ってくれる
>>437
preg_match()
preg_match_all()
・
・
http://jp.php.net/manual/ja/ref.pcre.php
0439nobodyさん
2005/10/06(木) 07:31:10ID:???まったくしょうがねえなぁ
<?php
$text = "ほげほげはじめ部分指定ほげほげほげぬ\nほげほげほげる\nほげほげほげぽおわり部分指定ほげほげ";
$start = "はじめ部分指定";
$end = "おわり部分指定";
preg_match("/$start(.*?)$end/s", $text, $matches);
$result1 = $matches[0]; // 開始部分・終了部分も含む
$result2 = $matches[1]; // 開始部分・終了部分は除外
?>
0442nobodyさん
2005/10/06(木) 08:37:38ID:???0443432
2005/10/06(木) 09:04:36ID:???>>438
>>441
レスありがとうございます。
無理ですか。
bbb〜dddが500KBくらいあるので、読み込まずに済ませられるならいいなと思ったんですが。
素直に読み込むか、これを機にDBの勉強をしてみようと思います。
ありがとうございました。
0446nobodyさん
2005/10/06(木) 10:49:15ID:NRrV93R6ひとまず、MPEGの仕様を読むんだな。話はそれからだ。
0447nobodyさん
2005/10/06(木) 10:57:49ID:RhL8bp3P動画の再生やコマドリにはコーデックを用いるのが通常。
コーデックはライブラリとして提供される。
頑張れ。
あとコマンドラインからコマを抜き出すツールがあればそれを呼び出すってのも手
0448nobodyさん
2005/10/06(木) 11:51:33ID:obhW270H$a = $_FILES["files"]["tmp_name"];
$fp = fopen($a,"r");
while($nakami = @fgetcsv($fp,1000))
{
$ID = $nakami[0];
〜中略〜
$ID48 = $nakami[47];
echo $ID;
〜中略〜
echo $ID48;
}
fclose ($fp);
?>
CSVをアップロードして、出力される48個の文字列に
mb_convert_kana処理(半角カナを全角にしたり)をしたいです。どうすればいいんでしょうか?
0449nobodyさん
2005/10/06(木) 12:04:09ID:???$ID = $nakami[0];
これは無駄というか有害な処理
配列のままの方が扱いやすい
答え
配列のままでarray_map()使う
0450nobodyさん
2005/10/06(木) 12:09:21ID:???while($nakami = @fgetcsv($fp,1000))
{
foreach($nakami as $value)
{
echo mb_convert_kana("K", $value);
}
}
fclose($fp);
0451448
2005/10/06(木) 12:17:39ID:obhW270H早速のレスありがとうございます!
今から実験してみます。もしうまく行かなかったらまた相談させてください。
よろしくお願いします。
0452448
2005/10/06(木) 12:59:37ID:obhW270H450さんのコードでCSVの中身を出力することができました。これすごいです。(自分のは120行くらいあったので...)
ただ、配列の中の特定の値だけをテキストエリアに出力したかったりするのですが、このwhileでforeachな感じでもそういうことってできますかね?
>449
449さんの仰る通り、リファレンスを読んでいたら、array_map()が使えそうな気がしたんですが、どうもうまく扱えませんでした。
CSVをアップしてmb_convert_kanaで成形して、出来れば各項バラバラに出力したいだけなのですが...。
0453nobodyさん
2005/10/06(木) 13:29:06ID:???array_mapを使うとこんな感じかな。今回の場合だと >>450 氏の方法と大して変わらんと思うが。
function kanaconv($value) {
return mb_convert_kana($value, "K");
}
while($nakami = @fgetcsv($fp,1000))
{
$nakami = array_map("kanaconv", $nakami);
foreach($conv as $value)
{
echo $value;
}
}
元々のやりたいことが特定の列だけを変換、出力したいのならこれで充分なはずだけど。
while($nakami = @fgetcsv($fp,1000))
{
$value = mb_convert_kana($nakami[列番号], "K");
echo "<TEXTAREA>$value</TEXTAREA>";
}
0454453
2005/10/06(木) 13:30:27ID:???ごめん間違えた。
foreach($conv as $value)
↓
foreach($nakami as $value)
0455nobodyさん
2005/10/06(木) 13:41:58ID:???$arr_key = array(1,3,5,7,9); // 取り出したい列の番号 0起算
$arr_data = array(1,2,3,4,5,6,7,8,9,10);
foreach($arr_key as $key){
echo $arr_data[$key]; //2,4,6,8,10が出力
}
0456448
2005/10/06(木) 14:28:31ID:obhW270Hすばらしいです!すごい..,。
>453さん
while($nakami = @fgetcsv($fp,1000))
{
$value = mb_convert_kana($nakami[列番号], "K");
echo "<TEXTAREA>$value</TEXTAREA>";
}
これ感動です。すごい手っ取り早い。
実際取り出したい値は1個ではないのですが、その場合は
455さんのパターンでいけばいいですかね。
本当に感謝します。ありがとうございました。
0457nobodyさん
2005/10/06(木) 14:33:30ID:???質問ではなく作成依頼といったほうが良いかもしれません。
話聞いてくれます?
0458nobodyさん
2005/10/06(木) 14:39:36ID:/yy7ybJNフォームにデータを打ち込んで、登録済みかチェックするボタンを押すと、指定のデータが存在するのか調べて
結果を返すといった内容のコードなのですが
一応、コードは丸写しして、test.phpという名前で保存してですね。
後は、MySQLにデータを入れれば準備OKなのかなというところなのですが、どのようにしてMySQLにデータを入れればいいのか
その初期の段階でつまずいていて困ってるんです。
参考書によると
MySQLのデータベース「testdb」のテーブル「t_userid」の項目「id」に問い合わせするようで。
テーブル「t_userid」を作成するSQLは、「登録チェック用テーブル作成SQL」(t_userid.sql)にあります。
とあるので、さっそくt_userid.sqlを付属CD-ROMからコピーしてデスクトップに持ってきて
とりあえず、test.phpと同じ場所に入れればいいのかな。と思いやってみたのですが
Parse error: parse error, unexpected T_VARIABLE in c:\program files\apache group\apache\htdocs\test.php on line 12
こんなエラーが出て。失敗と。
結局、t_userid.sqlの中身を参考にして、自分でMySQLにデータを入力してね。ということなのでしょうか。
一体どのようにt_userid.sqlを料理したらいいのという段階でわからなくて困っているのでどなたか方向でも教えていただけると助かるのですが。
ちなみにt_userid.sqlの中身はこんな感じです。下のスレ番号に書きます。
0459t_userid.sqlの中身です
2005/10/06(木) 14:40:37ID:/yy7ybJNCREATE TABLE t_userid
(
)
0460nobodyさん
2005/10/06(木) 14:42:01ID:???「Webブラウザ"上"で実行できる」なら
JavaアプレットかJavaScript、Jscript、VBScriptの話になると思う。
0461t_userid.sqlの中身です
2005/10/06(木) 14:43:34ID:/yy7ybJN↓が、ないようです。
/*テーブル作成*/
CREATE TABLE t_userid
(
id varchar{10} NOT NULL,
PRIMARY KEY (id)
);
/*データ追加*/
INSERT INTO t_userid(id) VALUES('aaa1111111');
INSERT INTO t_userid(id) VALUES('bbb2222222');
INSERT INTO t_userid(id) VALUES('ccc3333333');
0462nobodyさん
2005/10/06(木) 14:44:09ID:kpXXJeykとりあえず、PHPよりもMySQLについて勉強した方がよいかと思うのですが…。
0463nobodyさん
2005/10/06(木) 14:45:27ID:???>結局、t_userid.sqlの中身を参考にして、自分でMySQLにデータを入力してね。ということなのでしょうか
はい。
何かの本を参考にしているようですし、その本のどこかに解説もあると思いますよ。
0464nobodyさん
2005/10/06(木) 14:48:03ID:???PHPの範疇じゃないので、MySQL絡みを勉強すべし
http://dev.mysql.com/doc/mysql/ja/mysql.html
shell> mysql database < script.sql
無償有償のその他のクライアントツールでもできる。
0465458
2005/10/06(木) 14:53:28ID:/yy7ybJNアドバイスありがとうございます。
なんか良く見たらデータベースの章を見てください。とあるので、そこ読んだらできるかもしれません。
shell> mysql database < script.sql
こういったコマンドを打ってデータベースを作成するってことなんですかね。これがSQL文とかいうやつですかね。
なんか、データベースの章をちらっとみた感じでは。
コマンド打つ以外にも、phpMyAdminとかいう便利なツールもあるようで
それを使えば簡単に作成できるのかな。
ちょっとやってみます。
0468458
2005/10/06(木) 15:43:44ID:/yy7ybJNPHPの参考書をスムーズに終わらせたいところですが
MySQLと連動して使うなんてあたりまえに使う機能だから避けて通れませんもんね。
しょうがないので、MySQLの勉強します。今データベースの章読んでるところです。
>>467
MySQLをいじれるツールっていろいろあるんですね。
とにかく、基礎知識仕入れてからいろいろ試してみようと思います。
0470nobodyさん
2005/10/06(木) 15:56:08ID:???とりあえずMySQLにデータを作成しないとサンプルの実行はできないだろうから、
皆にレスをもらったことを参考に進めればいいんだろけど、最初のカキコの
エラーメッセージは多分MySQLとは関係ないと思われ。
>Parse error: parse error, unexpected T_VARIABLE in c:\program files\apache group\apache\htdocs\test.php on line 12
だから、12行目がPHPの文法としておかしいはず。入力ミスと思うからじっくりと見直してみそ。
ひょっとして本のサンプルが間違っている可能性もあるかもしれんが。。。
0473458
2005/10/06(木) 16:40:38ID:/yy7ybJNよく見直してみたら、PHPスクリプトの末に書く ; を入れ忘れてたことが判明しました。。
直してみましたが、また
Parse error: parse error, unexpected '/' in c:\program files\apache group\apache\htdocs\test.php on line 51
このようなエラーが、また、タイプミスっぽいのですが、ぱっと見た感じ、どこが悪いのかわからなかったので
後で直すか、どうしてもわからなかったらCD-ROMにサンプルコードが入ってるので
それをそのまま移すことによって解決しようかと思います。
データベースの章をさーっと読みましたが、どこにもMySQLにデータを作成する方法という肝心な知りたいことがかかれてませんでした。
しょうがないのでphpMyAdminを解説しているページを読んだら、このツールを使った作成方法が書いてあるので
これを読めばやっとMySQLにデータを作成することができると思われます。
phpMyAdminのフォルダをtest.phpが置かれているところと同じフォルダに入れて
今、config.inc.phpの設定のところに来てるのですが
config.inc.phpをメモ帳で開いてみたところ、おそらく改行部分と思われるところが↑になっており
改行のない一続きの文になっていて、なにがなにやらさっぱりわかりません。
これは文字コードの関係でしょうか。
↑を\nに置換しようかと思ったのですが、↑は↑とは違うようで、置換のフォームのところにコピペしようと思ったのですができませんでした。
どなたかこれを解決するにはどのようにすればいいと思われますでしょうか。
何か特別なことができるアプリで開いたほうがいいのか、文字コード変換するアプリで処理すればいいのか。果たして設定ファイルの
文字コードなんか勝手に変えちゃっていいものなのか。わからず困ってます。
0474nobodyさん
2005/10/06(木) 16:52:53ID:85el6NxV0475nobodyさん
2005/10/06(木) 16:54:55ID:???まずフリーのエディターをダウンロードする(少なくともUTF-8,EUC-JP対応)
phpエディタでも使ってみたら
ttp://phpspot.net/php/phpeditor.html
0476nobodyさん
2005/10/06(木) 17:09:17ID:/yy7ybJN>>474
51行数えてみてみたんですが、/になんの間違いもないように見えるんですよね。
51付近といえば
echo "<tr>";
echo "<td><input type = \"text\" name = \"id\"></td>;
echo "</tr>";
echo "<tr>";
echo "<td><input type = \"submit\" value = \"登録済みか調べる\" name = \"sub1\"></td>";
echo "</tr>";
こんな感じですが、どこが間違ってるのかさっぱりわかりませんでした。/もちゃんとつけるべきところについてるし。
まあ、どうしてもわからない場合は、CD-ROMから丸ごとコピーして動かしてみます。
それでも動かなかったら、本が間違ってるということで。
>>475
さっそくphpeditorダウンして使ってみました。
単純にファイルを開くから、config.inc.phpを開けばいいのかと思ったのですが、phpプロジェクトファイルではありません。
と言われてひらくことすらできず。
まあ、とりあえず、phpeditorのヘルプファイル読んでみます。
それでもできなければUTF-8,EUC-JP対応のエディタ探して開いてみます。
0477nobodyさん
2005/10/06(木) 17:15:55ID:???echo "<td><input type = \"text\" name = \"id\"></td>";
0478nobodyさん
2005/10/06(木) 17:17:39ID:???2行目の末尾の " が漏れてるのが原因だね。
紹介されてた phpeditor など構文チェックしてくれるエディタを使用すると、
この類のエラーはすぐ判る。
他にも構文チェックしてくれるエディタはあるんで、色々と触ってみて
自分が使いやすいと思ったものをチョイスすればいい。
あせらずにゆっくりと。。。
0480458
2005/10/06(木) 18:18:44ID:/yy7ybJNアドバイスありがとうございます。
間違いはないんだけどなあと思ってたのですが、やっぱりタイプミスだったんですね。
よく見たら、片方はちゃんと"ついてるから、よーく見比べたら発見できそうでしたね。
ただ、こんなミスもすぐに発見できるようなエディタ探したほうが効率いいに決まってるので、吟味して選ぼうと思います。
C#とか普通のアプリ作ってても、ミスをすぐ指摘してくれる統合開発環境とかあるのとないのじゃ生産性にえらい差がでますもんね。
phpeditorってそれだけじゃなくてスタンドアロン版とかあるんですね。
そっちダウンしてやってみます。
0481458
2005/10/06(木) 18:29:50ID:/yy7ybJNスタンドアロン版ダウンしまして、さっそく、config.inc.phpを開いたところ、無事改行されて表示されました。
スタンドアロン版は、単純にメモ帳みたいに開くことができるんですね。
これでphpのコードも書いて試用してみます。
どうもありがとうございました。
さっそく、設定変更します。
0482nobodyさん
2005/10/06(木) 18:37:29ID:???HTMLタグは属性の指定に "" を使用するのに、
スクリプト内で文字列を囲むのにも "" を使ってるのが、ミスの一つの要因だと思われ
\n入れたり、変数をパースさせたいんじゃなければ、
こういう時は ' ' を使うのが吉
文字列無いの " をエスケープする手間も省けて一石二鳥だよ
0483458
2005/10/06(木) 21:16:00ID:/yy7ybJNさっそく\"部分を'に変えました。
いちいち\入れるの面倒だなと思ってたので助かります。
これでケアレスミスも防げそうです。
どうもありがとう。
0485458
2005/10/06(木) 21:58:25ID:/yy7ybJNということは、つまり
echo "<td><input type = \"text\" name = \"id\"></td>"; を
echo '<td><input type = "text" name = "id"></td>';
このように書けるってことですね。これでも\"とか書かなくて済むから助かりますね。
どうもたびたびありがとうございます。
0486nobodyさん
2005/10/06(木) 22:02:12ID:???マイシークェル勉強して2ちゃんねる型掲示板つくろっと。
0487nobodyさん
2005/10/06(木) 23:25:40ID:???0488nobodyさん
2005/10/07(金) 00:04:23ID:???0489nobodyさん
2005/10/07(金) 00:05:16ID:???0490nobodyさん
2005/10/07(金) 00:13:54ID:???mysqlの事なのかw
0491nobodyさん
2005/10/07(金) 01:04:04ID:???0492軟式PHP
2005/10/07(金) 01:17:26ID:???0493nobodyさん
2005/10/07(金) 01:31:49ID:???but we don't mind if you pronounce it as “my sequel” or in some other localized way.
まあ、俺も気にしないよ。
0494nobodyさん
2005/10/07(金) 04:15:20ID:???発音されていた. そのためSQLと書くようになった現在でも, 米国ではシークェルと
読まれるのが一般的である.
だそうな。
0495nobodyさん
2005/10/07(金) 04:27:27ID:???0496nobodyさん
2005/10/07(金) 06:13:07ID:???0497nobodyさん
2005/10/07(金) 07:03:53ID:???0498nobodyさん
2005/10/07(金) 08:33:28ID:???0499nobodyさん
2005/10/07(金) 09:05:47ID:???mysplとphpを使った簡単なクイズのサイトを作りたいと考えております
現在、問題ID、問題文、5択なので選択肢5つ、解答とフィールドを作っており
htmlのサイト上でそれらを呼び出し ラジオボランで正確な答えをチェックして
当たりかどうか判別してやる という所まではいけたのですが困った事が起きてしまいました。
現在では1つのページに問題が1問しか表示してないのですが、
一度に何問も表示させ判定したいと考えております。
問題だけをを沢山表示させることは可能なんですが、それぞれの問題に答えをチェックする
ラジオボタンの表示にすごく困っております。
問題文は追加できるようになっており、現在存在する最後のID番号から+1した所に
追加されます。
すごく分かりにくい説明かもしれませんが どなたか分かる方おられましたら
よろしくお願いいたします。
0500nobodyさん
2005/10/07(金) 09:14:06ID:???phpの問題じゃなくてhtmlの問題な
0501nobodyさん
2005/10/07(金) 09:29:10ID:???<?php
if($a = 1){
echo aaaa;
if($b = 1){
include("b.php");
exit;
}
}
else{
include("b.php");
}
b.php
<?php
header("Location:c.php");
このようなスクリプトでa=1のときにはheader aleady sentとなってしまうので
headerを既に送信済みか確認したいのですが、可能でしょうか?
0502nobodyさん
2005/10/07(金) 09:29:22ID:???0504nobodyさん
2005/10/07(金) 09:37:09ID:???お望みの挙動かどうか知らんが、こうすればエラーは出なくなる。
a.php
<?php
if($a = 1){
if($b = 1){
include("b.php");
exit;
}
echo aaaa;
}
else{
include("b.php");
}
0505501
2005/10/07(金) 09:40:05ID:???aaaaを既に表示したか確認したいのです。
すでに表示してる場合はLocationを使わないようb.phpで処理したいです。
Locationを使えるか、使えないかの判別でもいいです。なにか方法はあるでしょうか?
0506499
2005/10/07(金) 10:14:46ID:???返信ありがとうございます
こちらの説明不足で意味を取り違えてしまったようで本当に申し訳ないです
先ほどの質問は忘れてもらって、新たに質問させていただきます。
PHPの中でラジオボタンやラジオボタンの様な答えをチェックでき
その値を違うPHPに渡すという物を設置することは可能でしょうか?
0507nobodyさん
2005/10/07(金) 10:20:57ID:ffDmuEnlfor($i=0;$i<5;$i++){
for($j=0;$j<5;$j++){
$data[$i][$j] = "1";
}
}
とやるしか方法はないのでしょうか?
もっとスマートな方法があったら教えてください。
0508nobodyさん
2005/10/07(金) 10:25:03ID:???http://www.hajimeteno.ne.jp/html32/14/08.html
↑参考になりません?
name=を問題のIDにするとかで区別できると思いますが。
0513nobodyさん
2005/10/07(金) 10:55:53ID:???回答ありがとうございます。
array_fill()のネストでも結局同じくらいの行数になりますし、
厨な私にはforで値を入れていくほうが読みやすいので
結局これでいこうと思っています。
どうもでした。
0514501
2005/10/07(金) 11:08:48ID:???出力バッファを有効にすればエラーは出ないのですが、headerの前に出力があったのか調べる事はできませんか?
0515nobodyさん
2005/10/07(金) 11:24:00ID:???0516506
2005/10/07(金) 11:36:12ID:???URLまでご用意していただき ありがとうございます
しかしそのサイトではPHPの中ではなくHTML文の中にフォームを作って値を渡しているので
参考にはなりませんでした。 せっかく答えていただいたのに申しわけないです。
ご説明がまだまだ不十分でしたね・・・ 今度こそ分かりやすいはず
<?php ?>の中のPHP内部にラジオボタンやラジオボタンの様な答えをチェックでき
その値を違うPHPに渡すという物を設置することは可能でしょうか?
0517nobodyさん
2005/10/07(金) 11:42:27ID:???普通はheader送るタイミングは自分で制御するもんだからなぁ・・・
>>516
相変わらずわけわからん。
「phpの中にラジオボタンの様な答えをチェック」という辺りを
もうちょっとわかりやすく書けないか?
0518nobodyさん
2005/10/07(金) 11:49:57ID:???・PHPはサーバー側で動作
・ラジオボタンの表示、選択はクライアント側で動作
が理解できてるのかな。。。という疑問があるんだけど。
「ラジオボタンの様な答えをチェックでき」のチェック操作を行うのは誰?
人間が行うのなら、上記が理解できていないと思う。
PHPで行うのなら header('Location:xxx.php?checkbox=1');等でいいと思う。
0519516
2005/10/07(金) 11:54:30ID:???う〜ん なかなか言葉で説明するのが難しいですね・・・
>>「phpの中にラジオボタンの様な答えをチェック」という辺りをもうちょっとわかりやすく書けないか?
ラジオボタンです 要は<?php ?>の中にラジオボタンを作成したいのです
現在fromを利用してphpの外で実行した場合は成功しております
while文や変数を利用したラジオボタンを作りたいので、PHPの中に入れて
やりたいのですが 可能でしょうか?
0520501
2005/10/07(金) 11:56:49ID:???出力バッファを使うことにしました。
>>516
508です。
PHPとMYSQLを使って作りたいとのことですが、PHPとMYSQL利用の経験はお持ちでしょうか?
DBから問題を取得→表示
ユーザーからの解答があったら
問題の答案を取得→DBから解答取得→回答正誤判定→結果表示
こんな流れになるのではないかと思いますが、PHPとMYSQLをこれから勉強するなら
HTMLとPHPとMYSQLを使ってデータの出し入れの勉強してみるとよくわかると思いますよ。
0521518
2005/10/07(金) 11:57:42ID:???<?php
echo '<INPUT TYPE="radio" NAME="data" VALUE="1">テスト1';
echo '<INPUT TYPE="radio" NAME="data" VALUE="2">テスト2';
?>
0522501
2005/10/07(金) 11:59:35ID:???<?php
echo '<form action="" method="post">
選択肢1<input type="radio" name="Q1" value="aa">
</form>';
こういうことですか?
0524nobodyさん
2005/10/07(金) 12:00:37ID:???ラジオボタンを表示してcheck.phpに値を送られる
<?php
echo '<form action="check.php" method="post">';
for ($i = 0; $i < 5; $i++) {
echo '<input type="radio" name="q[0]" value="'.$i.'">'.$i;
}
echo '<input type="submit">';
echo '</form>';
?>
0525nobodyさん
2005/10/07(金) 12:11:02ID:???0526nobodyさん
2005/10/07(金) 12:36:14ID:???0527516
2005/10/07(金) 12:46:33ID:???>>521 >>522 >>524さんの言われておるようにやってみたところ
無事に出来ました こちらもprintなどでラジオボタンの所を
くくってやってみていたのですが 出来ませんでした。
シングルでくくらずにダブルコートでくくっておりました・・・
printじゃ出来ないと思って質問してみたのですがptirntで出来たのですね
みなさんどうもありがとうございました
0528nobodyさん
2005/10/07(金) 12:47:15ID:???0529nobodyさん
2005/10/07(金) 12:50:35ID:???0530nobodyさん
2005/10/07(金) 13:51:42ID:DMyUsnXKこれは結局、分断しなければ
echo '<form action = "next.php" method = "post">';
のように書かなければいけないところを、<?php ?>を分断することによって普通に、<form action = "next.php" method = "post">
のように書けるという解釈であってますか。
<body>
<?php
$text1 = @$_POST["text1"];
if(strlen($text1) < 1 or strlen($text1) > 10)
{
?>
<form action = "next.php" method = "post">
<table>
<tr><td><font color = "red">1〜10バイトでお願いします</font><br>
お名前:<input type = "text" name = "text1" value = "<?=$text1?>"</td>
<td><input type = "submit" value = "送信"></td>
</tr>
</table>
</form>
<?php
}
else
{
echo "<p>正しく入力されました:".$text1;
}
?>
</body>
0531nobodyさん
2005/10/07(金) 14:03:31ID:3gINL/Eiそっちの方が負荷がかからないらしいけど実際は俺はシラン。
0532530
2005/10/07(金) 14:07:58ID:DMyUsnXK回答ありがとうございます。
やっぱり、いろんな書き方ができる中のひとつだったんですね。
個人的にはこの方が、HTMLタグそのまんま書き込めるからわかりやすいですね。
PHPスクリプトからHTMLタグを吐き出す場合
echo 使って ""で囲んだり、中の"を\"にしたり、''で囲んだりするのが面倒だなと思ってたので
こんな方法があったなんてうれしいな。
更に、本当に負荷がかからないとすれば、この書き方推奨ですね。
0533nobodyさん
2005/10/07(金) 14:11:29ID:???PHPはもともとhtmlの中に<?php ?>というタグでスクリプトを埋め込めるというふうに作られた
<html>
<body>
<?php 処理 ?>
html タグ
<?php 処理 ?>
html タグ
<?php 処理 ?>
</body>
</html>
0534nobodyさん
2005/10/07(金) 14:14:13ID:???一応、こういう方法もあるということで(負荷はしらん)
if(strlen($text1) < 1 or strlen($text1) > 10)
{
echo <<<EOD
<form action = "next.php" method = "post">
<table>
<tr><td><font color = "red">1〜10バイトでお願いします</font><br>
お名前:<input type = "text" name = "text1" value = "{$text1}" ></td>
<td><input type = "submit" value = "送信"></td>
</tr>
</table>
</form>
EOD;
}
else
{
echo "<p>正しく入力されました:".$x;
}
0535534
2005/10/07(金) 14:15:57ID:???いや〜ん。Ctrl+Xを押したつもりが・・・
echo "<p>正しく入力されました:".$x;
は
echo "<p>正しく入力されました:".$text1;
ね。
0536530
2005/10/07(金) 14:25:08ID:DMyUsnXK>>533
そうか。こんなに柔軟に<?php ?>とHTMLタグを組み合わせられるんですね。
今まで<?php ?>とHTMLタグが、<body>タグの間できれいに分離してるコードしか見たことなかったので
<?php ?>とHTMLタグは、<body>タグの中で分離して書くもんだと思い込んでたものでびっくりしたわけです。
>>534
こんな書き方もあるのか、同じ処理でもいろんな書き方があるもんですね。
こっちの方が、書き方がスマートな感じしますね。
これもPHPスクリプトでHTMLタグ出力するのに、""で囲んだりもいらずにそのままかけますね。
0537nobodyさん
2005/10/07(金) 14:25:16ID:/ul7fY5mPHPを勉強しようと思い、本を買ってきて勉強しているのですが最初の時点で躓いています。
本にあるとおりに、Apache1.3.27とPHP4.2.2をインストールしてハローPHPと表示させようと思ったのですが
ブラウザで見たときに日本語が文字化けしてしまいます。
ブラウザのエンコードで自動選択にすれば問題なく表示はされるのですが、以前表示させたときには文字化けなんてしませんでした。
これは何が悪いのでしょうか?iniファイルの書き換えミスか、そもそもブラウザ側が悪いのでしょうか?
0538nobodyさん
2005/10/07(金) 14:41:49ID:???せっかくプログラミングの世界に入ってきたのですから、「文字化け」という曖昧な説明ではなく、
「〜の文字エンコーディングで出力するつもりが、ブラウザによって〜の文字エンコーディングと解釈されてしまいます。」
のような説明をするようにしましょう。
ブラウザは次の3点に注目して表示に使う文字エンコーディグを決定します。
・HTTPヘッダ Content-Type: text/html; charset=shift_jis
・HTMLヘッダ <meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
・html文章内の一部を使って判定
これらの指定が矛盾していた場合等で表示に使う文字エンコーディングが実際のものとちがっていれば、
いわゆる「文字化け」を起こす原因となります。
0539nobodyさん
2005/10/07(金) 15:00:14ID:DMyUsnXK今は、自分のPCでPHPの動く環境を作ってるから、php.iniをいじって設定を変えたりできるけど。
レンタルサーバなんかに置かせてもらう場合、そのサーバのphp.iniっていじることはできないんですよね。
1サーバにつき、1php.iniだと思うのですが合ってるでしょうか。
なので、PHPに、get_magic_quotes_gpc()みたいな、magec_quotes_gpcがONかOFFか調べる関数とかがあるんですよね。
ということはレンタルサーバに自作のPHPで作ったアップローダを置くとすると
アップできるファイルサイズの上限は、そのレンタルサーバのphp.iniの設定に依存するわけですか。
0540nobodyさん
2005/10/07(金) 15:02:48ID:???AddDefaultCharset でも設定してあるんじゃねーの?
つか、PHPの質問じゃねーな。
ほれ、
Apache〜嗜みとして〜 Part3
ttp://pc8.2ch.net/test/read.cgi/php/1043851302/
0544nobodyさん
2005/10/07(金) 15:54:56ID:DMyUsnXKPHPマニュアルの目次見ても、型、変数、定数、演算子、制御構造、関数、クラスとオブジェクトとか、他言語を知ってたら見なくても
いいような内容ばっかりに見えたので、これ1から見ながらやってたら遠回りかなと思っていきなりサンプルコード集買ったんですよね。
PHPを実行できる環境を整える方法から書かれてる書籍の方が便利だし。
PHP独特の書き方とかわかれば、後は他言語で身につけた基礎知識がカバーするだろうと思って。
でもこの際なので知識補完といった意味で目を通しとこうかなとは思います。
まあ、書き方が有料の書籍と違ってわかりにくいから避けてたのですが、書籍で使える知識を身につけてから
PHPマニュアルも補完的に目を通すという読み方にするとPHPマニュアルに書かれた内容もわかりやすいかなとは思います。
0545nobodyさん
2005/10/07(金) 16:18:11ID:???マニュアルのini_set()を見ればわかるけど.htaccessやスクリプト内で変更できるものもある
upload_max_filesizeは変更できないがな
0546nobodyさん
2005/10/07(金) 16:32:44ID:???#!/usr/bin/perl
use LWP 5.7X;
use Encode;
use URI;
my $browser = LWP::UserAgent->new;
my $url = URI->new('http://www.hogehoge.com/cgi-bin/hogehoge.cgi');
$url->query_form(
foo => 'bar' ,
);
my $response = $browser->get($url );
die $url , " Error!", $response->status_line unless $response->is_success;
print $response->content;
0547546
2005/10/07(金) 16:35:32ID:???use Encode; の行は削除してください。
0548539
2005/10/07(金) 16:37:24ID:DMyUsnXKスクリプトから設定ファイルをいじれる関数があるんですね。
でも全部いじれるわけじゃないのですね。
マニュアルみたら、php.iniの設定の一覧が出て、変更の可否の項目を見ればいいのだと思うのですが
PHPマニュアルも便利ですね。
調べてみたら
PHP_INI_ALL、PHP_INI_PERDIRだと、.htaccessで変更可能らしい。
ちなみに
http://www.shigeweb.jp/php/project_p/?section=setup&page=htaccess に書いてる。
upload_max_filesizeを見るとPHP_INI_PERDIRになってるので、.htaccessで設定変更できることになりますよね。
でも変更できないということは、スクリプトから変更できないけど、.htaccessだったらできるということかな。
設定できるできないみたいにはっきりしてるのかと思ったら、この設定はこの方法でできるけど、この設定はこの方法では変更できない
みたいにいろいろあってややこしいですね。
どうも解説ありがとうございました。
0549nobodyさん
2005/10/07(金) 16:41:18ID:???<?php
$url = 'http://www.hogehoge.com/cgi-bin/hogehoge.cgi';
$query = 'foo=bar';
$response = @file_get_contents($url.'?'.$query);
if (!$response) die($url."Error");
echo $response;
?>
0551545
2005/10/07(金) 16:52:49ID:???俺の使ってるchmファイルではPHP_INI_SYSTEMになってる(´・ω・`)
新しいのをダウンロードしなおした
0552539
2005/10/07(金) 16:59:12ID:???バージョンによっても変わっていくわけですね。非常にややこしいけどしょうがないか。
自分の持ってるマニュアルのバージョンも要チェックだし、サイトでも一覧のせてるところあるけどそういうとこでも
バージョン古かったら意味なしですね。
更に、レンタルサーバにおく場合は、そのレンタルサーバのPHPのバージョンもチェックすべきなんだろうな。
まあ一手間、調べればいいんだもんね。気をつけてチェックしましょうということなんですね。
0553nobodyさん
2005/10/07(金) 19:25:05ID:???ログファイルの行数を知りたいんですが、以下の 2 つのうち、どっちの方が優れてるんでしょう?
1:
$line = 0;
$fp = fopen($log_file, "r");
while($temp = fgets($fp)) $line++;
fclose($fp);
2:
$line = shell_exec("wc -l $log_file");
$line = preg_replace("/^([\d]+).+$/", "$1", $line);
0555nobodyさん
2005/10/07(金) 19:31:04ID:???言葉が足りませんでしたね。
このプログラムはユーザーの入力値は全く関与しないんです。
$log_file はプログラム内部で作ってる変数です。
0556553
2005/10/07(金) 19:34:33ID:???ログファイルはは 20 個あり、for 文で回して、行数だけ取得するようにしたいのです。
$data = array();
for($i=0; $i<20; $i++) {
// ファイル名は 0.log のようにしてます
// 行数取得して $line に格納
$data[$i] = $line;
}
こういう感じで作ってます。
0557nobodyさん
2005/10/07(金) 19:53:54ID:???0558nobodyさん
2005/10/07(金) 20:15:04ID:dcjESLNVとやって、PNGの画像をBMPに変換したいのですが
Warning: Wrong parameter count for png2wbmp()
とエラーが出てしまいます。
png2wbmp("test.png","test.bmp",100,100);
とパラメータを付け足しても同様のエラーが出てしまいます。
なにがいけないのでしょうか?
0559553
2005/10/07(金) 20:18:23ID:???行数を確認するためだけにファイルをオープンするのは、他のプログラムでの書き込みに影響を与えそうですので、
2 の方でやってみようと思います。
ありがとうございました。
0560nobodyさん
2005/10/07(金) 20:28:58ID:???int png2wbmp ( string pngname, string wbmpname, int d_height, int d_width, int threshold)
末尾のパラメータ threshold が足りないようだが?
0562nobodyさん
2005/10/07(金) 20:41:22ID:???count($a);
じゃだめかな。
0563553
2005/10/07(金) 20:43:51ID:???やっぱりそうですか・・・
Windows の方で作ってますので動作確認をするために現在は 1 の方法でやってました。
サーバーにアップする時点で 2 の方に変えようと思ってたんですが。
1 の方でやっていきます。
ありがとうございました。
0564nobodyさん
2005/10/07(金) 20:45:42ID:???ログファイル自体は重くないのでそれでも大丈夫だとは思いますが。
file をするとログファイルを全部読み込んでしまうので、どうかと思ったんです。
また、ログファイルの内容が必要なわけでもありませんので。
ですので、fgets で値を捨てながら行数をカウントしようと思ったんです。
どうもありがとうございます。
0565nobodyさん
2005/10/07(金) 21:35:54ID:npAyk4uf一括で指定してアップロードできないのでしょうか?
色々と調べたのですが、一ファイルずつ選択する方法しか見つ
かりませんでした。
誰か私に知恵を貸して下さい。お願いします
0566nobodyさん
2005/10/07(金) 21:43:55ID:???考えよう。
鯖からキミのパソコンの中身が見えないと、ディレクトリ指定はできないでしょ。
WebDAVとか使うなら分からんでもない。
0567nobodyさん
2005/10/07(金) 21:47:55ID:???逆にキミのパソコンの中身が見える(セキュリティ上の意味でも)状況なら可能になる。
鯖側のPHPの話ではなくなるけど、ブラウザ上で動くActiveXを使ったものとかあるね。
0568nobodyさん
2005/10/07(金) 21:48:50ID:???hogehoge=4441
のような形式の文字列があったとして数字の部分だけを正規表現で置き換える場合にはどのようにすれば良いでしょうか
アドバイスお願いします
0569nobodyさん
2005/10/07(金) 22:19:52ID:???^(.+=)([\d]+)$ でマッチするんじゃ?
$str = "hogehoge=1921";
$str = preg_replace("/^(.+=)([\d]+)$/", "$1"."1111", $str);
って感じかなぁ。
0570nobodyさん
2005/10/07(金) 22:26:02ID:???丸括弧で保存する意味が無いよ
$str = preg_replace("/\d+$/", "1111", $str);
0571nobodyさん
2005/10/07(金) 23:09:50ID:???いや、終端符すらイランだろう。
$str = preg_replace("/\d+/", "1111", $str);
0572nobodyさん
2005/10/07(金) 23:24:01ID:???画像ファイル等を保存する場合はどのような方法がありますか?
<?php
$files = file_get_contents("http://www.yahoo.co.jp/");
$logfile ="sample.html";
$fp = fopen("$logfile","w");
fputs($fp, $files);
fclose($fp);
?>
0573nobodyさん
2005/10/07(金) 23:33:27ID:???0574nobodyさん
2005/10/07(金) 23:52:00ID:???この掲示板に書き込みをすると、
「能」「ソ」「表」などの特定の文字の後に\(エンマーク)が追加されてしまうようです。
これは何が原因なのでしょうか?
0575nobodyさん
2005/10/08(土) 00:02:52ID:???すぐに思いつくのは
php.iniの設定がおかしい
データベースを使用しているのならデータ書き込み時のエスケープ処理がおかしい
ぐらい。
おまいさんが作ったスクリプトなら環境を書け。
そうでないのならそのサイトの管理者に報告せよ。
0576575
2005/10/08(土) 00:06:16ID:???"php 表 文字化け" でググってみれば何か参考になるやもしれぬ。
0577nobodyさん
2005/10/08(土) 00:53:46ID:/UyAJWR0このスレに書いてあるけど、ShiftJISとphpは相性悪いらしいよ。
レス番189くらいからかな。
マイシークェルで掲示板。
0578nobodyさん
2005/10/08(土) 00:54:47ID:???ヒアドキュメントは漏れはすごいいっぱい使ってる。
$hoge =<<<hage
いろいろ
hage;
って感じで。
これだけ別ファイルにして置けば、phpわかんないけどhtmlは解るって顧客が更新できるから。
0579nobodyさん
2005/10/08(土) 01:14:27ID:???DBにSybaseを利用しようとして、PHPのコンパイルオプションに
--with-sybaseを入れると、失敗してしまいます。
(--with-sybaseオプションを外すと、PHPのコンパイルに成功します)
PHPでSybaseを利用する方法をご存知の方は、
是非教えていただけないでしょうか。
なお、詳細な情報(環境など)を以下に記載します。
・OS
RHEL3
・PHP
4.3.11
・DB
Sybase11.0.3
・Apache
1.3.33
・--with-sybase追加時に、make時に発生するエラーメッセージ
/opt/sybase/lib/libsybdb.so: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead
/opt/sybase/lib/libsybdb.so: `sys_nerr' is deprecated; use `strerror' or `strerror_r' instead
/opt/sybase/lib/libsybdb.so: undefined reference to `__ctype_b'
/opt/sybase/lib/libsybdb.so: undefined reference to `__ctype_tolower'
collect2: ld returned 1 exit status
gmake: *** [sapi/cli/php] エラー 1
0582nobodyさん
2005/10/08(土) 03:30:52ID:CIqOzoxdPHPを使おうかSSIを使おうか迷っています。
サーバーに不可がかからず表示が早いのはどちらが早いんでしょうか?
0583nobodyさん
2005/10/08(土) 03:51:34ID:???鯖のことを考えるなら本当にCGIが必要かどうかから検討すべき。
そうでないなら好きなほうで。
0584582
2005/10/08(土) 04:23:18ID:CIqOzoxd動的なメニューです。
鯖への負荷や表示の速度は
PHP、ssiどちらをつかっても変わらないってことですか?
0585nobodyさん
2005/10/08(土) 04:31:24ID:???中身が作りこまれてないのにどっちがなんて比較できないだろ?
まあ、テキストをincludeさせるだけなら、SSIの方が軽い。
0586582
2005/10/08(土) 04:45:21ID:CIqOzoxdありがとうございます、SSIでやってみます
0588nobodyさん
2005/10/08(土) 09:13:52ID:???セキュリティの為、
GETで取得した値が3桁の数字以外だったらエラーという処理を行いたいのですが、
if(!(ereg("([0-9]{3})", $_GET['code']))){echo "不正な値です"; exit;};
上記だと3桁以上の数字にもマッチしてしまいます。
どうすれば3桁の数字のみマッチする様になるのでしょうか?
0589nobodyさん
2005/10/08(土) 09:25:49ID:???たとえばA.php(フォーム)からB.phpにPOSTして結果表示するとして、
B.phpではリロードをされたくない場合(リロードされたら処理を中止してエラーに)。
いろいろ考えてみたけど、かなり複雑にしないとリロード対策できないみたいね…
リロード対策くらい標準関数またはライブラリで用意してほしいですね。
0590nobodyさん
2005/10/08(土) 09:37:30ID:???if(isset($_GET['code'])
&& is_numeric($_GET['code'])
&& strlen($_GET['code']) == 3){
echo "適正な値かも";
}else{
echo "不正な値です";
exit;
}
0592nobodyさん
2005/10/08(土) 09:45:13ID:???えっっ、セッションでどのように?
A.phpでセッション変数に値を格納しておいてB.phpでリロードしても、
ずっとセッション変数は格納されたままだからリロード判定には使えないのでは。。。
0594nobodyさん
2005/10/08(土) 11:05:35ID:???>>590が正しいっちゃ正しいが、めっちゃ丁寧。
簡単に対応させたかったら、その正規表現を"^[0-9]{3}$"にするといいよ。
「^」が最初、「$」が最後って意味。今のまんまだと、3桁の数字が含まれてたら〜、になってるはず。
完全一致にこれはよく使うから覚えとくとよし。
0595nobodyさん
2005/10/08(土) 11:12:32ID:???0596nobodyさん
2005/10/08(土) 11:16:51ID:???0597nobodyさん
2005/10/08(土) 12:47:10ID:???Linuxでsendmailを使ってメール送信をするプログラムなのですが、ちゃんと動かず、
どうも拡張モジュールがうまくいってないようだと思い、再確認したんですが
コンパイル条件にも--enable-mbstringをつけてるし、php.iniのextension_dirも
/usr/local/lib/php/extを指定しています。おかしいなと思って確認すると、
phpフォルダ下にextフォルダがありません。これってどういうことでしょうか?インストールがうまくいってなかったってことですかね?
どなたかアドバイスお願いします。
環境はFedoraCore4,php5.0.4です。
0599nobodyさん
2005/10/08(土) 13:07:09ID:???色んな可能性が考えられる。
phpinfoで確認して全部正しいか確認しる。
extension_dirはサーバーによって違ったりするから自分で確認して再セット。
あとはブラウザから呼び出して実行とかしてるんなら、php.ini弄ったらapache再起動な。
0600nobodyさん
2005/10/08(土) 13:19:35ID:???これってどういうこともなにも、そのまんま、無いってことだろ
cd /usr/local/lib/php/ext
が通るか?
0601588
2005/10/08(土) 13:30:39ID:???>>594
>>598
ありがとうございました。
590氏がソースまで記述してくれたので、
これを手本にやってみます。
完全一致の件も参考になりました。
0602nobodyさん
2005/10/08(土) 13:39:56ID:???正規表現の話なら
^[0-9]{3}$
とか
0603nobodyさん
2005/10/08(土) 13:57:40ID:???PHPのconfigure時に--enable-mbstringを付けてビルドしたのなら、mbstring関数は *静的* に組み込まれる。
なので、mbstringに関しては、extフォルダやmbstring.soがどうこうは関係ない。
<?php phpinfo(); ?>を実行して、Multibyte Supportがenabledになっているかどうかを確認してみたら?
ただ、sendmailが動作しない→拡張モジュールがうまくいっていない、という判断は正しいのかな。
sendmailが動かないというスクリプト、エラーメッセージ等を晒した方が早いんじゃないかな。
0606nobodyさん
2005/10/08(土) 14:44:19ID:???おまいら親切だな。
質問があるんだが、もう少しROMしてFAQ調べて、
切り分けて、環境書いて聞くことにする。
良スレだ。
0607nobodyさん
2005/10/08(土) 14:50:36ID:51SvXaJnPHPのプログラムを作りたいと思っているのですが、お教えいただきたいことがございます。
作りたいと思っているのは、HP上に申し込みフォームのようなものを作成し、送信していただいたものを
メールで受け取るというものです。
そこでネット上でその一連の処理のサンプルプログラムをもらったのですがフォームの項目などを
自分が望むように作り変えるには、どの部分を変更すればいのでしょうか?
そのサンプルをアップローダーにあげていますのでどなたかご教授願えませんでしょうか?
サンプルです↓
indexと完了画面と自作のライブラリが入っています。(この自作のライブラリの意味がまったくわかっていないのですが
何もいじらなくても大丈夫でしょうか?)
http://up.spawn.jp/file/up1899.lzh
私自身、付け焼刃の知識なのですが、indexの上のほうの入力チェックのところと、メール送信処理の部分と最後のフォーム
の項目を作るところを変更すればよいと思うのですが違うのでしょうか?
フォームの項目を追加したりするのは大丈夫だったのですが、最初の方の入力チェックのところを変更するとブラウザで
表示させても真っ白な画面になってしまいました。なぜでしょうか?
上記のサンプルに自分自身でフリガナの項目を追加したものも上げますのでどこが間違っているかご指摘願えませんでしょうか?
サンプルです↓(なぜか真っ白になってしまい、表示されない)
http://up.spawn.jp/file/up1900.lzh
phpファイルがupできないためlzhファイルに圧縮していることをお許しください。
長文失礼いたしました。
0608nobodyさん
2005/10/08(土) 15:00:20ID:???up1900.lzh に含まれる index.php だけど、10行目の先頭が全角スペースになってるね。
if ( $_REQUEST[ "VALUE_KANA" ] == "" ) {
~~
半角スペースにすれば大丈夫だと思うよ。
php.ini の display_errors を On に設定すれば、真っ白ページではなく
ブラウザにエラーメッセージを表示してくれるので設定しておくといい。
0609nobodyさん
2005/10/08(土) 15:31:05ID:???0610608
2005/10/08(土) 15:41:22ID:???up1899.lzh の方も見てみた。おまいさんが書いた、
indexの上のほうの入力チェックのところと、メール送信処理の部分と最後のフォームの項目を作るところを変更
で大丈夫。index.php 以外は触らなくてもいい。
ただ、元のスクリプト自体が結構いいかげんなので >>608 で書いた display_errors = On にすると
警告メッセージが一杯表示されてしまうので、
display_errors = On
error_reporting = E_ALL & ~E_NOTICE
の両方を設定するか、元のスクリプトを修正(こちらの対応が望ましい)した方がいい。
他にも mb_xxx の文字コード指定等、修正した方がいいところはあるけど、キリがないのでこの辺で。。。
>>609
暇だったもので。
0611597
2005/10/08(土) 16:50:54ID:wzJ6Bsx7>>599>>603
phpinfoの一部をコピペします。
Configure Command './configure' '--with-apxs2=/usr/local/apache2/bin/apxs' '--with-gd' '--with-zlib' '--enable-mbstring' '--enable-trans-sid' '--enable-soap'
mbstring
Multibyte Support enabled
Multibyte string engine libmbfl
HTTP input encoding translation enabled
Multibyte (japanese) regex support enabled
Multibyte regex (oniguruma) version 3.7.0
エラーメッセージらしきもの
Warning: mb_send_mail() [function.mb-send-mail]: Missing To: field in /usr/local/apache2/htdocs/php10/day04-1/sendmail.php on line 9
>>600 通りません。phpの下にextがありません。
0612597
2005/10/08(土) 16:51:49ID:wzJ6Bsx7<?php
$header_info="From: ".$_POST['_from']."\nContent-Type: text/plain;charset=ISO-2022-JP\nX-Mailer: PHP/".phpversion();
$body="■■".$_POST['_subject']."■■\n\n";
foreach($_POST as $key=>$value){
if(!strstr($key,"_")){
$body.="[".$key."]".$value."\r\n";
}
}
mb_send_mail($_POST['_email'],$_POST['_subject'],$body,$header_info);
header("Location: ".$_POST['_result']);
?>
ちなみにapacheを立ててやってます。sendmailのパスは/usr/sbin/sendmail -t -i -f〇○○@〇○○.co.jp (自分のアドレス)
どうでしょうか???
0613nobodyさん
2005/10/08(土) 16:53:44ID:???そんな関数はないのでしょうか?
0614597
2005/10/08(土) 16:57:05ID:???ちなみにwindowsでは同じプログラムでメールが送れました。
0616603
2005/10/08(土) 17:05:13ID:???エラーメッセージが Missing To: field なので
mb_send_mail($_POST['_email'],$_POST['_subject'],$body,$header_info);
行で参照している $_POST['_email'] の中身が空なんだと思う。
sendmail.php を呼び出している側を見直してみたら?
とりあえずメールが送信できるかどうかのテストなら
mb_send_mail('おまいさんのメールアドレス',$_POST['_subject'],$body,$header_info);
でテストはできるけれど。
0617nobodyさん
2005/10/08(土) 17:48:11ID:???「内部的に組み込まれた関数」をもう少し正確に。
スクリプト内部で定義した関数は、そのまま関数名で呼べるし
文字列に入ってる関数名でも呼べる手段がある。
そういうことを言いたいのじゃないと思うけど。
0619597
2005/10/08(土) 17:54:17ID:wzJ6Bsx7なんか説明不足ですみません。
このシステムはmail_input.phpからsendmail.phpを呼び出すプログラムなので
値はちゃんと渡されていると思います。さっきのエラーメッセージはsendmail.phpに直接アクセスしたときのものでした。
ちなみに
<?php mb_send_mail(アドレス,件名,本文); ?>
というプログラムにアクセスしてもメールは送られませんでした。
ということはやはり拡張関数がうまく機能していないのではないでしょうか?
また、各サイトを回ってみましたが、/usr/local/lib/php/extが無いという例はありませんでした。
やはりphpフォルダの下に、*.soを含むextフォルダが無いことが原因でしょうか?
0621nobodyさん
2005/10/08(土) 18:13:31ID:???phpinfo()のほうが詳しいが、$ php -mで組み込まれてるモジュールが見える。
上で言われてるように静的に組み込まれてるんだよ。そういう風にConfigurしてるんだから。
soが出来るのは --with-foobar=shared のように指定した場合だけ。
あと「渡されていると思います」って何?
0623nobodyさん
2005/10/08(土) 18:18:06ID:???>やはりphpフォルダの下に、*.soを含むextフォルダが無いことが原因でしょうか?
本当に>>603を読んだ上での発言なのか?
0625623
2005/10/08(土) 18:25:39ID:???sendmail_path =/usr/sbin/sendmail -t -i -f〇○○@〇○○.co.jp
と設定しているって意味でいいんだよな?
phpが動作しているサーバーにログインして
echo "To: 送信先メールアドレス" | /usr/sbin/sendmail -f〇○○@〇○○.co.jp
で正常にメール(タイトル、本文は空)は届くのか?
0626nobodyさん
2005/10/08(土) 18:28:29ID:???ただ単にphpから、sendmailコマンドでメール送るだけのプログラムを書く。
文字通りそれだけ。
つーか、fc4の環境は知らんが、/usr/sbin/ なんていきなり叩けるのか?
0627613
2005/10/08(土) 18:46:34ID:???すみません、言葉足らずでした。
strlen()やarray_push()みたいに予め用意されている関数のことです。
自鯖ではMySQLを使っているのですが、レン鯖ではSQLiteな為、
関数呼び出しの度に場合分けするよりcall_user_func()みたいに指定して呼び出すことが出来れば
場合分けが1度ですみ楽だなぁと思ったもので・・・
0628nobodyさん
2005/10/08(土) 18:46:44ID:???0629nobodyさん
2005/10/08(土) 22:49:43ID:???テキストボックスにパスワードなどを入れて、キーボードのEnterキーを
押すと、submitボタンがクリックしてログイン出来るというのが普通だと
思うのですが、なぜかEnterキーを押しても反応しません。
マウスで送信ボタンを押さないと。。
これってどうしてこうなるのでしょうか?なにかFormに設定や記述が必要なのでしょうか?
0630nobodyさん
2005/10/08(土) 23:04:39ID:???HTMLで作ってんじゃないの?
テキストボックスにパスワードですか。
テキストボックスが複数あるとエンターで送信出来なかったりするらしい。
実験してないから知らんけど。
ユーザ名はテキストボックスで、パスワードはtype=passwordにしてみれば?
関係ないけど、
>submitボタンがクリックしてログイン出来る
日本語が変ですよ。
0631nobodyさん
2005/10/08(土) 23:22:28ID:???その辺はブラウザが行う動作なのでPHPは関係ないし、ブラウザ毎の振舞いの話なので
オマイさんの言う「普通」というのはありえないよ。
確かにそのように動作してくれるブラウザの方が多いとは思うけれど。
別のブラウザで試してみるか、動作しなかったブラウザをカキコしてみればだれか
追試してくれるかもね。
参考までに以下のブラウザでは大丈夫だったよ。
IE6 SP2、Opera8.01、Firefox1.0.7
確認なんだが、本当に submit ボタンなのか?
属性が button で javascript で submit しているとかではないよな?
0632nobodyさん
2005/10/08(土) 23:28:22ID:???入力欄が複数あってもEnterキーで送信されると思うんだけどな。
あ、でもNetscape4.9ではダメだった。
0633630
2005/10/08(土) 23:33:44ID:???やっぱそうなんだ。
ttp://www.tohoho-web.com/lng/199905/99050015.htm
ググってすぐ出てきたんだけど、ネスケだめだって書いてた。
てゆか別にエンターで送信出来なくてもいいじゃんね。
タブ→エンターとかで問題ない。
0634nobodyさん
2005/10/08(土) 23:38:11ID:???0635nobodyさん
2005/10/09(日) 01:03:28ID:???「リターンキー」と言ってしまう中年でした
0636nobodyさん
2005/10/09(日) 01:48:24ID:???$headerinfoの中身をってかその場所直にでもええけど
"From: [email protected]" ようはFrom: フィールド
だけにして試してみなされ。
0637nobodyさん
2005/10/09(日) 02:48:10ID:???あるテーブルの内容が
パターン表 { NO , CL1 , CL2 , CL3 } という4つの列で構成されていたとして
CL表 { CL , CLNAME } への参照をしています。(CL1〜3 references cl(cl) )
SQLで、CL1,CL2,CL3に対応するCLNAMEを結果として出力するには
どんなSQLがありますかね。。。orz
0638nobodyさん
2005/10/09(日) 07:51:27ID:???0639nobodyさん
2005/10/09(日) 09:04:53ID:???何故ベンチを取らないのか不思議だが
ファイルI/Oに構文解析という糞重い処理が、関数のコールより軽いわけが無い
何度もIncludeを繰り返すとかもうアホかと
ただし速ければいいというわけじゃなく意味的に関数にふさわしいかどうかは考慮する必要がある
0640nobodyさん
2005/10/09(日) 09:29:10ID:???そういや今読んでるAjaxACのソースでもメソッド内で
外部ファイル読んで(requireだが)たりするな
0641nobodyさん
2005/10/09(日) 10:18:15ID:???何度も呼ばれる処理をinclude()するのが関数よ
りはやいケースって例えばどんなですか?
コンパイル済みのをメモリにキャッシュ出来るけど
それでもinclude()のスタックは削れないし、そも
そもこれはファイルの中身によるというわけでは
ないし。ピンとこないです。
0643nobodyさん
2005/10/09(日) 11:07:13ID:???0644nobodyさん
2005/10/09(日) 11:12:59ID:???0645nobodyさん
2005/10/09(日) 12:09:35ID:???0646nobodyさん
2005/10/09(日) 13:47:17ID:???0647nobodyさん
2005/10/09(日) 14:03:21ID:???0648nobodyさん
2005/10/09(日) 14:10:53ID:???0649nobodyさん
2005/10/09(日) 16:22:16ID:???0650nobodyさん
2005/10/09(日) 16:36:55ID:???0651nobodyさん
2005/10/09(日) 17:02:46ID:???上の質問読まずにレスしてるか関数を知らないという、ただそれだけのことだろ
0652nobodyさん
2005/10/09(日) 17:18:15ID:???�麓b]
ファイル一覧を表示させようとしています。
ディレクトリ[a]の中にディレクトリ[b]があります。
$dh = opendir(".");
while(($entry = readdir($dh))){
print"$entry\n";
}
↑のようなPHPファイルをディレクトリ[a]に置いて実行するとディレクトリ[a]のファイル一覧が表示されるのですが、
$dh = opendir("./b");
としたところ
.
..
しか表示されません。ディレクトリ[b]のファイル一覧を表示するにはどのようにすればよいでしょう?
0654nobodyさん
2005/10/09(日) 17:28:30ID:???ディレクトリ開いたときに入ってくる
.
..
って一体なに?
0655597
2005/10/09(日) 17:28:56ID:GtXpmFa3あと、おそらく今回とは関係ないのかもしれないですが、
/usr/local/lib/php/extが無いっていうのはおかしくないのですか?
もしあとから動的に組込みたいときとか組み込めなくないですか?
0657652
2005/10/09(日) 17:39:03ID:???0658652
2005/10/09(日) 17:45:48ID:???is_fileだとjpgファイルは表示されないのですね。
0660nobodyさん
2005/10/09(日) 17:56:00ID:???ディレクトリくらい必要なら作ればいいだけじゃないのか?
あと、どんなMakefile作ったかしらんがデフォだとLIBDIR/extensions/no-debug-non-zts-YYYYMMDD/*.soになるぞ
設定は自分の好みでやればいい
0662655
2005/10/09(日) 18:57:30ID:???0663nobodyさん
2005/10/09(日) 19:38:02ID:???0664nobodyさん
2005/10/09(日) 21:04:31ID:???0666597
2005/10/09(日) 21:35:16ID:GtXpmFa3<?php
mb_send_mail("自分のアドレス","件名","文章");
?>
でもメールは届きませんでした。
>>625
その意味で正しいです。
cat 適当なファイル | /usr/sbin/sendmail アドレス
でもダメでした。
>>626
/usr/sbinは行けます。(叩けるっていうのはアクセスできるという意味でしょうか)
>>636
やってみましたけどうまくいきませんでした。
ただ/var/log/maillogを見るとログは残っているのでsendmailの設定の問題でしょうか?
0667nobodyさん
2005/10/09(日) 21:46:39ID:JXyGtMyG0668nobodyさん
2005/10/09(日) 21:49:27ID:???> >>625
> その意味で正しいです。
> cat 適当なファイル | /usr/sbin/sendmail アドレス
> でもダメでした。
> >>626
> /usr/sbinは行けます。(叩けるっていうのはアクセスできるという意味でしょうか)
つまり、sendmailコマンドを知らないということか・・・。
「適当なファイル」じゃなくて、 >>625 の通りのことをやって(もちろん To: アドレスは自分に)
メールが届くかどうかをテストする。
「叩ける」というのは、コマンドが実行できること。
lsとかで /usr/sbin ディレクトリが見えるとかじゃないよ。
>>626が言ってるのは、/usr/sbin/sendamail を nobody が実行できるの?ってこと。
0670597
2005/10/09(日) 22:18:47ID:???コマンドラインで
echo "To: 送信先メールアドレス" | /usr/sbin/sendmail -f〇○○@〇○○.co.jp
でもRecipient names must be specified
と返ってきます。
sendmailをnobodyが実行できる、というのはパーミッションの問題でしょうか…?
一応755でした。
0671nobodyさん
2005/10/09(日) 22:25:33ID:???マニュアルのやり方で普通にコンパイルできるし
出来合いのパッケージもある
>>666
FC4でSendmail使うならネットワークと権限の適切な設定が必要
同じ事を繰り返してもダメよ >もう一度確認してみます
0672nobodyさん
2005/10/09(日) 22:45:37ID:???sendmailコマンドの使い方が間違っている。エラーメッセージにもその示唆がある。
さくっと探してみたけどいい解説ページが見つからなかったので、manの和訳のページを。
ttp://www.linux.or.jp/JM/html/sendmail/man8/sendmail.8.html
「sendmail コマンドライン to from echo」あたりでググっていくつかページを見れば
大体どういう使い方(方法は1つじゃない)をすればいいのか分かるんじゃないかなぁ。
0673597
2005/10/09(日) 22:47:11ID:???え…そうなんですか?
少しぐぐってみました。
ttp://gapo.zive.net/sendmail/index.html
こんな設定ですか?
0674nobodyさん
2005/10/09(日) 22:48:09ID:???いいかげんスレ違いなんで異動してもらいたい。
0675nobodyさん
2005/10/10(月) 01:09:15ID:???0676nobodyさん
2005/10/10(月) 02:55:51ID:9d+wLEX3_,,..,,,,_
/ ,' 3 `ヽーっ
l ⊃ ⌒_つ
`'ー---‐'''''"
綺麗な顔してるだろ・・・死んでるんだぜ・・・それで・・・
0677nobodyさん
2005/10/10(月) 02:56:12ID:???0678nobodyさん
2005/10/10(月) 02:56:41ID:???0679nobodyさん
2005/10/10(月) 07:59:41ID:???0680nobodyさん
2005/10/10(月) 09:44:42ID:???どうしたらいいですか?
【URL】
http://www.example.com/aaa/index.html
【相対パス】
<img src="../bbb.jpg">
../bbb.jpg
【絶対パス】
<img src="http://www.example.com/bbb.jpg">
http://www.example.com/bbb.jpg
0681nobodyさん
2005/10/10(月) 10:08:23ID:???誰かがアクセスしてきたときとか、特定の作業を行ったときに鯖からbeep音を出したいのだが、
ncurses_beep って使えるの?
0682nobodyさん
2005/10/10(月) 10:47:01ID:???単純に
http://www.example.com/aaa/../bbb.jpg
これで使えるよ。
0685681
2005/10/10(月) 15:32:06ID:???超過疎なロダ鯖なので、誰かがダウンロードしようとしたら「ピッ!」なんて鳴るといいかなと。
「あっ、お客さんだぁ!」 わぁいヽ(∇⌒ヽ)(ノ⌒∇)ノわぁい♪ ってな感じで・・・
0687nobodyさん
2005/10/10(月) 16:06:52ID:???と言う風にCookieを発行して、発酵されるのを確認したんだが、
if($_COOKIE['rec']<time()){
〜〜〜処理〜〜〜
}
が常に実行されてしまう。
$_COOKIEに値を確認したら何も値が入っていなかった。
鯖:XREA無料
ローカル(WinXP+Apache2)では正常動作してくれたんだが・・・・・・・
だれか解決法頼む。
0689nobodyさん
2005/10/10(月) 16:25:40ID:???ダメだ、$_COOKIE['rec']<time()を両方
(isset($_COOKIE['recountDay']) && $_COOKIE['recountDay']<time()) || !isset($_COOKIE['recountDay'])
にしたが実行されてしまう。
0690nobodyさん
2005/10/10(月) 16:26:46ID:???実際のスクリプトでは間違ってないから大丈夫。
0693nobodyさん
2005/10/10(月) 16:39:30ID:lawxVnGWうか?
例:<TD align=left class=top colSpan=3 vAlign=bottom width=468>
対象文字列
</TD>
のような場合。
0695nobodyさん
2005/10/10(月) 16:45:53ID:???&&は||より優先度が高い。(マニュアルの 言語リファレンス/演算子/演算子の優先順位 より)
>>689の条件式だと、セットされてない場合は常にtrueになる。
まさしく希望通りに動作している。
0696nobodyさん
2005/10/10(月) 16:47:27ID:???そういう話か
.htaccessで
php_flag register_globals Off
とするか
$_COOKIE['rec']のかわりに$recを使って見て
0698687
2005/10/10(月) 16:57:53ID:???>>695
じゃあ括弧要らなかったな。
>>696
ダメだ、両方ともやったがCookieに値が入らない
0699687
2005/10/10(月) 17:03:43ID:???テキストカウンタのスクリプトだから、別スクリプトからrequireで読ませてる。
別スクリプトは一階層上で、Cookieの発行は確認した。
当然setcookie使うからファイルの先頭で読ませて出力させる前にCookie発行させてる。
0700nobodyさん
2005/10/10(月) 17:13:03ID:???コード的には if (empty($_COOKIE['rec'] || $_COOKIE['rec'] < time()) {} でOK
s151のデフォルト設定では動作したよ
error_reporting(E_ALL);
setcookie('rec', time()+60*60, time()+60*60, '/', 'hoge.s151.xrea.com');
var_dump($_COOKIE);
>Cookieの発行は確認した
通信をキャプチャして見たってこと?
Set-CookieヘッダがあるのにブラウザがCookieを返してないとか
0701nobodyさん
2005/10/10(月) 17:14:45ID:???ブラウザがCookieフィールドを送ってるのに$_COOKIEがNULLとか
そういう状態?
0702nobodyさん
2005/10/10(月) 17:17:13ID:???だめぽ
if (empty($_COOKIE['rec']) || $_COOKIE['rec'] < time()) {}
0703nobodyさん
2005/10/10(月) 17:35:39ID:8yA4547bsageなければID付くよ
0704nobodyさん
2005/10/10(月) 18:02:24ID:???いじってる間にブラウザに変なクッキー食わせちゃったんじゃないの?
クッキー消去してブラウザ再起動してみたらどうだろう
0705nobodyさん
2005/10/10(月) 18:29:27ID:???初心者なもので一気に読み込んでというのがよくわかりません
サンプルを書いてもらえませんでしょうか?
0706nobodyさん
2005/10/10(月) 18:40:23ID:???複数行あるならそのように正規表現を書けばいいだけじゃない。
0707nobodyさん
2005/10/10(月) 22:14:26ID:???$_SERVER['PHP_SELF']ってサニタイズしないとだめなんだね・・・
<form action="{$_SERVER['PHP_SELF']}">
こんな感じで使うと即あぼーん.
セキュリティについて書いてあるサイトでもこういう風に
使ってるところがあったりするからまだ表面化してないのかな..
0709nobodyさん
2005/10/10(月) 22:27:06ID:???って聞こうとしてたんだった.
0710nobodyさん
2005/10/10(月) 22:32:14ID:???0711nobodyさん
2005/10/11(火) 00:06:54ID:???質問:なぜ危険なのか教えて。
#URLエンコードで送信した「<>"'」とかを、自動でデコードしてPHP_SELFに格納するならXSS脆弱性がありそうだけど、
#>現在実行しているスクリプトのファイル名です。ドキュメントルートから 取得されます。
#って書いてあるし、これのどこが危険なのだろうか・・?
0712707
2005/10/11(火) 01:26:50ID:???http://example.com/path/to/hoge.php
コード:
<?php echo $_SERVER['PHP_SELF']; ?>
出力:
path/to/hoge.php
っていうプログラムに対して
http://example.com/path/to/hoge.php/xssxssxss
とすると,
出力:
path/to/hoge.php/xssxssxss
つまり$_GET,$_POSTとかの場合と同じで
任意の文字列を送りつけることができる.
<form action="{$_SERVER['PHP_SELF']}">
っていうコードだったら,
http://example.com/path/to/hoge.php/"><form action="別のURL
みたいに書かれる危険性がある.
0714nobodyさん
2005/10/11(火) 02:59:38ID:???PHPなので質問させていただきます。
http://www.lovpop.net/apricot/の「apricot」というPHPのアクセス解析を
アンインストールをせずに消してしまったのですが、
「apricot.php.data」というフォルダがどうやっても消せなくなりました。
中に何が入っているのかも「550 Permission Denied」と出てしまい分からない状態です。
設置し直してアンインストールしてみても駄目だったので
PHPから消せるだろうと思ったのですが
BBSに書いてあったunlinkとrmdirもうまくいきませんでした。
最後の手段としてサーバの管理人様に頼もうと思っているのですが、
もしも他に何か方法があればご教示願います。
0715nobodyさん
2005/10/11(火) 03:38:25ID:???0716714
2005/10/11(火) 03:47:31ID:???たぶんそうだと思います。
こんな時間にすいまそん
0717nobodyさん
2005/10/11(火) 03:54:25ID:???うーむ・・
0718714
2005/10/11(火) 04:19:26ID:???unlink("./apricot/apricot.php.data/admin/area.txt");
〜略〜
rmdir("./apricot/apricot.php.data/admin/");
rmdir("./apricot/apricot.php.data/");
?>
を実行したら消えたとBBSに書いてあったんですが、
フォルダ名を変えてみたりしてもなぜか一向に消える気配がないんです。
0719nobodyさん
2005/10/11(火) 04:40:39ID:???<?php
$BASE = 'apricot.php'
$dir_main = opendir("$BASE.data");
while (($ent = readdir($dir_main)) !== false)
{
$path_sub = "$BASE.data/$ent";
if (is_dir($path_sub) && $ent{0}!='.')
{
$dir_sub = opendir($path_sub);
while (($ent_sub = readdir($dir_sub)) !== false)
{
$file_name = "$path_sub/$ent_sub";
if (is_file($file_name))
{
unlink($file_name);
}
}
closedir($dir_sub);
rmdir($path_sub);
}
}
closedir($dir_main);
$result = rmdir("$BASE.data");
?>
0720714
2005/10/11(火) 04:51:59ID:???しかしさっそく実行してみたんですが駄目でした……。
仰る通りサーバの管理者に訊いてみます。
本当にありがとうございました。
0721nobodyさん
2005/10/11(火) 05:23:40ID:???ログってどんな形で保存すると使い勝手がいいの?
みんなはどうしてるのか教えてください。
0722nobodyさん
2005/10/11(火) 05:32:49ID:???ttp://httpd.apache.org/docs/2.0/logs.html
ちまたに出回ってるツールもapache互換のやつが多いし。
まぁそんな事を言い出すと自作する意味も無くなってくるんだが。
0723nobodyさん
2005/10/11(火) 08:52:52ID:???自分がどんな解析をしようとしていて、どんな解析処理をしようと考えているかによるでしょうな。
解析に必要な情報を処理が喰いやすい形で保存汁
0724nobodyさん
2005/10/11(火) 11:28:44ID:lk3myPm8解析処理とサンプル数次第だと思う。
リファラーをとることになると多くなるんだよね・・・
0725nobodyさん
2005/10/11(火) 11:38:13ID:oTT+29Sw直訳すると「敷居」なんですが…。
これで、BMP画像ファイルを自動生成して、Excelに貼付けたいのですが
正常なBMPファイルが生成出来ないです。
0726nobodyさん
2005/10/11(火) 11:59:02ID:???0727nobodyさん
2005/10/11(火) 12:00:07ID:???0728nobodyさん
2005/10/11(火) 12:02:53ID:QJ4uo7le今は、pdf_set_font($pdf,"Times-Roman",35,"host");としているのですが、
↑
この部分をどう変えればよいのですか?
0729728
2005/10/11(火) 12:05:10ID:QJ4uo7le"Times-Roman"の部分をどう直すか、という意味です。
0731nobodyさん
2005/10/11(火) 12:20:59ID:???0732nobodyさん
2005/10/11(火) 12:22:02ID:???0733731
2005/10/11(火) 12:22:22ID:???sleepですね。
0734nobodyさん
2005/10/11(火) 12:25:42ID:???どんな環境でやってるのか知らんが、「HeiseiMin-W3」とかは?
pdf_set_fontを宣言しないで出すとどうなる?
0735725
2005/10/11(火) 13:48:31ID:???SpreadsheetExcelWriterでExcelに貼付けるという作業を
やっているんですが、SpreadsheetExcelWriteがBMP形式しか
サポートしていないので、BMPに変換したいのです。
>>730
そうだったのですか orz
とりあえず、JPEGで書き出して、djpegコマンドでBMPに変換して
貼付けてみる事で対処しました。
0736nobodyさん
2005/10/11(火) 15:42:40ID:???できるならばだいたいでいいのでソースを書いてもらえないでしょうか。
ちなみにFormを使うGETは使い方をマスターしたんですが上記みたいなことができないんです。
0737nobodyさん
2005/10/11(火) 15:45:15ID:???このスレにぴったりの質問だ.
↓回答
0738nobodyさん
2005/10/11(火) 15:56:12ID:???0739nobodyさん
2005/10/11(火) 15:57:02ID:???<?php
if ($_GET['id'] == 1) {
echo 'a';
} else if ($_GET['id'] == 2) {
echo 'b';
}
?>
0741nobodyさん
2005/10/11(火) 17:45:09ID:???phpで作成されたxml(html)ファイルを
ダウンロードさせるということは可能ですか?
作成されたxml(html)ファイルとは画面に表示されたという意味です。
ご存知の方よろしくお願いします。
0742nobodyさん
2005/10/11(火) 17:55:09ID:G45STU1Q名前をつけて保存とかさせればええやん。
というのはおいといて、アクセスしたらダウンロードさせたいの?
それなら、
header ("Content-Disposition: attachment; filename=$filename");
とかをダウンロード用の引数つきで呼び出されたときにつけてやれば?
0743nobodyさん
2005/10/11(火) 18:17:40ID:???参考になりました。ありがとうございました。
phpで作成されたxmlを
サーバ側にファイルを保存せずに
ダウンロードさせたかったもので。
0744nobodyさん
2005/10/11(火) 19:08:26ID:???ありがとうございます。
お陰で成功しました。
くだらん質問を聞いてくれてありがとうございます(_ _*)_ _*)
0745687
2005/10/11(火) 21:04:28ID:???・ローカルに保存されたCookieがあった
・setcookieがtrueを返す
から発行されたのを確認してたんだが、ローカルのCookie消して、ブラウザ再起動してアクセスしたらCookieが発行されなかった。
まだsetcookieの返り値は確認してないんだが、ローカルに保存されてないから多分falseだと思う。
もうちょっと考えてみるわ。
0746nobodyさん
2005/10/11(火) 21:48:33ID:???$four_letters = chr(0x23) . chr(0xb6) . chr(0xa8) . chr(0xc7);
$the_number = intval(bin2hex($four_letters), 16);
とすると、2の補数表現の関係か整数の0x7FFFFFFF(2147483647)までは普通に変換されるけど、
$four_letters = chr(0xF8) . chr(0xb6) . chr(0xa8) . chr(0xc7);
$the_number = intval(bin2hex($four_letters), 16);
0以下(2の補数表現でマイナスの数字)をintvalしようとすると自動的に
プラスの値の上限(2147483647)が$the_nuberに入ってしまうんだけど、
簡単に$the_numberにマイナスの数字を入れる方法を教えて下さい。
今は、たまたま-16,777,216(0x80FFFFFF)以下の数字を使わないので、
substr() を使って上位1バイトを条件文(if〜else)にかけてビット反転(~)などを駆使して
$four_letters = chr(0xF8) . chr(0xb6) . chr(0xa8) . chr(0xc7);
$four_letters_hex = bin2hex($four_letters);
if (substr($four_letters_hex, 0, 2) == "ff"){
$four_letters_lestdigit = ~ (intval(substr($four_letters_hex, 2, 6), 16));
$four_letters_not = sprintf("%x", $four_letters_lestdigit);
$four_letters_int = -1 * (1 + (intval(substr($four_letters, 2, 6), 16)));}
else $four_letters = intval($four_letters_hex, 16);
などとしていて、今後上位1バイトがFF以下の数字を変換する必要性が出ても、
それに合わせて条件文や計算を変えてやればいいのだけど、
もしかしたら、もっと1行や2行程度で済む方法があるような気がして・・・・
0747nobodyさん
2005/10/11(火) 21:55:34ID:???> 今は、たまたま-16,777,216(0x80FFFFFF)以下の数字を使わないので、
間違い)16,777,216(0x80FFFFFF)
今は、たまたま0xFF000000よりマイナスの数字を使わないので、
0748nobodyさん
2005/10/11(火) 21:58:13ID:???変数が$q1から$q99まであるのですが
forを使用して表示したいのですが
for($i = 1; $i < 100; $i++){
$q[$i]="$q".$i;
echo $q[$i];
}
これだとうまくいきません。
配列に変数を格納する事は出来ないのでしょうか?
またうまいやり方があれば教えて下さい。
0749748
2005/10/11(火) 22:02:52ID:p5WBUvB70750nobodyさん
2005/10/11(火) 22:04:16ID:???そのまま突っ走りたい場合はマニュアルの「可変変数」を参照。
うまいやり方というか、なんというか、$q1〜$q99のような使い方を最初からしない方がよいかと。
0752nobodyさん
2005/10/11(火) 22:11:04ID:???この手の質問は繰り返しあるな。。。
750 氏の言う「$q1〜$q99のような使い方を最初からしない方がよいかと」に同意。
とりあえず以下でオケ。
for($i = 1; $i < 100; $i++){
$x = 'q' . $i;
$q[$i] = $$x;
echo $q[$i];
}
0753nobodyさん
2005/10/11(火) 22:15:26ID:???0756748
2005/10/11(火) 22:56:40ID:???今回はアンケートを取るのに使用しました。
formの名前を決めていくならこういう方法しか
ないと思っていたのですが、もしかしたら他に
方法ありますでしょうか?
0757nobodyさん
2005/10/11(火) 23:02:05ID:???0758nobodyさん
2005/10/11(火) 23:05:03ID:???<form action="unko.php" method="post" >
<input type="text" name="q[]" /><br />
<input type="text" name="q[]" /><br />
<input type="text" name="q[]" /><br />
<input type="text" name="q[]" /><br />
<input type="submit" name="SEND" />
</form>
//unko.php
<?php
var_dump($_POST[q]);
?>
0759nobodyさん
2005/10/11(火) 23:06:05ID:???qにはキーを指定したほうがいいと思う
0760nobodyさん
2005/10/11(火) 23:28:35ID:???HTML4.01の日本語訳 ttp://www.asahi-net.or.jp/~bd9y-ktu/html4rec_f/cover.html から、
name属性は CDATA ttp://www.asahi-net.or.jp/~bd9y-ktu/html4rec_f/types.html#type-cdata
と辿ることができて、その中に、
「IDやNAMEトークン字句は、文字([A-Za-z])とそれに続くdigits ([0-9])・hyphens ("-")・
underscores ("_")・colons (":")・periods (".")で始まらなければなりません。」とある。
ちょっと誤解を招きそうなので、原文も参照してみると、
「ID and NAME tokens must begin with a letter ([A-Za-z]) and may be followed
by any number of letters, digits ([0-9]), hyphens ("-"), underscores ("_"), colons (":"), and periods ("."). 」
なので、最初の文字が[A-Za-z]でその後に [0-9] - _ : . が続く事になるよね。
ここに [ ] は含まれないので、本当は使っちゃまずいんじゃないかと。。。
0763nobodyさん
2005/10/12(水) 00:03:15ID:???0764nobodyさん
2005/10/12(水) 00:06:41ID:???0765nobodyさん
2005/10/12(水) 00:23:43ID:???これってどう使えば良いんですか?
日記に組み込みたいんですけど・・・
0768nobodyさん
2005/10/12(水) 01:11:52ID:???>>119-120 >>125さんのソースを元に
更新参照ファイル ページ名 飛び先URL
../xxx/zzz.log お絵かき掲示板 ../xxx/gazou_bbs.cgi
../../yyy/yyy.dat 質問掲示板 http://yyy.net/bbs/faqbbs.cgi
./www.log お知らせ ./histry.cgi
という感じで、表示する「ページ名」と飛び先のURLを事前設定して、
一番新しく更新されたログを参照し、(ここでは仮に./www.log)
html上で
10/11 <a href="./histry.cgi">お知らせ</a>
みたいにページ名とリンクを自動で貼ってくれるようなものって作れないでしょうか?
0769nobodyさん
2005/10/12(水) 06:00:17ID:???0770nobodyさん
2005/10/12(水) 06:41:59ID:???質問の意図がわからんけど、要は符号付4ビットバイナリを10進数に直したいだけ?
$a=unpack('Nans',chr(0x23) . chr(0xb6) . chr(0xa8) . chr(0xc7)); echo $a['ans'];
599173319
$a=unpack('Nans',chr(0xF8) . chr(0xb6) . chr(0xa8) . chr(0xc7)); echo $a['ans'];
-122246969
検算は(゚�听)シテネ
0771nobodyさん
2005/10/12(水) 08:14:44ID:???name属性とNAMEトークンを混同している
CDATAの説明は ID and NAME tokens must begin ・・・の前で終わりだ
0773nobodyさん
2005/10/12(水) 11:52:03ID:???ttp://www.mt312.com/
↓PHP4 写メール対応掲示板 IMG-BBS
ttp://www.mt312.com/archives/imgbbs.html
の設置について質問です。
ダウンロードしてサーバーにアップ、正常に設置は出来たのですが、
携帯からメール送信して画像をアップ出来るようにする方法がわかりません
config.phpの96行目にある
// 写メール項目
define("POP3_MAIL", "");// 受信メールアドレス yes="[email protected]" no=""
define("POP3_HOST", "");// 受信ホスト名
define("POP3_USER", "");// 受信ホストユーザ名
define("POP3_PASS", "");// 受信ホストパスワード
の欄に何を設定したらいいのかがマジにわからないのですorz
頭が禿げるほど調べたり試したりしてみたのですが
検索ワードが悪いのか、お手上げ状態です…
たとえば、やほー等フリーのアドレスを取得して
それを受信メールアドレスに設定し、
そのアドレスに画像付きメールを送信すれば
画像掲示板に投稿…出来るようになるのでしょうか。
その場合、受信ホスト名、受信ホストユーザ名、受信ホストパスワード
には何を入れたら良いのでしょうか。
阿呆な質問をしてホントに申し訳ないのですが
どなたかおわかりになる方がいましたら、
何卒ご教授の程宜しくお願い致します。
0775774
2005/10/12(水) 12:04:54ID:???> 受信ホスト名、受信ホストユーザ名、受信ホストパスワード
はYahooの POPホスト、POPユーザー名、POPユーザーパスワードだな。
0776nobodyさん
2005/10/12(水) 12:09:58ID:???POP3で受信できるメールアカウントが必要だ
OutlookExpress開いてアカウントの設定を見たらわかるよ
0777nobodyさん
2005/10/12(水) 12:12:26ID:???http://www.mt312.com/support/
0778nobodyさん
2005/10/12(水) 13:28:25ID:???速攻でレスありがとうございました。
もう一度配布元のサポートを徹底して調べてみることにします。
0779773
2005/10/12(水) 13:29:05ID:???0780728
2005/10/12(水) 14:11:30ID:???遅レスすいません。
言われた通りやってみましたが、共にエラーが出てしまいました。
シフトJISやEUCにしたい場合、どう書けばよいでしょうか?
0782nobodyさん
2005/10/12(水) 15:58:08ID:???http://php.s3.to/man/function.pdf-findfont.html
ここらあたり?
0783780
2005/10/12(水) 15:58:26ID:xQ56+Qqepdf_set_font($pdf,"Times-Roman",35,"host");だと、エラーは出ないで
出力できるんですが、日本語が化けてしまうんです。一応使う事は出来るみたいです。
pdf_set_font〜の少し上の方に、pdf_findfont($pdf,"Courier","host",0);
としているのですが、これが問題なのかもしれないです。
ここの"Courier"を他の何かに変えたら、もしかしたら動くかも、と考えているところです。
どなたか心当たりは無いでしょうか?
0785nobodyさん
2005/10/12(水) 16:48:07ID:???0786nobodyさん
2005/10/12(水) 17:53:26ID:4hCrpEso0787nobodyさん
2005/10/12(水) 18:01:48ID:MJ2G+N2s0789nobodyさん
2005/10/12(水) 18:19:15ID:MJ2G+N2s0791nobodyさん
2005/10/12(水) 18:31:14ID:MJ2G+N2sそうなんですか
分かりました
失礼します。
0792nobodyさん
2005/10/12(水) 18:45:47ID:???させたいのですが、writer.phpというソースをダウンする事はできるのですが、
writer.phpが作成するxmlをダウンさせる方法がわかりません。
phpが作成するhtmlやxmlをダウンロードさせる方法をお願いします。
<?php
$outputname="writer.php";
header("Content-Type: text/xml");
header("Content-Disposition: attachment; filename=$outputname");
@readfile("writer.php");
?>
0793nobodyさん
2005/10/12(水) 18:47:05ID:MJ2G+N2s>>791じゃなく>>790だった
てなわけで
も一つくだらない質問します
>>790いるなら書いてくらさい
だったらHTMLで掲示板作れないんですか
0794nobodyさん
2005/10/12(水) 18:50:31ID:???藻前にはPC自体まだまだ早いぉ
0795nobodyさん
2005/10/12(水) 18:54:44ID:???0796掲示板を楽しむ者
2005/10/12(水) 18:56:48ID:MJ2G+N2sもういいです
もうCGI持ってますから
面白い回答ありがとうございました<笑>
0797nobodyさん
2005/10/12(水) 18:57:37ID:???742のようにすれば出来たけど。
<?php
$outputname="hoge.xml";
header("Content-Type: text/xml");
header("Content-Disposition: attachment; filename=$outputname");
$dom = new DOMDocument;
$dom->encoding = "UTF-8";
echo $dom->saveXML();
?>
0801nobodyさん
2005/10/12(水) 19:06:37ID:???これを実行すると確かにxmlファイルをダウンできましたが、
中身が殻でした。
writer.phpを実行するとxml形式のrssが表示されるのですが、
それをダウンロードさせたいのです。
0802nobodyさん
2005/10/12(水) 19:10:17ID:???writer.phpに
$outputname="writer.php";
header("Content-Disposition: attachment; filename=$outputname");
をつけるとどうなる?
0803nobodyさん
2005/10/12(水) 19:12:51ID:???○ require('writer.php');
0804nobodyさん
2005/10/12(水) 19:16:30ID:???どうもコードを見ると吐き気がするんです。
0807nobodyさん
2005/10/12(水) 21:09:34ID:???ここはコードを書く際に生じた疑問を聞く場所であって
CGIを作って欲しいという「依頼」はスレ違いだから去れ
0808nobodyさん
2005/10/12(水) 21:17:27ID:???http://pc8.2ch.net/test/read.cgi/php/1102980903/
過疎ってる感はあるが、一応貼っておこう
0809nobodyさん
2005/10/12(水) 22:04:26ID:???<?php
define('CONFIG_FILE', 'config.csv');
$fp = fopen(CONFIG_FILE, "r");
while ($conf = fgetcsv($fp, 1024)) {
$filemtime = filemtime($conf[0]);
if ($filemtime > $latest_time) {
$latest_time = $filemtime;
$msg = conf[1];
$url = conf[2];
}
}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html lang="ja">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=EUC-JP">
<title></title>
</head>
<body>
<?php
echo date('n/d',$latest_time);
echo '<a href="' . $url . '>' . $msg . '</a>';
?>
</body>
</html>
0810nobodyさん
2005/10/12(水) 22:24:32ID:???データがない場合が想定されてないのとconfの頭に$がない
以外はいいんでないの
動作的には遅そうだけど環境がシビアじゃない or CSVファイルが
小さいならこれでおkという印象
あと、これ echo '<a href="' . $url . '>' . $msg . '</a>'; は
echo "<a href=\"$url\">$msg</a>"; のほうが速いらしいね
エスケープが嫌だから俺は異端のヒアドキュメント派だけど
最後に。
動作チェックしろよ
0811nobodyさん
2005/10/12(水) 22:29:29ID:???HTMLに埋め込むのはecho文だけにしたほうが
0812nobodyさん
2005/10/12(水) 22:50:19ID:???サーバOSはWin2kでサーバはapache使ってます。
で、特定のメンバーにBcc使ってメールを送るもの作ってます。
今はimap_mail関数を使っているのですが処理がものすごく遅いです。
(送信相手は2人で最大でも16人)
mailを送る関数でBccを使い複数のメンバーにメールを送る場合、
どれが一番処理が早いでしょうか?
0815nobodyさん
2005/10/13(木) 10:03:42ID:???どのラジオボタンを押しても”0”という値を他のPHPに送り
10秒以内ならそれぞれのラジオボタンに入れてある数値を送る
という処理をするのにはどうしたらよいでしょうか?
データを送るなどは出来ますが時間制限を設けるとなると分からないので
今回質問しました。 宜しくお願いします
0816軟式PHP
2005/10/13(木) 10:14:39ID:???セッションにクイズ開始時間を保持させておいて、ラジオボタンの
値はとりあえずそのまま送信させる。
送信後ページで現在の時刻とクイズ開始時間を比較させて10秒以上だったらラジオボタンの値を0にするってのは?
厳密にやらないならJavaScriptで時間制限(timer)・自動送信(location)・ラジオボタンの値(form.elements.value=値)の変更も全部出来る。
0817nobodyさん
2005/10/13(木) 10:16:40ID:???板違い
サーバーサイドの処理とクライアントサイド処理の違いを認識すべし
漏れならJavascriptを使う
つか、ラジオボタンで3択にすると2回クリックする必要があるので、
それで時間制限アリってのは不親切では?
0818815
2005/10/13(木) 10:53:39ID:???返信どうもです その方法で作ってみますね
ありがとうございました
>>817さん
JavaScriptですかぁ Javaの方はいまいち分からないので
816さんの方法で作ってみます
あと板違いすみませんでした・・・
0819nobodyさん
2005/10/13(木) 11:32:41ID:???0820815
2005/10/13(木) 11:56:32ID:???時間をセッションに入れるには
session_start();
session_register("jikan");
$jikan= date("s");
この様なphpであっているのでしょうか?(エラーが出るので違うと思いますが・・・
それとクイズの問題表示と問題開始時間が決められるのがphp1として
クイズが合っているのか判定するphpをphp2としております
php1からphp2へ,問題開始時間のセッションの値を渡すのも出来ませんでした。
あと時間をifで比べるということもいまいち分かりませんでした、
if( 開始時間+10 > $date_s = date("s")){
答えの値を0
{
この様なif文で出来るのでしょうか?開始時間に+10と書いて+されるのか心配です
データがうまく渡っていなかったので試すことが出来なかったのでお聞きしました。
1.セッションにクイズ開始時間の保存の仕方
2.違うphpにクイズ開始時間の値の渡し方
3.時間を比べて10秒以内だったら答えの値を0にする判定文
以上を教えていただければ非常に助かります
質問も多くて申し訳ないですが 宜しくお願いいたします。
0821nobodyさん
2005/10/13(木) 11:59:38ID:geTy/+mkC-BOARDとそのオマケにあるだろ。ちゃんと探せや。
0822nobodyさん
2005/10/13(木) 12:09:05ID:???1と2
セッション使わなくても
ページ内にhiddenで埋めて回答と一緒に返せばよいと思う。
そんなに神経使わなくて良い物でしょ?
3
現在時間から開始時間を引いた値が10以上とする方が楽。
0823nobodyさん
2005/10/13(木) 12:18:24ID:???--- php1.php ---
<?php
session_start();
$_SESSION['jikan'] = time();
$fjikan = date('Y/m/d H:i:s', $_SESSION['jikan']);
echo <<<EOD
<html>
<body>
開始時間:{$fjikan}
<form action="php2.php" method="post">
<input type="radio" name="answer" value="1">テスト1
<input type="radio" name="answer" value="2">テスト2
<input type="radio" name="answer" value="3">テスト3
<br><input type="submit" value="送信">
</form>
</body>
</html>
EOD;
?>
0824823
2005/10/13(木) 12:20:06ID:???--- php2.php ---
<?php
session_start();
$start = $_SESSION['jikan'];
$jikan = time();
$fstart = date('Y/m/d H:i:s', $start);
$fjikan = date('Y/m/d H:i:s', $jikan);
$diff = $jikan - $start;
$answer = $_POST['answer'];
if ($diff >= 10) $answer = 0;
echo <<<EOD
<html>
<body>
開始時間:{$fstart}<br>
現在時間:{$fjikan}<br>
差:{$diff}秒<br>
答え:{$answer}
</form>
</body>
</html>
EOD;
?>
0827nobodyさん
2005/10/13(木) 13:10:44ID:G6+P+YYd最悪、対象はひらがなやカタカナだけでもかまわないんですが。
0828nobodyさん
2005/10/13(木) 13:58:42ID:???(オープンソースだし、コード読んで移植するのも可)
0829sage
2005/10/13(木) 14:12:02ID:I2B+ArdhPHPで、PSQLデータ内の行の1つを取り出すための言語。
(例、ID・001 name・PC value・300と言うデータの中の300だけを取り出す)
どういう言語なのか、それと使い方も教えてもらえればうれしいです。
言葉足らずでしたら、すいません。
0830815
2005/10/13(木) 14:12:55ID:???貴重な意見ありがとうございます
>>現在時間から開始時間を引いた値が10以上とする方が楽。
確かにそのとうりです 勉強になりますありがとうございました。
>>823さん
ソースまで記入してくださり大変感謝です。
やってみたところ無事に秒数を取ることが出来ました。
しかし問題が一つあります
経過時間などもちゃんと表示されて値も渡っているのですが
警告がでてしまいます、以下に記入しています
Warning: session_start() [function.session-start]: Cannot send session cookie - headers already sent by (output started at C:\Program Files\Apache Group\Apache2\htdocs\kuizu\toi2.php:2)
in C:\Program Files\Apache Group\Apache2\htdocs\kuizu\toi2.php on line 3
Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at C:\Program Files\Apache Group\Apache2\htdocs\kuizu\toi2.php:2)
in C:\Program Files\Apache Group\Apache2\htdocs\kuizu\toi2.php on line 3
このエラー文を検索してみると結構有名らしく色々出てきました、
php.iniをサイトに書いてある通りにいじったりしましたが
無理でした。 こちらでも現在エラーの原因を探している最中です
もし分かる方がいらっしゃれば教えていただきたいです。
0831軟式PHP
2005/10/13(木) 14:13:20ID:???0832軟式PHP
2005/10/13(木) 14:14:55ID:???>>830はsession_startをコードの一番初めに書いていない(何か出力した後にsessionをスタートさせている)んじゃないかな。
0833815
2005/10/13(木) 14:24:25ID:???>>session_startをコードの一番初めに書いていない(何か出力した後にsessionをスタートさせている)んじゃないかな。
はい 私もネットで調べてそれは初めに見てみたのですが コードの一番上に記入しておりますので
その事でエラーが出ているという事は無いですね
ちなみにエラー箇所であるtoi2.php on line 3 は >>823さんのコード通りです
0834nobodyさん
2005/10/13(木) 14:29:12ID:???改行があるか、「--- php2.php ---」までコピペしているに1票
0835815
2005/10/13(木) 14:31:08ID:???みなさんこんな超初心者にやさしく回答していただき
本当にありがとうございました。
いつか答える側になれるように勉強がんばります
0836815
2005/10/13(木) 14:34:32ID:???改行がありました 改行もダメとは夢にも思っておりませんでした
お答えいただきありがとうございました
0837nobodyさん
2005/10/13(木) 14:40:06ID:???0838nobodyさん
2005/10/13(木) 14:48:23ID:???改行文字(1byte〜2byte)が本文として出力される(=本文を出力したのでヘッダ送信も終了した事になる。)
0839823
2005/10/13(木) 14:52:54ID:???動いて良かったね。サンプルなんで省略してるけど
$answer = $_POST['answer'];
辺りのコードは、本来はサニタイズする必要がある($answer をどう扱うかにもよるが)。
サニタイズとは?とか、どうすれば?とかは、まったりと勉強してくだされ。
そのまま使用することはないだろうし、勉強中の習作だと思うけど、念のため。
0840nobodyさん
2005/10/13(木) 14:55:22ID:???imap_mail()でもWinは直接SMTPで送るみたいだから、mail()と多分いっしょ。
リモートのSMTPサーバを利用しているのなら、ローカルにMTAをたてて、
そこにキューを溜めるようにすれば多分速くなる。
ローカルにあるMTAで遅い場合、それはPHPの問題じゃないね。
0841nobodyさん
2005/10/13(木) 17:26:33ID:???確実にヲチスレで嘲笑されるようなくだらねぇ質問が,
このスレでは普通に回答されるのはどうして?
0842nobodyさん
2005/10/13(木) 17:36:58ID:???test.txtに出力するのと保存を両方処理させるのに困ってます。
どうかご教授くださいお願い致します。
0843nobodyさん
2005/10/13(木) 17:46:17ID:???残念でした
「うまくいきません」はNGワードです
0844nobodyさん
2005/10/13(木) 17:58:33ID:???まるまる答えを書くのは簡単なんだが、どう上手くいかないか書いた方が暇ネタとして
相手してもらえると思うけど…
まずは
入力値をtest.txtに保存する処理
text.txtをダウンロードさせる処理
の2つに処理を分けて、それぞれがキッチリと動くことを念頭においてやってみたら?
0845nobodyさん
2005/10/13(木) 19:14:00ID:???PSQLっていう名前のデータベースまたはデータストレージ製品つうのが思い浮かばない。
PostgreSQLにpsqlっていうツールはあるけど。
まあPSQLというぐらいだから、SQL(問い合わせ言語)が使えるんじゃないの。
SQLにも細かいところで差異はあるけど、標準的な仕様に合わせるように極力してる筈
だから、一般的なSQLについて調べると良いよ。初心者向けの本も沢山出てる。
例の場合、「SELECT value FROM テーブル WHERE ID='001' AND name='PC'」とか。
普通IDはユニークな値とするものだから、AND以降は不要かもね。
0847nobodyさん
2005/10/13(木) 21:52:25ID:???○物好き
0848nobodyさん
2005/10/13(木) 21:58:47ID:???0849nobodyさん
2005/10/14(金) 01:03:05ID:???このスレには、つまらない知識の独占なんてバカバカしいと思ってる度量の広い人間が多いから。
0850nobodyさん
2005/10/14(金) 01:16:58ID:???0851nobodyさん
2005/10/14(金) 02:39:53ID:???つ http://www.postgresql.jp/
//PostgreSQLじゃなかったらヌルーしてね
0852nobodyさん
2005/10/14(金) 10:44:09ID:???これに尽きる
0853nobodyさん
2005/10/14(金) 13:22:00ID:hq2CEuCn0854sage
2005/10/14(金) 13:22:54ID:/+ebJ9UKくだらなさすぎて、スルーされるかと思いました。
参考書も買ったのですが、少し理解力に欠けまして・・・
もう少しがんばってきます。
0855nobodyさん
2005/10/14(金) 13:35:54ID:???佐藤
佐藤
鈴木
佐藤
田中
佐藤
田中
と言う感じで書かれている中から同じ名前が3つ以上ある者を
変数に持ってくるにはどうすればいいんでしょうか?
ほんと初心者ですいません・・・
0856nobodyさん
2005/10/14(金) 13:51:01ID:???1) file でテキストファイルを読み込んで配列に展開
2) array_count_values で 1) の配列を元に配列データと出現回数の連想配列を作成
3) 2) の連想配列から出現回数 >=3 をチョイス
0857nobodyさん
2005/10/14(金) 15:42:30ID:???すいません、小一時間悩んだんですが出来ませんで、
3) 2) の連想配列から出現回数 >=3 をチョイス
の所を簡単に書いていただけないでしょうか?
0858nobodyさん
2005/10/14(金) 15:47:38ID:???0859856
2005/10/14(金) 16:16:18ID:???う〜ん、余計なお世話かもしれんが…
1)、 2) はまるまる答えを書いているようなもので、唯一 3) が
ロジック(と言うほどのものでもないけど)を考えるところだから、
ここを丸投げしなければならないのはプログラムを作る人としてはつらいかも。
3 回以上出現する名前が複数存在する場合を考慮して配列($achoices)に
格納した例が以下。絶対に複数存在しないのであれば、普通の変数でもいい。
<?php
$alines = file('test.txt');
$anames_counts = array_count_values($alines);
$achoices = array();
foreach ($anames_counts as $name => $count) {
if ($count >= 3) {
// echo "$name<br>"; //debug
$achoices[] = $name;
}
}
print_r($achoices);
?>
0860nobodyさん
2005/10/14(金) 16:31:00ID:???名前でソートしてforeach
3連続ヒットでピックアップ
でかいならwhileで一行ずつ読み
if (isset($count[$name])) $count[$name]++; else $count[$name]=1;
のように集計
もしくはDBに突っ込んで
SELECT name, COUNT(name) AS num FROM test GROUP BY name HAVING COUNT(name) > 2;
0862nobodyさん
2005/10/14(金) 16:39:51ID:???0863855
2005/10/14(金) 16:56:17ID:???一応配列にはしなかったんですが>>859と同じようにしたつもりなんですが
出力されませんでした。
で、>>859をコピーさせて頂いたんですがやはり出力しません・・・
$anames_counts = array_count_values($alines);
print_r($anames_counts);
だとちゃんと出てくるので何だかよく分からなくなってしまいました。(@_@;)
ご迷惑かけて申し訳ありませんです。
0864nobodyさん
2005/10/14(金) 17:06:12ID:???おそらくテキストファイルの方がおかしいんじゃない?
ちゃんと1行に1つの名前にしてる?
ファイルのパス間違えてない?
0865855
2005/10/14(金) 17:17:07ID:???新しくtest.txtで打ち直してやってみたんですが、
$anames_counts = array_count_values($alines);
print_r($anames_counts);
だと
Array ( [佐藤 ] => 4 [加藤 ] => 1 [山田 ] => 1 [飯田] => 1 )
で出るんですが、foreachの処理を入れるとやっぱり空白になっちゃいます
0867nobodyさん
2005/10/14(金) 17:23:52ID:???0868nobodyさん
2005/10/14(金) 17:25:17ID:???0869nobodyさん
2005/10/14(金) 17:26:41ID:???そのままコピペしたんだろ?全角スペースが入っちゃってるでしょ。
全角スペースを消せばOKだ
0872nobodyさん
2005/10/14(金) 17:31:42ID:???それ直したらちゃんと動いたよ.当たり前だけどww
0873nobodyさん
2005/10/14(金) 17:35:38ID:???可能でしょうか?
0874nobodyさん
2005/10/14(金) 17:38:22ID:???0875855
2005/10/14(金) 17:41:48ID:???えー、全くお察しの通りでこちらでも動きました。
本当にご迷惑おかけしましたm(_ _)m
ご親切にしてくれた方、有難うございました。
0876nobodyさん
2005/10/14(金) 18:18:00ID:???http://www.asial.co.jp/products/jpgraph/japanese.phpを参考に変更もしました。
フォントを呼び出すにはどうすればよいのでしょうか?当然ながら$graph->title->SetFont(FF_PMINCHO);ではなりませんでした。
<?php
require_once("jpgraph/jpgraph.php");
require_once("jpgraph/jpgraph_bar.php");
$objGrh = new Graph(450,250,"auto");
$objGrh->SetScale("textlin");
$objGrh->title->Set("bbb");
$objGrh->xaxis->title->Set("ccc");
$objGrh->xaxis->title->Set("テスト");
$data=array(array(500,100),array(400,200));
$objPlot[]=new BarPlot($data[0]);
$objPlot[]=new BarPlot($data[1]);
$objPlot[0]->SetLegend('AAA');
$objPlot[1]->SetLegend('BBB');
$objPlot[0]->SetFillColor('[email protected]');
$objPlot[1]->SetFillColor('[email protected]');
$objGbp=new GroupBarPlot($objPlot);
$objGbp->SetWidth(0.80);
$objGrh->Add($objGbp);
$objGrh->Stroke();
?>
0877876
2005/10/14(金) 18:40:29ID:???他のアルファベットの部分を日本語にしたいのです。
上の構文でもグラフは出力できますが、日本語の部分は文字化けしています。
0878nobodyさん
2005/10/14(金) 18:46:29ID:???当然ながら
jpgraphに渡される文字列がUTF-8になっていますよね?
0880nobodyさん
2005/10/14(金) 20:51:06ID:???ファイルの最初にどんどん挿入していく方法ってありますか?
たとえば
1
2
3
とあったときに4を一番上の行に追加して
4
1
2
3
としたいのですが。
0882nobodyさん
2005/10/14(金) 21:00:25ID:???0884nobodyさん
2005/10/14(金) 21:02:09ID:???0885nobodyさん
2005/10/14(金) 21:21:55ID:???0886nobodyさん
2005/10/14(金) 21:24:45ID:???俺の場合はDB使わずに、普通にファイル読み込んで、先頭の行に挿入するという方法が知りたいのです。
正規表現で ^ でリプレイスするというような方法しかないですか?
0887nobodyさん
2005/10/14(金) 21:29:56ID:???0888nobodyさん
2005/10/14(金) 21:39:17ID:87Z0VpJT同名で別の拡張子のファイルを消す良い方法はあるんでしょうか?
ちなみにこれ↓ではダメでした…。
$del_file_name='/usr/local/apache/htdocs/img/'."img_001".'.'."***";
unlink( $del_file_name );
0889nobodyさん
2005/10/14(金) 21:46:13ID:???ライブラリ使わないとなると、globとかでリスト作って一個ずつ消すしかなさそう
``でシェル呼べばそれで終わりだけどね
0890nobodyさん
2005/10/14(金) 21:56:45ID:???マニュアルに参考になるサンプルって結構あるよね。
unlink
To delete files using wildcards:
<?
function delfile($str)
{
foreach(glob($str) as $fn) {
unlink($fn);
}
}
?>
0891nobodyさん
2005/10/14(金) 22:01:11ID:???殆どのファイルシステムでファイルの書き込みは
良くてデータの追記ができるぐらいで、データ全体の置換が普通。
0893nobodyさん
2005/10/14(金) 22:06:54ID:???データ構造がわからんと何とも言えん。言えることは「DB使え」のみ
0895nobodyさん
2005/10/14(金) 22:25:33ID:???0897nobodyさん
2005/10/14(金) 23:18:42ID:???<FORM action="input.php">
<INPUT type="text" name="data1">
<INPUT type="text" name="data2">
<INPUT type="text" name="data3">
:
input.php の中で data1〜n に入力ミスがないか調べた上で、
data1〜n に入力されたデータを output.php に送りたいのですが、
これは一体どうやれば良いのでしょうか?
header("Location:")を使うと値は渡せませんし…。
入力ミスがあった時は「エラー!! **個目のデータを入力し直して下さい」と表示し、
入力ミスがない場合は次のステップへ進む、という処理をしたいのです。
0898nobodyさん
2005/10/14(金) 23:24:15ID:???0899nobodyさん
2005/10/14(金) 23:29:02ID:???解答ありがとうございます。
セッション変数にそんなに多量の情報をブチ込んでも大丈夫なんですか?
ログインの過程でセッションを触ったので、セッション変数でのやり方なら分かるんですが、
何かスマートでない感じがして…。
0900nobodyさん
2005/10/14(金) 23:41:17ID:???具体的に
0901876
2005/10/14(金) 23:42:44ID:???エンコーディングってファイルとして保存するときに設定するやつのことですか?
それなら、EUCと改行はLFにしています。
訳の分からないことを言っていたら、教えて頂けたらありがたいです。
0902nobodyさん
2005/10/14(金) 23:43:13ID:???<INPUT type="text" name="data2">
<INPUT type="text" name="data3">
:
と書きましたがこれが結構あるんです。最大で50個程度。
0904nobodyさん
2005/10/14(金) 23:53:41ID:???表示に使うファイルをincludeなりrequireなりするとややこしくならなくてよいような。
>>901
jpgraphに渡す文字列はUTF-8にしてあげてください。
0908nobodyさん
2005/10/15(土) 01:17:43ID:???ファイルの後ろに足して、あとから後ろから数行だけ読み込むって処理はできますか?
feofなんかで回して止まった時点の直近の配列数個とかいう手段以外でもっとスマートなやり方が
あればいいんですが、どうなんでしょうか。
0910nobodyさん
2005/10/15(土) 01:32:38ID:???>>874とか。ファイルの操作ならtailやtocを参考にしてみては
質問自体はFAQだけど、データ構造しだいだから解答しようがない
スマートにやりたいならスマートなアルゴリズムで扱える構造に設計するしかないよ
0911nobodyさん
2005/10/15(土) 01:33:13ID:???○tac
0913nobodyさん
2005/10/15(土) 01:42:28ID:???改行なんてものは単なる文字の1つなんよ。
言ってしまえば、aとかbとか他の文字とおんなじ扱いなので、
行を単位にして(その部分だけに)アクセスしたり編集(挿入・削除・追加 etc)する方法は無いんよ。
どうしてもやりたきゃプログラムを書く人が自分でやれってな感じ。
0914nobodyさん
2005/10/15(土) 01:44:13ID:???0915nobodyさん
2005/10/15(土) 01:51:20ID:lw7SpU920916876
2005/10/15(土) 02:41:12ID:???UTF−8で渡すとは、つまり、>>876を保存するときにUTF−8とLFで
保存すれば良いのでしょうか?それでしたら、もうやってみたのですが普通に文字化けしているのです。
0917nobodyさん
2005/10/15(土) 02:45:58ID:???$objGrh->xaxis->title->Set(mb_convert_encoding("テスト", "UTF-8", "auto"));
ということをいいたいんじゃまいか?
0918nobodyさん
2005/10/15(土) 02:52:10ID:???0919876
2005/10/15(土) 03:09:54ID:???ご支援ありがとう。
$objGrh->xaxis->title->Set("テスト");の行の下に足してみました。
その後、上の行を消し代わりに入れてみました。
ですが、文字化けには全く変化がありませんでした。
0920nobodyさん
2005/10/15(土) 03:29:01ID:???$objGrh->title->Set("bbb");
$objGrh->xaxis->title->Set("ccc");
$objGrh->yaxis->title->Set(mb_convert_encoding("テスト", "UTF-8", "auto"));
$objGrh->yaxis->title->SetFont(FF_GOTHIC, FS_NORMAL, 16);
xaxisのタイトルに2回Setしてるけど?
0921nobodyさん
2005/10/15(土) 03:33:57ID:???>フォントを呼び出すにはどうすればよいのでしょうか?当然ながら
>$graph->title->SetFont(FF_PMINCHO);ではなりませんでした。
これ
$graph->title->xaxis->SetFont(FF_PMINCHO);
じゃないの?
0922nobodyさん
2005/10/15(土) 03:35:16ID:???$graph->xaxis->title->SetFont(FF_PMINCHO);
0923876
2005/10/15(土) 03:44:59ID:???していませんでした。先ほどの書き込みに習い8行目以降をそのまま
コピペしてみましたが、やはりなりませんでした。
設定ミスなど、どこか根本的なエラーがあるのでしょうか?
0924876
2005/10/15(土) 03:50:02ID:???すみません。>>876で記載したURLに載っていたので、そのまま引用しました。
あの構文は、未だに全く理解できません。
0925nobodyさん
2005/10/15(土) 04:17:10ID:???1の通りにfontを解凍すれば問題ないと思うけどねぇ
バージョンでも違うみたいだから
http://www.gadgety.net/shin/tips/unix/php-gd.html
ここも参考に
0926nobodyさん
2005/10/15(土) 04:42:07ID:8GPgJI8Neアクセレーターはちゃんと動かないし、Zend Optimizerは未対応といわれて、動作しませんorz
0927nobodyさん
2005/10/15(土) 12:47:45ID:???1レコード1ファイルで連番付けて保存しとけば?
所詮テキストファイルで管理できる程度のレコード数なら無問題
0928nobodyさん
2005/10/15(土) 12:57:38ID:???function hoge ($params, &$result) {
・・・
}
という記述がありました。
この &$result についている & の意味(効能)を教えてください。
0929nobodyさん
2005/10/15(土) 13:04:02ID:???0930nobodyさん
2005/10/15(土) 13:21:28ID:???ドキュメントを読むか、簡単なプログラムを書いて自分で確認する癖を付けた方が良かっぺ。
<?php
function hoge ($params, &$result) {
$params = '1'; $result = '2';
}
$workparams = 'A'; $workresult = 'B';
hoge($workparams, $workresult);
echo "workparams = $workparams<BR>";
echo "workresult = $workresult<BR>";
?>
0931nobodyさん
2005/10/15(土) 13:23:15ID:???まあ一応リンクくらい貼っておきますか
http://www.php.net/manual/ja/language.references.pass.php
0932nobodyさん
2005/10/16(日) 06:18:31ID:???どこを監視すれば管理人の生死について出来るだけ正確な判定できると思いますか?
0933926
2005/10/16(日) 06:42:28ID:???4.4.0に合うアクセレーターは見つからなかったので、4.3.11のportsを拾って再構築してeAcceleratorを入れました。
0935nobodyさん
2005/10/16(日) 07:01:48ID:J/3a2VXK0936nobodyさん
2005/10/16(日) 07:31:21ID:???アクセスできるかどうかはわかんないけど
0937nobodyさん
2005/10/16(日) 09:27:28ID:???思い出しちゃった…合掌
0938nobodyさん
2005/10/16(日) 11:43:02ID:RSZhtmwPこれもVIPクォリティ?
小学6年生の男女が裸体うp祭り中!!!
VIPになら小学6年生ぐらいは来てるだろ?
http://ex11.2ch.net/test/read.cgi/news4vip/1129427490/
0939nobodyさん
2005/10/16(日) 12:04:18ID:???0940nobodyさん
2005/10/16(日) 15:01:33ID:4AFyuy0Oの形ではなくて
test.php?aaa
のようなクエリーを受け取る方法を教えてください
変数はどんなんになるんでしょうか
0943nobodyさん
2005/10/16(日) 15:12:11ID:???PATH_INFOやmod_rewriteについてもそのうち調べてみれば?
test.php?aaa の ? なしにデータを受け取れるようになるよ.
0946nobodyさん
2005/10/16(日) 16:22:25ID:2l1eRJuSperlでa〜zを配列に入れるばあい下記のようにすると思いますが
@a=('a'..'z');
phpではこのようなことできないのでしょか?
$a=array('a'..'z');
ってだめなのですが、他にやり方あるのでしょか?
0947nobodyさん
2005/10/16(日) 16:39:33ID:???0948nobodyさん
2005/10/16(日) 16:45:42ID:???↓
0949nobodyさん
2005/10/16(日) 16:47:48ID:???for($i = ord('a'); $i <= ord('z'); $i++) {
$a[] = chr($i);
}
var_dump($a);
C言語風だけどこれしかないんじゃないかな・・・
やったことないからしらねww
0950nobodyさん
2005/10/16(日) 16:49:35ID:???これを上手く使えんかな
0951nobodyさん
2005/10/16(日) 16:50:51ID:???0952946
2005/10/16(日) 16:52:24ID:???皆さんありがとう!
ごめんなさい自己解決してしまいました。
なんか
$a=range('a','z');
で行くみたいです。
0953nobodyさん
2005/10/16(日) 16:53:58ID:???0956nobodyさん
2005/10/16(日) 17:34:25ID:???0957nobodyさん
2005/10/16(日) 17:45:55ID:???ブラウザが読み込み中になるのですが、その間に「処理中」という風に
別のメッセージを出す事って可能なのでしょうか?
サーバでの処理が長い場合は、別メッセージを出す事は可能なのですが
クライアント->サーバ間の処理が長い場合はどうすれば…?
0961957
2005/10/16(日) 19:03:24ID:???PHP-usersの過去ログ検索は一通りしたのですが、クライアント側からデータを
サーバに受け渡すのに時間がかかる場合のものは見つかりませんでした。
サーバでの処理に時間がかかる場合にメッセージを表示させたりというのはあった
のですが。
フォームからsubmitするときに、2つのプロセスを立ち上げて片方は「アップロード中」
というメッセージを表示して、もう一つのプロセスでファイルアップロード自体を
扱うという事が出来れば良いのですが…。
0962nobodyさん
2005/10/16(日) 19:36:30ID:PiJRyBSb0963nobodyさん
2005/10/16(日) 19:37:35ID:???0964nobodyさん
2005/10/16(日) 19:39:34ID:PiJRyBSbなんか資格とればっていわれたので
0965nobodyさん
2005/10/16(日) 19:51:33ID:???それにメジャーじゃないし。
0966nobodyさん
2005/10/16(日) 19:51:35ID:???すまんあった
http://www.zend.co.jp/certification/
0967nobodyさん
2005/10/16(日) 19:55:33ID:???この度アクセスログを取ることにしたのですが、負荷の問題を考え、PHPを使おうと思いいろいろみて調べ、
PHPのタグをトップページに埋め込もうと思いました。
しかし、環境変数の取得方法がわかりません…
もしよろしければ、来訪者の環境変数を、丸ごとでよいのでそのままdatファイルに吐いていくコードを教えていただけないでしょうか…?シンプルなものでよいので
よろしくお願いしますm(_ _)m
0968nobodyさん
2005/10/16(日) 20:03:08ID:6lmrKTje検定と資格を間違えるな
0970nobodyさん
2005/10/16(日) 20:07:34ID:???アクセス解析のプログラムなんて腐るほどあると思うんだけど,
自作する必要あるの?
ttp://small.littlestar.jp/doki/catid_11_blogid_5.html
0972nobodyさん
2005/10/16(日) 20:40:12ID:???は質問内容から、何も判っていないのでは?と思われる。
・PHPがよくわからなかったのでCGIを全てperlですましていた
・負荷の問題を考え、PHPを使おうと思い
・PHPのタグをトップページに埋め込もうと思い
・シンプルなものでよいので
あたりからプンプン臭ってくる。
0973nobodyさん
2005/10/16(日) 20:57:32ID:???それか分からないところを整理してから質問してくれないと.
0975nobodyさん
2005/10/16(日) 21:15:54ID:???まぁ、range()使うのが素直なやり方だけど。
$s='abcdefghijklmnopqrstuvwxyz';
for($i=0;$i<strlen($s); $i++) echo $s[$i]."<br>";
0976nobodyさん
2005/10/16(日) 21:18:39ID:???0978nobodyさん
2005/10/17(月) 00:08:17ID:???0979nobodyさん
2005/10/17(月) 02:50:27ID:???そらすげーな。
0980nobodyさん
2005/10/17(月) 04:06:58ID:???JavaScriptで出せばいいんじゃないの?
古くて簡単な方法なら別窓やiframeをうまく使ってsubmitと切り分ければいいし。
Ajaxを使う手もある。
Ajaxなら「何%完了」とか「予想時間」とかもがんばれば出せるのでは?
あ、アップロード中の一時ファイルの場所を別アクセスのプロセスから特定できないと無理か・・・
0981957
2005/10/17(月) 04:28:17ID:???結局、JavaScriptでやりました。別ウインドウを開いて、親ウインドウを監視してって感じで。
どんなやり方にしろ、ファイルのアップロードプロセスを監視する仕組みを入れないと細かい
動作は難しいみたいですね。
Apacheのモジュールに組み込めば実現可能なのかな?
0982nobodyさん
2005/10/17(月) 23:35:25ID:BOI4izQ2教えて頂けますでしょうか。
RedHatLinux9 や FedoraCore2 をインストールしたばかりの状態で、
/var/www/html にLinux上で作成したファイル(.php、.cgi、.html)を
置きます。どのファイルの<head>〜</head>内にも、
<meta http-equiv="Content-type" content="text/html; charset=EUC-JP">
を入れているのですが、LAN内の色々なPCのブラウザから見ると、最初は
全て日本語が文字化けしているのです。もちろん、ブラウザから「表示→
エンコード→日本語(EUC)」とやれば、日本語も正しく表示されます。
ただ、どのファイルの<head>〜</head>内にも、
<meta http-equiv="Content-type" content="text/html; charset=EUC-JP">
と入れているのに、何故文字化けしてしまうのでしょうか。教えて下さい。
お願いします。
0983nobodyさん
2005/10/17(月) 23:40:51ID:???0984nobodyさん
2005/10/17(月) 23:52:48ID:BOI4izQ2982です。ありがとうございます!
httpd.conf の AddDefaultCharset を見たら、全然違う文字コード
になっていました。これをEUC-JPに直し、Apacheを再起動したら、
日本語の文字化けが直りました!
本当にありがとうございました!!
0985nobodyさん
2005/10/18(火) 01:23:17ID:???$headers .= "Content-type: text/plain; charset=EUC-JP\r\n";
$headers .= "From: ". $name. " <". $mail. ">\r\n";
mail(***, ***, ***, $headers);
こんな感じでメールを送ったのですが、文字化けします。
コードはちゃんとEUCで書いてあるのですが、
何が行けないのでしょうか。
文字コードを設定する箇所ってのは他にどんなところがありますか?
0986nobodyさん
2005/10/18(火) 01:26:16ID:nQAMQYvGEUC-JPなど使えない。
0987nobodyさん
2005/10/18(火) 01:29:52ID:???0989nobodyさん
2005/10/18(火) 01:33:43ID:UxZZpwuVfputs($fp,"*");
fclose($fp);
このようなソースで、PHPをブラウザから普通に呼び出せば問題なくファイルに書き込めるのですが、
Ajaxを使いたくてXMLHttpRequestから呼び出しを行うとファイルへの書き込みがされません。
これは仕様なのでしょうか。
XML(ryからPHPを呼び出してファイルへの書き込みが出来る方法があれば教えていただきたく思います。
0990nobodyさん
2005/10/18(火) 01:37:29ID:???0992nobodyさん
2005/10/18(火) 01:51:18ID:???でもサブジェクトは文字化けのままです・・・・
0993nobodyさん
2005/10/18(火) 01:59:47ID:???echo(mb_detect_encoding($str));
これで出力されるのが UTF-8 なんですが、
mb_convert_encodingってこういう使い方する関数じゃなかったりしますか?
ソースコードはEUCです
0994nobodyさん
2005/10/18(火) 03:35:56ID:???間違ってはいない。
$strが短くて余り"特徴的でない"文字のため、
mb_detect_encoding()の判定が失敗しているだけと思われ。
# euc-jpの"あ"が"特徴的でない"とは思わんのだがね。
# そういう点でmb_detect_encoding()の判定精度は高いとはいえん。
0995nobodyさん
2005/10/18(火) 05:35:09ID:hOyr+CzuPHP4.4.0を使用しています。phpMyAdminでは表示されるのでどのように表示するか教えて下さい(;_;)
0996nobodyさん
2005/10/18(火) 05:48:49ID:???0997nobodyさん
2005/10/18(火) 05:49:36ID:???0998nobodyさん
2005/10/18(火) 05:50:10ID:???0999nobodyさん
2005/10/18(火) 05:50:40ID:???1000名無しのエリー
2005/10/18(火) 05:51:09ID:???10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。