アプリ版:「スタンプのみでお礼する」機能のリリースについて

PHPでデータの登録を行っています
いろいろ調べながら試行錯誤しています

登録できる条件があります
1.番号が重複じゃない
2.番号、氏名、住所が空白でない場合です

現状
1.2両方できていてデータも追加されるのですが、
2の条件、空白だった場合エラーメッセージを表示したいのですが表示されず困っています

<?php
$err = "";
if(empty($_POST['ID'])) $err.= "<br><br>番号入力してください。<br><br>";
if(empty($_POST['NAME'])) $err.= "<br><br>氏名入力してください。<br><br>";
if(empty($_POST['ADDR'])) $err.= "<br><br>住所を入力してください。<br><br>";
if(empty($err))
{
$pdo = new PDO("mysql:dbname=db_test;host=localhost", "root", "****");
$st = $pdo->prepare("INSERT INTO tbl_test VALUES(?,?,?)");
$st->execute(array($_POST['ID'], $_POST['NAME'],$_POST['ADDR']));
if($st->rowCount()>0)
{
header('Location: http://localhost/top.php');
}else{
print "既に登録している番号です";
}
echo $err;
}
?>

重複したときは"既に登録している番号です"と表示されるのですが、空白だった場合$errが表示されません

A 回答 (1件)

すくなくとも「echo $err」の位置は変



if(empty($err)){
・・・・
}

の外側もしくは、elseなどで処理しないと
「もし空なら」のブロックの中で表示しようとしても
空かヒットしないかのどっちらかでしょ

それと、しつこいようですがINSERTは「IGNORE」で行わないと
エラーになるので思った処理にならないかもしれませんよ

この回答への補足

JavaScriptを使わないなら$_SESSIONしかやり方ないですか?

補足日時:2014/04/23 10:42
    • good
    • 0
この回答へのお礼

返事遅くなりすいません。
指摘通り「IGNORE」にしてif文の外側にしたら出来ました。ありがとうございます。いつも助かっています

質問攻めですいません
エラーメッセージをエラーが出たら入力フォームにメッセージを返すことは可能ですか?

可能ならいい参考になるものないですかね?

お礼日時:2014/04/23 09:18

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