とっておきの手土産を教えて

Warning: pg_freeresult(): supplied argument is not a valid PostgreSQL result resource in /home/user/public_html/postgres/sur1.phtml on line 53

というエラーがでてPHPが動かないのですが、WEBを検索したところ、同じような状態で放置してあるのもいくつか見つかりました。

これの原因は何でしょうか?

http://www.shachihata.co.jp/shopnavi/shop_area.p …

http://www.ekiis.com/PC-Clinic/FAQBoard/index.php3
http://www.journey-on.net/sister/fediary.php
http://www.e-cardmodel.com/pepakura-ja/bbs/bbs.p …

よろしくお願いします。

A 回答 (2件)

sur1.phtml に関してだけですが、



pg_execにより実行されたSQLの結果がEmpty(0行)だったために、
$resultをpg_freeresult仕様とした時にエラーが出ているのだと思います。

35行目:
// 実行したQueryのErrorを確認します。
if (!$result) {
≪ここに pg_freeresult≫

で、else の際には要らないと思いますよ。

この回答への補足

> 35行目:
> // 実行したQueryのErrorを確認します。
> if (!$result) {
> ≪ここに pg_freeresult≫

とりあえず、移動させました。で、最初のエラーはなくなったのですが、
「入れ忘れた項目があります。」のエラーが消えません。次の部分が出していると思うのですが値は全部入れています。

これは何が原因でしょうか?

     // 入力された項目に値が入っているかを確認します。
     if (!$name || !$furigana || !$mail || !$zip || !$addr || !$tel ||
      !$list) {
       echo "<CENTER>";
       echo "<H2>入れ忘れた項目があります。
         「戻る」ボタンで戻ってください。</H2>";
       echo "</CENTER>";

補足日時:2003/11/12 14:41
    • good
    • 0

そういう時には、


本当に入れ忘れていないかどうかを
テスト出力してみましょう。


// 入力された項目に値が入っているかを確認します。
if (!$name || !$furigana || !$mail || !$zip || !$addr || !$tel || !$list) {
echo "<CENTER>";
echo "<H2>入れ忘れた項目があります。「戻る」ボタンで戻ってください。</H2>";
echo "</CENTER>";

print '
$name「'.$name.'」<br>
$furigana「'.$furigana.'」<br>
$mail「'.$mail.'」<br>
$zip「'.$zip.'」<br>
$addr「'.$addr.'」<br>
$tel「'.$tel.'」<br>
$list「'.$list.'」<br>';
}

ちなみに !$name のように、
ビックリマークで判別する場合は、0 (ゼロ)にも反応します。

つまり、 0 という値が $name に入っていた場合も
入れ忘れた項目として扱われてしまうのです。

本当に空欄だけを弾きたいのであれば、
$name == "" などに変更しましょう。

$list辺りが怪しいかな?

この回答への補足

チェック用コードを入れてみたところ、全部、空でした。

 入れ忘れた項目があります。 「戻る」ボタンで戻ってください。
 $name「」
 $furigana「」
 $mail「」
 $zip「」
 $addr「」
 $tel「」
 $list「」


それで、次のように書き換えたのですが、それでも、結果は同じでした。

 if ($name=="" || $furigana=="" || $mail=="" || $zip=="" || $addr=="" || $tel=="" || $list=="")

もっと、別の基本的な部分がおかしいのでしょうか?

補足日時:2003/11/13 20:25
    • good
    • 0
この回答へのお礼

次のような解説があり、 $name 等は使えなくなったようです。

PHPバージョン4.1.xまでと4.2以降ではこの設定の既定値が異なっている。変更された理由は4.1.xまでの設定ではセキュリティ上の問題があったため。ところがこの変更の影響で、PHPバージョン4.1.xまでを対象に作られたプログラムが、かなり簡単なサンプルでさえもPHPバージョン4.2以降で動かないということが多発しており、いわゆる「register_globals問題」として知られている。

http://d.hatena.ne.jp/ryuzi_kambe/keyword/regist …

お礼日時:2003/11/14 20:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報