【PHP】下らねぇ質問はここに書き込みやがれ 24
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/07/07(金) 14:54:53ID:KnVubDvEここならお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0175nobodyさん
2006/07/10(月) 18:21:50ID:???>>174
> $_SESSION['var1'] = "12345";
> $_SESSION['var2'] = "ABCDE";
> $_SESSION['var3'] = "あいうえお";
> $_SESSION['var4'] = "管表示線銃";
> $_SESSION['var5'] = "ァエオケム";
これと
> $var1 = "12345";
> $var2 = "ABCDE";
> $var3 = "あいうえお";
> $var4 = "管表示線銃";
> $var5 = "ァエオケム";
これの関連性が意味不明。何を例示しているつもり?
> なぜ、他のではちゃんと出力されないか疑問です。
「他」とは? 「ちゃんと出力されない」とは?
0176135
2006/07/10(月) 18:27:18ID:Q6XjtIhehttp://www.uploda.org/uporg441589.zip
ローカルサーバーでは実行できるのに、アップしたら文字化けします。
0177164
2006/07/10(月) 18:28:46ID:???$_SESSION['name'][$_GET['id']] = "アイウエオ";
echo $_SESSION['name'][$_GET['id']];
を最初の始まりとするなら、
そこから少しずつ(1条件ずつ)簡易なものに書き換えて
トライアンドエラーしないと意味無いだろ。
$_SESSION['name'][$_GET['id']] = "アイウエオ";
echo $_SESSION['name'][$_GET['id']];
を基点に原因探ってるのに、
>> 174
には "アイウエオ" が含まれてないのは
おかしいだろ?
文字列が"アイウエオ"のときだけ起きる動作不良だったら
みつけられないだろうが?
0178164
2006/07/10(月) 18:34:01ID:???>ローカルサーバーでは実行できるのに、アップしたら文字化けします。
おまえなぁ。。。
最初から質問の仕方まちがってるだろうがぁ!!!!!!!!!!!!
ちなみに言わしてもらうなら、
「ローカルサーバでは*実行*できるのに」
ってなんなんだ?
「ローカルサーバでは期待通り文字化けせず出力されるのに」
だろうが?
で、丸投げかよ・・・
こいつダメだな。。。
0185135
2006/07/10(月) 21:07:08ID:Q6XjtIheはい、全然未熟ですけど
あと、>>164さんみたいな方でも教えていただけると嬉しいです。
丸投げなやり方になってしまってすみません。
0186135
2006/07/10(月) 21:08:50ID:Q6XjtIheecho $name_color."<BR>";
echo $com_color."<BR>";
echo $px."<BR>";
echo $log."<BR>";
echo $reload_time."<BR>";
$_SESSION['name'][$_GET['id']]= substr($name,0,20);
$_SESSION['name_color'][$_GET['id']]= $name_color;
$_SESSION['com_color'][$_GET['id']]= $com_color;
$_SESSION['px'][$_GET['id']]= $px;
$_SESSION['log'][$_GET['id']]= $log;
$_SESSION['reload_time'][$_GET['id']]= $reload_time;
echo $_SESSION['name'][$_GET['id']]."<BR>";
echo $_SESSION['name_color'][$_GET['id']]."<BR>";
echo $_SESSION['com_color'][$_GET['id']]."<BR>";
echo $_SESSION['px'][$_GET['id']]."<BR>";
echo $_SESSION['log'][$_GET['id']]."<BR>";
echo $_SESSION['reload_time'][$_GET['id']]."<BR>";
0187135
2006/07/10(月) 21:09:27ID:Q6XjtIheあああ
#FFFF00
#00FF00
16
20
40
・BR>#
#
1
2
4
このように出力されました。(index.php)
まだお答えいただける方がいれば嬉しいです
0189nobodyさん
2006/07/10(月) 21:20:21ID:???DBに認証用のパスワード入れてるのかよ!
0190135
2006/07/10(月) 21:23:38ID:Q6XjtIheローカルサーバーでは文字化けせずにスムーズに実行されるのですが、
サーバーにアップロードすると、どうしてもこの部分で文字化けがおきるのですよ
0192135
2006/07/10(月) 21:30:57ID:Q6XjtIhe全て中身は
「a|s:6:"あむろ";b|s:8:"ぶらいと";c|s:10:"きゃすばる";」
というのが書かれていました、
0194nobodyさん
2006/07/10(月) 21:34:26ID:???0195135
2006/07/10(月) 21:35:44ID:Q6XjtIheSHIFT-JISでした。
0196nobodyさん
2006/07/10(月) 21:40:20ID:???前々スレの>>36を実行した後の消し忘れです。
本当にありがとうございました。
本当は文字化けなんかじゃなくて、単にセッションに入ってねーんじゃねーの?
0197nobodyさん
2006/07/10(月) 21:44:00ID:???環境依存ってならエンコでもして入れとけば良いだろう
0199nobodyさん
2006/07/10(月) 21:53:45ID:???はっきり言って俺にはこれが文字化けの問題とは思えん。
0200135
2006/07/10(月) 21:56:56ID:Q6XjtIhe//セッションに名前を全角10文字まで入力
$_SESSION['name'][$_GET['id']]= substr($name,0,20);
$_SESSION['name_color'][$_GET['id']]= $name_color;
$_SESSION['com_color'][$_GET['id']]= $com_color;
$_SESSION['px'][$_GET['id']]= $px;
$_SESSION['log'][$_GET['id']]= $log;
$_SESSION['reload_time'][$_GET['id']]= $reload_time;
print_r($_SESSION['name'][$_GET['id']]);
print_r($_SESSION['name_color'][$_GET['id']]);
print_r($_SESSION['com_color'][$_GET['id']]);
print_r($_SESSION['px'][$_GET['id']]);
print_r($_SESSION['log'][$_GET['id']]);
print_r($_SESSION['reload_time'][$_GET['id']]);
と、させてみたところ、出力は
#124
だけでした。
何がなんだかサッパリですorz
0203135
2006/07/10(月) 22:13:39ID:Q6XjtIheすみません、勘違いです
Array ( [log] => 20 2 [name] => あああ [name_color] => #FFFF00 # [com_color] => #00FF00 # [px] => 16 1 [reload_time] => 40 4 [pass] => )
と、出力されました。
中にはちゃんと入っているということは、出力時に文字化けするということでしょうか
0204nobodyさん
2006/07/10(月) 22:23:07ID:???どのみち馬鹿とPHPが使えないのはハッキリしたな
0205nobodyさん
2006/07/10(月) 22:33:38ID:???試しに以下のコードを書いて実行してみたが、
<?php
$name = "0"; $name_color = "1"; $com_color = "2"; $px = "3";
$log = "4"; $reload_time = "5"; $g['id'] = "6";
$s['name'][$g['id']]= substr($name,0,20);
$s['name_color'][$g['id']]= $name_color;
$s['com_color'][$g['id']]= $com_color;
$s['px'][$g['id']]= $px;
$s['log'][$g['id']]= $log;
$s['reload_time'][$g['id']]= $reload_time;
print_r($s);
?>
結果として得られたのは以下だった。
Array (
[name] => Array ( [6] => 0 )
[name_color] => Array ( [6] => 1 )
[com_color] => Array ( [6] => 2 )
[px] => Array ( [6] => 3 )
[log] => Array ( [6] => 4 )
[reload_time] => Array ( [6] => 5 )
)
0206nobodyさん
2006/07/10(月) 22:41:22ID:???× 馬鹿とPHPが使えない
○ 馬鹿と>>135と>>204にはPHPは使えない
俺は>>176見てないからあれだけど、
問題が文字化けだけじゃないのはもう間違いない。
0207nobodyさん
2006/07/10(月) 22:53:01ID:???0208nobodyさん
2006/07/10(月) 23:06:22ID:???0209nobodyさん
2006/07/10(月) 23:13:06ID:???> 中にはちゃんと入っているということは、
それが本当にprint_r($_SESSION)の結果だとしたら、
$_SESSION[name][$_GET['id']]であるべきものが$_SESSION[name]になってないか?
$_SESSION[name][$_GET['id']]が$_SESSION[$_GET['id']][name]の間違いで
さらにprint_r($_SESSION[$_GET['id']])でも見たならまた別だろうが、
それでも妙なゴミデータがくっついているように見える。
もう諦めて丸投げスレにでも行った方が良いと思う。
0210164
2006/07/10(月) 23:36:16ID:???echo "phpversion(): ". phpversion() . "<br />";
echo "php_sapi_name(): ". php_sapi_name() . "<br />";
echo "php_uname(): ". php_uname() . "<br />";
echo "zend_version(): ". zend_version() . "<br />";
echo "<hr />";
echo "get_loaded_extensions(): <br />";
foreach (get_loaded_extensions() as $name) {
echo $name . ", ";
}
echo "<hr />";
0211164
2006/07/10(月) 23:37:33ID:???echo "mbstring.detect_order: ". ini_get("mbstring.detect_order") . "<br />";
echo "mbstring.http_input: ". ini_get("mbstring.http_input") . "<br />";
echo "mbstring.http_output: ". ini_get("mbstring.http_output") . "<br />";
echo "mbstring.internal_encoding: ". ini_get("mbstring.internal_encoding") . "<br />";
echo "mbstring.script_encoding: ". ini_get("mbstring.script_encoding") . "<br />";
echo "mbstring.encoding_translation: ". ini_get("mbstring.encoding_translation") . "<br />";
echo "mb_regex_encoding(): ". mb_regex_encoding() . "<br />";
echo "get_magic_quotes_gpc(): ". get_magic_quotes_gpc() . "<br />";
echo "get_magic_quotes_runtime(): ". get_magic_quotes_runtime() . "<br />";
echo "<hr />";
0212164
2006/07/10(月) 23:38:41ID:???$src_encoding = mb_detect_encoding($teststr, "auto");
echo "mb_detect_encoding(): $src_encoding <br />";
echo "<hr />";
echo "$src_encoding -> EUC-JP: " . mb_convert_encoding($teststr, "EUC-JP", $src_encoding) . "<br />";
echo "$src_encoding -> SJIS: " . mb_convert_encoding($teststr, "SJIS", $src_encoding) . "<br />";
echo "$src_encoding -> UTF-8: " . mb_convert_encoding($teststr, "UTF-8", $src_encoding) . "<br />";
?>
0213nobodyさん
2006/07/11(火) 00:15:35ID:???array_rand($arr); // return $key
array_rand($arr, 1); // return $key
array_rand($arr, 2); // return array($key, $key);
っておかしくね?
1はarray($key)になってほしくね?
欲を言えばarray_rand($arr, 0)もエラーじゃなくてarray()が返ってくれなきゃ使いづらくね?
0214nobodyさん
2006/07/11(火) 00:38:13ID:???0215nobodyさん
2006/07/11(火) 01:31:09ID:???前スレ900後半で思いっきり誰の目にも触れられずあぼーんしたので
再度書かせてください。
サーバからFTPにログインして、指定のファイルをブラウザに出力、
訪問者にダウンロードダイアログが出るようにしたいんですが、
どんな方法があるでしょうか?
content typeのlocationで直接ftp://指定すれば、とレスをいただきましたが、
ftp://をブラウザ経由でしてしまうとパスワードが流れてしまいますし、
ブラウザの履歴にも残るので、
サーバーからlocalhostにftpに接続して、それをブラウザに出力、
という流れを取りたいと考えています。
この関数使え、とかのヒントでもいいので
教えて下さいませ
0216nobodyさん
2006/07/11(火) 02:29:18ID:???そんな奇怪な方法をどういう経緯で選んだのか前スレ読み返しても分からなかった。
無駄なことしてるというのは十分伝わって来るんだけど…
0217nobodyさん
2006/07/11(火) 02:32:35ID:???何がやりたいのかよくわからんからスルーされるんじゃね?
>この関数使え、とかのヒントでもいいので
1.ftp_*()でファイルを取得
2.header()で適切なヘッダを出し
3.readfile()でもして出力
サーバのFTPDにアクセスするのかね?
ファイルがファイルシステムで直接読めるなら
header();
readfile();
でオワリ
どんなヘッダを送るのかとかはphpの問題じゃないので省略。
0218nobodyさん
2006/07/11(火) 02:43:03ID:???なぁ、お前ら「良いプログラム」って何だ?
PHPは確かにC言語チックな見た目でPerlなんかより全然見やすいコードが書けるけど
それでも俺のコードは醜い気がする・・・
0219nobodyさん
2006/07/11(火) 02:59:24ID:???「良い」てーのはそれを見る相手や状況によって違うんじゃないか
xxが良いとかなんか無いの?
それにしても誰に何を言われたんだかw
0220nobodyさん
2006/07/11(火) 03:56:32ID:???・理解しやすい
・再利用しやすい
えーとそれから・・・なにがあったっけ?
0221nobodyさん
2006/07/11(火) 04:39:51ID:???人が理解しにくいとか?
0222nobodyさん
2006/07/11(火) 07:15:25ID:???mbstring.encoding_translation 「On」「 Off 」
これが原因じゃないかと思うけどね
0223135
2006/07/11(火) 08:59:10ID:BuTz0b5N>>222
自動でエンコーディングされるんですよね。
自分のローカルサーバーは両方Onになっています。
これは.htaccessで指定可能なのでしょうか?
0224135
2006/07/11(火) 09:06:23ID:BuTz0b5N全て自分の環境と同じにしようと思ったのですが、それは可能なのでしょうか?
0225nobodyさん
2006/07/11(火) 09:27:24ID:???つ ttp://www.php.net/manual/ja/configuration.changes.php
対象フォルダに"AllowOverride Options" もしくは "AllowOverride All" 権限があって、
PHPのマニュアルにおいて変更の可否がPHP_INI_ALL, PHP_INI_PERDIR, または PHP_INI_SYSTEM と
指定されているもののみ可能。
0226225
2006/07/11(火) 09:28:40ID:???0227135
2006/07/11(火) 09:34:49ID:BuTz0b5N$_SESSIONにはちゃんと変数が格納されている。
$_SESSIONを出力する時に文字化けが起きる。
.htaccessが使える。
エンコーディングはSJIS
phpinfo()⇒>>145
サーバー管理者に問い合わせたところ、
「phpの場合は、内部エンコーディングがUTF-8になっているので、明示的指定がなければ文字化けすることはあります。
エンコーディングを指定してください。」と返ってきた。
0230135
2006/07/11(火) 12:06:43ID:BuTz0b5Nphpinfo()で見てみたところ
mbstring.detect_order auto auto
mbstring.encoding_translation On On
mbstring.func_overload 0 0
mbstring.http_input auto auto
mbstring.http_output SJIS EUC-JP
mbstring.internal_encoding SJIS EUC-JP
mbstring.language Japanese Japanese
mbstring.script_encoding no value no value
mbstring.substitute_character no value no value
でした。
.htaccessでこっちと同じ設定にすればいいのかと思ったんですけど、
設定の仕方がわからず、挑戦しても500エラーが出るばかりです・・・。
0232nobodyさん
2006/07/11(火) 12:22:18ID:???何か参考になる書籍やサイトはありませんか?
それともperlを勉強しなければ難しいんでしょうか?
0233nobodyさん
2006/07/11(火) 12:32:24ID:???「スパイダ」ってこれのことかな?
http://www.oreilly.co.jp/books/4873111870/
詳しくは amazon なりで見てみて。
0235nobodyさん
2006/07/11(火) 14:30:40ID:???<IfModule mod_php5.c>
php_value include_path ".:/usr/local/lib"
php_admin_flag mbstring.http_output SJIS
</IfModule>
とやっていれたら500エラーになりました。
0236nobodyさん
2006/07/11(火) 14:32:27ID:???亀レスすみません。
開発者のみなさんは、デバッグコードは不要になったら
コメントアウトするなどしているのでしょうか。
0237nobodyさん
2006/07/11(火) 14:35:45ID:???「.htaccess 500」なりのキーワードでぐぐれ。
それと、>>231 のぐぐった結果をもう一度ちゃんと読め。
0238nobodyさん
2006/07/11(火) 14:37:32ID:???コメントアウトしてソースに残ってもいいというレベルなら、
スクリプト先頭で、
define("CONSTANT", "1");
これをコメントアウトさせる。
あとは
IF (defined('DEBUG')){
// こにデバッグコードを書く
}
0239nobodyさん
2006/07/11(火) 14:38:09ID:???0240nobodyさん
2006/07/11(火) 14:44:45ID:???php_value mbstring.http_output SJIS
とだけ1行入れてもエラーでした。
もちろん行末に改行は入れてます。
0242nobodyさん
2006/07/11(火) 15:05:15ID:???・検索キーワードなどを教えられても検索しない
・参考URLを教えられても見ない
・質問する前に自分で試さない
こういった質問者は完全にスルーしましょう
煽りや叩きも不要です
完全に存在を無視して下さい
不必要にレスすると永久ループに陥ります
0243nobodyさん
2006/07/11(火) 15:10:24ID:???の正規表現を教えてください。
preg_match使うみたいだけどよくわかりません。。。
0244nobodyさん
2006/07/11(火) 15:14:44ID:???・検索キーワードなどを教えられても検索しない →検索した >>231 >>237
・参考URLを教えられても見ない → 見た
・質問する前に自分で試さない → 試した >>235 >>240
0245243
2006/07/11(火) 15:16:58ID:???0247nobodyさん
2006/07/11(火) 15:26:53ID:???ttp://yellow.ribbon.to/~gama/sine/testing/xp-ap-ph4-sq.html
てきせんというのはどういういみですか?
0248nobodyさん
2006/07/11(火) 15:30:17ID:???0249軟式PHP
2006/07/11(火) 15:30:45ID:???もしかしたら、文字コードの設定がおかしいのかも。
ちょっと下のコードを実行して表示されたものをレスしてくれ。
<?php
$strBuff = 'Pj4yNDSky6SipOuk6KSmpMuhoqSzpOykwKSxpOSkw6TGpOKk76SrpOmkzKGjDQqkxKTepOqhorvkpM/Hz7yvpMekoqTroaM=';
$strDec = base64_decode( $strBuff );
header( 'Content-Type: text/html; charset=EUC-JP' );
var_dump( $strDec );
?>
0250236
2006/07/11(火) 15:31:10ID:???0253244
2006/07/11(火) 16:07:38ID:???.htaccess では設定できないみたいです。
0254nobodyさん
2006/07/11(火) 16:18:05ID:???> $_SESSIONにはちゃんと変数が格納されている。
嘘を吐くな。
アホの子の>>135は>>205とか>>209を死ぬまで読み直すべきだ。
0255nobodyさん
2006/07/11(火) 16:26:50ID:???mb_send_mail使えなくなっちまったけど、これはもうどうしょうもない?
0256244
2006/07/11(火) 16:27:42ID:???内部エンコーディングとhttp_outputはソース上から設定できるけど、
http_inputは設定できないので、
postやget等から得られたデータを、
てきせんoutputから内部エンコードにmb_convert_encodingする
というので解決です。
0257nobodyさん
2006/07/11(火) 17:10:33ID:???> 1. 自分のIDを表示させること。(メール欄には何も記述しないでください)
を守らないのはわざとですか?
貴方をあぼーんしたいのですが、IDがないと登録しづらいのです。
自己弁護でも何でもこれ以上続けるなら、IDを表示させてください。
0259257
2006/07/11(火) 17:29:42ID:???私も最初はそう思いましたが、今までの流れから考えると、
「煽られる→自己弁護」の繰り返しもあり得るかなと。
ですので、「これ以上続けるなら」と前置きを置いています。
135氏がこれ以上書かないのなら、それに越したことはないんですけどね。
0260nobodyさん
2006/07/11(火) 17:48:50ID:???本人がこれで解決だと言ってるんだからもういいんだろう。
これでやっとスレに平和が戻る…。
0262135
2006/07/11(火) 18:14:40ID:BuTz0b5N遅レスすみません。
ググって文字コードをSJISにしたのですが、代わりはなかったです。
>>249
自分も試してみたところ
string(71) ">>244、ヒ、「、・隍ヲ、ヒ。「、ウ、・タ、ア、荀テ、ニ、筅・ォ、鬢フ。」、ト、゙、遙「サ荀マヌマシッ、ヌ、「、・」"
と表示されました。
0263nobodyさん
2006/07/11(火) 18:35:40ID:???$_135->teach(); // 失敗するのは分かっているが・・・
}
catch (Exception $e) {
// $_135->teachAgain(); // 永久ループになるのでやってはいけない
throw $e;
}
0267nobodyさん
2006/07/11(火) 18:47:17ID:???おいおい。PHP のサンプルもあるって書いてあったしょ?
まぁ、そうは言うけど、自分も Perl の方が良いと思う。こういう用途には。
0268135
2006/07/11(火) 18:58:19ID:BuTz0b5Nブラウザの文字化けなのですか。
IEでもチェックしてみます
>>266
はい、別人です、
mbstring.detect_order auto auto
mbstring.encoding_translation On On
mbstring.func_overload 0 0
mbstring.http_input auto auto
mbstring.http_output SJIS EUC-JP
mbstring.internal_encoding SJIS EUC-JP
mbstring.language Japanese Japanese
mbstring.script_encoding no value no value
mbstring.substitute_character no value no value
上記の環境でちゃんと動作したので
.htaccessで
php_value mbstring.detect_order auto
php_value mbstring.http_input auto
php_value mbstring.http_output sjis
と指定したのですが、全く変わりません・・・。
サーバー側の問題の可能性はあるのでしょうか。。。
php_value mbstring.internal_encoding sjis
0269135
2006/07/11(火) 19:00:31ID:BuTz0b5NIEでアクセスしたところ、同じ文字化けが発生しました。
0270nobodyさん
2006/07/11(火) 19:12:09ID:???どこのサーバー使ってるんだ?
0271135
2006/07/11(火) 19:16:00ID:BuTz0b5Nここです。
ttp://nsf.jp/
0272135
2006/07/11(火) 19:22:45ID:BuTz0b5Nphp_value mbstring.detect_order auto
php_value mbstring.http_input auto
php_value mbstring.http_output EUC-JP
php_value mbstring.internal_encoding EUC-JP
と設定したら
string(71) ">>244にあるように、これだけやってもわからぬ。つまり、私は馬鹿である。"
と表示されました。
しかし、他のページが全て文字化けしてしまいました。
全てのページをEUC-JPで統一してみます。
0273135
2006/07/11(火) 19:30:36ID:BuTz0b5Nこれはもうダメかもわかんね
0274nobodyさん
2006/07/11(火) 19:34:20ID:???勉強し直して来た方が良いと思うよ。
■ このスレッドは過去ログ倉庫に格納されています