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";
}
?>
お礼
なるほど、そういう処理で、 内容の表示ができるのですね。 知りませんでした。 ありがとうございます♪ ただ、書いて頂いた箇所は、パディングの内容が、 「左右はあるが、上下はない」というような 意味合いに読めそうに思います。 私が困っている現象としては、 「ボトムの方に文字が書けない」ということなので、 ちょっと違うような感じもするのですが・・・。 と思いまして、教えて頂いたとおり、 自分でも、print_r($pdf);の 出力結果を見てみたところ、 [bMargin:protected] => 20.0025 という記述があり、どうもここいらかな、と考えました。 それで、「bMargin TCPDF」で検索したら、 http://shain.blog.conextivo.com/2010/10/tcpdf.html のページにたどりつき、「自動改ページ機能」というのが、 どうやらデフォルトでONになっているのらしく、 こいつが2cmのマージンを勝手に設定している、 ということのようでした。 そこで、これを $pdf->SetAutoPageBreak(false, 0); で、解除したら、無事に、ページの下の方にも テキストの書き込みができました。 お陰様で、解決策までたどりつくことができました。 ありがとうございました!感謝、感謝です!!!