【PHP】下らねぇ質問はここに書き込みやがれ 25
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/07/23(日) 20:00:03ID:???ここならお前の下らない質問に回答があるかも知れません。
まず読め【PHP マニュアル】
http://www.php.net/manual/ja/
過去スレは>>2
0082nobodyさん
2006/07/25(火) 11:12:14ID:???これはどうやって確認しているのでしょうか?
0084nobodyさん
2006/07/25(火) 11:15:09ID:???そんな便利なリストがひょっとしたらどっかにあるのかもしれないけど
とりあえず知らないのでドメインデータを自前で登録してる。
0086nobodyさん
2006/07/25(火) 11:31:13ID:???ttp://www13.big.or.jp/~fubuki/
0087nobodyさん
2006/07/25(火) 11:58:42ID:???やっぱそうか・・・。
フリーメール(特にhotmail)を使ってるヤツってのは、たいてい
「コンピュータに疎い超ド素人」か、
「イタズラや誹謗中傷、その他いろんな悪事を働くキモヲタ」か、
どちらかであることが多い。だから排除したい。
0088nobodyさん
2006/07/25(火) 12:23:12ID:E5TbsTHefunction &hoge($id){
…
}
とかあるんです。変数の参照渡しで&を使うのは知ってるんですが、
関数で&をつかうというのは一体?
ttp://www.php.net/manual/ja/language.functions.php
ここみても関数名の前に&を付けるようなことは何も書いてませんし…。
どういう時に使うのか、&つけると何が便利なのか、どこか載ってる
サイトなどありましたら教えてください。
0089nobodyさん
2006/07/25(火) 12:24:48ID:???こっちに書いてあるよ
http://www.php.net/manual/ja/functions.returning-values.php
009088
2006/07/25(火) 12:29:04ID:???うおおはえええ!ありがとうございます!
リ・・・リファレンス・・・なんじゃそら・・・
じっくり読んで勉強してきます!本当に助かりました!
0091nobodyさん
2006/07/25(火) 12:31:21ID:???009288
2006/07/25(火) 12:57:01ID:???$a = &$b
$aも$bも同じものをみにいってるのねー、これは分かる。
でも関数で参照・・??
もしやこういうことだろうか。
function &fuga($nya){
$nya++;
return $nya;
}
$wan = fuga($a);
これと、
function fuga($nya){
$nya++;
return $nya;
}
$b = fuga($a);
$wan = &$b;
これは同じことだよみたいな感じ?
こんな程度で給料もらってほんとすいません...
0094nobodyさん
2006/07/25(火) 13:11:56ID:???PCいじりたての初心者が遊ぶためのものかと思っていた。
0095nobodyさん
2006/07/25(火) 13:25:52ID:???メッセンジャーだからメッセージをやりとりするのに使うに決まってる。
>PCいじりたての初心者が遊ぶためのものかと思っていた。
素直に便利だと思う人が使う。
0096軟式PHP
2006/07/25(火) 13:31:28ID:???情報サンクス。
ちょっとやってみたんだが、PHP4.3.2で設定してもscript_encodingが
phpinfoにすら反映されてないようで、うまく動かなかった。
原因を探るのも面倒なのでこの辺でやめとくよー。
色々検索してみたら動きそうな感じではあった。
0097nobodyさん
2006/07/25(火) 13:45:36ID:???0100nobodyさん
2006/07/25(火) 13:57:24ID:???これは下請けですか?それともガッポリ儲けちゃってるんですかね?
どっちにしろボリュームが多いのは精神的にきますね、、
>>94
会社によればメッセ使用する所もありますよ。最近ではSkypeなんかも。
0101nobodyさん
2006/07/25(火) 14:02:01ID:???スクリプト終了と同時にファイルは削除されてしまうと考えてもいいんでしょうか?
if (is_uploaded_file($_FILES['test']['tmp_name'])) {
print_r($_FILES);
}
else {
echo "error\n";
}
で、表示された$_FILES['test']['tmp_name']の値は[tmp_name] => /tmp/phpHmZfdd
上記のスクリプトを実行して確認してみたところ/tmp/phpHmZfddは存在しませんでした。
0102軟式PHP
2006/07/25(火) 14:10:03ID:???簡単なやり取りは俺もメッセンジャー経由だなぁ。
>>100
大きな案件は、大抵代理店通るからガッポリまではいかない。
ただうちは恵まれてるほうだから2次受けになる事が多いためそこそこ儲かる。
3次、4次受けとかなると連絡網がゴチャゴチャしてきて儲からないだけではなく仕事もやりづらくなる。
0103nobodyさん
2006/07/25(火) 14:21:09ID:???俺はバイトなんで詳しくは分からないが俺んとこは恐らくその3次受けしてた。
金もあまり入らずデザインの業者に散々振り回された。しかもデザインの業者が優先だってさ。
0104nobodyさん
2006/07/25(火) 14:21:22ID:???ガッポリ儲けて融通も利きまくり
リスク高いけどな
010576
2006/07/25(火) 14:46:55ID:???うちは自社開発ですよ。結構儲かってるらしいよ。正確な額は知らんけどさw
>>94
うちも簡単な打ち合わせや連絡ではメッセンジャー使ってる。
同じ会社の部署と言ってもビル離れてたりするし。
記録性で電話以上メール以下、即時性でメール以上電話以下の場合、だね。
>>96
script_encodingってConfigureで多言語対応の指定してコンパイルしないとダメじゃなかったっけ?
010687
2006/07/25(火) 15:52:30ID:???>>98 とりあえずお前みたいなキモヲタの排除から始めたい。
>>99 じゃあどうしたら「なんちゃって」じゃなくなるのか、具体的に説明よろしく。
010754
2006/07/25(火) 15:56:17ID:jWaJnsY8>分からないならつかわなければいい
ごもっともなんですが、引継ぎでいじらなくてはならないんです。
私みたいなマルデダメオですが、ご指導お願い致します。
0108nobodyさん
2006/07/25(火) 15:58:21ID:???そんなにメッセンジャーがダメダメいうなら
貴方が作ったメッセンジャー以上のツールうpしてください><
どうせ電卓くらいしか作れないんでしょうけど
0109nobodyさん
2006/07/25(火) 16:08:16ID:???>>93 なぜいきなりメッセンジャーの話? フリーメールと関係ある?
ってあるけど>>87で特にhotmail使ってる奴はうんぬんかんぬんと言ったからじゃないの?
メッセ使用のほとんどはhotmail使ってるでしょ。たまに違うの見かけるけど。
なのであなたはメッセ使ってる人間をキモヲタ呼ばわりしたと解釈されてるんじゃないかなと。
0110nobodyさん
2006/07/25(火) 16:19:45ID:???フォーム認証後に条件処理で、"正"ならグーグルサイト、"負"なら2chにページを飛ばしたいのですが
fopenは「URLを開ける」と説明されていますが、実行してもページは真っ白のままです
どのような関数、スクリプトをチョイスすればいいのでしょうか?
// 認証後の処理
if($userExists[0] ==1){
fopen('http://www.google.co.jp','rb');
}
else{
fopen('http://2ch.net','rb');
}
011187
2006/07/25(火) 16:27:48ID:???市ね
switch($userExists[0]) {
case 1:
header('Location: http://www.google.co.jp');
break;
default :
header('Location: http://2ch.net');
}
0112軟式PHP
2006/07/25(火) 16:33:20ID:???0116軟式PHP
2006/07/25(火) 16:42:11ID:???<?php
switch($userExists[0]) {
case 1:
header('Location: http://www.google.co.jp');
break;
default :
header('Location: http://2ch.net');
}
header('Location: http://www.yahoo.co.jp');
?>
さぁ、どこにいくでしょう。
だから「普通」はexitを書く。わかるか?
0118110
2006/07/25(火) 16:54:16ID:???>>116
exitを書くとすれば最後でいいわけですよね?
こんなわ風に
header('Location: http://2ch.net');
exit;
}
0119軟式PHP
2006/07/25(火) 16:56:46ID:???邪道というか例なんだけど。そういうバグの危険性があるということ。
バグの危険性があるならexitで終わらせたほうがいいじゃん。
>>118
んだ。あとcase1のheaderの下にもね。
0120にせ87 = 108
2006/07/25(火) 16:57:04ID:???質問
どんな時に$userExists[0]がdefault以外になるんでしょうか??
その後に書く必要はないだろ
0121nobodyさん
2006/07/25(火) 17:09:01ID:???「正しい」と「マナーがよい」は別問題。
彼の言うのは、Location をスクリプトの最後に書けば問題ないという事なのかね。
別段、問題があるわけではないし、exit を付けても良いと思う。
人それぞれで良いじゃないか。
0122nobodyさん
2006/07/25(火) 17:09:24ID:???0123nobodyさん
2006/07/25(火) 17:10:46ID:???0124nobodyさん
2006/07/25(火) 17:16:08ID:???「正しいアルゴリズムで書いてりゃ問題ない」では、問題点がわからないじゃないか。
ただ不満を言いたいだけなら、荒らしと同義。
0125nobodyさん
2006/07/25(火) 17:19:45ID:???0126nobodyさん
2006/07/25(火) 17:33:26ID:???可読性にも繋がるしね
0127nobodyさん
2006/07/25(火) 17:52:13ID:???0128nobodyさん
2006/07/25(火) 17:53:12ID:???0129nobodyさん
2006/07/25(火) 17:54:19ID:???0130107
2006/07/25(火) 18:02:50ID:???0132nobodyさん
2006/07/25(火) 18:12:34ID:???>60
0134nobodyさん
2006/07/25(火) 18:20:42ID:???クラスのどこがわからないのかを詳しく。
「全部わからない」丸投げはご遠慮願いたい。
それは、マニュアルを見ないで努力放棄しているのと同じ。
0135nobodyさん
2006/07/25(火) 18:26:27ID:???引継ぎなら仕様書があるでしょ。使い方はそれを読む
中を弄らなければならないという場合でも所詮phpなんだし
まずはソースがあるんだから(=引継ぎ)それを理解して分からないことを質問しれ
ここは家庭教師ちゃうで
0136nobodyさん
2006/07/25(火) 18:33:58ID:???013787
2006/07/25(火) 18:49:56ID:???ちなみに>>111、>>113、>>117は偽者です。
なぜ俺が騙られたのか意味不明・・・
0138nobodyさん
2006/07/25(火) 18:52:35ID:???>6 準拠で質問していれば、偽者は排除できたわけですが…。
◆質問する場合の注意
1. 自分のIDを表示させること。(メール欄には何も記述しないでください)
0140nobodyさん
2006/07/25(火) 18:58:43ID:???「ソースを読んで理解して分からないこと」を教えてくださいよ。
107の存在意義が全くわからないんです。
0143nobodyさん
2006/07/25(火) 19:28:20ID:???以下のような感じで用いた場合にもリスクを抱え込むことになるのでしょうか?
extract($_REQUEST);
extract($_SERVER);
$Account = date("U");
$RD = fopen("password_files/".$Account.".DAT", "r"); <-重要なデータの格納されたファイルと仮定
echo fpassthru($RD);
fclose($RD);
0144nobodyさん
2006/07/25(火) 19:41:51ID:???何処で変数の初期化を忘れるかもしれないから、この程度の脆弱性について他人に訊くぐらいなら使わないほうがいい。
0146nobodyさん
2006/07/25(火) 19:55:13ID:???リスクもそうだけど、結果的に「変数の初期化をし忘れていないか」という不安を抱え込む。
extractしなければ、変数の初期化をし忘れていたら動作しない。
extract では必要な変数を初期化し忘れていると、extract で初期化されてしまうリスクを背負う。
そういうこと。
0147nobodyさん
2006/07/25(火) 20:16:57ID:???クライアントがアクセスしたhoge.php内だけでのグローバルと見て良いですか?
セッションとかにも絡まないですよね?
0149nobodyさん
2006/07/25(火) 20:20:36ID:???0150147
2006/07/25(火) 20:29:41ID:???ありがとん。
0151nobodyさん
2006/07/25(火) 20:35:57ID:???動機としては30点。
「ここで処理を終了するからexit」を堂々と書くべし。
むしろ「このページが表示されたらおかしいよ〜ん」と表示するページへの
locationヘッダを最後に入れとくくらいがいい(いや、それはさすがにやりすぎか)。
念のため〜は見えにくいバグを作る原因になりがちだからな。
0156nobodyさん
2006/07/25(火) 23:52:02ID:???<?require('hoge.php')?>
みたいにしてphpを埋め込んで使ってるんですが、
phpを埋め込んだ行のところでどうしても空行が入ってしまって困ってます。
空行ってのはhtmlのソース上で入るんではなくて、
何故かブラウザの表示上で入ってしまうんです。
(XP IE6)
htmlのソースの表示をすると空行などなく変なスペースとかも入ってないのでおかしな話なんですが、
どうしても解決しません。
読み込んでるhoge.phpは単に
<?php
echo <<<EOF
<div class="hoge">テキスト</div>
EOF;
?>
くらいしか書いてません。
同じものをhtmlに直接埋め込んだ形にすると、特に問題なく表示されるのですが…
どなたかアドバイス頂けますでしょうか、よろしくおねがいします。
0157nobodyさん
2006/07/25(火) 23:59:02ID:???> htmlのソースの表示をすると空行などなく変なスペースとかも入ってないのでおかしな話なんですが、
であれば、PHP の話題じゃないな。
0159nobodyさん
2006/07/26(水) 00:42:13ID:???そのHTMLを名前をつけて保存する→保存したHTMLをローカルで表示してみる
で、問題が再現するならHTMLやCSSの問題であってPHP関係ないので他所行って。
0160nobodyさん
2006/07/26(水) 00:49:07ID:???0161nobodyさん
2006/07/26(水) 00:50:21ID:???JSPならHttpServletRequestからgetInputStreamで取り出して、という手順で可能なのですが。
0162nobodyさん
2006/07/26(水) 00:53:09ID:???> 空行ってのはhtmlのソース上で入るんではなくて、
> 何故かブラウザの表示上で入ってしまうんです。
> htmlのソースの表示をすると空行などなく変なスペースとかも入ってないのでおかしな話なんですが、
先に確認したいんだが、「ソースの空行」と「ブラウザ表示上の空行」って違うよな?
ソースに空行があった場合、ブラウザ上では空白のように表示されるわけで見た目は空行にはならない。
話がそこから混乱してるので、症状の説明はもうちょい正確に頼む。
0163nobodyさん
2006/07/26(水) 01:22:39ID:+cVLS530<?php
$word1= "日本語";
$word2 = "English";
$word3 = "日本語English";
print ( $word1 ) . "<br>\n";
print ( $word2 ) . "<br>\n";
print ( $word3 ) . "<br>\n";
print strlen( $word1 ) . "<br>\n";
print strlen( $word2 ) . "<br>\n";
print strlen( $word3 ) . "<br>\n";
print mb_strlen( $word1 ) . "<br>\n";
print mb_strlen( $word2 ) . "<br>\n";
print mb_strlen( $word3 ) . "<br>\n";
?>
このようなスクリプトを書いて、ブラウザで表示したところ
日本語
English
日本語English
6
7
13
5
7
11
と表示されました。
strlen関数のほうは、ちゃんとバイト数を表示しているのですが
mb_strlen関数のほうが、2バイト文字が入っていると計算間違いを起こします。
これは、どのような原因なのでしょうか?
ご存知の方がいらっしゃいましたらご教授お願いします。
0164nobodyさん
2006/07/26(水) 01:23:48ID:???ttp://www.php.net/manual/ja/wrappers.php.php
> php://input
ってファイルを開けば読める。
他に $HTTP_RAW_POST_DATA って変数もあるんだが、
ttp://jp.php.net/ini.core
これはphp.iniで always_populate_raw_post_data ってのをONにしないと
メモリを余分に食うので標準では使えないようにされてる。
0165nobodyさん
2006/07/26(水) 01:28:43ID:???mbstringの設定が間違ってるんじゃないの?文字コードを正確に認識できてないんだと思う。
phpinfo() や echo mb_internal_encoding(); で今の文字コードが何になってるか確認してみれば?
0166nobodyさん
2006/07/26(水) 01:30:03ID:???requireで外部からヒアドキュメントを読み込んだ場合と、
それをそのままhtml内に記述した場合
この二つものがソース上では一緒なのに、なぜか違う結果になる(ブラウザ上で空行が入る)、
というのが問題だったのですが、一応解決?しました。
ネストの親に当たる部分のdiv要素(.hogehoge)もhoge.phpの中身に一緒に書き込んでやると、
問題ない表示が実現しました。
単にネストされてるだけでクラス的には親子関係にないから関係ないと思っていたのですが…。
requireすると読み込みの遅れが生じてCSSの判断にバグでも出るんですかねえ、以下ソースです。
やっぱりCSS噛んだ話でごめんなさい
.hogehoge{
width: 100%;
margin: 0 0 10px 0;
display: inline;
}
.hoge{
float: left;
margin: 0 14px 0 0;
display: inline;
width: 127px;
}
<div class="hogehoge">
<div class="hoge">
テキスト
</div>
</div>
0168nobodyさん
2006/07/26(水) 01:33:59ID:???全体的に hoge だらけで意味不明。
> requireすると読み込みの遅れが生じてCSSの判断にバグでも出るんですかねえ、以下ソースです。
読み込み遅れ(って言い方も変だが)で問題とかあり得ない。
0169nobodyさん
2006/07/26(水) 01:34:57ID:???> requireすると読み込みの遅れが生じて
読み込みしてるのはApacheであってブラウザじゃない。
CSSの解釈はブラウザが行っている。
よってCSS解釈のタイミングでは遅延は一切発生していない。原因はまた別にある。
0170nobodyさん
2006/07/26(水) 01:44:20ID:???んーと?つまり、「テキスト」に対して
class=hogehogeが適用されると「テキスト」の下に空行が出て、
class=hogeが適用されてる場合は空行は出ない、ってことなんだな?
<html>
<style type="text/css">
.hogehoge{
width: 100%;
margin: 0 0 10px 0;
display: inline;
}
.hoge{
margin: 0 14px 0 0;
display: inline;
width: 127px;
}
</style>
<body>
aaaaaaaaaaa<br>
<div class="hogehoge">
<div class="hoge">
テキスト
</div>
</div>
aaaaaaaaaaa<br>
</html>
このHTMLをIE6で見たら普通に空行が出てくるぞ。PHP関係ない。
むしろ空行が消える=CSSの指定が一部無視されている、ように思うが?
0171nobodyさん
2006/07/26(水) 02:00:28ID:???ああ、大事な空行の出る場所を書き忘れてましたね
ちがうんです、requireすると空行が出るのは下ではなく上なんですよ
下に出るのはCSSでマージン取ってるから問題ないんです
その例だとrequireした結果は
aaaaaaaaaaaa
テキスト
aaaaaaaaaaaa
になっちゃうのが困ってるんです
html側
<div class="hogehoge">
<?require='hoge.php'?>
</div>
hoge.php側
<?
echo <<< EOF
<div class="hoge">
テキスト
</div>
EOF;
?>
0173nobodyさん
2006/07/26(水) 02:12:38ID:???同階層のbasic.cssですー
headタグ内に書いてますので当然bodyより先読みです
<link rel="stylesheet" href="basic.css" type="text/css" media="all" />
ついでにいうと互換モードで書いてます
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
あとさっきのちょっと間違ってましたね
○ <?require( 'hoge.php' )?>
× <?require='hoge.php'?>
0174nobodyさん
2006/07/26(水) 02:15:51ID:???結局全部は提示しないのね。
書かない所に原因があるかもしれない訳じゃない?
後出しじゃんけんばっかりやってると、誰も相手しなくなるよ。
0175nobodyさん
2006/07/26(水) 02:20:53ID:???0177nobodyさん
2006/07/26(水) 02:37:24ID:???まんま渡すと何がなにやらわからなくなると思うので、
自分なりに絞ってみたんですが、それがよくなかったようですね
もうちょっと条件を絞り込んでから出直してきます
ありがとうございます
0178nobodyさん
2006/07/26(水) 02:59:01ID:???自分とこで調べるにしても、まず余分なものを除去したもので再現させて
原因となりうるものを絞り込むのはデバッグ手法の常識。
0179163
2006/07/26(水) 03:13:33ID:+cVLS530mbstringの設定は
mbstring.encoding_translation = On
mbstring.language = Japanese
mbstring.internal_encoding = EUC-JP
mbstring.http_input = auto
mbstring.http_output = pass
mbstring.detect_order = auto
mbstring.substitute_character = none;
mbstring.func_overload = 0
というような感じになっています。
あまり良くわからないのですが、いろいろ調べて推奨されているもので自分の環境に合うものを選んだつもりです。
いろいろ弄ってはみたのですが状況は変わりません。
文字コードが認識されていないとのことですが
ここの設定で何とかなるものなのでしょうか?
0181nobodyさん
2006/07/26(水) 03:31:40ID:???物の見事に>>163と同じ結果になったりするわけだが。
とりあえず一言。「意味も分からないまま真似だけするのはやめれ」
0182nobodyさん
2006/07/26(水) 07:07:37ID:???print mb_strlen( $word1, "sjis") . "<br>\n";
print mb_strlen( $word2, "sjis") . "<br>\n";
print mb_strlen( $word3, "sjis") . "<br>\n";
■ このスレッドは過去ログ倉庫に格納されています