くだすれPHP(超初心者用)
■ このスレッドは過去ログ倉庫に格納されています
0001nobodyさん
2006/06/12(月) 14:06:01ID:???もしくは質問者自身何が何だが分からない質問を勇気を持って書き込むスレッドです。
PHP使いが優しくコメントを返しますが、
お礼はPHPの布教と初心者の救済をお願いします。
PHP Home Page
http://www.php.net/
0233nobodyさん
2006/08/20(日) 12:09:22ID:???0234nobodyさん
2006/08/21(月) 00:14:46ID:OxXNX8LDつまりe-WordsみたいにWeb表示用と印刷用の2種類の表示がしたいってこと?
ただ単に内容(説明文等)をなんでもいいからファイルに記述して、
Web表示用と印刷表示用の二つのPHPファイルから読み出せるようにすればいいんじゃないの?
0235nobodyさん
2006/08/21(月) 01:04:26ID:???0236nobodyさん
2006/08/21(月) 01:17:51ID:???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; ?>
0237231
2006/08/21(月) 01:20:44ID:???http://cgiroom.nu/list/database/index.html
こちらの検索専用データベースを使っています。
0238nobodyさん
2006/08/21(月) 10:54:05ID:OxXNX8LDフォームでデータ受け渡しして表示するだけじゃないの?
0239nobodyさん
2006/08/21(月) 11:19:41ID:???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以下を実行する」
と表示されてしまう
オレ間違ってるのかな???
0241nobodyさん
2006/08/21(月) 12:44:31ID:???>この2つは、「$aが空白ならば、以下を実行する」
アホ。真逆だ。「$aが空白ではないならば」だ。
>$aの値と$bの値が同じならば、
これも真逆。同じ「でない」ならば、だ。
基礎から勉強し直せウンコくん。
0242nobodyさん
2006/08/21(月) 12:52:42ID:???でもはさんでみたらw
0243239
2006/08/21(月) 13:38:29ID:???MySQLから読み込んだデータなんだけど、
MySQLの場合も改行がくっつく事あるのですか?
データ記録の仕方では、改行がついてないとは思うのですが・・・
>>241
>アホ。真逆だ。「$aが空白ではないならば」だ。
まったくその通り・・・orz
239での書き込みがミスですwww
糞まみれのオレだけど
「$aが空白ではないならば」に読み替えて、
教えてくれ〜
0244239
2006/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:???0247nobodyさん
2006/08/21(月) 13:53:33ID:???0248nobodyさん
2006/08/21(月) 16:09:31ID:???>と表示されてしまう
そのプログラムなら、その動作結果で正しいわけだが。
つまりお前が間違っている。
0249nobodyさん
2006/08/21(月) 16:58:14ID:OxXNX8LD0250239
2006/08/21(月) 18:13:38ID:???オレが間違っているっていう事は、認識しているのだが
どう間違っているのかがわかっていないオレ・・・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:???もしそのコードでそういう結果になるのなら、
$aと$bの中身が違うとしか考えられないわけだが。
if($a != $b)
を
if($a !== $b)
にして試してみれば?
0252nobodyさん
2006/08/21(月) 18:31:48ID:???0253nobodyさん
2006/08/21(月) 19:41:21ID:OxXNX8LD0254239
2006/08/21(月) 20:10:01ID:???レス遅くなってスマソ、
243の後でPHPマニュアル見たけれど、初心者なので
var_dump()の解説見たけど、理解できなかったんだよ・・・orz
それで後回しにしてしまったら、忘れてた。
今から他のサイトも見て検証してみる。
0256nobodyさん
2006/08/21(月) 20:34:32ID:LbhS4bpH広告を出してきているのでしょうか。
恐らくJavascriptだけでは、不可能だと思うので、PHPなども使用していると思うのですが、PHPが動かない
フリーサーバー等でも
サイトテーマにあった広告を出せるのが不思議でしょうがいないです。
ご存知の方いらっしゃいましたら教えてください。お願いします。
0257nobodyさん
2006/08/21(月) 20:39:58ID:???GoogleAdsense(に限らず配信型広告は大方)JavaScriptで、Googleのサーバにある広告データをもらってきている。
つまりプログラムはGoogleのサーバで動いているということだ。
0258239
2006/08/21(月) 20:57:00ID:???一部オレの勘違いがあった^^;
250では、$a = $c と置き換えていたが、$cをそのまま、突っ込んでいたよ
でも、影響はないと思われたので
var_dump($b, $c, $d);
とやってみたら
string(4) "0000" string(4) "0000" string(4) "0000"
と出たよ
よくわからんけどどう?
0260nobodyさん
2006/08/21(月) 21:29:56ID:???var_dump($b, $c, $d);
なんで$aが無いのか・・素直じゃないねぇ
てかプログラムやるの無理じゃない?
0261nobodyさん
2006/08/21(月) 21:48:21ID:LbhS4bpHありがとーです^^
見てもわからないんですよね。グーグル側のjsファイルを見てもjsスクリプトしか
記述してないんです。
こちら側のJSファイル(グーグルから貼り付けるように言われたJSファイル)を ME.js
グーグル側のjsファイルを Google.js と仮定します。
ME.js は Google.js を読み込むものである。
Google.js には DBと連携させる何かしらのPHPが書かれている。
ME.jsを読み込んだこちらのファイルは、もしPHPが動かないサーバーでも、
結局はグーグル側でPHPを動作させてこちら側のJSに結果を渡しているから
動くんですよ
と言う解釈で宜しいでしょうか。
0264nobodyさん
2006/08/22(火) 19:19:23ID:???PHP5の入門書で勉強し始めたんだけど、本番環境がPHP4だから恐ろしい。
気をつけるべき事とかあれば教えてください。
0265nobodyさん
2006/08/22(火) 20:16:12ID:???オブジェクト指向構文はPHP5から追加されたものが非常に多い
関数の引数が違うこともある
とりあえず、いきなり本番環境は止めてくれ。
ローカルでPHPのテスト出来る環境作って、そこでテストしろ
0266nobodyさん
2006/08/22(火) 20:33:37ID:???ありがとー。
引数の違いがあるのは痛いorz
テスト環境は自宅鯖で他人の作ったPHP動かす為に5.04が入ってるので大丈夫?です。
それ以降だと動かないモノがあるんで・・・
4と5って両方いれるの無理そうだし入れ替えるわけにもいかないし
困ったもんだ。
0267nobodyさん
2006/08/22(火) 23:48:12ID:???5メインにしたいけどなかなかそうもいかないのが辛い。
0268nobodyさん
2006/08/23(水) 16:09:55ID:???0269nobodyさん
2006/08/23(水) 22:31:52ID:???027042歳
2006/08/31(木) 03:53:00ID:Z0sApiUaを使って予定表を作りました。便利でキレイなんですが、
これのデータである
/data/200608.dat
を読み込み 今日の内容だけを表示する 超簡単(そうな)プログラムがかけません。
openfile();を使ったらいいというのだけがわかるんです。
dat の中身は
ちなみに
$maxno,$ctgno,$stamp,$putm,$putd,$week,$puthou,$putmin,$tit,$com,$timeflag,$settim,
となっており、
4,1,-1,08,16,3,,,お盆休み,,1,1150783667,
というようになっています。
最初がIDで、カテゴリーナンバー、次はログ並べ替え用スタンプ で、月、日、曜日、時間、分、タイトル、内容、というのはわかるんです。
日付とタイトルだけを抜き出して表示するにはどう書いたらいいんでしょうか?
絶対できそうだと思ったけど、脳がパンクしました。
027242歳
2006/08/31(木) 04:07:33ID:Z0sApiUaありがとうございます。
http://www.scollabo.com/banban/php/php_05.html#explode
とか見てみましたが、まったくわからないというか…。
どっかに参考になるようなサイトだけでもあったら教えていただけたら。
お金払います!って気持ちなんですけど。
027342歳
2006/08/31(木) 04:14:09ID:Z0sApiUafopen() でした。
027442歳
2006/08/31(木) 04:37:09ID:???お礼は少しですが必ずさせていただきます。
0276nobodyさん
2006/08/31(木) 07:21:44ID:at/JVgVZ,をキーにsplitで区切った配列の該当要素を使うだけ
http://から始まる絶対パスを抽出する方法ってないですか?
realpathだとhttpからは無理ですし・・・。
explodeでケツから/で割って頭をhttp://と交換する方法も考えたんですが、
どんな階層のディレクトリに置かれても機能するようにしたいので、
出来ればそれ以外で何かあればお願いします。
027842歳
2006/08/31(木) 12:41:18ID:???http://jp.php.net/split
ですが、これの例文みたいなのはどっかにないですか?
重ね重ねすみません。 このPHPのサイトは私にとってほとんど意味がわからないのです。
簡単なはずなんですけど。
0279nobodyさん
2006/08/31(木) 13:45:55ID:???0280nobodyさん
2006/08/31(木) 13:53:23ID:???$data = "a,b,c,";
$line = explode(",", $data);
foreach($line as $key => $value) print('$line['.$key.'] == '.$value.'<br>');
これで分かる?分かったら今凄く貧乏なのでお金ください。
028242歳
2006/08/31(木) 14:20:51ID:???なんてのがあるんですか? でもデータは /data/200608.dat なので
Loadtextfile()
とかで呼び出して、
if($today==date());
で検索をかけて… というようなことを考えて
すみません。 ムリです。 誰かメールください。 マジに払います(そんな大金は払えないが)。
これがわかったら、今後やっていけるような気がする。
ムリか。
028442歳
2006/08/31(木) 14:56:50ID:???で、最初に date() で日にちを 2006 と8に分けて、そのデータがあって、
しかも 15日だったら 今日のが表示される… って
そういう条件が2つあると無理って感じで・
あきらめたほうがいいだろうか。
0285nobodyさん
2006/08/31(木) 15:00:45ID:???028642歳
2006/08/31(木) 15:01:18ID:???については ゲットしました!! わかった〜 うれし〜。というのがあります。
ありがとうございます。 ゴミと言われてもしかたない。
028742歳
2006/08/31(木) 15:04:48ID:???0288nobodyさん
2006/08/31(木) 15:05:18ID:???ファイルから読み込んで変数にぶちこむ部分を分かりやすいように改変してるだけでしょうw
0289nobodyさん
2006/08/31(木) 15:06:04ID:???奇遇だな、俺も知ってるが42歳じゃない
好きだったんだけど苗字かわっちゃった
>>284 >>286
何を言いたいのか理解に苦しむ
とりあえず
> 日付とタイトルだけを抜き出して表示するにはどう書いたらいいんでしょうか?
これはできたってことか?
029042歳>>271
2006/08/31(木) 15:08:12ID:???そうです。それはできそうだなと思いましたが…。
誰か全部書いてください。 というか、自分でやりたいような気もするが、
ここで挫折したら、全部挫折しそうだ。
そもそもムリだったんだろうか。
0291nobodyさん
2006/08/31(木) 15:10:29ID:???それを挫折とは呼ばないのか?w
029242歳>>271
2006/08/31(木) 15:11:42ID:???0293nobodyさん
2006/08/31(木) 15:12:23ID:???とってもプラス思考なんですね。
029542歳>>271
2006/08/31(木) 15:26:02ID:???気になってたまりません。 このスレが。 仕事手につかん。
0296nobodyさん
2006/08/31(木) 15:26:51ID:???1) まずdate()から年と月を取得する
2) 該当するファイル(例:dat/200608.dat)が存在するかチェックする
3) あったらfgetcsv()でも使って配列$dataにでもぶち込む
4) $dataをループ処理でもして日付とタイトルを書き出す
5) ループしてる最中に今日の日付にマッチするのがあったら
他の変数($todayData)にでも格納しておく
6) 格納しておいた今日のデータ($todayData)を書き出す
やりたいことはこういうことか?
一つずつクリアしてゆけ、さもなくば好きなだけ挫折しれ
あとは知らない
029742歳>>271
2006/08/31(木) 15:31:46ID:???そういうことです。 意味は完全にわかるけど、書けるだろうか。
こんな簡単なサンプルプログラムがない。 サンプル命できたもので、基本的にはわかってないなと昨日から実感しとります。
1)の date() から年と月を取得するところから、
$Month=date(M); とかでいいんでしょうか?
そういうレベルなんですけど。
これは私にはムリだと思います。
0298nobodyさん
2006/08/31(木) 15:37:16ID:???だからそれを一つずつ試しながらクリアしていけばいいじゃん
>これは私にはムリだと思います。
そう思うならあきらめなさい
029942歳>>271
2006/08/31(木) 15:38:24ID:???0300nobodyさん
2006/08/31(木) 15:51:02ID:ntBbHdNQhttp://www.cgis.biz/script_web_cart/
ここで配布されているショッピングカートのphpを改造中で、
販売データをcsvに書き出す処理があるのですが、
購入商品の数だけcsvの行が増える仕様になっています。
1度の注文につき、どれだけの数の商品を購入しようが、
1行だけにしたいのです。
(販売商品データはcsvでは必要がないため、書き出さないようにしています)
多分この辺が怪しいと思うのですが...
「data_sell.php」のダウンロードcsvヘッダーの設定のあとの行から
$csv_head = mb_convert_encoding($csv_head,'SJIS','EUC-JP');
echo $csv_head;
for($i = 0; $i < count($log_all); $i++){
$log_array = split(",",$log_all[$i]);
for($j = 0; $j < count($log_all_i); $j++){
$log_i_array = split(",",$log_all_i[$j]);
if($log_array[0] == $log_i_array[0]){
$log_all[$i] = rtrim($log_all[$i]);
$log = $log_all[$i] . $log_all_i[$j];
$log = mb_convert_encoding($log,'SJIS','EUC-JP');
echo $log;
}
このどれかをいじればいいのじゃないかと思っているのですがどうでしょうか。
そんな単純じゃないだろうとは思うのですが、誰かお願いします。
030142歳>>271
2006/08/31(木) 16:10:34ID:???私だったらCSVデータをアクセスかなんかで引っ張って加工したらいいんじゃないかと思うんですけど。
エクセルでもいいけど。
ごめん。超初心者が何を言う。
0302nobodyさん
2006/08/31(木) 16:17:38ID:ikYjbt78PHPをインストールしてapacheを起動するとエラーになってしまいます。
Cannot load C:/php/sapi/php4apache2.dll into server: \x8ew\x92\xe8
\x82\xb3\x82\xea\x82\xbd\x83\x82\x83W\x83\x85\x81[\x83\x8b\x82\xaa
\x8c\xa9\x82\xc2\x82\xa9\x82\xe8\x82\xdc\x82\xb9\x82\xf1\x81B
C:/php/sapi/の下にphp4apache2.dll はあるんですがなんででしょうか?
ちなみに windowsXP apache2.2.3 PHP4.4.4 です。
すいませんが、わかる方おしえてください。
0303nobodyさん
2006/08/31(木) 16:36:05ID:???このスレで質問してる部分だけでいいならアルバイトって形で代行しても良いですよ^ω^
というか金ないのでやりたいですw
0305nobodyさん
2006/08/31(木) 16:44:15ID:ikYjbt78すいません。解決しました。
PHP5 に変更して、apache2.2 用のDLLをダウンロードして解決しました。
apache2.2 用のDLLをダウンロードしていれないとだめみたいです。
1日、なーんにもできなかった・・・・
0307nobodyさん
2006/08/31(木) 17:30:49ID:???031042歳 >>271
2006/08/31(木) 18:20:05ID:???0311nobodyさん
2006/08/31(木) 20:07:16ID:???これ以上ログ流すのやめてもらえませんか?^^
それとこれだけいろんな人が教えてくれたのに「自分でやるのか…。」は失礼だと思いますよ
0312nobodyさん
2006/08/31(木) 20:49:23ID:???0314nobodyさん
2006/08/31(木) 22:19:00ID:???031542歳 >>271
2006/08/31(木) 22:34:27ID:Z0sApiUa031742歳
2006/09/01(金) 00:24:57ID:+wXqiG2uまた教えてください。 こちらのログも決してムダにせず、私の血となり肉となります。
早速今夜も眠れない。
0318nobodyさん
2006/09/01(金) 00:58:26ID:???0319nobodyさん
2006/09/01(金) 03:17:12ID:???慌ててメアド欄を消してももう遅いよwww
お前は警察に逮捕されるだろう。
まあ、しょぼいストーカーか、陰湿な嫌がらせか、とにかくタイーホだねwww
もしタイーホされたくなければ、今すぐ自分の実名を名乗って謝罪しといたほうがいいんじゃない?
0320nobodyさん
2006/09/01(金) 03:36:54ID:???どうでもいいからもう42関係のレスやめろよ。
032142歳
2006/09/01(金) 14:17:34ID:+wXqiG2uですか? 知りませんでした。 これも役立ちそうです。 ありがとうございます。
0323nobodyさん
2006/09/05(火) 18:19:25ID:???$myURL=str_replace($_SERVER['DOCUMENT_ROOT'],"http://".$_SERVER['HTTP_HOST'],$_SERVER['SCRIPT_FILENAME']);
こうゆうこと?
外してるかもしれんし、もっとスマートな道がある気もする
0324nobodyさん
2006/09/05(火) 20:56:32ID:???define('SCRIPT_URL', (empty($_SERVER['HTTPS']) ? 'http' : 'https').'://'.$_SERVER['SERVER_NAME'].$_SERVER['SCRIPT_NAME']);
0325nobodyさん
2006/09/06(水) 19:26:47ID:???SESSIONが保持できません。
SELFで自分に戻るとSESSIONの中身は取れているのですが、
何が考えられるでしょうか?
ちなみにSESSIONをセーブして中身をみていたら、
別のページに移動したときに2個目のセッションが作成されていました。
0327nobodyさん
2006/09/07(木) 10:28:51ID:fMyB6iZLfor($i = 0 ; $i < 5; $i++){
for($ii = 0 ; $ii < 5; $ii++){
$arr[$i][$ii]=1;
}}
print "$arr[3][3]";
の様な事をしたいのですが、出力される値がArrayしか出なくて困っています。
2次元配列を簡単に組めるにはどうしたらいいのですか?
0331nobodyさん
2006/09/09(土) 02:41:28ID:C6V07CE/要素[1]さんの状態は[2]
要素[3]さんの状態は[4]
要素[5]さんの状態は[6]
[配列ary]
array ( [0] => ココカラ [1] => Aさん [2] => 元気 [3] => Bさん [4] => まあまあ [5] => Cさん [6] => 空元気 )
ここからCさんの状態を調べるスクリプトを書いてみたのですが
for( $i=1; $i<5; $i+2)
{
if(strpos($ary[$i], 'Cさん')==false)
{
}
else
{
$j = ++$i;
$status = $ary[$j];
}
}
何故かこうすると動かず、for文の$i+2を$i++に変更すると正常に動きます。
そもそも$i+2という記述はおかしいのでしょうか?教えてください。
■ このスレッドは過去ログ倉庫に格納されています