- 締切済み
PHPでの確認画面について
入力フォーム(html)に必要事項を入力し PHPでデータを受け取り、Mysqlに保存後 PDF出力しております。 DBに書きこむ前に確認画面を出したいのですが 以下のプログラム1つで行なうことは可能でしょうか? それとも、プログラムを分ける必要がありますか? フォームに入力 ↓ 確認画面 ↓ OKならDBへ出力&PDF出力。 NGなら入力フォームに戻りたいです。 PHP初心者です。 どうぞ、宜しくお願いします。 ----- <?php //#環境設定 mb_language("Japanese"); mb_internal_encoding ("utf8"); $errflg = 0; $host = 'localhost'; $user = 'xxxxxx'; $password = 'xxxxxx'; $database = 'xxxxxx'; //DBへ接続開始 $link = mysqli_connect($host, $user, $password, $database); if (!$link) { print("接続できませんでした"); exit(); } /* 文字セットを SJIS に変更します */ mysqli_set_charset($link, "SJIS"); //オートコミットOFF mysqli_autocommit($link, FALSE); //重複チェック $account = $_POST["name"]; $sql = 'select * from xxxxx where name = "'.$name.'";'; $rs = mysqli_query($link, $sql); $rows = mysqli_num_rows($rs); if($rows == 0){ } else { echo "【".$name."】は既に登録されています。<BR>"; $errflg = 1; } // ステートメントの設定 $sql = 'INSERT INTO schoolmate (id,name) VALUES(?,?)'; $stmt = mysqli_prepare($link, $sql); mysqli_stmt_bind_param( $stmt,"ss", $id, $name ); // 入力チェック //名前(性) if($_POST['name'] == ""){ echo "【名前】が未入力です。<BR>"; $errflg = 1; } ~省略~ // 値設定 if($errflg == 0){ $id = $_POST["id"]; $name = $_POST["name"]; //SQL文を実行する mysqli_stmt_execute($stmt); //コミットする mysqli_commit($link); //ステートメントクローズ mysqli_stmt_close($stmt); //DBへの接続を切断 mysqli_close($link); require('/php/includes/fpdf/mbfpdf.php'); $pdf=new MBFPDF(); $pdf->AddMBFont(GOTHIC ,'SJIS'); $pdf->AddMBFont(PGOTHIC,'SJIS'); $pdf->Open(); $pdf->AddPage(); $pdf->SetFont(GOTHIC,'',10); $pdf->Write(8,"(xxxxx)\n"); $pdf->Cell(0,30,'平成 年 月 日',0,1,R); $pdf->SetFont(GOTHIC,'',12); $pdf->Cell(0,20,'氏 名 印',0,1,R); $pdf->SetFont(GOTHIC,'',14); $pdf->Cell(63,10,'氏名(漢字)',1); $pdf->Cell(63,10,$id,1); $pdf->Cell(63,10,$name,1,1); ~省略~ $pdf->Output(); }else{ $errflg = "1"; } ?>
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- superside0
- ベストアンサー率64% (461/711)
確認画面か 保存画面かの どちらのモードで実行しているかを示す変数を使って 切り替えれば、1ファイルで実装することは可能です。 特に、DBの項目が増えるような メンテナンス作業が発生したときのことを考えると、 チェックや保存の処理部など同じことをいろんなファイルに書くよりも、共通化するのが 望ましいです。 ただし、共通部だけincludeファイル化してしまえば同じことなので、 確認画面と 保存画面を1ファイルにするか 分けるかというのは、別の話になります。
1ファイルでの実装は可能ではあるけど分けたほうがいい。
お礼
分けて作成し、なんとか完成しました。 ありがとうございました。
お礼
ありがとうございます。 参考になるプログラムがあれば教えて頂けないでしょうか?