【PHP】初心者コーナー 3 Released【スローモード】
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
03/06/11 06:24ID:???ファイル MySQL PostgreSQL 正規表現でも なんでもいってみ
でもな、アホな質問であっても詳しく質問しろよ。 ネタはおもしろく書けよ。
前スレ http://pc2.2ch.net/test/read.cgi/php/1048442813/l50
■PHPの普通の質問はあっちな、【PHP】質問スレッド Part8
http://pc2.2ch.net/test/read.cgi/php/1050249148/l50
■PHPへ移行したいPerl信者はあっちな、【待望】PerlユーザのためのPHP入門
http://pc2.2ch.net/test/read.cgi/php/1046326634/l50
■マニュアル嫁ってうるさいのがいるからちょっとは嫁な、
http://www.php.net/manual/ja/
■おまえ初心者なら入門本くらいかっとけな、PHP関連の書籍(但しPHP出版系お断り)
http://pc2.2ch.net/test/read.cgi/php/985315574/l50
■これはなズープスと読むらしいがあっちな、XOOPS
http://pc2.2ch.net/test/read.cgi/php/1031736248/l50
でもな、ここで書きたかったらここで書き。 あとは関連な、>>2
0271あぼーん
NGNG0273nobodyさん
03/06/30 05:11ID:OSudLwdSアカウント名に、半角英数小文字のみ
abcdefghijklmnopqrstuvwxyz0123456789_-
だけにしたいのです。
フォームから上記以外の文字を入力された場合、
駄目!って言いたいんだけど、
正規表現は難しそうなので、
if ( mb_convert_kana($account,"akh") != $account ) { echo "駄目!!"; }
で行こうと思ったんだけど、
全角の漢字とか、スペースを入力されてしまいそう・・・
記号もたくさん入力されそう・・・
なんかいい方法ありますか?
0274nobodyさん
03/06/30 06:52ID:???ちょっと分からなくても正規表現やっておくといいと思うよ。
$a がフォームから受け取った文字
ereg("^[a-z0-9_-]+$", $a)
これで期待通りの結果が得られると思うけど、意味は自分で調べるとよろし。
それよりお前ら、PHP5.0.0 Beta1なんてのが表舞台に出てきましたよ。
0275nobodyさん
03/06/30 10:12ID:aQ17FmN/EUCで書かれたファイルで作成するので
$line = mb_convert_encoding($line,"ISO-2022-JP","EUC-JP");
$subject = mb_convert_encoding($subject,"ISO-2022-JP","EUC-JP");
mail($mail,$subject,$line,"From: [email protected]\r\nReply-To: [email protected]");
としています。
送られてきたメールを見るとタイトルは文字化けしているのですが、
メッセージの方は問題無く表示されています。
なにが問題なのでしょう。
0276255
03/06/30 10:31ID:JZyVHkmBありがとうございます!
m(_ _)m
べんきょうになりますな.
0278275
03/06/30 11:00ID:???mail()の個所をmb_send_mail()と変更しただけで、
mb_send_mail()を使用しましたが、
届いたメールは件名はあるがメッセージ自体が無い状態で届いてしまいました。
これもまたなぜなんでしょう。
0280275
03/06/30 11:35ID:???操作自体も同じですし。
0282nobodyさん
03/06/30 12:26ID:???$subject = mb_convert_encoding($subject,"SJIS","EUC");
$subject = '=?ISO-2022-JP?B?'.base64_encode($subject).'?=';
してから、mail関数で送信してみ
0284nobodyさん
03/06/30 16:01ID:???fileで読み込むと全行読み込むから効率が悪いと思うのです。
0285あぼーん
NGNG0286nobodyさん
03/06/30 17:43ID:???0288あぼーん
NGNG0289nobodyさん
03/06/30 22:15ID:???0290nobodyさん
03/07/01 11:51ID:???0292nobodyさん
03/07/01 21:20ID:???Shift-JISのファイルをEUCに変換できますか?
↓みたいなやつ作ったんですけど、データファイルがShift-JISだったんで読み込めない(汗
<?php
$data = file ("$file");
print $data;
?>
0293nobodyさん
03/07/01 22:15ID:???mb_convert_encoding(文字列,出力文字コード,入力文字コード)
で文字列ごとに変換しないとだめなのかも
PHPはじめて10日くらいなので詳しくは知りませんが
0295nobodyさん
03/07/01 22:26ID:???"送信"を押しても何も表示されません。
どこが悪いのか・・・
<FORM action="<?php echo($_SERVER["PHP_SELF"]) ?>" method="POST">
なまえ:<INPUT type="text" name="yourname"><br>
<input type="submit" name="SUBMIT" value="送信"> <input type="reset" name="reset" value="リセット">
</FORM>
<?php
if ($SUBMIT != "" ) {
echo ($yourname);
}
?>
0297295
03/07/01 22:52ID:???ありがとうございます
>>295はPHP入門という本を参考にしてます
一番やさしそうだったんで買ったんですけど、たしかに内容古いかも
$_REQUESTを使うのかな?
もうちょっと試してみます
0299nobodyさん
03/07/01 23:26ID:???0301295
03/07/02 00:07ID:???echo ($_REQUEST["yourname"]);
}
でようやく出来ました
ありがとうございましたー
0303nobodyさん
03/07/02 01:52ID:???まちがっちゃーいないんだけど
$_REQUESTはGETとPOST、COOKIE、FILESを区別しないから
セキュリティーホールになりやすい。
つーかなんで>>299の優しさをふいにするかなあ。
$_POST['SUBMIT'],$_POST['yourname']にしる!
0306あぼーん
NGNG0307nobodyさん
03/07/02 07:06ID:???ごめんごめん。でも...それ...古いし。
4.1以降でも非推奨だしPHP5では使えんでしょ?(憶測
スルーしたのは素直に悪かったと思ふ。
0308nobodyさん
03/07/02 08:22ID:???PHP5では使えなくなるのか・・・
0309nobodyさん
03/07/02 15:03ID:iDV7N0wg0310309
03/07/02 15:14ID:???0311あぼーん
NGNG0312nobodyさん
03/07/02 15:39ID:???0313K
03/07/02 15:55ID:+4nJpvGg0314あぼーん
NGNG0315あぼーん
NGNG0316nobodyさん
03/07/02 20:54ID:???0317301
03/07/02 21:24ID:???あわわ・・・
ttp://search.net-newbie.com/php/language.variables.predefined.html
↑にもユーザ入力機構によりスクリプトに入力される全ての変数で、 このため、信頼することができません
ってありました。
以後、気をつけます。
0318404.HDML ◆StMXML.EXE
03/07/03 03:55ID:???if(ereg(一致条件,評価する変数,$hoge)){ # 眠いので勘弁して
die(count($hoge));
}
一致条件にマッチした箇所が配列として$hogeに入るので、
後は$hogeをcount()関数で数える、という事を思いついた。。
0320nobodyさん
03/07/04 00:29ID:WD3uwLUpPHPから、linuxの認証を使い回すことは可能でしょうか?
また、その際、パスワードの変更なども可能でしょうか?
0322nobodyさん
03/07/04 09:14ID:DNjraE66リサイズは出来たんですけど、減色の方法がわかりません・・。
0323nobodyさん
03/07/04 14:36ID:???$headers=getallheaders();
$ua = $headers['User-Agent'];
としています。
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)"が欲しいのですが
"Mozilla/4.0"
までしかデータベースに入りません。どうすれば良いのでしょうか。
ローカルで試しています。PHP 4.3.2 Apache/1.3.24
ご教授願います。
0324nobodyさん
03/07/04 16:03ID:ykyCw+ELPHPからFlashに送るためには
どういう風にスクリプトを書けばいいんでしょう?
Flash側はsendAndLoadなどで送られてきた
データを受け取ることはわかっているのですが
PHPからどう出力すれぱいいのかわかりません。
(例えばecho ($hoge)などで出力するわけじゃないですよね…)
あともうひとつFlashからPHPに変数を送る際に
返り値もなにも受け取らず、ターゲットウインドウもなし
ただ単純に変数を送るだけってことはできるんでしょうか?
sendで送信後に送り先の「〜.php」が開いてしまいます。
↑板違いなFlash含んでて申し訳ないです。
0325nobodyさん
03/07/04 16:22ID:???0327nobodyさん
03/07/04 21:18ID:???$in{'FROM'} =~ s/◆/◇/g;
if ($in{'FROM'} =~ /#(.+)/){
my $key = $1;
my $salt = substr($key."H.", 1, 2);
$salt =~ s/[^\.-z]/\./g;
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
$trip = ' ◆</b>' . substr(crypt($key, $salt), -8) . '<b>';
はどうすればよいでしょうか?
$salt =~ tr/:;<=>?@[\\]^_`/ABCDEFGabcdef/;
でつまってしまいました。厨な質問で申し訳ないですがよろしくお願いします
0330nobodyさん
03/07/04 22:14ID:???0331nobodyさん
03/07/04 22:15ID:2pHtYtXT駄目ならすいませんが誘導ください。
phpBBをインストールし、Global Announcement Modというものを新しくインストールしたのですが、なにも項目も追加されてませんし、「重要」トピックなどで投稿しても全てのフォーラムに反映しません。
コレはどうすれば宜しいのでしょうか?
宜しくお願いします
0332名無し
03/07/04 22:26ID:P/UD1L9mエラーが出てしまいます。下記の記述で間違っている個所があるのでしょうか?
$file="file.dat";
if(!file_exists($file)){
$fp = @fopen($file,"w") || die("error");
flock($fp,LOCK_EX);
$print="aaa";
fputs($fp,$print);
flock($fp,LOCK_UN);
fclose($fp);
}
ホントに初歩的な質問ですみません。。。
ご回答お願いします。
0334nobodyさん
03/07/04 23:11ID:???>$fp = @fopen($file,"w") || die("error");
var_dump($fp); してみてください。
これだと、たぶん $fp がリソースではなくbool型になってる。
正しくは $fp = @fopen($file,"w") or die("error");
こうすれば = が処理される前に $fp が評価されるはず。
演算子の優先順位の項目を参照のこと。
質問するときはどこでどんなエラーが出てるのかちゃんと書けって
いつも言ってるだろこのバカチンが !!
0335nobodyさん
03/07/04 23:13ID:???評価されるのは $fp に入る前の fopen(); の結果ね。
0337nobodyさん
03/07/04 23:31ID:???0338nobodyさん
03/07/04 23:49ID:???This will supress the injection of error messages into the data stream output to the web client.
0339nobodyさん
03/07/05 00:34ID:???0340336
03/07/05 00:42ID:???対象行がdelete掛けられた場合の処理(逃げ)は必要だよ
0341nobodyさん
03/07/05 04:20ID:???0342nobodyさん
03/07/05 08:20ID:???>こうすれば = が処理される前に $fp が評価されるはず。
ダメじゃん・・・。
0344nobodyさん
03/07/05 10:06ID:???$fp = @fopen($file,"w");
if ($fp) {
#処理
}else {
die ("error");
}
0347323
03/07/06 13:15ID:???フィールドのタイプはtext、文字数は設定なし、取り出してるクエリは
SELECT *
FROM `テーブル名`
です。
よろしくお願いいたします。
0348あぼーん
NGNG0350あぼーん
NGNG0352323
03/07/06 20:28ID:kEFDIfkpレスありがとうございます。
print "<input type=\"hidden\" name=\"ip\" value=$ip>\n";
print "<input type=\"hidden\" name=\"ua\" value=$ua>\n";
のような形でフォームから普通に配列に入れてテーブルに追加しているつもりだったのですが
DWMXを使ってしまったのでよく解らなくなりました。下記のあたりはどうすればよいのでしょうか。
function GetSQLValueString($theValue, $theType, $theDefinedValue = "", $theNotDefinedValue = "")
{
$theValue = (!get_magic_quotes_gpc()) ? addslashes($theValue) : $theValue;
switch ($theType) {
case "text":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "long":
case "int":
$theValue = ($theValue != "") ? intval($theValue) : "NULL";
break;
case "double":
$theValue = ($theValue != "") ? "'" . doubleval($theValue) . "'" : "NULL";
break;
case "date":
$theValue = ($theValue != "") ? "'" . $theValue . "'" : "NULL";
break;
case "defined":
$theValue = ($theValue != "") ? $theDefinedValue : $theNotDefinedValue;
break;
}
return $theValue;
}
0353あぼーん
NGNG0355名無し
03/07/07 16:56ID:+XnYDKVbようやく解決しました。「or」に直し、if文をなくすとOKでした。
ありがとうございました。
PS.>>337 @fopen=>の@は、エラー抑止させるという機能です。
0356あぼーん
NGNG0357nobodyさん
03/07/07 18:33ID:???調べたところあんまり評判がよくないような気がします。
他にクールなファイルロックの手段ってありますか?
0358nobodyさん
03/07/07 18:37ID:???【Perl】ファイルロック(排他処理)について語ろう
http://pc2.2ch.net/test/read.cgi/php/1024795138/
0359nobodyさん
03/07/07 21:58ID:???Windows2000Professional sp3
Apache2.0.46
PHP 4.3.2
Firebird 1.5RC3
でPHPソース EUC-JP
データベース EUCJ_0208
magic_quotes_gpc off
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = EUC-JP
mbstring.encoding_translation = On
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
;mbstring.script_encoding = SJIS
でquery結果を Print するとデータベースから取り出した
漢字の 井(0x88,0xE4) が 遺・(0x88,0xE2,0xE1) に
なるんだが、どこがまずいのかさっぱりわからん…
へるぷみー
0360nobodyさん
03/07/08 02:21ID:???0361359
03/07/08 09:14ID:???どうもデータベースの取り出し結果が必ず SJIS になってるような…。
ソース DB
EUCJ EUCJ 文字化け
EUCJ SJIS 文字化け
SJIS SJIS ○
SJIS EUCJ ○
出力設定の変更では何も変化なし。
0362nobodyさん
03/07/08 12:11ID:jypS6q60msi形式のファイルをアップロードするとコピーされません。
他の形式のファイルでは問題なくアップロードできるのですが、
何か問題があるのでしょうか?
0363nobodyさん
03/07/08 12:58ID:???他の原因を探ってみては?
・ファイルサイズ
・自分でmsiを拒否ってた。
・ブラウザで存在確認しただけだった。
・そもそもmsiの中の人など居なかった等々
0364nobodyさん
03/07/08 13:18ID:jypS6q60いや、拡張子でなくバイナリ的にmsiが何か拒否られてるみたいなんです。
ためしにpdfファイルを拡張子msiに変えて試したら正常にコピーされました。
逆にmsiファイルをpdfに変えてもダメ。他のmsiファイルで試してもダメ。
LAN内の端末なので実際にファイルがコピーされてないことも確認してます。
0365nobodyさん
03/07/08 13:30ID:syho/6wx0366323
03/07/08 14:24ID:???フォームから入力するのをやめたらできました。
0367nobodyさん
03/07/08 19:13ID:???そこで、PHP4.3.2にGD2.0.15のGIFサポート版を
リンクしてコンパイルしようとするのですが、PHPのmakeで
エラーがでてしまいます。どなたか、実践された方居られませんか?
GDの ./configure
./configure \
--with-png=/usr/local --with-freetype=/usr/local --with-jpeg=/usr/local --with-xpm=/usr/X11R6
PHPの ./configure
./configure \
--enable-zend-multibyte --enable-mbstring --enable-zend-multibyte --enable-calendar --with-imap=/usr/local/lib \
--with-mysql=/usr/local/mysql --with-apxs=/usr/local/apache/bin/apxs --enable-exif \
--with-gd=/usr/local --with-zlib-dir=/usr/local/include \
--with-png-dir=/usr/local --with-jpeg-dir=/usr/local --with-freetype-dir=/usr/local --with-xpm-dir=/usr/X11R6 --with-zlib-dir=/usr/local
そのままでは make中
ext/gd/gd.c に undefined reference なエラーが発生するので
展開したGDの gd.* gd_gd.* gd_io.*を ext/gd/ にコピーしてmakeすると
main/internal_functions_cli.c に undefined reference to `gd_module_entry'
なエラーがでてしまいます。どうやら ext/gd/php_gd.h の
extern zend_module_entry gd_module_entry; あたりかなとは思うのですが、
ここで力尽きてしまいました。どなたかご存知の方居られましたら
ご教授ください。なおOSはFreeBSD4.3です。
長文失礼しました。
GIFサポートはこれで、どうやらLZW系のライセンスはクリアしているらしいのですが
ttp://www.rime.com.au/gd/
0368nobodyさん
03/07/10 09:27ID:???0370nobodyさん
03/07/11 01:11ID:jNV68Tt5■ このスレッドは過去ログ倉庫に格納されています