トップページ⇒php
1001コメント342KB

【PHP】下らねぇ質問はここに書き込みやがれ Part19

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/04/09(日) 01:31:18ID:???
PHPに関するくだらねぇ質問用スレです。
ここなら本スレで回答のないお前の下らない質問に回答があるかも知れません。

まず読め【PHP マニュアル】
http://www.php.net/manual/ja/

本スレ【PHP】質問スレッドpart33【php】
http://pc8.2ch.net/test/read.cgi/php/1140027592/

【PHP】下らねぇ質問はここに書き込みやがれpart18
http://pc8.2ch.net/test/read.cgi/php/1142417901/

過去スレは>>2-3あたり
0445nobodyさん2006/04/17(月) 13:10:32ID:???
442のどこを解釈するとそうなるのかわからんw
0446nobodyさん2006/04/17(月) 13:59:46ID:rTnmXweP
すみません、PHPのインストールについて質問です。
PHPでGDライブラリを使いたいので、必要なライブラリをインストールしたのですが
何度やってもFreeTypeを使えるようになりません。(phpinfo()で見てもFreeType Supportが有効にならない)
GD SupportやJPG/PNG Supportは有効になっていてグラフィックス関連の関数も使えるのですが・・・
OSはRedHat9、PHPやGD等のライブラリは全てソースからインストールしています。

○挑戦中のバージョン
PHP4.4.2.tar.gz
gd-2.0.33.tar.gz
libpng-1.2.8.tar.gz
jpegsrc.v6b.tar.gz
freetype-2.1.10.tar.gz
zlib1.2.3.tar.gz

PHPでGD+FreeType環境を構築された方いらしたら、./conigureのオプション指定方法やライブラリのバージョン等を教えていただけないでしょうか?
0447nobodyさん2006/04/17(月) 13:59:47ID:???
>>405
また他人を騙るアホが出てきたな

質問者は語られたくなかったらID付けましょう
ageればID付きます。

って言うのをテンプレ化キボン
それでも本人性の確認は出来ないけどね
0448nobodyさん2006/04/17(月) 14:12:54ID:???
>>446
まずは自分のconfigure晒しなさいな
0449nobodyさん2006/04/17(月) 14:14:30ID:???
>>444
行の途中に /* 〜 */ があったらエラーになるよ
0450nobodyさん2006/04/17(月) 14:23:25ID:???
>>444
いや、エディタのマクロでも使えと…
0451nobodyさん2006/04/17(月) 15:00:29ID:wNvi8T9B
質問します。
僕はmysqlのサーバ名とか「パスワードとかを、db.iniというファイルにまとめて書いておいて、phpで呼び出すときにrequire_once("db.ini")とやって、
mysql_connect($dbserver, $dbuser, $dbpass);とかやっています。
このdb.iniは普通にphpのファイル群と一緒にアップロードしていますが、
こういうのって危険なんでしょうか?
これは別のフォルダに入れてhtaccessとかで認証かけたりしたほうがいいのでしょうか?
0452nobodyさん2006/04/17(月) 15:05:30ID:???
pathが流出したら危険だわな。
外からは見れないところにおくか、拡張子phpとかにして、
見られても生では見えないようにしておかなきゃダメ。
0453nobodyさん2006/04/17(月) 15:06:21ID:???
>>450
いやsedじゃね?
0454nobodyさん2006/04/17(月) 15:27:03ID:???
「でも」とか「等」が読み取れない人って時々いるよな
0455nobodyさん2006/04/17(月) 15:28:46ID:???
つーかこのネタもういいだろw
0456nobodyさん2006/04/17(月) 15:42:55ID:???
>>446
distcleanしてないだけちゃうんか
0457nobodyさん2006/04/17(月) 16:23:04ID:???
外部のサーバーにあるファイルを取得したいのですが、
proxyを経由してfile_get_contentsすることはできますか?
できるとしたら、どうすればいいでしょうか。
0458nobodyさん2006/04/17(月) 16:26:48ID:???
>>451
とりあえずこれだけはやっておけ
君のサイトのhttp://ドメイン/ウニャウニャ/db.ini
としてdb.iniが見えるかテスト
あとhttp://ドメイン/ウニャウニャ/
でディレクトリ内一覧が表示されないかもテスト汁
見えたらアウト
04594512006/04/17(月) 16:49:12ID:???
自己解決しました。
>>458
一応サンクス。
04604512006/04/17(月) 16:50:21ID:wNvi8T9B
>458
レスありがとうございます。
ファイルを直接指定するとばっちり中身が見えます。
ディレクトリ内の一覧も正格に表示されます。
どうすればいいでしょうか?
04614512006/04/17(月) 16:51:45ID:wNvi8T9B
あれ?451は僕です。解決してないです。
よろしくお願いします。
0462nobodyさん2006/04/17(月) 16:53:21ID:???
>>452さんの書き込みはスルーですか
04634512006/04/17(月) 16:59:29ID:wNvi8T9B
>452
見逃してました。どうもです。
一般的というか、こういうときはだいたいこうするみたいな
セオリー的なことが聞きたいです。よろしくおねがいします。
0464nobodyさん2006/04/17(月) 17:19:18ID:???
>>463
それが>>452じゃないのか?
0465nobodyさん2006/04/17(月) 17:20:05ID:???
こんにちわ!!!!!!
phpでWINMXみたいのををつくりたいんですができますか?
0466nobodyさん2006/04/17(月) 17:22:01ID:???
http://www.php.net/manual/ja/

このサイトのマニュアルを一括でプリントできない?
紙で移動中とかに読みたいんだけど
04674652006/04/17(月) 17:24:43ID:???
>>466
いま私が質問しているんですけど?
他の質問は私の質問が解決してからにしてもらえませんかぁ??
0468nobodyさん2006/04/17(月) 17:25:48ID:???
>>467
少し面白いけどうざい。
0469nobodyさん2006/04/17(月) 17:39:54ID:???
>>465
やろうと思えば出来るかもしれません。頑張ってください。
                           以上

--------------解決-----------------------------------
>>466さん他の方、質疑応答どうぞ。
0470nobodyです2006/04/17(月) 18:14:21ID:AOutErUa
---------------------------------- file.php -------------------------------------------
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp" />
<title>無題</title>
</head>
<body>
<form action="file.php" method="POST" enctype="multipart/form-data" name="file" id="file">
<input name="csv" type="file" size="60" /><br />
<input name="" value="追加" type="submit" />
</form>
<?
if(isset($_FILES['csv']['tmp_name'])){
$handle = fopen($_FILES['csv']['tmp_name'], "r");
echo "ファイルの内容<br>";
if ($handle) {
while (true) {
echo mb_convert_encoding(fgets($handle, 8192),"EUC-JP","Shift_JIS") . "<br>";
if(feof($handle)) break;
}
fclose($handle);
}
?>
0471nobodyです2006/04/17(月) 18:15:24ID:AOutErUa

<table border="1" cellpadding="3" cellspacing="0" bordercolor="#000000">
<?
$handle = fopen($_FILES['csv']['tmp_name'], "r");
echo $_FILES['csv']['tmp_name'] . "をオープン<br>";
if ($handle) {
$arr = array();
while (true) {
$arr = fgetcsv($handle, 8192);
if($arr[0]=="") break;
echo '<tr>';
foreach($arr as $value){
echo '<td>' . mb_convert_encoding($value,"EUC-JP","Shift_JIS") . '</td>';
}
echo "</tr>\n";
if(feof($handle)) break;
}
fclose($handle);
}
}
?>
</table>
</body>
</html>
----------------------------------------------------------------------------------------
上記プログラムで、Excelで出力したCSVを読み込みたいのですがLinux環境ですと漢字が入ったCSVが読めません。
テキストエディタで漢字の部分を「"」で囲むと正常に動くのですが・・・
ちなみに、windows版のPHPだと「"」がなくても読み込めました。

Linux環境で読み込む良い方法はありませんでしょうか?
0472nobodyさん2006/04/17(月) 18:17:35ID:???
fgetcsvの代わりに手でごりごり書きましょう。
04734702006/04/17(月) 18:23:32ID:AOutErUa
>>472
やっぱそれしかないのかな・・・

0474nobodyさん2006/04/17(月) 19:02:12ID:???
POSTされた値などに、仮にnl2brする場合ってどうやるのがいいですか?

$num = count($post);
for($i=0;$i<$num;$i++)
$post[$i] = nl2br($post[$i]);


$_POST = array_map('func_nl2br', $_POST);
function func_nl2br($post) {
}
04754742006/04/17(月) 19:04:56ID:qA+rYU42
途中で送信してしまいました。

$_POST = array_map('func_nl2br', $_POST);
function func_nl2br($value) {
$value = nl2br($value);
}

他に良い方法がありましたら宜しくお願いします。
0476nobodyさん2006/04/17(月) 19:16:25ID:???
>>475
$_POST = array_map('nl2br', $_POST);
でよくね?
0477nobodyさん2006/04/17(月) 20:30:41ID:???
(;゚Д゚) マジデ?
04784662006/04/17(月) 20:38:00ID:???
結局webのphpマニュアルでpdfのように印刷できるのはないの?
0479nobodyさん2006/04/17(月) 21:13:28ID:???
お前さんが提示したURLの中にリンクがあるわけだが
0480nobodyさん2006/04/17(月) 22:01:11ID:???
こんにちは。今年に入ってPC弄り始めたケンタです(^^)

先週、HTMLという言語(?)の勉強をはじめました!
気づいたらスルスル頭に入っていくというか、どういうものか理解できてしまった!
勢いでWEBサイトを作って公開しました〜>_<

それで、僕が借りてるサーバはHTMLのソースに広告タグを付加してページを
出力するようになってるんですが、そこにJavaScriptが使われていたので今日勉強しはじめました。

すると・・・もうJavaScriptがだいたいどういうものか理解できてしまった!というかWEBがだいたい
どういうものか分かった!んで、今PHP書いてます!もちろんこれはJavaScriptと違ってサーバ側で
動くのでブラクラにはあまり関係ありませんね(笑)

ぶっちゃけプログラミングってかなり簡単。。基礎さえ分かれば関数調べるだけじゃん。。
0481(^^)2006/04/17(月) 22:04:17ID:???
>>480
(^^)
0482nobodyさん2006/04/17(月) 22:07:16ID:???
芸のナイ奴はコピペしかできない
0483nobodyさん2006/04/17(月) 22:26:55ID:???
>>480
おまえは中2のケンタ以下だな。ホント恥ずかしいよ。
0484nobodyさん2006/04/17(月) 22:53:40ID:???
>>466
http://jp.php.net/get/php_manual_ja.chm/from/a/mirror
04854662006/04/18(火) 00:29:05ID:???
>>484
神降臨。
早速レーザーで焼いてくる
0486nobodyさん2006/04/18(火) 00:40:17ID:???
レーザプリンタなんておまえ、ハイテクなモノ持ってるじゃんw
0487nobodyさん2006/04/18(火) 00:46:12ID:???
>>485
ただ、公式のchm形式のドキュメントは本家のスタッフが
「手動」(恐らく)で生成してるので、普通のオンラインドキュメントの
バージョンに追従しきれてない(若干古い)ので、それには注意しとくこと。
あと生成時に文字化けが混入したりすることが昔は結構あった。

前に「需要があるのなら私家版を公開しましょうか」という人がいたが
余り要望がなかったせいか、今のところそういう動きはない(と思った)
0488nobodyさん2006/04/18(火) 01:53:16ID:ufbV+k46
PATH_INFOの中に%2Fが入っていると404になるんですけど、
どうしてでしょうか?
0489nobodyさん2006/04/18(火) 07:24:42ID:???
>>488
urldecodeされるから
%252Fにしろ
0490nobodyさん2006/04/18(火) 10:43:26ID:Cv/nzOIg
PHPの習作にと日記を作っております。

formからPOSTされたデータの各最後尾に、
余分な空白キャラ(タブかも・・・)がくっついてきていて困っています。

一応データ展開時にrtrimすることで、余分キャラがない状態にはできるのですが、
余分キャラがついてこないようなPOSTの方法、
または余分キャラを発生させないログの作り方などの
ヒントをいただければと思う次第です・・・。

ログの作り方は
$writeDat = $number."\t".$post['title']."\t".$post['honbun']."\t".$post['hi']."\t".$post['ji']."\t".$post['cat']."\t".$image."\n";

展開は
$lines = file($setting['logfile']);
for ($i=0; $i<count($lines); $i++) {
$dat = explode("\t", $lines[$i]);
list($number,$title,$honbun,$hi,$ji,$cat,$image) = $dat;
$cat = rtrim($cat); // なぜかトリムが必要・・・
}

こんな感じです。よろしくお願いいたします。
0491nobodyさん2006/04/18(火) 10:48:16ID:lmSkCOac
http://satukin.7.dtiblog.com/
0492nobodyさん2006/04/18(火) 10:56:00ID:???
めちゃくちゃなPHPソースを制御構造とかに則して
フォーマットしてくれるソフトってありませんか?

if ($a == true) { print "OK"; }

↓

if ($a == true) {
 print "OK";
}

みたいな感じで
0493nobodyさん2006/04/18(火) 11:18:33ID:???
さらにIEのXML表示のように、制御構文単位で折りたためるEditorキボン
0494nobodyさん2006/04/18(火) 12:03:27ID:???
>>490
PHPというより、入力FORMでのHTMLの書き方に問題があると思うけどね。
04954902006/04/18(火) 12:50:33ID:???
>>494氏
レスありがとうございます。
フォームを書いている部分のソースを晒してみます。


function putForm($ua,$setting,$cate) {
echo '<div class="titlebox"><h2 class="diarytitle_2">admin mode</h2></div>';
echo '<form enctype="multipart/form-data" action="admin.php" method="post">';
echo 'title <input type="text" size="60" name="title"><br>';
echo 'category<select name="cat">';
echo '<option value="">--</option>';
while (list($key, $val) = each($cate)) {echo "<option value=$key>$cate[$key]</option>";}
echo '</select><br>';
echo '<textarea rows="6" cols="60" name="honbun"></textarea><br>';
echo '<input type="file" name="uploadfile"><br>';
echo '<input type="hidden" name="action" value="write">';
echo '<input type="submit" value="write">';
echo '</form>';
}
(原因を削除してしまうのを回避するために、関数部分まるごとコピペしました)

0496nobodyさん2006/04/18(火) 13:16:03ID:???
>>490
ログデータを作るところは、implode使ったほうが見通し良くないか?
04974462006/04/18(火) 13:19:13ID:QNgm/uEx
>>456さんの言うとおり全てdist clean してmakeし直したら上手くいきました。

どうみても素人です。本当にありがとうございました。
04984902006/04/18(火) 13:54:39ID:???
>>496氏
ご意見ありがとうございます。
implodeを使うと、formのhiddenで渡している値なども、
まとめてログに格納されてしまうので・・・

あ。

POSTされた内容を$postに丸投げ($post = $_POST)しているから、
そんなことになるのですね。

$post[]の内容を整理して、implodeで見通し良くログを作成したいと思います。
ありがとうございました。
0499nobodyさん2006/04/18(火) 14:58:11ID:???
>>495
> while (list($key, $val) = each($cate)) {echo "<option value=$key>$cate[$key]</option>";}
この$cateはどこでどういう風に作ってるんだ?
そこでゴミ入れちゃってるんじゃないかと思うんだが
05004902006/04/18(火) 15:01:51ID:???
>>499氏
> この$cateはどこでどういう風に作ってるんだ?

別ファイルにて$cateの設定をしております。
$cate => カテゴリーの意 です。

$cate = Array (
'news' => 'おしらせ',
'music' => '音楽',
'baseball' => '野球',
'game' => 'ゲーム',
'yota' => 'ヨタ話',
'test' => 'テスト'
)

こんな感じです。趣味がバレて(*‘ω‘ *)ィャンですが。

0501nobodyさん2006/04/18(火) 15:10:49ID:ksf2FOYQ
PHP Version 4.4.1-pl1
xamppにて環境を構築しています

ファイルのアップロードをPHPで実現しようとscriptを組みましたがファイル名によっては正常にアップロードされない場合があります。
アップロード前に適当な長い文字にリネームすると正常に動作するのですが、これは私の綴りに誤りがあるからなのでしょうか。
web上でphp scriptを配布されている方のscriptも走らせて見たのですが全く同じ現象で、どこが悪いのかさっぱりです。
何かバグや仕様などあるのでしょうか?
0502nobodyさん2006/04/18(火) 15:14:13ID:???
>>501
うpできないファイル名の例を挙げてみたら?
05035012006/04/18(火) 15:19:11ID:ksf2FOYQ
>>502
レス有難う御座います。
そしてすいません。
肝心な部分が抜けていました。

FILE_003.jpgが通らず、200601071530000.jpgは問題無し
前者をリネームし00aerasfsaf5.jpgにしてみましたが通らずといった感じです。

$upfile_name = $_FILES["image"]["name"];
$upfile = $_FILES["image"]["tmp_name"];
$path = dirname($_SERVER[PATH_TRANSLATED]).IMG_DIR;

if (file_exists($upfile)) {
$dest = $path.$upfile_name;
move_uploaded_file($upfile, $dest);
$ext = substr($upfile_name,-4);
rename ($dest,$path.date("20ymdhis").$ext);
$imgname = date("20ymdhis").$ext;
echo $size = getimagesize($path.$imgname);
$W = $size[0];
$H = $size[1];
0504nobodyさん2006/04/18(火) 15:21:28ID:ksf2FOYQ
アップロード処理の一部はこんな感じで書きました。
原因があるとしたら、ファイル名処理が怪しいですかね。
ケツから三行目にechoとか入ってますが、なんちゃってデバッグでちゃんと取得できているか試してた名残です(汗
0505nobodyさん2006/04/18(火) 16:04:58ID:???
>>504
以下で同じ駄目だというファイル名で実験したが普通に動いているぞ?
<?php
$upfile_name = $_FILES["image"]["name"];
$upfile = $_FILES["image"]["tmp_name"];
$path = dirname($_SERVER[PATH_TRANSLATED]).'/upfile/';

if (file_exists($upfile)) {
$dest = $path.$upfile_name;
move_uploaded_file($upfile, $dest);
$ext = substr($upfile_name,-4);
rename ($dest,$path.date("20ymdhis").$ext);
$imgname = date("20ymdhis").$ext;
echo $size = getimagesize($path.$imgname);
$W = $size[0];
$H = $size[1];
}
?>
<html>
<head>
<title>テストたぼけたれ</title>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
</head>

<body bgcolor="#FFFFFF">
<form action="./0.php" method="post" enctype="multipart/form-data">
<input type="file" name="image">
<input type="submit" value="送信">
</form>
</body>
</html>
0506nobodyさん2006/04/18(火) 16:12:20ID:???
>>504
FILE_003.jpgのファイルサイズがやたらに大きいとかじゃないのか?
0507nobodyさん2006/04/18(火) 16:15:06ID:???
ファイルサイズ制限かタイムアウトだろうな。
05085012006/04/18(火) 16:39:57ID:???
たくさんのレス有難う御座います。
仰るとおりファイルサイズ制限によるものでした。
PHPマニュアルから関数を調べてサンプルコードをコピペした際、隠し要素のMAX_FILE_SIZEをそのままにしていたのが原因でした。
初歩的なミスで申し訳ないです。
テンパってると簡単なミスにも気づかないものですね........
0509nobodyさん2006/04/18(火) 16:53:20ID:???
>>490
$imageの後ろにゴミが付くのなら分かるが(これだと改行コードが付くだろう)
$catの方に付くってのはわからんなー
05104902006/04/18(火) 16:59:31ID:???
>>509氏
レスありがとうございます。
当面は「ゴミ付データをrtrimする」という場当たり対処で乗り切りますです。


・・・目覚めは悪いですが、現状の自分のスキル不足だと割り切ります。
これから勉強していくうちに、解決策も思いつくかもしれませんし(つД`)

レスをいただいた諸氏へ感謝(。・ω・。)ゞ

0511nobodyさん2006/04/18(火) 18:30:12ID:???
if( 入力チェック )
$err['name'] = 'エラーメッセージ';
if( 入力チェック )
$err['tel'] = 'エラーメッセージ';
if( 入力チェック )
$err['address'] = 'エラーメッセージ';

のような入力チェックを作ったとして、
表示側を下みたいにした時、

<?= $err['name'] ?>
<input type="text" name="name"><br>
<?= $err['tel'] ?>
<input type="text" name="tel"><br>
<?= $err['address'] ?>
<input type="text" name="address"><br>

error_reportingの設定によってUndefinedが出るんだけど、
error_reporting関数か.htaccessを使って設定を変えるのと、
表示側を

<? if( isset($err['name']) ){ echo $err['name']; } ?>

とするのとどっちがいいんだろう?

0512nobodyさん2006/04/18(火) 18:42:51ID:FgrLDE8s
ある一定の時間まで、カウントダウンのように
分数(秒数)単位で結果を出力させるにはどうしたらいいでしょうか?

http://iodine-127.no-ip.info/math/countdown.php
こんな感じなんですが、文字で出力させたいのです・・・
0513nobodyさん2006/04/18(火) 20:30:38ID:???
>>492
http://pear.php.net/package/PHP_Beautifier
0514nobodyさん2006/04/18(火) 20:31:20ID:0MA4uQo3
文字コードの質問です。
phpのファイルはエディタの設定をシフトJISにしています。ヘッダのcharsetはshift-jisです。phpmyadminの最初のページで、languageをjapanese(ja-sjis)にしています。php.iniのmbstringの項目ではmbstring.internal_encoding = SJISになっています。
以上が全て同じなら、文字コード的に問題無いでしょうか?作ったシステムは今のところ正常に動いています。

それと、なんだかんだいってEUC-jpでつくるのがベストみたいな話を聞いたのですが、なぜでしょうか?

よろしくお願いします。
0515nobodyさん2006/04/18(火) 21:24:39ID:ezAkcLQV
Apache 1.3.34+php 4.3.10で質問です
指定したディレクトリで指定した拡張子のMIME typeが何と設定されてるか
httpd.confやら.htacccessやら調べて取得してくれる関数ってありませんか
0516nobodyさん2006/04/18(火) 23:04:17ID:???
>>514
「なんだかんだでEUC-JP」の理由が理解できないうちは、
なんだかんだでEUC-JPにしとくといいと思うよ。

EUC以外のエンコードを採用するのに確固たる理由や確信が持てるように
なったら、それにすれば良いとです。
0517nobodyさん2006/04/18(火) 23:58:23ID:???
>>514
PHPで構築したサイトを1年以上運営していますが
Shift_JISで特に問題を感じたことはありません。
05184702006/04/19(水) 00:05:26ID:???
作ってみたが、難しい・・・
http://s2.muryo-de.etowns.net/~teti/tools.phps
どっかエラーがありそう。

文字コード「EUC」の改行コード「LF」に変換してからしか使えないし
何か、良い方法無いかな・・・
0519nobodyさん2006/04/19(水) 00:16:42ID:47s4d2RM
アップローダーを作っているのですが、日本語の入ったファイルをアップできません。
というか、2byte文字が入っていると$_FILES['upfile']['name'];でファイル名が収得できません。
拡張子のみが返ってきます。

英数字のみのファイルはアップロード出来るので、2byte文字が原因だとは思うんですがどうすればいいのでしょうか?

$filename = $_FILES['upfile']['name'];
$enctype = mb_detect_encoding($filename);
$filename = mb_convert_encoding($filename,"EUC-JP","enctype");

if (move_uploaded_file($_FILES['upfile']['tmp_name'],$updir.$filename)
== FALSE){
print("アップロードに失敗しました。");
}else {
print( $filename . "アップロードしました。");
}
0520nobodyさん2006/04/19(水) 00:43:16ID:???
例外を使おうと思ってんだけど、どういった場合に使うか迷う。

たとえばDBとコネクトするごとにtryしたほうがいいのか
クエリを発行するごとにtryしたほうがいいのか・・・

皆さんは例外結構使ってまつか?
05215142006/04/19(水) 01:05:36ID:3WMC/UyZ
>517
レスありがとうです。
SJISとかのデメリットってなんですかねぇ?
たまにUTF8を激しく推奨みたいのも見かけますし、
なにがいいのかわからないです。
自分的にはSJISが好きなのですが、予期せぬ\マークがでたりしますが、htmlspecialcharsとかstripslashesをやると消えるので、
あまり不具合も感じません。
具体的なお話がきけると有り難いです。
よろしくお願いします。
0522nobodyさん2006/04/19(水) 01:48:03ID:???
ちゃんとわかってればいいですよ。
DBへ値を保存するときにはちゃんと文字コードを意識しなければだめ。

最近はサーバ環境がユニコードのためか、viでそのまま文字が読めることに
UTF-8はいいなと感じてる。

携帯はSJISがいいでしょ?
0523nobodyさん2006/04/19(水) 01:51:48ID:???
>>521
大抵サーバがEUCだからEUCでスクリプト書いておくと何か問題があったときにviとかで直接見られる。
サーバ上にあるスクリプトを直接見ることで、何者かの手によって勝手に改変されてないかわかる。

・・・てことより、バグ見っけたらサーバ上のスクリプトをコッソリ直すってコトの方が多いなw
だからEUCで書いてた方が楽なときが多い。
全てのサーバがnkfとか入れてるわけじゃないからね。特に海外のレンタルサーバなんて・・・
まぁコメントとか日本語使わなきゃいいんだけど、日本語のコメントなきゃサッパリ分からないしー
0524nobodyさん2006/04/19(水) 01:55:59ID:???
>>521
mb_** みたいなライブラリが使えない状況だと、EUC の方が圧倒的にコーディングが楽だよ。
SJIS は、文字列を途中から評価しようとしたとき、そのバイトが2バイト文字の一部なのか、そしてそれが何バイト目なのかがすんなり判断できない。
あと環境によっては、2バイト文字の一部に \ を含むものがあるというのがネックになる。
ヘタするとスクリプトのパースすら失敗するしね。
できるだけどこでも動くものを作ろうと思うと、SJIS よりも EUC の方が苦労しないと思う。
0525nobodyさん2006/04/19(水) 01:58:44ID:???
PHPでDB(PostgreSQL)使うときにbeginて使えてる?
なんかちゃんと動いてんのかわかんねー
DBへの書き込み自体はうまく行ってるみたいだし
pg_query( 'begin' )だけで問題ないよね?
0526nobodyさん2006/04/19(水) 02:00:59ID:???
>>525
INSERT して ROLLBACK してみりゃいいじゃん。
0527nobodyさん2006/04/19(水) 02:53:15ID:???
あ、なるほどねー
サンクスコ
0528nobodyさん2006/04/19(水) 03:51:04ID:sslsiAd8
すごいくだらない質問ですが答えていただけたら嬉しいです。

PHPでオンラインテストを作る課題を出されました。
mySQLでtest、question、answerが含まれたテーブルを作ったんですが、このテーブル1つだけで

テストを選んだら複数の問題が表示される
1つの問題に3つの答えが表示される
3つのうち1つだけが正解

というスクリプトは書けるでしょうか?
0529nobodyさん2006/04/19(水) 04:08:09ID:enTaLLyd
Functionの引数とglobal、使い分けがわからん。
こういう場合は引数で渡して、こういう場合はglobal宣言っていう例ない?
0530nobodyさん2006/04/19(水) 04:12:06ID:???
>>528
書けなくはないけど、効率悪いか、問題のメンテナンスに難がある。
・テストに対して問題は1対多
・問題に対して選択肢は1対多(ただし3つ固定)
てことを考えると、テストと問題は別テーブル、回答は本来別テーブルだけど、
パフォーマンスに難があれば問題に含めても良い。

…全然PHP関係ないね。DB板向け。
05315282006/04/19(水) 04:32:32ID:sslsiAd8
>>530
最高でもテーブルは2つまでとのことなので、テーブルを2つ作り、テストのみ、問題と回答1、回答2、回答3というようにしたらいいでしょうか?
正解の回答も回答4などとして加えてスクリプトで、選んだ回答が回答4のとき、などと書いて正解を確かめるんでしょうか?

最初DB板で似たような質問したのですが普通にスルーされまして・・・(;´Д`)
PHPのスクリプトの問題なのかと思いこちらで質問させていただきました。
0532nobodyさん2006/04/19(水) 04:46:09ID:???
>>531
スクリプトは関係ない
DB板向け
05335282006/04/19(水) 04:51:23ID:sslsiAd8
>>532
分かりました。
どうもすいませんでした。
0534nobodyさん2006/04/19(水) 07:22:37ID:???
>>511
使う変数は前もって定義しておく
$err['name'] = "";
$err['tel'] = "";
$err['address'] = "";
0535nobodyさん2006/04/19(水) 07:29:27ID:???
>>519
ファイル名の最後が表とかで終わってるんじゃない
htmlの出力をshift jis以外にするしかないと思う
0536nobodyさん2006/04/19(水) 09:08:20ID:???
知識が浅いヤツはシフトJISなんか使っちゃダメ。
文字化けとかセキュリティ的な問題とか山のようにある。
http://d.hatena.ne.jp/t_komura/20060122#1137944280

携帯とかSJISのほうがいい場合は、出力直前にSJISにコンバートすりゃいい。
(ただ、最近の携帯はパソコンとほぼ同じく複数のエンコードに対応してるからEUCがオススメ)。
で、スクリプトの内部やDBではEUCで統一したほうが圧倒的に楽。
0537nobodyさん2006/04/19(水) 09:34:24ID:???
客からSJISで書けって言われるんだよ……
0538nobodyさん2006/04/19(水) 09:44:08ID:???
じゃあSJISでセキュリティリスク無くかける技術を身につけろ
0539nobodyさん2006/04/19(水) 09:58:26ID:???
>>536
へぇ、こんなSQLインジェクションのテクニックがあったんだね。
今までSJISを避けてきたけど、SJIS使わされるハメになったら穴だらけになるところだった。
危ない危ない
0540nobodyさん2006/04/19(水) 10:27:12ID:???
>>537
SJISにこだわる理由を聞け、理由を。

っていうかそんな客なんか切るか、もしくは
「セキュリティ強度が低下しますけどいいんですね?
または強度を維持したいなら見積もり額アップしますけど」
って言えよ。
0541nobodyさん2006/04/19(水) 10:34:25ID:???
SJISじゃないとたまにブラウザがcharset指定してても無視して文字化けするときがある
IE5の時代はよくあった
0542nobodyさん2006/04/19(水) 10:37:24ID:???
>>541
それは出力時にSJISにすればいいだけじゃない。
内部処理までSJISにするこたぁない
0543nobodyさん2006/04/19(水) 10:39:30ID:???
>>542
スクリプトチェックするときメモ帳で開けないジャンw
0544nobodyさん2006/04/19(水) 11:12:26ID:???
メモ帳て
0545nobodyさん2006/04/19(水) 11:13:47ID:???
そもそもPHPはInternalEncでSJIS対応してねーだろ?
■ このスレッドは過去ログ倉庫に格納されています