PHP
- アクセスされたくないPHPファイル
Apache+PHPでwebサイトを作成しています。 ここで、ユーザーからアクセスされたくないPHPファイル(MVCのうちのMやC)があるのですがどうすればいいでしょうか? ご存知の方がいらっしゃいましたら、ご教授ねがいます。
- ベストアンサー
- PHP
- noname#156053
- 回答数1
- phpでのPostgresqlの配列型カラムへのinsert文の書き方
postgresql 7.0.2,スクリプト言語php4.12で請求書作成のデータベースを作っています。 データベースのカラムが配列型のものが複数あり、フォームから受け取った配列の値を インサートする方法がわからなくて悩んでいます。 for($i=0;$i< count(@$_POST["sum"]);$i++ ) { $summary[] = $_POST["summary"][$i]; $num[] = $_POST["num"][$i]; $tanka[] = $_POST["tanka"][$i]; sql = "insert into seikyu (summary,num,tanka) values('{$summary}','{$num}','{$tanka}')"; だと Warning: PostgreSQL query failed: ERROR: array_in: Need to specify dimension とエラーになります。 どういうSQL文を書けばよいのでしょうか?
- 入力フォームで・・・・・
いつもお世話になります。 簡単な事で申し訳ありませんが よろしくお願い致します。 下記のような入力フォームを作っているのですが 自分localhostでは問題なかったのですが レンタルサーバーで動かすと どうしても入力場所に <?php=$FMemb? という文字が出てきてしまい 四角の枠の外に > が表示されます。 PHPが利いていずにHTMLとなっている気がしてなりません。 どなたかご指導よろしくお願い致します。 PHPのバージョンにも影響あるのでしょうか? <?php> . . <html> メンバー <input type="text" name="Memb" style="ime-mode:inactive" size="4" value=<?=$FMemb?> > . .
- フォームのPOST情報が渡らない?
こんにちは。 PHPを使ってフォームからの入力情報をPOSTで受け取り確認画面を出す、というような機能を作成しているのですが、たまにデータが受け取れずに初期画面へ戻ってしまう現象が起こります。 POSTではなくGETにするとキチンと送信出来ているようなのですが、情報量やその他の面からGETを使うことは避けたいと思っています。 POSTされた情報が受け取れないという現象は、再現が難しく、出るときは出るし出ないときはまったく出ません。 これまで調べた回避方法で以下の2つは試してみましたが、どちらも現象を止めるには至りませんでした。 ・<form>タグに『 enctype="multipart/form-data"』を追加する ・<input type="hidden" name="spoof">を追加する また、マルチバイト文字をフォームに入力しない場合は、現象がまったく再現しないようでした。 この現象の回避策を何かご存知の方、アドバイスよろしくお願いいたします。 ------使用環境-------------- OS :Windows2000 ブラウザ:Internet Explorer 6.0.2800.1106(更新バージョンSP1) Apache :Server version: Apache/1.3.29 (Unix) PHP :PHP 4.3.4 (cli) (built: Dec 1 2003 18:13:50) ------POST情報取得処理------ function get_post_vers(){ foreach($_POST as $key => $val){ $GLOBALS["$key"] = $val; } return; }
- ベストアンサー
- PHP
- noname#45976
- 回答数1
- 外部テキストファイルの書き換えと作成について
外部テキストファイルの操作について悩んでおります。 アドバイスお願いします。 まず、外部テキストファイルdate.txtファイルの中身は以下のような具合です。 2/19 2/18 2/09 2/14 2/17 というたった五行の日付情報です。 この日付情報をユーザーがhtml上(実際はdate.phpというファイルです)で自由に変更できるようにしたいというのが私の処理の理想です。 そこで、この日付情報のそれぞれをhtmlのinput type=textのvalue値として、まず読み込ませて表示させます。 そしてユーザーは5つそれぞれを書き換え、もしくはそのまま変更なしでもかまいませんが、最終的にsubmitでphpに送信します。(自分自身、date.phpに送信します。) そのあと、date.txtファイルがユーザーの指定通りに書き換えられるという仕組みです。 さらに、その書き換えられた際に、date.txtファイルとは別に、updated.txtファイルを生成したいと思っています。(生成というか、常にdate.txtファイルの中身が変更される際に、updated.txtファイルも変更されるようにしたいということです。) そのupdated.txtファイルの中身は、 v_hensu1=2/19&v_hensu2=2/17&v_hensu3=2/14&v_hensu4=2/17&v_hensu5=2/15 というようにしたいと思っています。改行は必要ありません。 date.txtの日付情報を上からそれぞれv_hensu1、v_hensu2に当てはめていって、それぞれを&でつなぐだけです。 以上で処理の流れは完了です。 そこでわからないのは、「最初にdate.txtファイルを開く際に使う関数」と、 次に「date.txtを書き換える際に使う関数」と、 「updated.txtを作るための関数」です。 ファイル操作について、また簡単な例をあげていただけますと幸いです。どうぞ宜しくお願いいたします。
- PHP+MYSQLで検索の不具合
MYSQLをEUC、PHPソースをEUCに 統一し、 mbstring.internal_encoding = EUC-JP mbstring.http_input = auto と設定し、 SQLに select * from aaa where b like '%$keyword%'; のようにキーワードを渡すと、文字によっては 検索にかかってくれないものがあります。 例えば、 俺 世界 男 はOKで 選手 男の子 は NG といった不可解な現象なんです。 他にも同じ文字を利用しているのに、検索に かかるレコードとそうでないものがあったりします。 何か考えられる原因はあるでしょうか
- 効率の良いDBプログラミング
PHP+MySQLでサイトを構築しているのですが、DBサーバへの接続/切断について分からない事があります。 現在作成中のサイトでは、1ページにDBデータを利用している箇所が複数あります。 DBを利用する部分は、個別にパッケージしているので、使いたい場所でincludeする様にしているのですが、個々のパッケージ内容で、DBサーバへのconnectを行っておらず、ページを読み込む時に、先頭でDBサーバへ接続する様に宣言して、ページの最後で切断しています。 <? include("config.php"); ?> ←DBへ接続 <HTML> <HEAD></HEAD> <BODY> <? include("counter.php"); ?> DBカウンタ ~中略~ <? include("graph.php"); ?> グラフ表示 </BODY> <HTML> 切断 こうする事で、DBへの接続を1回で済ましているのですが、この方法が最良なのかどうかわかりません。 やはり、個々のパッケージで接続/切断した方が効率が良いのでしょうか? 例えば、1ページの表示に時間がかかる様なページだと、接続から切断まで時間がかかると思います。それであれば、複数回接続でも1接続あたりの時間が短い方が効率が良いのではないかと思いました。 1ページを表示するのに、複数回接続するのはごく一般的な事なのでしょうか?
- ページの表示と同時にダウンロードさせたい
いつもお世話になっています。 入力フォームから必要な項目を入力して、送信するとPHPでいろいろ処理して、その後ありがとうページを表示させると同時にファイルのダウンロードをさせたいと考えています。 処理をするPHPでありがとうページを書き出ししても、別なページに飛ばしてもいいのですが、header(Location:~)ではページが表示できず、別なページを作ってHTML表示後にheader(Location:~)だとファイルのダウンロードができずに困っています。 header(Location:~)を使わずにページの表示と同時にファイルのダウンロードが始まるようにできないでしょうか。
- 日本語が文字化けするんです。
WINDOWS2000を使用しています。apache_1.3.26 php-4.2.2でプログラムを作成し始めた初心者です。テキストエディタで文章の中に日本語を入れてphp文書として保存し、ブラウザで見たら日本語の部分が文字化けしてたり消えてたりするんです。どうやら、phpのマルチバイト関連の設定に不備がある、というらしいのですが、詳しく分からないので、どなたか詳しい方教えて下さい。宜しくお願いします。
- ホームページでの画像表示について
この度、賃貸物件検索サイトをpostgres & phpを用いて作成しています。 同時に携帯サイトも作成し、WEBのホームページと携帯版のホームページで同じ情報を表示させる予定です。 WEB版に登録した画像(解像度72、サイズは200*300程度)のファイルを携帯版にも流用したいのですが、どうしたらよいのか分かりません…。 そのまま表示させたのではサイズ、容量ともに携帯では表示できません。 関数等で画像の解像度を下げる事は不可能なのでしょうか? やはり携帯用には、小さな画像を登録しなおす必要があるのでしょうか? どうか、よろしくお願い致します。
- 締切済み
- PHP
- ponpon-kankan
- 回答数2
- オプションメニューの書き方
全く基礎的なことでお恥ずかしいのですが、お教えください。 オプションメニューを次のようにして書こうとしているのですが、結果が現われません。正しい書き方を教えてください。 <SELECT saize="15" name="history"> <? $hisITEMS[0]='aaaaaaaaa'; $hisITEMS[1]='bbbbbbb'; $hisITEMS[2]='cccccccccccc'; $hisITEMS[3]='dd'; $hisITEMS[4]='eeeeeeeee'; for ($j=0; $j<count($hisITEMS); $j++) { <option value=$j>echo $hisITEMS[$j]</option> } ?> </SELECT>
- 2次元配列のソート
2次元配列のデータをソートしたいのですが方法がわかりません。初歩的な質問ですが、ご存知の方、よろしくお願いいたします。 (例) 商品コード、商品名、金額、有効期限のデータを以下のように持っています。 $data[0] = ("001", "商品A", 5200, "2004/5"); $data[1] = ("002", "商品B", 350, "2005/1"); $data[2] = ("003", "商品C", 10800, "2004/3"); ・・・・ データの項目(商品コード、商品名など)数は固定ですが、データ数、内容は変化します。 2次元配列でデータがあり、商品コードで降順にソート、金額で昇順にソートなどのソートを行う方法はありますか? No.760468 で同じような質問があり、array_multisort が回答としてあがっていましたが、上記データの場合ソートできないようなので質問させていただきました。 なお、環境によりデータベースを使用することはできません。
- フォームを使った配列変数の受け渡し
PHP初心者です、よろしくお願いします。 フォームからPHPで配列変数を受け渡すことを考えています。 一次元配列はうまく渡せましたので、これを二次元にしましたところ、 うまく渡せません。基本的なPHPの文法がわかってないので、つまづい ています。多分、配列変数の記述方法がおかしいのだと思うのですが・・。 ご教授よろしくお願いします。 <html> <body> <form method = "POST" action ="test2.php" > <?php //データ渡し側 for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j <2;$j ++ ){ echo ("<input type ='text' name = 'data[$i][$j]' size ='10'>\n"); echo ("<br>\n"); } echo ("</tr>\n"); } ?> <input type="submit" name ="sbmit" value="data_input" > </form> </body> </html> <?php //データ受け側 for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j < 2;$j ++ ){ $tmp_data[$i][$j] = $_POST["data"][$i][$j]; echo ("$tmp_data[$i][$j] <br>\n"); } } ?> <html> <body> <form method = "POST" action ="test2.php" > <?php for ($i = 0 ;$i < 2 ;$i ++){ for ($j=0 ;$j <2;$j ++ ){ echo ("<input type ='text' name = 'data[$i][$j]' size ='10' value='$tmp_data[$i][$j]'>\n"); echo ("<br>\n"); } } ?> </table> <input type="submit" name ="sbmit" value="in" > </form> </body> </html> 実行結果は、 Array[0] Array[1] Array[0] Array[1] と表示されて、実際の入力した値が反映されません。
- 文字列内の\nで改行表示させるための置換
すでに他のかたがNo.7770 でなさった質問によく似ていますが、私の場合と微妙に違いますので、質問させてください。たとえば: $data='i.(h, s) \n1. (馬が)速足(はやあし)で走る \n2. (s)[口]急いでいく, 小走りに走る' この$data 内の「\n」を<Textarea>に改行して表示したいので、文字列置換を $data = ereg_replace("\n", "<BR>", $data); とか $data = ereg_replace("\\n", "<BR>", $data); とか $data = ereg_replace("/\\n/", "<BR>", $data); やってみてますが、どうしもPerl の場合には成功した: $data=~ s/\\n/\n/g; と同じ結果が得られません。表示の末尾に<BR>が出たり、\nのままだったりします。何度も行なわれているような初歩的質問ですが、お願いします。
- 日付の計算方法(1970年以前のデータを含む)
過去の日付のデータがあって、今日までのの経過年月日を求めたいです。 (例) データ 1980年1月5日 本日が2004年2月6日なので、求めたい結果は24年1月1日 日付のデータには1970年以前のデータも含まれるためタイムスタンプ(グリニッジ標準時)が使用できません。 関数などを使って簡単に求める方法はあるのでしょうか? どのようにしたら求められるかわかる方教えていただけませんでしょうか。 よろしくお願いいたします。