• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHP POSTでデータ登録について)

PHP POSTでデータ登録について

このQ&Aのポイント
  • PHP初心者のため、データベースにデータ登録がうまくできない
  • リンクをクリックすると空データが登録されてしまう問題がある
  • フォーム中のボタンを押さないとデータ登録ができない設定をしたい

質問者が選んだベストアンサー

  • ベストアンサー
  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

>解決したいのは、ページ中別のURLにクリックしても、 >データが自動的に登録しないようにしたいです。 POSTデータを登録する部分を if ($_POST) { // ここで登録処理 } のように括るだけでいいです。 が、そもそも(POSTされたときに)各々の内容をチェックしないで(全部が空文字列であっても)insertしているようではダメです。

huizhipeng1987
質問者

お礼

if ($_POST['shops_name'] != ''&&$_POST['shops_address'] != ''&&$_POST['shops_tel'] != ''){ $sql = sprintf('INSERT INTO shops SET name="%s",address="%s",tel="%s"', mysql_real_escape_string($_POST['shops_name']), mysql_real_escape_string($_POST['shops_address']), mysql_real_escape_string($_POST['shops_tel']) ); mysql_query($sql) or die(mysql_error()); } if文で空の条件が書けば、できました。ありがとうございます。すごく勉強になります。

その他の回答 (3)

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.4

aタグでupdate_shop.phpに飛ばしているのだから、そのページでPOSTデータが入っているのかチェックするべきです。 リンクをクリックして遷移した時はフォームデータは送られませんので当然の結果です。 また、各入力項目の値が正しいのかのチェックもupdate_shop.phpで行うべきでしょう。 そうしないとSQLインジェクションやクロスサイトスクリプティング等、セキュリティ上の問題が発生する可能性があります。 利用者が社内など限定されていて悪意のあるアクセスは発生しない条件でも、意図せずに変なデータを入力してしまって、結果としてデータが壊れたりする事もあり得ますので注意しましょう。

huizhipeng1987
質問者

お礼

初めて、PHPで管理システムのWEBアプリケーションを作っていますので、答えは凄く参考になりました。

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.2

list.php と update_shop.php のどちらでデータベースに書き込みを行っていますか? その書き込むプログラムはどのような内容ですか?

huizhipeng1987
質問者

補足

説明が少ない、すみませんでした。 本来は、データ一覧表の隣に新規データ登録のフォームを設置して、 データ登録ができたら、隣の一覧表ですべてのデータが表示されている。 次に、一覧表の中に編集ボタンを追加して、ボタンが押したら、データ編集ページに移動し、データ編集ができたら、最初のページに戻す(一覧表と登録のページ) 考えたのは、insert_shop.php(一覧表とデータ登録)とupdate_shop.php(データ編集)があればシステムが動けると思います。 データ登録は問題なく、データ登録されました。 しかし登録フォーム何も触らずに、一覧表中のURLだけクリックしたら、空データが自動出来に登録されてしまいました。空データと言うのは、番号は主キー、自動番号が追加され、他のデータが何も無いです。 解決したいのは、ページ中別のURLにクリックしても、データが自動的に登録しないようにしたいです。 是非、教えて頂ければ幸いです。                 

  • t_ohta
  • ベストアンサー率38% (5238/13705)
回答No.1

formタグのactionが空ですが、これはフォームのあるページと同じページにデータを送信するということでしょうか?

huizhipeng1987
質問者

お礼

回答内容は凄く参考できました。本当にありがとうございました。

huizhipeng1987
質問者

補足

action="list.php" にURLを追加しましたが、結局違うURL <a href="update_shop.php">リスト</a> をクリックしたら、空データが登録されてしまった。