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

くだすれPHP(超初心者用)

■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん2006/06/12(月) 14:06:01ID:???
このスレッドは、他のスレッドでは書き込めない超低レベル、 
もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。 
PHP使いが優しくコメントを返しますが、 
お礼はPHPの布教と初心者の救済をお願いします。 

PHP Home Page 
http://www.php.net/
0161nobodyさん2006/08/05(土) 11:24:09ID:???
$hoge===''
0162nobodyさん2006/08/05(土) 11:37:09ID:???
>>160
is_null($hoge)
01631602006/08/05(土) 12:17:40ID:???
えと、はっきりとnullか空文字かを区別したいときは
is_null()をつかって、nullか空文字どっちでも条件trueで良い場合は
if ($hoge == null) もしくは if ($hoge == "")
で判定しちゃって大丈夫ですか?
0164nobodyさん2006/08/05(土) 13:07:16ID:???
>>163
$hoge が 0 のときも真になるから気をつけるように
'0' は当然偽になるけど
0165nobodyさん2006/08/05(土) 13:53:22ID:???
ドコモの携帯で utn を送っているかどうか確かめる関数とかありますでしょうか?
0166nobodyさん2006/08/05(土) 14:31:27ID:???
>>165
さすがに標準ではないぞ
$_SEVER['HTTP_USER_AGENT'] の文字列を解析するのがいいのではないだろうか
0167nobodyさん2006/08/05(土) 17:22:55ID:???
>>166
やっぱないですか^^;
ser以下の文字列の有無で判断することにします。
ありがとうございます。
0168nobodyさん2006/08/06(日) 20:15:57ID:9paIrv1I?2BP(0)
携帯にmb_send_mailでメールを送ると、
半角文字以外すべて「?」になる文字化けしてしまいます。
phpファイル自体はsift_jisです。
mb_convert_variablesでsift_jis()
で変換しても同じ文字化けでした。
日本語化する
mb_language("ja");
を外すと「・」に変換されます。
何が原因なのでしょう?
0169nobodyさん2006/08/06(日) 23:47:35ID:???
>>168
メールの文字コードはJISだ。
01701612006/08/07(月) 08:19:36ID:???
するーされたぽ(´・ω・
0171nobodyさん2006/08/07(月) 12:16:00ID:K1n5iRST?2BP(0)
IPの最後を削りたいんですが
(「210.153.84.12」なら最後の「.12」を削って210.153.84という値を取得したい)
場合によって1〜3桁になるので桁指定で削れません。

$end_ip = strrchr($_SERVER["REMOTE_ADDR"],".");
$end_ip_num = strlen($end_ip);
$ip3 = substr_replace($_SERVER["REMOTE_ADDR"],"",-1,$end_ip_num);

こんな感じで、非常に周りくどいですが
strrchrで文字列を抜き出し、桁を数えてから削ろうとしてみました。
しかしstrrchrの戻り値が、echoなどで表示は出来るのですが変数に収めることがでいません。
何かいい方法はありませんか?
0172nobodyさん2006/08/07(月) 12:27:36ID:???
>>171
正規表現は?
正規表現 IP - Google 検索
http://www.google.co.jp/search?sourceid=navclient-ff&ie=UTF-8&rls=GGGL,GGGL:2006-18,GGGL:ja&q=%E6%AD%A3%E8%A6%8F%E8%A1%A8%E7%8F%BE+IP
0173nobodyさん2006/08/07(月) 12:43:44ID:???
>>171
dotでexplodeして最初の3個をdotでimplode
0174nobodyさん2006/08/07(月) 13:33:26ID:K1n5iRST?2BP(0)
>>172
>>173
explodeで乗り切れました。
本当にありがとうございます。
0175nobodyさん2006/08/07(月) 13:41:46ID:???
strposで後ろからドットを検索して、substrもいいな
0176nobodyさん2006/08/07(月) 13:46:33ID:???
>>174
ちなみにそういうのをやるときは、関数を作った方が便利だぞ。

function my_addr_cut ($addr){
$ar = explode('.' $addr);
if (count($ar) > 3){
return $ar[0].'.'.$ar[1].'.'.$ar[2];
}
}

とやっておいて、

$ip3 = my_addr_cut( $_SERVER['REMOTE_ADDR'] );
0177nobodyさん2006/08/07(月) 20:38:09ID:OuBXfFXq
一部のWikiの様に[[リンク先の名前|リンク先のURL]]でリンクが貼れるようにしたいんですけど、どうすればいいですか?
0178nobodyさん2006/08/07(月) 23:56:54ID:???
>>177
1.パーサから自作
2.正規表現関数を使う(preg_replaceとか)
0179nobodyさん2006/08/08(火) 02:03:26ID:???
text_wiki
0180nobodyさん2006/08/08(火) 23:54:31ID:???
納期まにあわえんぇあd
0181nobodyさん2006/08/09(水) 08:57:24ID:???
>>180
納期って本気を出し始める日のことじゃ?
0182nobodyさん2006/08/09(水) 09:58:34ID:???
デバッグを開始する日だろ
0183nobodyさん2006/08/09(水) 10:28:25ID:???
>>182
部下に投げる日
0184nobodyさん2006/08/09(水) 10:40:30ID:???
仕様書を書き始める日だろ。
0185nobodyさん2006/08/09(水) 10:50:53ID:???
例外処理とif文による分岐の違いをサンプルコード付きで
わかりやすく説明してください。
0186nobodyさん2006/08/09(水) 10:54:11ID:???
その違いが分からないのはある意味凄いな
0187nobodyさん2006/08/09(水) 11:02:15ID:???
例外処理って try catch のことだろうけど
よほど、テクニカルなことをしない限りは違いはあまりない
ただ、ある状態になった後の処理を一箇所にまとめられるという
利点が try catch にはある

if (!$this->foo()) {
$this->printError();
 return false;
}
if (!$this->bar()) {
$this->printError();
 return false;
}
こんなのが、

try {
 $this->foo();
 $this->bar();
} catch (Exception $e) {
$this->printError();
 return false;
}
になる
これ以上の使い方をしたいなら、自分で使って慣れるほうがいい
01881852006/08/09(水) 11:10:53ID:???
>>186
そんなに褒められると照れますよ。
>>187
if文で書くよりもすっきりした感じになりますね。でも、それ以外には
例外処理の利点がいまいちはっきりしないので、慣れるまでもっと自分
で使ってみることにします。
レスありがとうございました。
0189nobodyさん2006/08/10(木) 16:02:56ID:???
>>185
例えば実数のルート(平方根)を求める関数を作ることを考えてみろ。
引数はdouble, 返値もdoubleにしたいはずだ。
しかしその関数に-5とか入れたらどうなる?エラーを起こしたことを知らせるしかない。
下手にdoubleで答えも返せないし、しょうがなく投げるのが例外で、
それを捉えるのがtry catchだ。

つまり、if elseとtry catchはまったくの別物。
0190nobodyさん2006/08/10(木) 16:14:34ID:???
まじめに思い出したら
float sqrt ( float arg )
なんてのがあったな。

if ($foo >= 0){
 $bar = sqrt($foo);
}else{
 $bar = 0;
 echo "error";
}

とするか

try{
 $bar = sqrt($foo);
}catch(Exception $e){
 $bar = 0;
 echo "error";
}

だな。見た目は似てるけどtry catchの方は一回2行目でエラーが発生してて
それを無理矢理正常なふりをしようってのがcatch文。
01911852006/08/10(木) 23:24:47ID:???
>>189 >>190
つまりは、あらかじめ値を検査して値が正しい場合に実行するとき
に用いるのがif文。値が正しいかはわからないけど、とりあえず実
行して、うまくいかないときの処理を用意しておくのが例外処理。
・・・というように理解しました。多分これでいいはず。
おふたりとも、レスありがとうございました。
0192nobodyさん2006/08/11(金) 10:09:32ID:???
>>191
>とりあえず実行して、うまくいかないときの処理を用意しておくのが例外処理
ちょっと補足。
例外はあくまで例外が起きたときに使うもの。 異常が発生したときに起きるのが例外。
ファイルやらネットワーク関係の処理では、機械やユーザや相手の都合次第で
正常終了したり異常終了になったりするわけで、そういった異常を拾うもの。

書きやすいからって多用してると、想定内のエラーなのか、予期しないエラーなのか
判別できなくなるから止めたほうがいい。 普通、例外の復帰って重いし。 (phpの実装はしらんが)
まーphpだったらそんなに気にする必要は出てこないだろうが、他人にソース見られたときに
「うわーこいつアホだな」 と思われないように、頭の片隅に入れといて。
0193_2006/08/11(金) 18:12:39ID:abMDzR7z
phpで
×時間後にプログラムを実行したり
×時から×時間ごとにプログラムを実行する方法
ってあるでしょうか?
Imageタグを呼び出す方法が良いかと思うのですが
その先が分かりません
0194nobodyさん2006/08/11(金) 18:40:15ID:???
>>193
それは、phpの範疇ではありません。
それぞれの環境が持っている、スケジューラーやデーモンを利用するしか
ありません。

linux 系の場合は crontab というデーモンでできます。
0195_2006/08/11(金) 19:10:07ID:abMDzR7z
そうでしたか
一応
http://www.bitfolge.de/pseudocron-en.html
という所にあるのが使えるかなと思ったんですが
PHPに関して初心者中の初心者でどのように利用するかわかりません
英語なので翻訳ソフト使ってり読んだりしましたが
具体的に書いてなかったような気がします。
もしこれがcronと同じ役割を果たせるのであれば使い方
大まかでもいいので教えて欲しいです。
0196nobodyさん2006/08/11(金) 19:15:30ID:???
>>195
crontab 自体は設定にそって実行ファイルを動かすだけ
まずは、crontab 自体の設定の仕方を覚えた方がいい

そのサイトにあるようなものは別にいらない
普通に crontab を使えばいい
0197_2006/08/11(金) 19:19:46ID:abMDzR7z
>>196
良くわからないのですが
contrab の使用を禁止しているレンタルサーバーも結構あるようなので
できれば使いたくなかったのですが
現実としてどうなんでしょうか?
教えてください
0198_2006/08/11(金) 19:21:28ID:abMDzR7z
>>196
良くわからないのですが
contrab の使用を禁止しているレンタルサーバーも結構あるようなので
できれば使いたくなかったのですが
現実としてどうなんでしょうか?
教えてください
0199_2006/08/11(金) 19:22:52ID:abMDzR7z
ブラウザが変ですよと言う
表示がでて二重投稿になってしまいました
すみません
0200nobodyさん2006/08/11(金) 19:32:10ID:???
>>198
現実としては、PHP単体では無理
>>195 のやつは、誰かがアクセスするたびに実行されるだけなので
特定の時間後にきっちに動かすというのは無理

かなり、アバウトでいいなら pseudo-cron でもいいけど
0201nobodyさん2006/08/11(金) 19:36:58ID:???
>>198
簡単な使い方ならここに乗っている
とりあえず、使ってみろ
このサイトに書かれていることも分からないのなら、
もっとはじめから学んだほうが良い

http://phpspot.org/blog/archives/2005/11/croncronphp_pse.html
0202_2006/08/11(金) 20:01:50ID:abMDzR7z
遅れてしまいました。
>>200
イメージタグで呼び出してやるので実際に時間のずれがあるのはわかります
>>201
PHPSPOTにも載ってたんですね
そこに書いてある流れはだいたい分かるんですが
/*config section*/
以外の部分で何を設定すればいいのかなどわかりません
もしかしたら具体的な内容になってきたかもしれません。すみませn
0203nobodyさん2006/08/12(土) 20:54:29ID:???
>>202
>このサイトに書かれていることも分からないのなら、
>もっとはじめから学んだほうが良い
0204_2006/08/12(土) 23:27:19ID:wVHES/N8
>>203
そこのサイトに書かれてる事はわかっても、
そこのサイトに書かれてる内容だけで
全部理解できなかったと言うことです
0205nobodyさん2006/08/16(水) 23:13:07ID:???
フォーム入力データのhtmlエンティティ化とDB登録についてなんですが、
ちょっとパニクってきました。
アドバイスいただければ嬉しいです。

・流れ
入力画面→確認画面→完了画面と遷移します。
入力画面で入力したデータをPOSTで確認画面に、確認画面から完了画面へは
hiddenフィールドで渡します。(完了画面でDB登録)
入力修正のときは、確認画面のhiddenフィールドに入力データを入れ、入力画面にデータを戻します。
(入力画面では、そのデータを受け、初期表示に利用)

良く分からないのは、

・hiddenフィールドにもhtmlspecialcharsをかました方が良いんでしょうか?
 例えば、<input type="hidden" name="memo" value="<?=htmlspecialchars($memo)?>">
 phpのマニュアルでは、セキュリティ上、hiddenにかましているようなのですが。。。

・その場合、hiddenから受け取ったデータはhtmlエンティティ化されますが、
そのデータをそのままDBに登録するのはどうなんでしょうか?
 例えば、&などは「&」の形で登録されちゃいますが。。。
いろいろ調べてみましたが、DB登録時には、なるべく素のデータを登録するのが、
 望ましいという記事もあり、迷っています。

それとも、hiddenでデータ受け渡しするんでなく、セッションを使うべきなのでしょうか?
02062052006/08/16(水) 23:20:10ID:???
すみません。上記の、

&などは「&」の形で登録されちゃいます・・・のところは、
&などは「アンド記号amp;」

という意味です。
0207nobodyさん2006/08/16(水) 23:40:37ID:???
>>205
inputタグに書くHTMLエンティティはPOST送信時に復号される
02082052006/08/17(木) 00:44:43ID:???
>>207

どうもありがとございます。
簡単なプログラムで確認したところ、何事もなく復元されていました。
どうも、頭の中でごちゃごちゃ考えすぎていたようです。
恥ずかしい。。。
ありがとうございました。

しかし、PHPマニュアルのそれらしいところを見たのですが
POST送信時に復号される話は見つかりませんでした。
私の探し方が悪いのでしょうか?

0209nobodyさん2006/08/17(木) 01:19:49ID:???
>>208
PHPの仕様じゃない
0210nobodyさん2006/08/17(木) 21:15:19ID:???
PHP初心者です。
PHP+MySQLを使用し、登録者以外からの書込み拒否する為
名前とパスワードが一致すれば、書込みできるようにしたいのですが、
名前とパスが正しくても、書込みできません。
現在の設定は
MySQLのテーブルに、投稿者の名前を記録するフィールド名=name
投稿者のパスワードを記録するフィールド名=pass と設定した状態で

投稿者の名前=NAME、投稿者のパスワード=PASS、としてPOST属性で送信し
以下を受取側のファイルの一部にしてパスワード確認しています。

//↓から
extract($_POST);
mysql_connect('localhost','root','HOSTPASS');
mysql_select_db('TABLE');
$sql= "select * from FIELD where name = $NAME";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);
$PASS = $row[pass];
if($pass != $PASS){
echo "パスワードが違います。";
}
else{
以下書込みプログラムが続く
//ここまでが受取側の一部

どこがが間違っているのでしょうか?
ご指導宜しくお願いします <(_ _)>
0211nobodyさん2006/08/17(木) 22:18:29ID:???
>>210
すばらしく、ザルなスクリプトだが、サンプルという好意的に解釈しよう

まずは、問題を切り分けろ

1.$PASS には期待している文字列が入っているか
2.$row['pass'] には本当に期待している文字列が格納されているか?
3.仮に $row['pass'] = $PASS; として書き込みプログラムが動くか

1.が駄目なときは前の入力画面がおかしい
 パラメータ名などを確認
2.DB に本当にレコードが存在するか確認
 ない場合は SQL 文が間違っている可能性がある
 直接 MySQL のクライアントを立ち上げて試してみる
3.分岐がちゃんと動いているか確認
 動いているときは、書き込みプログラムがおかしい

このどれもが期待通りに動いているのなら
もう一度書き込んで見てくれ
そのときは、本当に使っているソースを貼って
DB の接続に必要なパラメータは消していいから
0212nobodyさん2006/08/17(木) 22:20:04ID:U0Bacn/n
>>211
あ、悪い。間違えた
誤)
3.仮に $row['pass'] = $PASS; として書き込みプログラムが動くか

正)
3.仮に $row['pass'] = $pass; として書き込みプログラムが動くか
0213nobodyさん2006/08/18(金) 06:54:21ID:???
>>210
nameって予約語じゃなかったっけ、予約語ならバッククォート
あと値もクォートしましょう
where `name` = '$NAME'
02142102006/08/18(金) 10:20:32ID:???
>>211
詳しい説明ありがとうございました。
誤作動の原因としては、
1のパラメータの送信値が間違っていたことです。( ´,_ゝ`)フッ
nameを送るつもりがidを送信していました・・・orz
ここを手直ししたら、自分的には思った通り動きました。

ところで、ベテランの方に質問なんですが、
スクリプト作成の経験がまだ半月位なので、
今回のようにデバックでメチャメチャ頭抱えてます。
問題発生時の解決法ののポイントとしては、
>まずは、問題を切り分けろ
とありましたが、その他に「コレに気をつけろ!!」ってのありますか?
ありましたら、またご指導お願いします <(_ _)>

>>213
レスありがとうございます。
0215nobodyさん2006/08/18(金) 10:52:18ID:???
>>214
気をつけろというのは、たくさんあるが、
ある程度までは try and error で慣れるほうがいい

デバッグで使えるのは
var_dump();
print_r();
など、特に var_dump() は型も一緒に表示するから初心者は特に重宝するだろう

机上デバッグの癖を付けるのはいいことだとは思うが、
それは最低限の知識と経験がないと、不必要に時間をかけるだけだろう

そこそこ慣れて xdebug というような PHP のデバッガーを使うようになると
さらに楽になる
0216nobodyさん2006/08/18(金) 13:03:44ID:???
>>208
結論としては、
「細かいこと考えずにhiddenにもエスケープ関数かましといててOK!」
ってこと??

それを書かないと他の初心者の参考にならないよ。
0217nobodyさん2006/08/18(金) 19:33:30ID:???
携帯電話って、JavaScriptは使えなくて、PHPとPerlは使えるんですか?
これらはどこで処理されているのですか??
0218_2006/08/18(金) 21:36:53ID:qJB64gmd
自分も初心者ですが
PHPやPerlはサーバーで処理され
Javascriptは簡単に言うとあなたのPCで処理されるので
Javascriptを利用する場合はPC(携帯)の環境により実行結果が異なります
0219nobodyさん2006/08/18(金) 21:42:42ID:???
サーバサイドとクライアントサイドを
わかりやすく説明していただけませんか??
0220nobodyさん2006/08/18(金) 22:10:18ID:???
>>219
中学レベルの英語も理解できないなら氏んだほうがいいと思う。
0221nobodyさん2006/08/18(金) 22:18:28ID:???
理解できないだけで>>219を氏ねという>>220のほうがしんだ方がいいよ
0222nobodyさん2006/08/18(金) 22:25:23ID:0rSuveav
サーバーサイドは、サーバー側の機能やマシンで処理される情報。
クライアントサイドは、ユーザー側がブラウザやマシンの機能で処理する情報って
ことだとオレは、思いこんでるけどまっがってるかな?
JAVA,CGI,PHPとかは、サーバーサイド。
html,JavaScript,Flashアクションスクリプトとかは、クライアントサイド。
0223nobodyさん2006/08/18(金) 22:42:39ID:???
PHPやPerlはサーバーで処理され
Javascriptは簡単に言うとあなたのPCで処理されるので
Javascriptを利用する場合はPC(携帯)の環境により実行結果が異なります
02242102006/08/19(土) 08:46:56ID:???
>>215
少しレス遅くなり、スマソ
var_dump();は初めて見た関数だったので、PHPエディター早速でF1しました。
便利そうですね
でも、print_r();がF1で出てこなかったのはなぜだろう?

デバッガーとかの存在も初めて知ったよwww
xdebugもメチャ便利そう!!

いい情報に感謝します。
0225nobodyさん2006/08/19(土) 09:40:45ID:???
>>217
http://pc8.2ch.net/test/read.cgi/php/1144504375/224,227,228 とかで釣りしてるんで
真面目に答えなくてもいいよ
0226nobodyさん2006/08/19(土) 19:52:08ID:rwxCztmB
BBQ入れたいんですがどこらへんに入れれば良いのでしょうか?

function host_chk(){
$host = getenv("REMOTE_HOST");
$addr = getenv("REMOTE_ADDR");
if($host == "" || $host == $addr){
$host = @gethostbyaddr($addr);
}
$deny = split(",", deny);
while(list(,$value) = each($deny)){
$value = str_replace("*",".*",$value);
if(eregi($value,$host) || eregi($value,$addr)){
error("アクセス不可");
}
}
}
0227nobodyさん2006/08/19(土) 20:19:51ID:???
好きなところに入れたらいいんじゃないの
0228nobodyさん2006/08/19(土) 20:32:09ID:???
適当に入れると表示されなくなるので
それで制限らしきところから弄れるかなと思いまして
02292082006/08/19(土) 22:14:54ID:???
>>216

すみません。仕事でバタバタしていました。

結論としては、
「こまかいこと考えずに、hiddenにもエスケープ関数かませてOK」
だと思います。(むしろかませるべき。)

遷移先にて、$_POSTで受けた値を確認しましたが、
htmlspecialcharsでエスケープした値が、自動的にもとの値に
復元されていました。

209さんが言うように、PHPの仕様だと思います。
(マニュアルの「第 56章PHP と HTML」の「1. フォームから、もしくは URL から値を渡す場合には・・・」を
読むと、そういうニュアンスのことが少し書かれていました。)
0230nobodyさん2006/08/20(日) 02:52:02ID:???
&amp;→&の変換はhtmlの仕様(文字実体参照)
phpがやってくれるのは%26→&の変換
0231nobodyさん2006/08/20(日) 09:31:17ID:???
e-word(http://e-words.jp/)のような、
印刷用ページ編集機能をPHPで実現するにはどのように書いたら良いでしょうか?

HTMLのフォームでデータの受け渡しをして、PHPファイルでデータを蓄積するイメージです。
考え方でも良いのでヒント頂けないでしょうか・・。
0232nobodyさん2006/08/20(日) 11:39:05ID:???
>>231
何がしたいのかがよくわからない
0233nobodyさん2006/08/20(日) 12:09:22ID:???
HTMLのフォームでデータの受け渡しをして、PHPファイルでデータを蓄積するといいんじゃないかな?
0234nobodyさん2006/08/21(月) 00:14:46ID:OxXNX8LD
>>231
つまりe-WordsみたいにWeb表示用と印刷用の2種類の表示がしたいってこと?
ただ単に内容(説明文等)をなんでもいいからファイルに記述して、
Web表示用と印刷表示用の二つのPHPファイルから読み出せるようにすればいいんじゃないの?
0235nobodyさん2006/08/21(月) 01:04:26ID:???
css使う方が楽ちゃうんか?
0236nobodyさん2006/08/21(月) 01:17:51ID:???
>>234 レスありがとうございます。
Web表示用は別のデータベース関係のCGIで処理を行っているので、その内部にFORMタグを設置、
それを印刷表示用のPHPでデータを受け取る形にしたいんです。

受け取った時の、クッキーを用いてデータを蓄積させていく方法をご教授いただけないでしょうか?
内容が書き換えられてしまうんです。

<form action="test.php">
<input type="hidden" name="data1" value="$data[1]">
<input type="hidden" name="data2" value="$data[2]">
<input type="submit" name="submit" value="追加">
</form>
↑$data[1],[2]の部分はCGIの処理でデータが入ります。

↓PHP側はデータを受け取るのですが、クッキー&蓄積で戸惑ってます。
<?php print $data1; ?>
02372312006/08/21(月) 01:20:44ID:???
補足::別のCGIというのはCSVを読み込んで表示するやつです。
http://cgiroom.nu/list/database/index.html
こちらの検索専用データベースを使っています。
0238nobodyさん2006/08/21(月) 10:54:05ID:OxXNX8LD
なんでクッキーが必要なのか分からない
フォームでデータ受け渡しして表示するだけじゃないの?
0239nobodyさん2006/08/21(月) 11:19:41ID:???
超基本的な質問なんだけど・・・orz

if($a != ""){以下を実行する}

if($a <> ""){以下を実行する}
この2つは、「$aが空白ならば、以下を実行する」でいいよね?

あと、
if($a != $b){以下を実行する}
コレは、「$aの値と$bの値が同じならば、以下を実行する」だよね?

上の分岐文が3つとも、オレの期待した分岐になってくれないんで
誰か助けて下さい。

ちなみに、「$a、$b、$c、$dの値が全部Eとなっている時」に

$a = $c;
$b = $d;
echo "$a";
echo "$b";
if($a != $b){
echo "$a";
echo "$b";
echo "以下を実行する";
}

とテストしたら
「EEEE以下を実行する」
と表示されてしまう

オレ間違ってるのかな???
0240nobodyさん2006/08/21(月) 12:30:15ID:???
>>239
ファイルから読み込んだ値だと改行がくっついて
見た目は同じでも中身は違ったりするけどね
0241nobodyさん2006/08/21(月) 12:44:31ID:???
>>239
>この2つは、「$aが空白ならば、以下を実行する」
アホ。真逆だ。「$aが空白ではないならば」だ。

>$aの値と$bの値が同じならば、
これも真逆。同じ「でない」ならば、だ。

基礎から勉強し直せウンコくん。
0242nobodyさん2006/08/21(月) 12:52:42ID:???
var_dump($a, $b, $c, $d);
でもはさんでみたらw
02432392006/08/21(月) 13:38:29ID:???
>>240
MySQLから読み込んだデータなんだけど、
MySQLの場合も改行がくっつく事あるのですか?
データ記録の仕方では、改行がついてないとは思うのですが・・・

>>241
>アホ。真逆だ。「$aが空白ではないならば」だ。
まったくその通り・・・orz
239での書き込みがミスですwww

糞まみれのオレだけど
「$aが空白ではないならば」に読み替えて、
教えてくれ〜
02442392006/08/21(月) 13:39:11ID:???
連投です

もう少しだけ、239を補足
239のスクリプトは、パスワード識別の為の部分なんですが、
$cはフォームで書込みされ、POST属性で受け取ったパスの値、
$dはMySQLに記録されいた値を呼び出したパスの値として
「$c、$dの値が両方Eとなっている時」に

$a = $c;
$b = $d;
if($a == ""){
echo "パスを入力して下さい。"
exit;
}
echo "$a";
echo "$b";
if($a != $b){
echo "$a";
echo "$b";
echo "パスが違います。";
exit;
}
以下、パスが認証されたとして、メインプログラム実行

とテストすると「EEEEパスが違います。」と表示され、
「EEEE」と表示されてる事から、
if($a != $b)が機能してないと推測したんだけど
何故???誰か助けてぇぇぇぇ
0245nobodyさん2006/08/21(月) 13:48:34ID:???
通学途中の女子高生のミニスカートが風でまくれあがってパンツがみえてしまうようなPHPを教えてください。
0246nobodyさん2006/08/21(月) 13:52:15ID:???
>>245
マ板に質問してみては?
あそこ、デスマーチで頭いかれている人多いから、なかなかナイスな回答がくるよw
0247nobodyさん2006/08/21(月) 13:53:33ID:???
マ板?
0248nobodyさん2006/08/21(月) 16:09:31ID:???
>「EEEE以下を実行する」
>と表示されてしまう

そのプログラムなら、その動作結果で正しいわけだが。
つまりお前が間違っている。
0249nobodyさん2006/08/21(月) 16:58:14ID:OxXNX8LD
こういう基礎的な論理式から理解できてないと逆にどう言ったらいいか困る
02502392006/08/21(月) 18:13:38ID:???
>>248>>249
オレが間違っているっていう事は、認識しているのだが
どう間違っているのかがわかっていないオレ・・・orz

オレの頭の中の思考もコメントで付け足しするので
どこでオレの思考回路が間違っているのか教えて欲しい

$cはフォームで書込みされ、POST属性で受け取ったパスの値、
$dはMySQLに記録されいた値を呼び出したパスの値として
「$c、$dの値が両方Eとなっている時」に

$a = $c;    //$cはEなので、$aの値はEになる
$b = $d;    //$dはEなので、$bの値はEになる
if($a == ""){    //$aの値はEだから、空白ではない
echo "パスを入力して下さい。"    //だからここは回避される
exit;    //ここは今は関係ない
}    //ここも今は関係ない
echo "$a";    //間違ってるみたいだから$aを表示、$aはEになってる
echo "$b";    //間違ってるみたいだから$bを表示、$bはEになってる
if($a != $b){    //$a、$bの値は共にEだから、ここから回避されるはず
echo "$a";    //Eと表示された・・・工エエェ(´Д`)ェエエ工
echo "$b";    //Eと表示された・・・工エエェ(´Д`)ェエエ工
echo "パスが違います。";    //表示された・・・工エエェ(´Д`)ェエエ工
exit;    //直前の3行がEと表示されたから、メインプログラムに行かないのは分かる
}    
以下、パスが認証されたとして、メインプログラム実行  //本当はここになるはずなのに・・・ショボン

実行結果は「EEEEパスが違います。」となる。
上のスクリプトでオレが期待しているのは
「EEメインプログラムを実行」と表示されることなのに・・・

0251nobodyさん2006/08/21(月) 18:25:53ID:???
>>250
もしそのコードでそういう結果になるのなら、
$aと$bの中身が違うとしか考えられないわけだが。

if($a != $b)

if($a !== $b)
にして試してみれば?
0252nobodyさん2006/08/21(月) 18:31:48ID:???
242は華麗にシカトですか?
0253nobodyさん2006/08/21(月) 19:41:21ID:OxXNX8LD
なんで>>242を試さないのか
02542392006/08/21(月) 20:10:01ID:???
>>242
レス遅くなってスマソ、
243の後でPHPマニュアル見たけれど、初心者なので
var_dump()の解説見たけど、理解できなかったんだよ・・・orz
それで後回しにしてしまったら、忘れてた。
今から他のサイトも見て検証してみる。





0255nobodyさん2006/08/21(月) 20:15:37ID:???
>>254
兎に角var_dumpで吐かせれば結果は出るだろうが
0256nobodyさん2006/08/21(月) 20:34:32ID:LbhS4bpH
こんにちわ。グーグルアドセンスって、どうやってページテーマにあった
広告を出してきているのでしょうか。

恐らくJavascriptだけでは、不可能だと思うので、PHPなども使用していると思うのですが、PHPが動かない
フリーサーバー等でも
サイトテーマにあった広告を出せるのが不思議でしょうがいないです。

ご存知の方いらっしゃいましたら教えてください。お願いします。
0257nobodyさん2006/08/21(月) 20:39:58ID:???
>>256
GoogleAdsense(に限らず配信型広告は大方)JavaScriptで、Googleのサーバにある広告データをもらってきている。
つまりプログラムはGoogleのサーバで動いているということだ。
02582392006/08/21(月) 20:57:00ID:???
var_dumpでやってみたよ
一部オレの勘違いがあった^^;
250では、$a = $c と置き換えていたが、$cをそのまま、突っ込んでいたよ
でも、影響はないと思われたので
var_dump($b, $c, $d);
とやってみたら
string(4) "0000" string(4) "0000" string(4) "0000"
と出たよ

よくわからんけどどう?
0259nobodyさん2006/08/21(月) 21:00:47ID:???
>>256
広告のコード見れば一目瞭然でしょ
0260nobodyさん2006/08/21(月) 21:29:56ID:???
>>239
var_dump($b, $c, $d);
なんで$aが無いのか・・素直じゃないねぇ
てかプログラムやるの無理じゃない?
■ このスレッドは過去ログ倉庫に格納されています