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

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

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

PHP Home Page 
http://www.php.net/
0114nobodyさん2006/07/27(木) 13:38:33ID:???
>>113
joinを使うとべんりdさぞ
0115nobodyさん2006/07/27(木) 13:43:06ID:???
こうな。
$str = implode('","', $allArray);
この後$strの前後から2文字づつ切ればいい。
01161152006/07/27(木) 13:44:20ID:???
間違った。
$str = '"' . implode('","', $allArray) . '"';
でいいな。
0117992006/07/28(金) 18:31:34ID:???
しつこい言われそうですが報告しておきます
PDO使ったら普通にいけましたコレ。
PHPソース:EUC、HTTP出力:SJIS、ORACLE:SJIS

$dsn = 'oci:dbname=hoge;charset=JA16EUC';
$user = 'hoge';
$pass = 'hoge';

$db = new PDO($dsn,$user,$pass);
$stmt = $db->prepare("SELECT empid,empname FROM emp");
$stmt->bindColumn('empid',$ret_arr['id'],PDO::PARAM_STR);
$stmt->bindColumn('empname',$ret_arr['name'],PDO::PARAM_STR);

$stmt->execute();

while($stmt->fetch(PDO::FETCH_BOUND)){
$ret_arr['id'] = $ret_arr['id'];
$ret_arr['name'] = $ret_arr['name'];
}
$stmt = null;
0118nobodyさん2006/07/29(土) 15:42:03ID:???
>>117
報告ありがとう
きっとその書き込みは後世で役に立つであろう・・・
0119nobodyさん2006/08/01(火) 00:31:28ID:???
定義済み変数を使って現在のファイルのあるディレクトリまでのファイル名を含まない絶対パスってどう書けばいいんですか?
0120nobodyさん2006/08/01(火) 00:32:05ID:???
質問につきageます
0121nobodyさん2006/08/01(火) 00:43:07ID:???
dirname(__FILE__)
0122nobodyさん2006/08/01(火) 01:32:13ID:???
そのような関数があったとは全く知りませんでした。
本当にありがとうございます。
0123nobodyさん2006/08/01(火) 03:25:41ID:???
>>122
マニュアル読めよ
0124nobodyさん2006/08/01(火) 08:56:49ID:W3yf98Bx
ほんとうにありがとうございました
0125nobodyさん2006/08/01(火) 16:06:50ID:E6FJ2WAY
JpGraphのような別PHPファイルにデータを渡すにはどうしたらいいですか?
グローバル配列変数みたいなものを探しています。
0126nobodyさん2006/08/01(火) 16:25:00ID:???
渡す必要は無いかと
0127nobodyさん2006/08/01(火) 16:34:43ID:???
>>126
グラフ表示のサンプルを見ると
<img src='graphtest.php'>
のようにグラフを表示する為に専用のPhpファイルをリンクしてありますので
本体phpからグラフphpにデータを渡す必要があると思うのですが。
0128nobodyさん2006/08/01(火) 17:18:31ID:???
逆に考えるんだ
メインスクリプトからPHPファイルにデータを渡すのではない。
メインスクリプトからPHPスクリプトを利用してやるのだと
0129nobodyさん2006/08/01(火) 17:27:19ID:???
>>127
そういうことね。
おれはクエリストリングかセッション変数を使ってる。
0130nobodyさん2006/08/01(火) 19:58:24ID:???
http://?????????????????????????
0131nobodyさん2006/08/02(水) 22:03:52ID:B9yKSglg
宜しくお願いします。以下のようなphp(post.php)なのですが、保存先のtest.txtのエンコードもUTF-8にしたいのですが、どのようにすればよいでしょうか??


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body bgcolor="#FFFFFF" text="#000000">


内容を書き込み送信 <br>

<form method="post" action="post.php">
<input type"text" name="contents" value="" size="50" maxlength="256">
<br><br>
<input type="submit" name="submit" value="送信">

</form>
<br>

0132nobodyさん2006/08/02(水) 22:05:24ID:B9yKSglg
<?php
$filename = "test.txt";

if(isset($_POST['submit'])){
print("投稿内容: ".$_POST['contents']);

$file = fopen($filename, "w");

flock($file, 2);
fwrite($file, $_POST['contents']);
flock($file, 3);

fclose($file);
}

?>
</body>
</html>
0133nobodyさん2006/08/02(水) 22:42:33ID:???
mb_internal_encoding か mb_convert_encoding でも使え
0134nobodyさん2006/08/02(水) 22:52:04ID:???
>>133
どこにどういれたらよいでしょうか??
01351342006/08/02(水) 22:58:32ID:???
あ、すみません。。。>>134=>>132です。
0136nobodyさん2006/08/03(木) 01:07:12ID:???
RFM
01371312006/08/03(木) 02:32:59ID:N4ArK+AW
<?php
$filename = "test.txt";
['contents'] = mb_convert_encoding(['contents'], "JIS", "UTF-8")
if(isset($_POST['submit'])){
print("投稿内容: ".$_POST['contents']);

$file = fopen($filename, "w");

flock($file, 2);
fwrite($file, $_POST['contents']);
flock($file, 3);

fclose($file);
}

?>

としてみたのですが、できません。。。。。
どうしたらいいの・・・・・??
0138nobodyさん2006/08/03(木) 03:09:36ID:???
そもそもスレ違いかもしれないけどごめんなさい。
PHP勉強しようとして
apache_2.2.3-win32-x86-no_ssl.msi
でまずApache入れようとしたら
インストールウィザードにPlease wait.とか言われたまんま進まないんですけど。
何が問題なんでしょう。
WinXP SP2, Celeron D 341。

これじゃせっかくPHPで何か書いても動作チェックしようがない…
0139nobodyさん2006/08/03(木) 03:40:23ID:???
それと借りてる鯖のPHPは4.3.11らしいですけど
手元のバージョンも合わせたほうがいいですか?
普通に最新の5.1.4入れようとしてますけど。
0140nobodyさん2006/08/03(木) 06:52:33ID:???
まずネットにつなげ
0141nobodyさん2006/08/03(木) 07:52:12ID:???
>>138
そもそもWindowsのPHPは、まだApache2.2には対応していなかったと思う
0142nobodyさん2006/08/03(木) 08:07:08ID:???
2.0と2.2の変更点の一つにモジュールについてあったな、そういえば。
01431382006/08/03(木) 11:55:57ID:???
2.0.59に変えても同じ反応です。

Apache HTTP Server 2.0.59 Setup is preparing the Installation
Wizard which will guide you through the program setup
process. Please wait.

でいつまで経ってもNextが押せません。
01441312006/08/03(木) 12:12:14ID:???
自己解決しました。

ini_set("mbstring.internal_encoding","UTF-8");

って入れたらできました♪
0145nobodyさん2006/08/03(木) 15:53:48ID:???
どなたかアップローダーの仕組みを教えてください
0146nobodyさん2006/08/03(木) 16:00:51ID:???
>>145
アップローダ以外の普通の掲示板とかのスクリプトはわかるのか?
だったらフリーなPHPソースであぷろだ置いてるところあるから
そのソースを読め
0147nobodyさん2006/08/04(金) 15:52:28ID:v3M2GCi5
>>145
フォームで入力した文字を送信すると文字がHTTPプロトコルに則って
送信されるでしょ。アップローダの場合のファイルはその仕組みと同様に
ファイルを半角文字に変換して送信して受け側でもとのファイルに戻して
やるのが仕組みだ。
0148nobodyさん2006/08/04(金) 16:18:39ID:???
>>145
ファイルアップロードの処理
http://coronado.s8.xrea.com/php/features.file-upload.php
0149nobodyさん2006/08/04(金) 17:11:46ID:???
「・ソ・ソ」
0150nobodyさん2006/08/04(金) 17:12:40ID:???
>>145
セキュリティホールの温床になりやすいから気をつけろよ
0151nobodyさん2006/08/04(金) 17:46:53ID:???
>>148-149
IE 使ってない?

文字コードを UTF とかにすると見れるね。
先月かな、WindowsUpdate してから IE の
文字コード判定がおかしくなってない?
0152nobodyさん2006/08/04(金) 19:19:20ID:IwZUdvMW
入力した2chのスレの>>1を表示させるにはどのようにすればいいですか?
0153nobodyさん2006/08/05(土) 00:30:49ID:???
http://pc8.2ch.net/test/read.cgi/php/1150088761/1
最後を1にしる
0154nobodyさん2006/08/05(土) 02:15:26ID:JIFCC4LF?2BP(0)
携帯のサイトを作ってるんですが、
携帯ではセッションの「SID」は使用できないんでしょうか?

1・ログインフォーム(login.php)でIDとパス入力

2・フォームの値を同ファイル(login.php)に送信、検証

3・OKならセッション値に代入、別ファイルに飛ばす
header("Location:./nextfail.php?SID");

4・以降、セッションでID・パス持ち回し。

ウェブサーバに載せて、パソコンからなら問題なく動作するのですが、
携帯(FOMA)からだとセッション値が持ち運べていないようです。

上記の2の同一ファイルへの送信は

・フォームアクションでSID付加
$login = "./login.php?SID";
<FORM ACTION="<?=$login?>" METHOD=POST>

・HIDDENでセッションID送信
$ssna = session_name();
$ssid = session_id();
<INPUT TYPE=hidden NAME="<?=$ssna?>" value="<?=$ssid?>">

の両方を試してみましたがダメでした。
セッションを使用する場合は全てのファイルでセッションIDを
GET(POST)受け取りをするしかないんでしょうか?
尚、クッキー・register_global共にOffでも、パソコンからは動作しました。
0155nobodyさん2006/08/05(土) 04:28:33ID:???
ケイタイではクッキーは使えないと思っておいたほうがいい
use_trans_sid でぐぐって吉。
0156nobodyさん2006/08/05(土) 06:03:09ID:JIFCC4LF?2BP(0)
use_trans_sid=1でした。
use_cookieはon、
use_only_cookieの欄はなし。
なのに
header("Location:./nextfail.php?SID");
の文末SIDを受け取ってくれない・・・。
echo SID;
で表示するとちゃんとPHPSESSID=IDの形で収まってるし、
HIDDEN属性のは受け取ってくれてる。
どうやらSIDが展開されないのが問題みたいです・・・。
0157nobodyさん2006/08/05(土) 06:08:06ID:???
""の中で定数が展開されるわけないだろ
因みにLocationは絶対パスを指定するのがHTTPのスペック
0158nobodyさん2006/08/05(土) 06:53:43ID:JIFCC4LF?2BP(0)
            ヽ、    ヽ     ヽ 、   ヽ
   )ヽ、_,,,..._    ヽ、_,   げえッ───────!!!
   iー-、::_: `、ゝ_,,-  ノ  (    ) 、     )
   ノ::`ー_-_ノ ノ ノ_,-"イ /    ` 、ノ  `i  (   l
,-、 |::::.ヽ _。ヽ:: /_。フ' |ノ   ヽ、      i、   ノ
|6`i/:::. ,,-.―'' /i|.ー-、. |
ヽ ::: i ::    ⌒  : |  
ヽ`l | ::    /ニ`i   /
 `|:. ヽ、   i_,,,、/  /     ,へ___
  ,|:::._ヽ___/   _//`ー--、ニ=--―,
  | ̄ ̄ ̄ ̄||| ̄|    / / / __     ̄ ̄`¬
 ̄ ̄ ̄ ̄ ̄○ ̄ ̄ヽ | // /   /「""の中で定数が展開されるわけないだろ 」


6時間悩んだ結果が・・・。
>>155
>>157
大変お世話になりました。
PHPファイル計300個全修正してきます・・・。
0159nobodyさん2006/08/05(土) 10:29:32ID:hzy3ErJp
>>158
今度からは関数化しとけよ
0160nobodyさん2006/08/05(土) 11:03:07ID:???
PHPって空文字もnullも同じ扱い?
$hoge = ""; とやっても、($hoge == null) はtrueとなるようですが。
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'
■ このスレッドは過去ログ倉庫に格納されています